diff --git a/AUTHORS b/AUTHORS
index 376a9b3..815f732 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -37,6 +37,7 @@
 Ajay Berwal <a.berwal@samsung.com>
 Ajay Berwal <ajay.berwal@samsung.com>
 Ajith Kumar V <ajith.v@samsung.com>
+Akos Kiss <akiss@inf.u-szeged.hu>
 Aku Kotkavuo <a.kotkavuo@partner.samsung.com>
 Aldo Culquicondor <alculquicondor@gmail.com>
 Aleksandar Stojiljkovic <aleksandar.stojiljkovic@intel.com>
diff --git a/DEPS b/DEPS
index 0a6b4f0..6929ccdc 100644
--- a/DEPS
+++ b/DEPS
@@ -175,11 +175,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': '6a5187a8895807f2412f6a4a1a209a859d4e93fb',
+  'skia_revision': '3150d88ba4ca076d7072bdc59502cfee2c0fc666',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': '3d1d9352dd510535d6a0feff640d8d2147658823',
+  'v8_revision': '2f3157bad0b2280605ed2dce1489b44ae8987bc6',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling swarming_client
   # and whatever else without interference from each other.
@@ -191,11 +191,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
-  'swiftshader_revision': '63ed0e445fa525ee01637350ea92fbdaa2226c73',
+  'swiftshader_revision': '1cba0a9c3a8a1961514ac63cd3091c1a376fe84a',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
-  'pdfium_revision': 'afc869eaff5badd31f06eedb5cbd5f269e8db6bb',
+  'pdfium_revision': '595e98f8751373b20ab56a30fcf46028db300fad',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling BoringSSL
   # and whatever else without interference from each other.
@@ -238,7 +238,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling catapult
   # and whatever else without interference from each other.
-  'catapult_revision': '475c8941a1ee84f98e8056d16ddceff37cece233',
+  'catapult_revision': '5d56a75005e3f5ce076e38b133b5ec8dde35c1dc',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -246,7 +246,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling devtools-frontend
   # and whatever else without interference from each other.
-  'devtools_frontend_revision': 'ac1817c5d0362e4ffae45eea28bd86340299140b',
+  'devtools_frontend_revision': '237b8541c13f344050a5db3b93e6c43b5b5458be',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libprotobuf-mutator
   # and whatever else without interference from each other.
@@ -294,11 +294,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'spirv_cross_revision': 'e58e8d5dbe03ea2cc755dbaf43ffefa1b8d77bef',
+  'spirv_cross_revision': 'a1d9b474b5caae6856c28bf9cde5aaf68e9c11b9',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'shaderc_revision': '4e3bbd9c5f1a164add8faca83d28f24c960c752c',
+  'shaderc_revision': '8026364968acb2e55390f6ccf295740ab818ebda',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -1086,7 +1086,7 @@
     Var('chromium_git') + '/external/libaddressinput.git' + '@' + '390dfc08e3806a2125d08d4d8d034a24d587d77a',
 
   'src/third_party/libaom/source/libaom':
-    Var('aomedia_git') + '/aom.git' + '@' +  'c25910f6d213ec5ec45ae53caa5e40bd7ebd218f',
+    Var('aomedia_git') + '/aom.git' + '@' +  '611c58e511042782869dfcb6e0450587b30fc5f2',
 
   'src/third_party/libavif/src':
     Var('chromium_git') + '/external/github.com/AOMediaCodec/libavif.git' + '@' + Var('libavif_revision'),
@@ -1218,7 +1218,7 @@
     Var('chromium_git') + '/external/github.com/cisco/openh264' + '@' + '6f26bce0b1c4e8ce0e13332f7c0083788def5fdf',
 
   'src/third_party/openscreen/src':
-    Var('chromium_git') + '/openscreen' + '@' + 'e998a6b46dddfecde30aa25642bad41a7e5d9780',
+    Var('chromium_git') + '/openscreen' + '@' + '56e977406c837e65a188f062b434eb0a81d992f5',
 
   'src/third_party/openxr/src': {
     'url': Var('chromium_git') + '/external/github.com/KhronosGroup/OpenXR-SDK' + '@' + '9e97b73e7dd2bfc07745489d728f6a36665c648f',
@@ -1465,7 +1465,7 @@
   },
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'f7065f4414856c15038f8bdbe4ef84e54056f9d6',
+    Var('webrtc_git') + '/src.git' + '@' + '5185df5cad73ff76844db122d9c86900e66b7a2b',
 
   'src/third_party/libgifcodec':
      Var('skia_git') + '/libgifcodec' + '@'+  Var('libgifcodec_revision'),
@@ -3530,6 +3530,9 @@
 
   # Chromium cannot directly depend on Abseil.
   '-absl',
+
+  # Chromium cannot directly depend on SHELL.
+  '-shell-encryption',
 ]
 
 
diff --git a/WATCHLISTS b/WATCHLISTS
index 3cc74af..b3104cc 100644
--- a/WATCHLISTS
+++ b/WATCHLISTS
@@ -1208,6 +1208,12 @@
     'media_controls': {
       'filepath': 'third_party/blink/renderer/modules/media_controls/'
     },
+    'media_feeds': {
+      'filepath': 'chrome/browser/media/feeds/'\
+                  '|chrome/renderer/media/media_feeds*'\
+                  '|components/schema_org/'\
+                  '|third_party/schema_org/',
+    },
     'media_galleries': {
       'filepath': 'chrome/browser/extensions/api/media_galleries/'\
                   '|chrome/browser/media_galleries/'\
@@ -1231,6 +1237,9 @@
     'media_gpu_win': {
       'filepath': 'media/gpu/windows/'
     },
+    'media_history': {
+      'filepath': 'chrome/browser/media/history/'
+    },
     'media_mojo': {
       'filepath': 'media/mojo/'
     },
@@ -2537,14 +2546,17 @@
                               'jamescook+watch@chromium.org'],
     'media': ['feature-media-reviews@chromium.org'],
     'media_capture_from_element': ['emircan+watch+capturefromdom@chromium.org'],
-    'media_controls': ['steimel+watch-mediacontrols@chromium.org',
+    'media_controls': ['beccahughes+watch@chromium.org',
+                       'steimel+watch-mediacontrols@chromium.org',
                        'shihken@microsoft.com'],
+    'media_feeds': ['beccahughes+watch@chromium.org'],
     'media_galleries': ['thestig@chromium.org',
                         'tommycli@chromium.org'],
     'media_gpu': ['hiroh+watch@chromium.org'],
     'media_gpu_cros': ['media-cros-reviews@chromium.org'],
     'media_gpu_vaapi': ['vaapi-reviews@chromium.org'],
     'media_gpu_win': ['media-win-reviews@chromium.org'],
+    'media_history': ['beccahughes+watch@chromium.org'],
     'media_mojo': ['alokp+watch@chromium.org',
                    'xhwang+watch@chromium.org'],
     'media_recorder': ['emircan+watch+mediarecorder@chromium.org',
diff --git a/android_webview/browser/metrics/aw_metrics_service_client.cc b/android_webview/browser/metrics/aw_metrics_service_client.cc
index eaf697d..1292b032 100644
--- a/android_webview/browser/metrics/aw_metrics_service_client.cc
+++ b/android_webview/browser/metrics/aw_metrics_service_client.cc
@@ -45,60 +45,6 @@
 // consulting with the privacy team.
 const int kPackageNameLimitRatePerMille = 100;
 
-// Normally kMetricsReportingEnabledTimestamp would be set by the
-// MetricsStateManager. However, it assumes kMetricsClientID and
-// kMetricsReportingEnabledTimestamp are always set together. Because WebView
-// previously persisted kMetricsClientID but not
-// kMetricsReportingEnabledTimestamp, we violated this invariant, and need to
-// manually set this pref to correct things.
-//
-// TODO(https://crbug.com/995544): remove this (and its call site) when the
-// kMetricsReportingEnabledTimestamp pref has been persisted for one or two
-// milestones.
-void SetReportingEnabledDateIfNotSet(PrefService* prefs) {
-  if (prefs->HasPrefPath(metrics::prefs::kMetricsReportingEnabledTimestamp))
-    return;
-  // Arbitrarily, backfill the date with 2014-01-01 00:00:00.000 UTC. This date
-  // is within the range of dates the backend will accept.
-  base::Time backfill_date =
-      base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromDays(150845));
-  prefs->SetInt64(metrics::prefs::kMetricsReportingEnabledTimestamp,
-                  backfill_date.ToTimeT());
-}
-
-// Queries the system for the app's first install time and uses this in the
-// kInstallDate pref. Must be called before created a MetricsStateManager.
-// TODO(https://crbug.com/1012025): remove this when the kInstallDate pref has
-// been persisted for one or two milestones.
-void PopulateSystemInstallDateIfNecessary(PrefService* prefs) {
-  int64_t install_date = prefs->GetInt64(metrics::prefs::kInstallDate);
-  if (install_date > 0) {
-    // kInstallDate appears to be valid (common case). Finish early as an
-    // optimization to avoid a JNI call below.
-    base::UmaHistogramEnumeration("Android.WebView.Metrics.BackfillInstallDate",
-                                  BackfillInstallDate::kValidInstallDatePref);
-    return;
-  }
-
-  JNIEnv* env = base::android::AttachCurrentThread();
-  int64_t system_install_date =
-      Java_AwMetricsServiceClient_getAppInstallTime(env);
-  if (system_install_date < 0) {
-    // Could not figure out install date from the system. Let the
-    // MetricsStateManager set this pref to its best guess for a reasonable
-    // time.
-    base::UmaHistogramEnumeration(
-        "Android.WebView.Metrics.BackfillInstallDate",
-        BackfillInstallDate::kCouldNotGetPackageManagerInstallDate);
-    return;
-  }
-
-  base::UmaHistogramEnumeration(
-      "Android.WebView.Metrics.BackfillInstallDate",
-      BackfillInstallDate::kPersistedPackageManagerInstallDate);
-  prefs->SetInt64(metrics::prefs::kInstallDate, system_install_date);
-}
-
 }  // namespace
 
 // static
@@ -126,13 +72,8 @@
   return kBetaDevCanarySampledInRatePerMille;
 }
 
-void AwMetricsServiceClient::InitInternal() {
-  PopulateSystemInstallDateIfNecessary(pref_service());
-}
-
 void AwMetricsServiceClient::OnMetricsStart() {
   AwContentsLifecycleNotifier::GetInstance().AddObserver(this);
-  SetReportingEnabledDateIfNotSet(pref_service());
 }
 
 int AwMetricsServiceClient::GetPackageNameLimitRatePerMille() {
diff --git a/android_webview/browser/metrics/aw_metrics_service_client.h b/android_webview/browser/metrics/aw_metrics_service_client.h
index fcfa36ab6..f273428 100644
--- a/android_webview/browser/metrics/aw_metrics_service_client.h
+++ b/android_webview/browser/metrics/aw_metrics_service_client.h
@@ -106,7 +106,6 @@
   void OnAppStateChanged(WebViewAppStateObserver::State state) override;
 
   // metrics::AndroidMetricsServiceClient:
-  void InitInternal() override;
   void OnMetricsStart() override;
   int GetSampleRatePerMille() override;
   int GetPackageNameLimitRatePerMille() override;
diff --git a/android_webview/browser/metrics/aw_metrics_service_client_unittest.cc b/android_webview/browser/metrics/aw_metrics_service_client_unittest.cc
deleted file mode 100644
index fcab5c4..0000000
--- a/android_webview/browser/metrics/aw_metrics_service_client_unittest.cc
+++ /dev/null
@@ -1,148 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "android_webview/browser/metrics/aw_metrics_service_client.h"
-
-#include <memory>
-
-#include "base/command_line.h"
-#include "base/macros.h"
-#include "base/memory/scoped_refptr.h"
-#include "base/run_loop.h"
-#include "base/test/metrics/histogram_tester.h"
-#include "base/test/test_simple_task_runner.h"
-#include "components/metrics/metrics_pref_names.h"
-#include "components/metrics/metrics_service.h"
-#include "components/metrics/metrics_switches.h"
-#include "components/prefs/testing_pref_service.h"
-#include "content/public/test/browser_task_environment.h"
-#include "content/public/test/test_content_client_initializer.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace android_webview {
-namespace {
-
-// For client ID format, see:
-// https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)
-const char kTestClientId[] = "01234567-89ab-40cd-80ef-0123456789ab";
-
-class TestClient : public AwMetricsServiceClient {
- public:
-  TestClient() {}
-  ~TestClient() override {}
-
-  bool IsRecordingActive() {
-    auto* service = GetMetricsService();
-    if (service)
-      return service->recording_active();
-    return false;
-  }
-
-  // Expose the super class implementation for testing.
-  using AwMetricsServiceClient::GetAppPackageNameInternal;
-
- protected:
-  int GetSampleRatePerMille() override { return 1000; }
-  int GetPackageNameLimitRatePerMille() override { return 1000; }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(TestClient);
-};
-
-std::unique_ptr<TestingPrefServiceSimple> CreateTestPrefs() {
-  auto prefs = std::make_unique<TestingPrefServiceSimple>();
-  AwMetricsServiceClient::RegisterPrefs(prefs->registry());
-  return prefs;
-}
-
-std::unique_ptr<TestClient> CreateAndInitTestClient(PrefService* prefs) {
-  auto client = std::make_unique<TestClient>();
-  client->Initialize(prefs);
-  return client;
-}
-
-}  // namespace
-
-class AwMetricsServiceClientTest : public testing::Test {
- public:
-  AwMetricsServiceClientTest() : task_runner_(new base::TestSimpleTaskRunner) {
-    // Required by MetricsService.
-    base::SetRecordActionTaskRunner(task_runner_);
-  }
-
- protected:
-  ~AwMetricsServiceClientTest() override {}
-
-  void SetUp() override {
-    test_content_client_initializer_ =
-        std::make_unique<content::TestContentClientInitializer>();
-  }
-
-  void TearDown() override {
-    base::RunLoop().RunUntilIdle();
-    test_content_client_initializer_.reset();
-  }
-
-  content::BrowserTaskEnvironment task_environment_;
-  std::unique_ptr<content::TestContentClientInitializer>
-      test_content_client_initializer_;
-
- private:
-  scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
-
-  DISALLOW_COPY_AND_ASSIGN(AwMetricsServiceClientTest);
-};
-
-// TODO(https://crbug.com/995544): remove this when the
-// kMetricsReportingEnabledTimestamp pref has been persisted for one or two
-// milestones.
-TEST_F(AwMetricsServiceClientTest, TestBackfillEnabledDateIfMissing) {
-  auto prefs = CreateTestPrefs();
-  prefs->SetString(metrics::prefs::kMetricsClientID, kTestClientId);
-  auto client = CreateAndInitTestClient(prefs.get());
-  client->SetHaveMetricsConsent(true, true);
-  EXPECT_TRUE(client->IsRecordingActive());
-  EXPECT_TRUE(prefs->HasPrefPath(metrics::prefs::kMetricsClientID));
-  EXPECT_TRUE(
-      prefs->HasPrefPath(metrics::prefs::kMetricsReportingEnabledTimestamp));
-}
-
-// TODO(https://crbug.com/1012025): remove this when the kInstallDate pref has
-// been persisted for one or two milestones.
-TEST_F(AwMetricsServiceClientTest, TestPreferPersistedInstallDate) {
-  base::HistogramTester histogram_tester;
-  auto prefs = CreateTestPrefs();
-  int64_t install_date = 12345;
-  prefs->SetInt64(metrics::prefs::kInstallDate, install_date);
-  auto client = CreateAndInitTestClient(prefs.get());
-  EXPECT_EQ(install_date, prefs->GetInt64(metrics::prefs::kInstallDate));
-
-  // Verify the histogram.
-  histogram_tester.ExpectBucketCount(
-      "Android.WebView.Metrics.BackfillInstallDate",
-      BackfillInstallDate::kValidInstallDatePref, 1);
-  histogram_tester.ExpectTotalCount(
-      "Android.WebView.Metrics.BackfillInstallDate", 1);
-}
-
-// TODO(https://crbug.com/1012025): remove this when the kInstallDate pref has
-// been persisted for one or two milestones.
-TEST_F(AwMetricsServiceClientTest, TestGetInstallDateFromJavaIfMissing) {
-  base::HistogramTester histogram_tester;
-  auto prefs = CreateTestPrefs();
-  auto client = CreateAndInitTestClient(prefs.get());
-  // All we can safely assert is the install time is set, since checking the
-  // actual time is racy (ex. in the unlikely scenario if this test executes in
-  // the same millisecond as when the package was installed).
-  EXPECT_TRUE(prefs->HasPrefPath(metrics::prefs::kInstallDate));
-
-  // Verify the histogram.
-  histogram_tester.ExpectBucketCount(
-      "Android.WebView.Metrics.BackfillInstallDate",
-      BackfillInstallDate::kPersistedPackageManagerInstallDate, 1);
-  histogram_tester.ExpectTotalCount(
-      "Android.WebView.Metrics.BackfillInstallDate", 1);
-}
-
-}  // namespace android_webview
diff --git a/android_webview/docs/developer-ui.md b/android_webview/docs/developer-ui.md
new file mode 100644
index 0000000..434c9f8
--- /dev/null
+++ b/android_webview/docs/developer-ui.md
@@ -0,0 +1,120 @@
+# WebView DevTools user guide
+
+[TOC]
+
+## Launching WebView DevTools
+
+WebView DevTools is an on-device suite of tools that ships with WebView itself.
+You can launch WebView DevTools by any of the following:
+
+### Launcher icon on pre-stable channels (preferred)
+
+The best way to launch WebView DevTools is to [download WebView Beta, Dev, or
+Canary](prerelease.md). These channels will have a launcher icon which will
+launch WebView DevTools.
+
+*** note
+**Note:** the WebView DevTools icon does not appear by default on Android 7
+through 9 (Nougat/Oreo/Pie). To enable the launcher icon, first [change your
+WebView provider](prerelease.md#Android-7-through-9-Nougat_Oreo_Pie) and then
+launch the same Chrome channel or any WebView app (ex. [WebView shell
+browser](webview-shell.md), or open an email in Gmail).
+***
+
+### Launch via adb
+
+If you have adb installed, you can connect your Android device to launch
+DevTools:
+
+```sh
+adb shell am start -a "com.android.webview.SHOW_DEV_UI"
+```
+
+### Launch via WebView Shell
+
+Newer versions of [WebView shell](webview-shell.md) have a menu option to launch
+WebView DevTools. If your copy of WebView shell doesn't have this option, you
+may need to rebuild it yourself.
+
+## Crash UI
+
+TODO(http://crbug.com/1058571): document this.
+
+## Flag UI
+
+While WebView supports [toggling arbitrary flags](commandline-flags.md) on
+debuggable devices, we also support toggling a curated set of experimental
+flags/features on production Android devices. We expose these features as part
+of WebView's on-device DevTools. This is similar to Chrome's `chrome://flags`
+tool.
+
+![WebView flag UI](images/webview_flag_ui.png)
+
+Tap the "Flags" option in the bottom navgation bar. You can scroll through the
+list to find your desired feature/flag (ex. "highlight-all-webviews"), tap the
+dropdown (look for "Default"), and tap "Enabled" in the dialog popup. You can
+enable (or disable) as many flags as you need.
+
+*** promo
+**Tip:** enabling "highlight-all-webviews" (which tints all WebView objects
+yellow) in addition to your desired flag is a great way to verify apps have
+picked up WebView flags.
+***
+
+Kill and restart WebView apps so they pick up the new flags.
+
+When you're done, open the notification tray and tap the WebView DevTools
+notification to go back to the flag UI. Tap "Reset all to default" and kill and
+restart WebView apps to go back to the default behavior.
+
+### Overriding variations/Field Trials
+
+Like Chrome, WebView supports A/B experiments and feature rollouts through
+variations (AKA "field trials" or "Finch"). The flag UI can override the field
+trial config, either to **enable** an experimental feature to ensure your app
+works correctly, or to **disable** an experiment to determine if this is the
+root cause for a WebView behavior change breaking your app. Simply tap "Enabled"
+or "Disabled" in the UI; "Default" means WebView will pick up the random field
+trial experiment.
+
+If you find an experiment is the root cause for app breakage, please [file a
+bug](https://bugs.chromium.org/p/chromium/issues/entry?template=Webview+Bugs),
+mention which experiment, and link to your app's Play Store page for our team to
+investigate.
+
+### Accelerating field trial config download
+
+You can also use the flag UI to download new field trial configs ("seeds") more
+quickly, to verify the next seed will fix app breakage. Enable all of the
+following:
+
+* `finch-seed-expiration-age=0`
+* `finch-seed-min-update-period=0`
+* `finch-seed-min-download-period=0`
+* `finch-seed-ignore-pending-download`
+
+Restart your app, kill it, and restart it a second time. Your app should be
+running with the latest WebView variations seed.
+
+### Adding your flags and features to the UI
+
+If you're intending to launch a feature in WebView or start a field trial (AKA
+Finch experiment), we **highly encourage** you to [add to the
+list](/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java)
+(ex. [CL](https://crrev.com/c/2008007), [CL](https://crrev.com/c/2066144)).
+
+Exposing your feature this way has several benefits:
+
+- This improves the manual test process. Testers can enable your feature with a
+  button click instead of an adb command.
+- Typo-free: someone could mistype a flag or feature name in the commandline,
+  but this UI ensures flag names are always spelled correctly.
+- Because this works on production Android devices, test team can validate your
+  feature on devices from other OEMs.
+- You (and teammates) can dogfood your feature.
+- If users or third-party app developers report bugs, this UI is the only way
+  they can toggle your feature to help root-cause the regression.
+
+### See also
+
+- [Design doc](http://go/webview-dev-ui-flags-design) (Google-only)
diff --git a/android_webview/docs/flag-ui.md b/android_webview/docs/flag-ui.md
index ea31cd4..0dae7bde 100644
--- a/android_webview/docs/flag-ui.md
+++ b/android_webview/docs/flag-ui.md
@@ -1,118 +1 @@
-# Flag UI
-
-[TOC]
-
-While WebView supports [toggling arbitrary flags](commandline-flags.md) on
-debuggable devices, we also support toggling a curated set of experimental
-flags/features on production Android devices. We expose these features as part
-of WebView's on-device DevTools. This is similar to Chrome's `chrome://flags`
-tool.
-
-![WebView flag UI](images/webview_flag_ui.png)
-
-## Launching WebView DevTools
-
-The flag UI is part of "WebView DevTools," an on-device tool that ships with
-device's WebView implementation. You can launch WebView DevTools by any of the
-following:
-
-### Launcher icon on pre-stable channels (preferred)
-
-The best way to launch WebView DevTools is to [download WebView Dev or WebView
-Canary](prerelease.md). These channels will have a launcher icon which will
-launch WebView DevTools.
-
-*** note
-**Note:** the WebView DevTools icon does not appear by default on Android 7
-through 9 (Nougat/Oreo/Pie). To enable the launcher icon, first [change your
-WebView provider](prerelease.md#Android-7-through-9-Nougat_Oreo_Pie) and then
-launch the same Chrome channel or any WebView app (ex. [WebView shell
-browser](webview-shell.md), or open an email in Gmail).
-***
-
-### Launch via adb
-
-If you have adb installed, you can connect your Android device to launch
-DevTools:
-
-```sh
-adb shell am start -a "com.android.webview.SHOW_DEV_UI"
-```
-
-### Launch via WebView Shell
-
-Newer versions of [WebView shell](webview-shell.md) have a menu option to launch
-WebView DevTools. If your copy of WebView shell doesn't have this option, you
-may need to rebuild it yourself.
-
-## Using the flag UI
-
-Once you've launched WebView DevTools, tap the "Flags" option in the bottom
-navgation bar. You can scroll through the list to find your desired feature/flag
-(ex. "highlight-all-webviews"), tap the dropdown (look for "Default"), and tap
-"Enabled" in the dialog popup. You can enable (or disable) as many flags as you
-need.
-
-*** promo
-**Tip:** enabling "highlight-all-webviews" (which tints all WebView objects
-yellow) in addition to your desired flag is a great way to verify apps have
-picked up WebView flags.
-***
-
-Kill and restart WebView apps so they pick up the new flags.
-
-When you're done, open the notification tray and tap the WebView DevTools
-notification to go back to the flag UI. Tap "Reset all to default" and kill and
-restart WebView apps to go back to the default behavior.
-
-### Overriding variations/Field Trials
-
-Like Chrome, WebView supports A/B experiments and feature rollouts through
-variations (AKA "field trials" or "Finch"). The flag UI can override the field
-trial config, either to **enable** an experimental feature to ensure your app
-works correctly, or to **disable** an experiment to determine if this is the
-root cause for a WebView behavior change breaking your app. Simply tap "Enabled"
-or "Disabled" in the UI; "Default" means WebView will pick up the random field
-trial experiment.
-
-If you find an experiment is the root cause for app breakage, please [file a
-bug](https://bugs.chromium.org/p/chromium/issues/entry?template=Webview+Bugs),
-mention which experiment, and link to your app's Play Store page for our team to
-investigate.
-
-### Accelerating field trial config download
-
-You can also use the flag UI to download new field trial configs ("seeds") more
-quickly, to verify the next seed will fix app breakage. Enable all of the
-following:
-
-* `finch-seed-expiration-age=0`
-* `finch-seed-min-update-period=0`
-* `finch-seed-min-download-period=0`
-* `finch-seed-ignore-pending-download`
-
-Restart your app, kill it, and restart it a second time. Your app should be
-running with the latest WebView variations seed.
-
-## Adding your flags and features to the UI
-
-If you're intending to launch a feature in WebView or start a field trial (AKA
-Finch experiment), we **highly encourage** you to [add to the
-list](/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java)
-(ex. [CL](https://crrev.com/c/2008007), [CL](https://crrev.com/c/2066144)).
-
-Exposing your feature this way has several benefits:
-
-- This improves the manual test process. Testers can enable your feature with a
-  button click instead of an adb command.
-- Typo-free: someone could mistype a flag or feature name in the commandline,
-  but this UI ensures flag names are always spelled correctly.
-- Because this works on production Android devices, test team can validate your
-  feature on devices from other OEMs.
-- You (and teammates) can dogfood your feature.
-- If users or third-party app developers report bugs, this UI is the only way
-  they can toggle your feature to help root-cause the regression.
-
-## See also
-
-- [Design doc](http://go/webview-dev-ui-flags-design) (Google-only)
+This content has moved to [developer-ui.md](developer-ui.md).
diff --git a/android_webview/docs/navbar.md b/android_webview/docs/navbar.md
index 3ce9f7e..05f53a9 100644
--- a/android_webview/docs/navbar.md
+++ b/android_webview/docs/navbar.md
@@ -9,6 +9,7 @@
 * [WebView Shell](/android_webview/docs/webview-shell.md)
 * [Commandline flags](/android_webview/docs/commandline-flags.md)
 * [Net debugging](/android_webview/docs/net-debugging.md)
+* [WebView DevTools](/android_webview/docs/developer-ui.md)
 * [FAQ (for users)](/android_webview/docs/faq.md)
 * [AOSP system integration](/android_webview/docs/aosp-system-integration.md)
 * [Threading](/android_webview/docs/threading.md)
diff --git a/android_webview/java/src/org/chromium/android_webview/metrics/AwMetricsServiceClient.java b/android_webview/java/src/org/chromium/android_webview/metrics/AwMetricsServiceClient.java
index 84f118a0..8b1f7df 100644
--- a/android_webview/java/src/org/chromium/android_webview/metrics/AwMetricsServiceClient.java
+++ b/android_webview/java/src/org/chromium/android_webview/metrics/AwMetricsServiceClient.java
@@ -10,10 +10,8 @@
 
 import androidx.annotation.VisibleForTesting;
 
-import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
 import org.chromium.base.ThreadUtils;
-import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.base.annotations.NativeMethods;
 
@@ -62,28 +60,6 @@
         AwMetricsServiceClientJni.get().setUploadIntervalForTesting(uploadIntervalMs);
     }
 
-    /**
-     * Gets a long representing the install time of the embedder application. Units are in seconds,
-     * as this is the resolution used by the metrics service. Returns {@code -1} upon failure.
-     */
-    // TODO(https://crbug.com/1012025): remove this when the kInstallDate pref has been persisted
-    // for one or two milestones.
-    @CalledByNative
-    private static long getAppInstallTime() {
-        try {
-            Context ctx = ContextUtils.getApplicationContext();
-            long installTimeMs = ctx.getPackageManager()
-                                         .getPackageInfo(ctx.getPackageName(), 0 /* flags */)
-                                         .firstInstallTime;
-            long installTimeSec = installTimeMs / 1000;
-            return installTimeSec;
-        } catch (PackageManager.NameNotFoundException e) {
-            // This should never happen.
-            Log.e(TAG, "App could not find itself by package name!");
-            return -1;
-        }
-    }
-
     @NativeMethods
     interface Natives {
         void setHaveMetricsConsent(boolean userConsent, boolean appConsent);
diff --git a/android_webview/test/BUILD.gn b/android_webview/test/BUILD.gn
index 4fcbc18..0c8646f 100644
--- a/android_webview/test/BUILD.gn
+++ b/android_webview/test/BUILD.gn
@@ -400,7 +400,6 @@
     "../browser/gfx/test/rendering_test.h",
     "../browser/input_stream_unittest.cc",
     "../browser/lifecycle/aw_contents_lifecycle_notifier_unittest.cc",
-    "../browser/metrics/aw_metrics_service_client_unittest.cc",
     "../browser/metrics/aw_stability_metrics_provider_unittest.cc",
     "../browser/network_service/android_stream_reader_url_loader_unittest.cc",
     "../browser/network_service/input_stream_reader_unittest.cc",
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index ce7acd9..53603a6 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -1366,8 +1366,8 @@
     "wm/tablet_mode/scoped_skip_user_session_blocked_check.h",
     "wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc",
     "wm/tablet_mode/tablet_mode_controller.cc",
-    "wm/tablet_mode/tablet_mode_event_handler.cc",
-    "wm/tablet_mode/tablet_mode_event_handler.h",
+    "wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler.cc",
+    "wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler.h",
     "wm/tablet_mode/tablet_mode_window_drag_delegate.cc",
     "wm/tablet_mode/tablet_mode_window_drag_metrics.cc",
     "wm/tablet_mode/tablet_mode_window_drag_metrics.h",
@@ -2094,6 +2094,7 @@
     "wm/system_modal_container_layout_manager_unittest.cc",
     "wm/tablet_mode/accelerometer_test_data_literals.cc",
     "wm/tablet_mode/tablet_mode_controller_unittest.cc",
+    "wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler_unittest.cc",
     "wm/tablet_mode/tablet_mode_window_manager_unittest.cc",
     "wm/toplevel_window_event_handler_unittest.cc",
     "wm/video_detector_unittest.cc",
diff --git a/ash/login/ui/login_auth_user_view.cc b/ash/login/ui/login_auth_user_view.cc
index 77f36a9..34a86a04 100644
--- a/ash/login/ui/login_auth_user_view.cc
+++ b/ash/login/ui/login_auth_user_view.cc
@@ -119,6 +119,19 @@
 
 constexpr int kNonEmptyWidthDp = 1;
 
+// TODO(tellier): This should be removed in M84. See crbug.com/1062524
+const char kGmailDomain[] = "gmail.com";
+const char kGooglemailDomain[] = "googlemail.com";
+
+bool IsNotEnterpriseManagedEmail(const std::string& email) {
+  size_t separator_pos = email.find('@');
+  if (separator_pos != email.npos && separator_pos < email.length() - 1) {
+    std::string domain = base::ToLowerASCII(email.substr(separator_pos + 1));
+    return domain == kGmailDomain || domain == kGooglemailDomain;
+  }
+  return false;
+}
+
 // Returns an observer that will hide |view| when it fires. The observer will
 // delete itself after firing (by returning true). Make sure to call
 // |observer->SetActive()| after attaching it.
@@ -181,7 +194,7 @@
 
   // ui::ImplicitAnimationObserver:
   void OnImplicitAnimationsCompleted() override {
-    password_view_->Clear();
+    password_view_->Reset();
     password_view_->SetVisible(false);
     delete this;
   }
@@ -799,6 +812,8 @@
   password_view_ = password_view.get();
   password_view->SetPaintToLayer();  // Needed for opacity animation.
   password_view->layer()->SetFillsBoundsOpaquely(false);
+  password_view_->SetDisplayPasswordButtonVisible(
+      IsNotEnterpriseManagedEmail(user.basic_user_info.display_email));
 
   auto pin_view = std::make_unique<LoginPinView>(
       LoginPinView::Style::kAlphanumeric,
@@ -1206,8 +1221,11 @@
   const bool user_changed = current_user().basic_user_info.account_id !=
                             user.basic_user_info.account_id;
   user_view_->UpdateForUser(user, true /*animate*/);
-  if (user_changed)
-    password_view_->Clear();
+  if (user_changed) {
+    password_view_->Reset();
+    password_view_->SetDisplayPasswordButtonVisible(
+        IsNotEnterpriseManagedEmail(user.basic_user_info.display_email));
+  }
   online_sign_in_message_->SetText(
       l10n_util::GetStringUTF16(IDS_ASH_LOGIN_SIGN_IN_REQUIRED_MESSAGE));
 }
@@ -1291,7 +1309,7 @@
   // animating the next lock screen will not work as expected. See
   // https://crbug.com/808486.
   if (!auth_success.has_value() || !auth_success.value()) {
-    password_view_->Clear();
+    password_view_->Reset();
     password_view_->SetReadOnly(false);
     external_binary_auth_button_->SetEnabled(true);
     external_binary_enrollment_button_->SetEnabled(true);
@@ -1303,7 +1321,7 @@
 void LoginAuthUserView::OnChallengeResponseAuthComplete(
     base::Optional<bool> auth_success) {
   if (!auth_success.has_value() || !auth_success.value()) {
-    password_view_->Clear();
+    password_view_->Reset();
     password_view_->SetReadOnly(false);
     // If the user canceled the PIN request during ChallengeResponse,
     // ChallengeResponse will fail with an unknown error. Since this is
diff --git a/ash/login/ui/login_auth_user_view_unittest.cc b/ash/login/ui/login_auth_user_view_unittest.cc
index b88500c5..f7f47d0 100644
--- a/ash/login/ui/login_auth_user_view_unittest.cc
+++ b/ash/login/ui/login_auth_user_view_unittest.cc
@@ -228,6 +228,14 @@
   auto another_user = CreateUser("user2@domain.com");
   view_->UpdateForUser(another_user);
   EXPECT_TRUE(password_test.textfield()->GetText().empty());
+  password_test.textfield()->SetTextInputType(ui::TEXT_INPUT_TYPE_TEXT);
+  EXPECT_EQ(password_test.textfield()->GetTextInputType(),
+            ui::TEXT_INPUT_TYPE_TEXT);
+
+  // Updating user should make the textfield as a password again.
+  view_->UpdateForUser(user_);
+  EXPECT_EQ(password_test.textfield()->GetTextInputType(),
+            ui::TEXT_INPUT_TYPE_PASSWORD);
 }
 
 }  // namespace ash
diff --git a/ash/login/ui/login_password_view.cc b/ash/login/ui/login_password_view.cc
index 7da0b25..ffff2960 100644
--- a/ash/login/ui/login_password_view.cc
+++ b/ash/login/ui/login_password_view.cc
@@ -4,6 +4,7 @@
 
 #include "ash/login/ui/login_password_view.h"
 
+#include "ash/accessibility/accessibility_controller_impl.h"
 #include "ash/login/ui/horizontal_image_sequence_animation_decoder.h"
 #include "ash/login/ui/hover_notifier.h"
 #include "ash/login/ui/lock_screen.h"
@@ -79,6 +80,15 @@
 // Non-empty height, useful for debugging/visualization.
 constexpr const int kNonEmptyHeight = 1;
 
+// Clears the password after some time if no action has been done and the
+// display password feature is enabled, for security reasons.
+constexpr base::TimeDelta kClearPasswordAfterDelay =
+    base::TimeDelta::FromSeconds(30);
+
+// Hides the password after a short delay for security reasons.
+constexpr base::TimeDelta kHidePasswordAfterDelay =
+    base::TimeDelta::FromSeconds(3);
+
 constexpr const char kLoginPasswordViewName[] = "LoginPasswordView";
 
 class NonAccessibleSeparator : public views::Separator {
@@ -201,6 +211,12 @@
       SetTextInputType(ui::TEXT_INPUT_TYPE_TEXT);
   }
 
+  // This is useful when the display password button is not shown. In such a
+  // case, the login text field needs to define its size.
+  gfx::Size CalculatePreferredSize() const override {
+    return gfx::Size(kPasswordTotalWidthDp, kDisplayPasswordButtonSizeDp);
+  }
+
  private:
   // Closures that will be called when the element receives and loses focus.
   base::RepeatingClosure on_focus_closure_;
@@ -412,7 +428,18 @@
   view_->easy_unlock_icon_->set_immediately_hover_for_test();
 }
 
-LoginPasswordView::LoginPasswordView() {
+void LoginPasswordView::TestApi::SetTimers(
+    std::unique_ptr<base::RetainingOneShotTimer> clear_timer,
+    std::unique_ptr<base::RetainingOneShotTimer> hide_timer) {
+  view_->clear_password_timer_ = std::move(clear_timer);
+  view_->hide_password_timer_ = std::move(hide_timer);
+  // Starts the clearing timer.
+  view_->SetDisplayPasswordButtonVisible(true);
+}
+
+LoginPasswordView::LoginPasswordView()
+    : clear_password_timer_(std::make_unique<base::RetainingOneShotTimer>()),
+      hide_password_timer_(std::make_unique<base::RetainingOneShotTimer>()) {
   Shell::Get()->ime_controller()->AddObserver(this);
 
   auto* root_layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
@@ -527,8 +554,28 @@
   textfield_->SetFocusBehavior(behavior);
 }
 
+void LoginPasswordView::SetDisplayPasswordButtonVisible(bool visible) {
+  display_password_button_->SetVisible(visible);
+  // Only start the timer if the display password feature is enabled.
+  if (visible) {
+    clear_password_timer_->Start(
+        FROM_HERE, kClearPasswordAfterDelay,
+        base::BindRepeating(&LoginPasswordView::Clear, base::Unretained(this)));
+  }
+}
+
+void LoginPasswordView::Reset() {
+  Clear();
+  // A user could hit the display button, then quickly switch account and
+  // type; we want the password to be hidden in such a case.
+  HidePassword(false /*chromevox_exception*/);
+}
+
 void LoginPasswordView::Clear() {
   textfield_->SetText(base::string16());
+  // For security reasons, we also want to clear the edit history if the Clear
+  // function is invoked by the clear password timer.
+  textfield_->ClearEditHistory();
   // |ContentsChanged| won't be called by |Textfield| if the text is changed
   // by |Textfield::SetText()|.
   ContentsChanged(textfield_, textfield_->GetText());
@@ -585,17 +632,38 @@
   return false;
 }
 
+void LoginPasswordView::InvertPasswordDisplayingState() {
+  display_password_button_->InvertToggled();
+  textfield_->InvertTextInputType();
+  hide_password_timer_->Start(
+      FROM_HERE, kHidePasswordAfterDelay,
+      base::BindRepeating(&LoginPasswordView::HidePassword,
+                          base::Unretained(this),
+                          true /*chromevox_exception*/));
+}
+
 void LoginPasswordView::ButtonPressed(views::Button* sender,
                                       const ui::Event& event) {
   DCHECK_EQ(sender, display_password_button_);
-  display_password_button_->InvertToggled();
-  textfield_->InvertTextInputType();
+  InvertPasswordDisplayingState();
+}
+
+void LoginPasswordView::HidePassword(bool chromevox_exception) {
+  if (chromevox_exception &&
+      Shell::Get()->accessibility_controller()->spoken_feedback_enabled()) {
+    return;
+  }
+  if (textfield_->GetTextInputType() == ui::TEXT_INPUT_TYPE_TEXT)
+    InvertPasswordDisplayingState();
 }
 
 void LoginPasswordView::ContentsChanged(views::Textfield* sender,
                                         const base::string16& new_contents) {
   DCHECK_EQ(sender, textfield_);
   on_password_text_changed_.Run(new_contents.empty() /*is_empty*/);
+  // Only reset the timer if the display password feature is enabled.
+  if (display_password_button_->GetVisible())
+    clear_password_timer_->Reset();
 }
 
 // Implements swapping active user with arrow keys
diff --git a/ash/login/ui/login_password_view.h b/ash/login/ui/login_password_view.h
index 1dd4c61..67db07c 100644
--- a/ash/login/ui/login_password_view.h
+++ b/ash/login/ui/login_password_view.h
@@ -59,6 +59,9 @@
     views::ToggleImageButton* display_password_button() const;
     views::View* easy_unlock_icon() const;
     void set_immediately_hover_easy_unlock_icon();
+    // Sets the timers that are used to clear and hide the password.
+    void SetTimers(std::unique_ptr<base::RetainingOneShotTimer> clear_timer,
+                   std::unique_ptr<base::RetainingOneShotTimer> hide_timer);
 
    private:
     LoginPasswordView* view_;
@@ -95,6 +98,12 @@
   // Enable or disable focus on the password field.
   void SetFocusEnabledOnTextfield(bool enable);
 
+  // Sets whether the display password button is visible.
+  void SetDisplayPasswordButtonVisible(bool visible);
+
+  // Clear the text and put the password into hide mode.
+  void Reset();
+
   // Clear all currently entered text.
   void Clear();
 
@@ -118,12 +127,19 @@
   void RequestFocus() override;
   bool OnKeyPressed(const ui::KeyEvent& event) override;
 
+  // Invert the textfield type and toggle the display password button.
+  void InvertPasswordDisplayingState();
+
   // views::ButtonListener:
   // Handles click on the display password button. Therefore, it inverts the
   // display password button icon's (show/hide) and shows/hides the content of
   // the password field.
   void ButtonPressed(views::Button* sender, const ui::Event& event) override;
 
+  // Hides the password. When |chromevox_exception| is true, the password is not
+  // hidden if ChromeVox is enabled.
+  void HidePassword(bool chromevox_exception);
+
   // views::TextfieldController:
   void ContentsChanged(views::Textfield* sender,
                        const base::string16& new_contents) override;
@@ -157,6 +173,15 @@
   // Is the password field enabled when there is no text?
   bool enabled_on_empty_password_ = false;
 
+  // Clears the password field after a time without action if the display
+  // password feature is enabled.
+  std::unique_ptr<base::RetainingOneShotTimer> clear_password_timer_;
+
+  // Hides the password after a short delay if the password is shown, except if
+  // ChromeVox is enabled (otherwise, the user would not have time to navigate
+  // through the password and make the characters read out loud one by one).
+  std::unique_ptr<base::RetainingOneShotTimer> hide_password_timer_;
+
   views::View* password_row_ = nullptr;
 
   LoginTextfield* textfield_ = nullptr;
diff --git a/ash/login/ui/login_password_view_test.cc b/ash/login/ui/login_password_view_test.cc
index 1180ed2..6d79d82 100644
--- a/ash/login/ui/login_password_view_test.cc
+++ b/ash/login/ui/login_password_view_test.cc
@@ -9,6 +9,7 @@
 #include "ash/shell.h"
 #include "base/bind.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/timer/mock_timer.h"
 #include "ui/base/ime/text_input_type.h"
 #include "ui/events/test/event_generator.h"
 #include "ui/views/controls/button/image_button.h"
@@ -184,4 +185,61 @@
   EXPECT_FALSE(easy_unlock_icon_tapped_called_);
 }
 
+// Checks that the user can't hit Ctrl+Z to revert the password when it has been
+// cleared.
+TEST_F(LoginPasswordViewTest, CtrlZDisabled) {
+  LoginPasswordView::TestApi test_api(view_);
+  ui::test::EventGenerator* generator = GetEventGenerator();
+
+  generator->PressKey(ui::KeyboardCode::VKEY_A, ui::EF_NONE);
+  EXPECT_FALSE(is_password_field_empty_);
+  view_->Clear();
+  EXPECT_TRUE(is_password_field_empty_);
+  generator->PressKey(ui::KeyboardCode::VKEY_Z, ui::EF_CONTROL_DOWN);
+  EXPECT_TRUE(is_password_field_empty_);
+}
+
+// Verifies that the password textfield  clear after a delay when the display
+// password button is shown.
+TEST_F(LoginPasswordViewTest, PasswordAutoClearsAndHides) {
+  LoginPasswordView::TestApi test_api(view_);
+  ui::test::EventGenerator* generator = GetEventGenerator();
+
+  // Install mock timers into the password view.
+  auto clear_timer0 = std::make_unique<base::MockRetainingOneShotTimer>();
+  auto hide_timer0 = std::make_unique<base::MockRetainingOneShotTimer>();
+  base::MockRetainingOneShotTimer* clear_timer = clear_timer0.get();
+  base::MockRetainingOneShotTimer* hide_timer = hide_timer0.get();
+  test_api.SetTimers(std::move(clear_timer0), std::move(hide_timer0));
+
+  // Verify clearing timer works.
+  generator->PressKey(ui::KeyboardCode::VKEY_A, ui::EF_NONE);
+  EXPECT_FALSE(is_password_field_empty_);
+
+  clear_timer->Fire();
+  EXPECT_TRUE(is_password_field_empty_);
+
+  // Check a second time.
+  generator->PressKey(ui::KeyboardCode::VKEY_A, ui::EF_NONE);
+  EXPECT_FALSE(is_password_field_empty_);
+  clear_timer->Fire();
+  EXPECT_TRUE(is_password_field_empty_);
+
+  // Verify hiding timer works; set the password visible first then fire the
+  // hiding timer and check it is hidden.
+  EXPECT_EQ(test_api.textfield()->GetTextInputType(),
+            ui::TEXT_INPUT_TYPE_PASSWORD);
+  generator->MoveMouseTo(
+      test_api.display_password_button()->GetBoundsInScreen().CenterPoint());
+  generator->ClickLeftButton();
+  EXPECT_EQ(test_api.textfield()->GetTextInputType(), ui::TEXT_INPUT_TYPE_TEXT);
+  hide_timer->Fire();
+  EXPECT_EQ(test_api.textfield()->GetTextInputType(),
+            ui::TEXT_INPUT_TYPE_PASSWORD);
+  // Hide an empty password already hidden and make sure a second fire works.
+  hide_timer->Fire();
+  EXPECT_EQ(test_api.textfield()->GetTextInputType(),
+            ui::TEXT_INPUT_TYPE_PASSWORD);
+}
+
 }  // namespace ash
diff --git a/ash/login/ui/login_test_base.cc b/ash/login/ui/login_test_base.cc
index bb51811..106f6c6 100644
--- a/ash/login/ui/login_test_base.cc
+++ b/ash/login/ui/login_test_base.cc
@@ -103,8 +103,10 @@
 
 void LoginTestBase::AddUsers(size_t num_users) {
   for (size_t i = 0; i < num_users; i++) {
+    // TODO(tellier): Use gmail.com instead of domain.com temporarily  so the
+    // display password button can be accessible. See crbug.com/1062524
     std::string email =
-        base::StrCat({"user", std::to_string(users_.size()), "@domain.com"});
+        base::StrCat({"user", std::to_string(users_.size()), "@gmail.com"});
     users_.push_back(CreateUser(email));
   }
 
diff --git a/ash/public/cpp/shelf_config.h b/ash/public/cpp/shelf_config.h
index 111e186..c5e9f07 100644
--- a/ash/public/cpp/shelf_config.h
+++ b/ash/public/cpp/shelf_config.h
@@ -116,6 +116,10 @@
   // Returns whether we are within an app.
   bool is_in_app() const;
 
+  // The threshold relative to the size of the shelf that is used to determine
+  // if the shelf visibility should change during a drag.
+  float drag_hide_ratio_threshold() const;
+
   int app_icon_group_margin() const { return app_icon_group_margin_; }
   SkColor shelf_control_permanent_highlight_background() const {
     return shelf_control_permanent_highlight_background_;
diff --git a/ash/shelf/shelf_config.cc b/ash/shelf/shelf_config.cc
index 2ff3680..a9e14c0 100644
--- a/ash/shelf/shelf_config.cc
+++ b/ash/shelf/shelf_config.cc
@@ -36,7 +36,11 @@
 
 // When any edge of the primary display is less than or equal to this threshold,
 // dense shelf will be active.
-const int kDenseShelfScreenSizeThreshold = 600;
+constexpr int kDenseShelfScreenSizeThreshold = 600;
+
+// Drags on the shelf that are greater than this number times the shelf size
+// will trigger shelf visibility changes.
+constexpr float kDragHideRatioThreshold = 0.4f;
 
 // Records the histogram value tracking the reason shelf control buttons are
 // shown in tablet mode.
@@ -305,6 +309,10 @@
          (!is_app_list_visible_ || is_virtual_keyboard_shown_);
 }
 
+float ShelfConfig::drag_hide_ratio_threshold() const {
+  return kDragHideRatioThreshold;
+}
+
 void ShelfConfig::UpdateConfig(bool app_list_visible) {
   const gfx::Rect screen_size =
       display::Screen::GetScreen()->GetPrimaryDisplay().bounds();
diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc
index b3a1ff9d..ea4db25 100644
--- a/ash/shelf/shelf_layout_manager.cc
+++ b/ash/shelf/shelf_layout_manager.cc
@@ -2508,13 +2508,13 @@
     // The visibility of the shelf changes only if the shelf was dragged X%
     // along the correct axis. If the shelf was already visible, then the
     // direction of the drag does not matter.
-    const float kDragHideThreshold = 0.4f;
     const gfx::Rect bounds = GetIdealBounds();
     const float drag_ratio =
         fabs(drag_amount_) /
         (shelf_->IsHorizontalAlignment() ? bounds.height() : bounds.width());
 
-    return IsSwipingCorrectDirection() && drag_ratio > kDragHideThreshold;
+    return IsSwipingCorrectDirection() &&
+           drag_ratio > ShelfConfig::Get()->drag_hide_ratio_threshold();
   }
 
   if (event_in_screen.type() == ui::ET_SCROLL_FLING_START)
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb
index 41c721c..5e4c917 100644
--- a/ash/strings/ash_strings_af.xtb
+++ b/ash/strings/ash_strings_af.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Klik vir meer opsies</translation>
 <translation id="1570871743947603115">Wissel Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Kry toegang tot al jou aktiwiteit in hierdie sessie</translation>
-<translation id="1608626060424371292">Verwyder hierdie gebruiker</translation>
+<translation id="1632985212731562677">Skakelaartoegang kan in Instellings &gt; Toeganklikheid gedeaktiveer word.</translation>
 <translation id="1654477262762802994">Begin 'n stemnavraag</translation>
 <translation id="1658406695958299976">Jammer, jou wagwoord kon steeds nie geverifieer word nie. Let wel: as jy jou wagwoord onlangs verander het, sal jou nuwe wagwoord toegepas word sodra jy afmeld. Gebruik die ou wagwoord hier.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> oor</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Die toesteladministrateur kan dalk jou blaai-aktiwiteit monitor.</translation>
 <translation id="3181441307743005334">Dit kan 'n rukkie neem om te herbegin</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Gekoppel aan 'n toestel}other{Gekoppel aan # toestelle}}</translation>
+<translation id="3203405173652969239">Skakelaartoegang is geaktiveer</translation>
 <translation id="3207953481422525583">Gebruikerinstellings</translation>
 <translation id="3217205077783620295">Volume is aan. Wissel om oudio te demp.</translation>
 <translation id="3226991577105957773">+nog <ph name="COUNT" /></translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> oor totdat battery vol gelaai is.</translation>
 <translation id="9215934040295798075">Stel muurpapier</translation>
 <translation id="921989828232331238">Jou ouer het jou toestel vir die dag gesluit</translation>
+<translation id="9220525904950070496">Verwyder rekening</translation>
 <translation id="923686485342484400">Druk Ctrl Shift Q twee keer om af te meld.</translation>
 <translation id="938963181863597773">Wat is op my kalender?</translation>
 <translation id="945522503751344254">Stuur terugvoer</translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb
index 9964cc23..00e731166 100644
--- a/ash/strings/ash_strings_am.xtb
+++ b/ash/strings/ash_strings_am.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">ለተጨማሪ አማራጮች ጠቅ ያድርጉ</translation>
 <translation id="1570871743947603115">ብሉቱዝን አብራ ወይም አጥፋ። <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">በዚህ ክፍለ-ጊዜ ውስጥ ያለው ሁሉንም እንቅስቃሴዎን ይድረሱ</translation>
-<translation id="1608626060424371292">ይህን ተጠቃሚ አስወግድ</translation>
+<translation id="1632985212731562677">የመዳረሻ መቀየሪያ በቅንብሮች &gt; ተደራሽነት ውስጥ ሊሰናከል ይችላል።</translation>
 <translation id="1654477262762802994">የድምጽ መጠይቅ ይጀምሩ</translation>
 <translation id="1658406695958299976">ይቅርታ፣ የይለፍ ቃልዎ አሁንም ሊረጋገጥ አልቻለም። ማሳሰቢያ፦ የይለፍ ቃልዎን በቅርብ ጊዜ ቀይረው ከሆነ አዲስ የይለፍ ቃልዎ የሚተገበረው ሲወጡ ነው፣ እባክዎ የድሮውን ይለፍ ቃል እዚህ ይጠቀሙ።</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> ቀርቷል</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">የመሣሪያው አስተዳዳሪ የአሰሳ እንቅስቃሴዎን ሊከታተል ይችላል።</translation>
 <translation id="3181441307743005334">ዳግም ማስነሳት ትንሽ ጊዜ ሊወስድ ይችላል</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{ከአንድ መሣሪያ ጋር ተገናኝቷል}one{ከ# መሣሪያዎች ጋር ተገናኝቷል}other{ከ# መሣሪያዎች ጋር ተገናኝቷል}}</translation>
+<translation id="3203405173652969239">የመዳረሻ መቀየሪያ ነቅቷል</translation>
 <translation id="3207953481422525583">የተጠቃሚ ቅንብሮች</translation>
 <translation id="3217205077783620295">ድምፅ መጠን በርቷል፣ መቀያየር ኦዲዮን ድምፀ ከል ያደርገዋል።</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> ተጨማሪ</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">ባትሪ ሙሉ በሙሉ ኃይል እስኪሞላ ድረስ <ph name="TIME_REMAINING" /> ይቀራል።</translation>
 <translation id="9215934040295798075">ልጣፍ ያዘጋጁ</translation>
 <translation id="921989828232331238">የእርስዎ ወላጅ ለቀኑ መሣሪያውን ቆልፈውታል</translation>
+<translation id="9220525904950070496">መለያ ያስወግዱ</translation>
 <translation id="923686485342484400">ዘግተው ለመውጣት Ctrl Shift Qን ሁለቴ ይጫኑ።</translation>
 <translation id="938963181863597773">የቀን መቁጠሪያዬ ላይ ምን አለ?</translation>
 <translation id="945522503751344254">ግብረ መልስ ላክ</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index 8652f6f..74b6587 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">انقر للحصول على المزيد من الخيارات</translation>
 <translation id="1570871743947603115">تبديل البلوتوث. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">الوصول إلى جميع أنشطتك في جلسة واحدة</translation>
-<translation id="1608626060424371292">إزالة هذا المستخدم</translation>
+<translation id="1632985212731562677">يمكن إيقاف ميزة "الوصول عبر مفتاح التحويل" في "الإعدادات" &gt; "أدوات تمكين الوصول".</translation>
 <translation id="1654477262762802994">بدء طلب بحث صوتي</translation>
 <translation id="1658406695958299976">عذرًا، لا يمكن التحقق من كلمة المرور حتى الآن. ملاحظة: في حال تغيير كلمة المرور مؤخرًا، سيتم تطبيق كلمة المرور الجديدة بعد تسجيل الخروج، يُرجى استخدام كلمة المرور القديمة هنا.</translation>
 <translation id="1677472565718498478">الوقت المتبقي <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">قد يراقب مشرف الجهاز نشاط التصفح.</translation>
 <translation id="3181441307743005334">قد تستغرق إعادة التشغيل بعض الوقت</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{تم الاتصال بجهاز واحد}zero{تم الاتصال بـ # جهاز}two{تم الاتصال بجهازين (#)}few{تم الاتصال بـ # أجهزة}many{تم الاتصال بـ # جهازًا}other{تم الاتصال بـ # جهاز}}</translation>
+<translation id="3203405173652969239">تم تفعيل ميزة "الوصول عبر مفتاح التحويل".</translation>
 <translation id="3207953481422525583">إعدادات المستخدم</translation>
 <translation id="3217205077783620295">تم تفعيل الصوت، وسيؤدي التبديل إلى كتم الصوت</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> والمزيد</translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">الوقت المتبقي حتى يتم شحن البطارية بالكامل<ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">تعيين خلفية</translation>
 <translation id="921989828232331238">قفّل أحد الوالدين جهازك لليوم</translation>
+<translation id="9220525904950070496">إزالة الحساب</translation>
 <translation id="923686485342484400">‏للخروج اضغط على Ctrl Shift Q مرتين.</translation>
 <translation id="938963181863597773">ماذا يتضمّن تقويمي؟</translation>
 <translation id="945522503751344254">إرسال تعليقات</translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb
index 3647bc4..07c2d8a 100644
--- a/ash/strings/ash_strings_as.xtb
+++ b/ash/strings/ash_strings_as.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">অধিক বিকল্পৰ বাবে ক্লিক কৰক</translation>
 <translation id="1570871743947603115">ব্লুটুথ ট’গল কৰক। <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">এই ছেশ্বনত আপোনাৰ সকলো কার্যকলাপ এক্সেছ কৰে</translation>
-<translation id="1608626060424371292">ব্যৱহাৰকাৰীক আঁতৰাওক</translation>
+<translation id="1632985212731562677">ছুইচৰ দ্বাৰা এক্সেছ ছেটিংসমূহ &gt; সাধ্য সুবিধাত অক্ষম কৰিব পৰা যায়।</translation>
 <translation id="1654477262762802994">কণ্ঠধ্বনিৰদ্বাৰা সন্ধান আৰম্ভ কৰক</translation>
 <translation id="1658406695958299976">দুঃখিত, আপোনাৰ পাছৱৰ্ডটো এতিয়াও সত্যাপন কৰিব পৰা নগ‘ল। টোকা: যদি আপুনি অলপতে আপোনাৰ পাছৱৰ্ডটো সলনি কৰিছিল তেন্তে আপুনি ছাইন আউট কৰাৰ পিছত নতুন পাছৱৰ্ডটো প্ৰযোজ্য হ‘ব। ইয়াত অনুগ্ৰহ কৰি পুৰণা পাছৱৰ্ডটো ব্যৱহাৰ কৰক।</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> বাকী</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">ডিভাইচৰ প্ৰশাসকে আপুনি কৰা ব্ৰাউজৰ কাৰ্যকলাপ নিৰীক্ষণ কৰিব পাৰে।</translation>
 <translation id="3181441307743005334">ৰিষ্টাৰ্ট হ’বলৈ কিছু সময় লাগিব পাৰে</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{এটা ডিভাইচৰ সৈতে সংযোগ হৈ আছে}one{#টা ডিভাইচৰ সৈতে সংযোগ হৈ আছে}other{#টা ডিভাইচৰ সৈতে সংযোগ হৈ আছে}}</translation>
+<translation id="3203405173652969239">ছুইচৰ দ্বাৰা এক্সেছ সক্ষম কৰা হৈছে</translation>
 <translation id="3207953481422525583">ব্যৱহাৰকাৰীৰ ছেটিংসমূহ</translation>
 <translation id="3217205077783620295">ভলিউম অন কৰা আছে, ট’গল কৰিলে অডিঅ’ মিউট হ’ব।</translation>
 <translation id="3226991577105957773">আৰু <ph name="COUNT" />টা</translation>
@@ -648,6 +649,7 @@
 <translation id="9211681782751733685">বেটাৰী সম্পূৰ্ণ চ্চাৰ্জ হ’বলৈ <ph name="TIME_REMAINING" /> বাকী আছে।</translation>
 <translation id="9215934040295798075">ৱালপেপাৰ ছেট কৰক</translation>
 <translation id="921989828232331238">আপোনাৰ অভিভাৱকে আপোনাৰ ডিভাইচটো দিনটোৰ বাবে লক কৰিছে</translation>
+<translation id="9220525904950070496">একাউণ্ট আঁতৰাওক</translation>
 <translation id="923686485342484400">ছাইন আউট কৰিবলৈ Control Shift Q দুবাৰ টিপক।</translation>
 <translation id="938963181863597773">আপোনাৰ কেলেণ্ডাৰত কি আছে?</translation>
 <translation id="945522503751344254">মতামত পঠিয়াওক</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb
index f3d1cae..83a888b8 100644
--- a/ash/strings/ash_strings_az.xtb
+++ b/ash/strings/ash_strings_az.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Əlavə seçimlər üçün klikləyin</translation>
 <translation id="1570871743947603115">Bluetooth'u aktiv edin. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Sessiyadakı bütün fəaliyyətlərə daxil olun</translation>
-<translation id="1608626060424371292">Bu istifadəçini silin</translation>
+<translation id="1632985212731562677">Dəyişdirici Girişini Ayarlar &gt; Əlçatımlıq bölməsində deaktiv edə bilərsiniz.</translation>
 <translation id="1654477262762802994">Səsli sorğuya başlayın</translation>
 <translation id="1658406695958299976">Parolunuz hələ də doğrulanmayıb. Qeyd: əgər parolunuzu son vaxtlar dəyişmisinizsə, hesabdan çıxan kimi yeni parolunuz tətbiq olunacaq, köhnə parolu burada işlədin.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> qaldı</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Cihaz admini axtarış fəaliyyətinizi izləyə bilər.</translation>
 <translation id="3181441307743005334">Yenidən başlatmaq bir qədər vaxt apara bilər</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Cihaza qoşuldunuz}other{# cihaza qoşuldunuz}}</translation>
+<translation id="3203405173652969239">Dəyişdirici Girişi aktivdir</translation>
 <translation id="3207953481422525583">İstifadəçi ayarları</translation>
 <translation id="3217205077783620295">Səs səviyyəsi aktivdir, keçirdikdə audio səssiz ediləcək.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Batareyanın tam dolmağına <ph name="TIME_REMAINING" /> qalır.</translation>
 <translation id="9215934040295798075">Divar kağızı ayarlayın</translation>
 <translation id="921989828232331238">Valideyniniz cihazı bugün üçün kilidləyib</translation>
+<translation id="9220525904950070496">Hesabı silin</translation>
 <translation id="923686485342484400">Hesabdan çıxmaq üçün iki dəfə Control Shift Q basın</translation>
 <translation id="938963181863597773">Təqvimdə nə var?</translation>
 <translation id="945522503751344254">Geri əlaqə göndərin</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb
index 9802365..d6cf932 100644
--- a/ash/strings/ash_strings_be.xtb
+++ b/ash/strings/ash_strings_be.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Націсніце, каб убачыць дадатковыя параметры</translation>
 <translation id="1570871743947603115">Уключыць або выключыць Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Атрымліваць доступ да ўсіх вашых дзеянняў у гэтым сеансе</translation>
-<translation id="1608626060424371292">Выдаліць карыстальніка</translation>
+<translation id="1632985212731562677">Доступ праз пераключальнікі можна выключыць у раздзеле "Налады &gt; Спецыяльныя магчымасці".</translation>
 <translation id="1654477262762802994">Пачаць галасавы запыт</translation>
 <translation id="1658406695958299976">Пароль зноў не ўдалося спраўдзіць. Заўвага: калі вы нядаўна змянілі пароль, новы пароль будзе прыменены пасля выхаду, таму выкарыстайце тут стары пароль.</translation>
 <translation id="1677472565718498478">Засталося <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Адміністратар прылады можа сачыць за вашымі дзеяннямі ў браўзеры.</translation>
 <translation id="3181441307743005334">Перазапуск можа заняць некаторы час</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Падключана да прылады}one{Падключана да # прылады}few{Падключана да # прылад}many{Падключана да # прылад}other{Падключана да # прылады}}</translation>
+<translation id="3203405173652969239">Доступ праз пераключальнікі ўключаны</translation>
 <translation id="3207953481422525583">Налады карыстальніка</translation>
 <translation id="3217205077783620295">Гук уключаны, выключыць яго можна з дапамогай гэтага пераключальніка.</translation>
 <translation id="3226991577105957773">+ яшчэ <ph name="COUNT" /></translation>
@@ -298,7 +299,7 @@
 <translation id="4665114317261903604">Уключэнне рэжыму "Не турбаваць". <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">Разблакіруйце прыладу бацькоўскім кодам</translation>
 <translation id="4702647871202761252">Экран прыватнасці выключаны</translation>
-<translation id="4705716602320768426">Водгук па файле.</translation>
+<translation id="4705716602320768426">Пакінуць водгук</translation>
 <translation id="4710243778082831592">Налады IME</translation>
 <translation id="4731797938093519117">Бацькоўскі доступ</translation>
 <translation id="4734965478015604180">Гарызантальна</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Засталося часу да поўнай зарадкі акумулятара: <ph name="TIME_REMAINING" /></translation>
 <translation id="9215934040295798075">Задаць шпалеры</translation>
 <translation id="921989828232331238">На сёння бацькі заблакіравалі гэту прыладу</translation>
+<translation id="9220525904950070496">Выдаліць уліковы запіс</translation>
 <translation id="923686485342484400">Каб выйсці з уліковага запісу, двойчы націсніце "Ctrl+Shift+Q".</translation>
 <translation id="938963181863597773">Што ў маім календары?</translation>
 <translation id="945522503751344254">Адправіць водгук</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb
index e938e93..2956470 100644
--- a/ash/strings/ash_strings_bg.xtb
+++ b/ash/strings/ash_strings_bg.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Кликнете за още опции</translation>
 <translation id="1570871743947603115">Превключване на Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">да осъществява достъп до цялата ви активност в тази сесия;</translation>
-<translation id="1608626060424371292">Премахване на този потребител</translation>
+<translation id="1632985212731562677">Функцията „Достъп с превключване“ може да бъде деактивирана в „Настройки &gt; Достъпност“.</translation>
 <translation id="1654477262762802994">Стартиране на гласова заявка</translation>
 <translation id="1658406695958299976">За съжаление, паролата ви пак не можа да бъде потвърдена. Забележка: Ако наскоро сте я променили, новата ще влезе в сила, след като излезете от профила си. Моля, използвайте старата парола тук.</translation>
 <translation id="1677472565718498478">Оставащо време: <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Администраторът на устройството може да наблюдава активността ви при сърфиране.</translation>
 <translation id="3181441307743005334">Рестартирането може да отнеме известно време</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Установена е връзка с едно устройство}other{Установена е връзка с # устройства}}</translation>
+<translation id="3203405173652969239">Функцията „Достъп с превключване“ е активирана</translation>
 <translation id="3207953481422525583">Потребителски настройки</translation>
 <translation id="3217205077783620295">Звукът е включен. Превключването ще го спре.</translation>
 <translation id="3226991577105957773">+ още <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Оставащо време до пълното зареждане на батерията: <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Задаване на тапета</translation>
 <translation id="921989828232331238">Родителят ви заключи устройството ви за деня</translation>
+<translation id="9220525904950070496">Премахване на профила</translation>
 <translation id="923686485342484400">Натиснете два пъти „Control+Shift+Q“ за изход.</translation>
 <translation id="938963181863597773">„What's on my calendar?“ („Какво има в календара ми?“)</translation>
 <translation id="945522503751344254">Изпращане на отзиви</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb
index 98a365d..33387a16 100644
--- a/ash/strings/ash_strings_bn.xtb
+++ b/ash/strings/ash_strings_bn.xtb
@@ -55,7 +55,6 @@
 <translation id="1550523713251050646">আরও বিকল্পের জন্য ক্লিক করুন</translation>
 <translation id="1570871743947603115">ব্লুটুথ টগল করুন। <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">এই সেশনে আপনার সব অ্যাক্টিভিটি অ্যাক্সেস করুন</translation>
-<translation id="1608626060424371292">এই ব্যবহারকারীকে সরান</translation>
 <translation id="1654477262762802994">ভয়েস কোয়েরি শুরু করুন</translation>
 <translation id="1658406695958299976">দুঃখিত, আপনার পাসওয়ার্ড এখনও পর্যন্ত যাচাই করা যায়নি। দ্রষ্টব্য: আপনি যদি সম্প্রতি আপনার পাসওয়ার্ড পরিবর্তন করে থাকেন, তাহলে আপনি সাইন-আউট করার পর আপনার নতুন পাসওয়ার্ড প্রয়োগ করা হবে, অনুগ্রহ করে এখানে পুরানো পাসওয়ার্ড ব্যবহার করুন।</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> বাকি আছে</translation>
@@ -648,6 +647,7 @@
 <translation id="9211681782751733685">ব্যাটারি পুরো চার্জ হতে <ph name="TIME_REMAINING" /> বাকি আছে।</translation>
 <translation id="9215934040295798075">ওয়ালপেপার সেট করুন</translation>
 <translation id="921989828232331238">আপনার অভিভাবক এই ডিভাইসটি আজকের জন্য লক করে দিয়েছেন</translation>
+<translation id="9220525904950070496">অ্যাকাউন্ট সরান</translation>
 <translation id="923686485342484400">সাইন-আউট করার জন্য দু'বার Control Shift Q টিপুন৷</translation>
 <translation id="938963181863597773">আমার ক্যালেন্ডারে কী কী আছে?</translation>
 <translation id="945522503751344254">মতামত জানান</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb
index 78e3bcd..9183c02 100644
--- a/ash/strings/ash_strings_bs.xtb
+++ b/ash/strings/ash_strings_bs.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Kliznite za više opcija</translation>
 <translation id="1570871743947603115">Uključivanje/isključivanje Bluetootha. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Pristupiti svim aktivnostima u ovoj sesiji</translation>
-<translation id="1608626060424371292">Ukloni tog korisnika</translation>
+<translation id="1632985212731562677">Prekidač za pristup se može onemogućiti u meniju Postavke &gt; Pristupačnost.</translation>
 <translation id="1654477262762802994">Započni glasovni upit</translation>
 <translation id="1658406695958299976">Nažalost, vaša lozinka još uvijek nije potvrđena. Napomena: Ako ste nedavno promijenili lozinku, vaša nova lozinka će se primijeniti nakon što se odjavite. Ovdje koristite staru lozinku.</translation>
 <translation id="1677472565718498478">Još <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Administrator uređaja može nadzirati vašu aktivnost pregledanja.</translation>
 <translation id="3181441307743005334">Ponovno pokretanje može potrajati</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Povezano s uređajem}one{Povezano s # uređajem}few{Povezano s # uređaja}other{Povezano s # uređaja}}</translation>
+<translation id="3203405173652969239">Prekidač za pristup je omogućen</translation>
 <translation id="3207953481422525583">Korisničke postavke</translation>
 <translation id="3217205077783620295">Zvuk je uključen. Deaktiviranjem će se isključiti zvuk.</translation>
 <translation id="3226991577105957773">i još <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Baterija će se napuniti za <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Postavi pozadinsku sliku</translation>
 <translation id="921989828232331238">Roditelj je zaključao uređaj za danas</translation>
+<translation id="9220525904950070496">Ukloni račun</translation>
 <translation id="923686485342484400">Dvaput pritisnite Control Shift Q da se odjavite.</translation>
 <translation id="938963181863597773">Šta ima u mom kalendaru?</translation>
 <translation id="945522503751344254">Slanje povratnih informacija</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb
index 05eb70a..2caa697 100644
--- a/ash/strings/ash_strings_ca.xtb
+++ b/ash/strings/ash_strings_ca.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Feu clic per veure més opcions</translation>
 <translation id="1570871743947603115">Activa o desactiva el Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Accedir a tota la teva activitat d'aquesta sessió.</translation>
-<translation id="1608626060424371292">Suprimeix aquest usuari</translation>
+<translation id="1632985212731562677">L'accés amb interruptors es pot desactivar a Configuració &gt; Accessibilitat.</translation>
 <translation id="1654477262762802994">Inicia una consulta per veu</translation>
 <translation id="1658406695958299976">Encara no s'ha pogut verificar la contrasenya. Nota: si fa poc que has canviat la contrasenya, la nova s'aplicarà un cop hagis tancat la sessió. Fes servir la contrasenya anterior aquí.</translation>
 <translation id="1677472565718498478">Temps restant: <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">És possible que l'administrador del dispositiu supervisi l'activitat de navegació.</translation>
 <translation id="3181441307743005334">Pot tardar una estona a reiniciar-se</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Connectat a un dispositiu}other{Connectat a # dispositius}}</translation>
+<translation id="3203405173652969239">L'accés amb interruptors s'ha activat</translation>
 <translation id="3207953481422525583">Configuració d'usuari</translation>
 <translation id="3217205077783620295">El volum està activat. En commutar-lo, se silenciarà l'àudio.</translation>
 <translation id="3226991577105957773"><ph name="COUNT" /> més</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Temps restant perquè es carregui totalment la bateria: <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Estableix el fons de pantalla</translation>
 <translation id="921989828232331238">El teu pare o la teva mare han bloquejat el dispositiu per a tot el dia</translation>
+<translation id="9220525904950070496">Suprimir el compte</translation>
 <translation id="923686485342484400">Premeu Control+Maj+Q dues vegades per tancar la sessió.</translation>
 <translation id="938963181863597773">Què tinc programat al calendari?</translation>
 <translation id="945522503751344254">Envia suggeriments</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index 4e4e751..0c9fbe33 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Kliknutím zobrazíte další možnosti</translation>
 <translation id="1570871743947603115">Přepnout Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Získat přístup k veškeré vaší aktivitě v této relaci</translation>
-<translation id="1608626060424371292">Odebrat tohoto uživatele</translation>
+<translation id="1632985212731562677">Přístup pomocí přepínačů lze vypnout v Nastavení &gt; Přístupnost.</translation>
 <translation id="1654477262762802994">Zahájit hlasový dotaz</translation>
 <translation id="1658406695958299976">Je nám líto, vaše heslo se stále nedaří ověřit. Poznámka: Pokud jste heslo nedávno změnili, bude nové heslo možné použít až po odhlášení. Zde použijte staré heslo.</translation>
 <translation id="1677472565718498478">zbývající čas: <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Správce zařízení může sledovat vaši aktivitu při procházení.</translation>
 <translation id="3181441307743005334">Restartování může chvíli trvat</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Připojeno k zařízení}few{Připojeno k # zařízením}many{Připojeno k # zařízení}other{Připojeno k # zařízením}}</translation>
+<translation id="3203405173652969239">Je zapnutý přístup pomocí přepínačů</translation>
 <translation id="3207953481422525583">Uživatelská nastavení</translation>
 <translation id="3217205077783620295">Zvuk je zapnutý. Přepnutím ho vypnete.</translation>
 <translation id="3226991577105957773">a ještě <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Doba zbývající do úplného nabití baterie: <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Nastavit tapetu</translation>
 <translation id="921989828232331238">Rodič zařízení na celý den uzamkl</translation>
+<translation id="9220525904950070496">Odebrat účet</translation>
 <translation id="923686485342484400">Odhlásíte se dvojitým stisknutím kombinace kláves Control Shift Q.</translation>
 <translation id="938963181863597773">Co mám v kalendáři?</translation>
 <translation id="945522503751344254">Odeslat zpětnou vazbu</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index 7850ecc..27a7e35 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Klik for at se flere muligheder</translation>
 <translation id="1570871743947603115">Slå Bluetooth til eller fra. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Få adgang til al din aktivitet i denne session</translation>
-<translation id="1608626060424371292">Fjern denne bruger</translation>
+<translation id="1632985212731562677">Kontaktadgang kan deaktiveres under Indstillinger &gt; Hjælpefunktioner.</translation>
 <translation id="1654477262762802994">Start en stemmeforespørgsel</translation>
 <translation id="1658406695958299976">Din adgangskode kunne stadig ikke bekræftes. Bemærk! Hvis du har ændret din adgangskode for nylig, anvendes din nye adgangskode først, når du har logget ud. Du skal bruge den gamle adgangskode her.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> tilbage</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Administratoren af enheden kan overvåge din browseraktivitet.</translation>
 <translation id="3181441307743005334">Genstarten kan tage lidt tid</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Forbundet til en enhed}one{Forbundet til # enhed}other{Forbundet til # enheder}}</translation>
+<translation id="3203405173652969239">Kontaktadgang blev aktiveret</translation>
 <translation id="3207953481422525583">Brugerindstillinger</translation>
 <translation id="3217205077783620295">Lydstyrken er slået til. Tryk på knappen for at sætte på lydløs.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> andre</translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> til batteriet er fuldt opladet.</translation>
 <translation id="9215934040295798075">Vælg baggrund</translation>
 <translation id="921989828232331238">Din forælder har låst din enhed resten af dagen</translation>
+<translation id="9220525904950070496">Fjern konto</translation>
 <translation id="923686485342484400">Tryk på Control+Shift+Q to gange for at logge ud.</translation>
 <translation id="938963181863597773">Hvad har jeg i kalenderen?</translation>
 <translation id="945522503751344254">Send feedback</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb
index 232fddee..f15b87f 100644
--- a/ash/strings/ash_strings_de.xtb
+++ b/ash/strings/ash_strings_de.xtb
@@ -55,7 +55,6 @@
 <translation id="1550523713251050646">Für weitere Optionen klicken</translation>
 <translation id="1570871743947603115">Bluetooth aktivieren/deaktivieren. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Auf alle Ihre Aktivitäten in dieser Sitzung zugreifen</translation>
-<translation id="1608626060424371292">Diesen Nutzer entfernen</translation>
 <translation id="1654477262762802994">Gesprochene Anfrage starten</translation>
 <translation id="1658406695958299976">Ihr Passwort konnte immer noch nicht bestätigt werden. Hinweis: Falls Sie Ihr Passwort kürzlich geändert haben, wird Ihr neues Passwort übernommen, sobald Sie sich abmelden. Bitte verwenden Sie hier das alte Passwort.</translation>
 <translation id="1677472565718498478">Verbleibende Zeit: <ph name="TIME" /> h</translation>
@@ -651,6 +650,7 @@
 <translation id="9211681782751733685">Noch <ph name="TIME_REMAINING" />, bis der Akku vollständig geladen ist.</translation>
 <translation id="9215934040295798075">Hintergrund festlegen</translation>
 <translation id="921989828232331238">Deine Eltern haben dein Gerät für heute gesperrt</translation>
+<translation id="9220525904950070496">Konto entfernen</translation>
 <translation id="923686485342484400">Drücken Sie zum Abmelden zweimal Steuerung - Umschalttaste - Q.</translation>
 <translation id="938963181863597773">Welche Termine stehen an?</translation>
 <translation id="945522503751344254">Feedback geben</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb
index 58ec16c..adfaf698 100644
--- a/ash/strings/ash_strings_el.xtb
+++ b/ash/strings/ash_strings_el.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Κάντε κλικ για περισσότερες επιλογές</translation>
 <translation id="1570871743947603115">Εναλλαγή Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Αποκτήσει πρόσβαση σε όλη τη δραστηριότητά σας από αυτήν την περίοδο λειτουργίας</translation>
-<translation id="1608626060424371292">Κατάργηση αυτού του χρήστη</translation>
+<translation id="1632985212731562677">Η πρόσβαση με διακόπτη μπορεί να απενεργοποιηθεί από τις Ρυθμίσεις &gt; Προσβασιμότητα.</translation>
 <translation id="1654477262762802994">Έναρξη φωνητικού ερωτήματος</translation>
 <translation id="1658406695958299976">Λυπούμαστε, η επαλήθευση του κωδικού πρόσβασης εξακολουθεί να μην είναι δυνατή. Σημείωση: Εάν έχετε αλλάξει πρόσφατα τον κωδικό πρόσβασης, ο νέος κωδικός πρόσβασης θα τεθεί σε ισχύ αφού αποσυνδεθείτε. Χρησιμοποιήστε εδώ τον παλιό κωδικό πρόσβασης.</translation>
 <translation id="1677472565718498478">Απομένουν <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Ο διαχειριστής της συσκευής μπορεί να παρακολουθεί τη δραστηριότητα περιήγησής σας.</translation>
 <translation id="3181441307743005334">Η επανεκκίνηση μπορεί να διαρκέσει λίγη ώρα</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Συνδέθηκε σε κάποια συσκευή}other{Συνδέθηκε σε # συσκευές}}</translation>
+<translation id="3203405173652969239">Η πρόσβαση με διακόπτη ενεργοποιήθηκε</translation>
 <translation id="3207953481422525583">Ρυθμίσεις χρήστη</translation>
 <translation id="3217205077783620295">Ο ήχος είναι ενεργοποιημένος, η εναλλαγή θα ενεργοποιήσει τη σίγαση ήχου.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> ακόμη</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Απομένουν <ph name="TIME_REMAINING" /> έως την πλήρη φόρτιση της μπαταρίας.</translation>
 <translation id="9215934040295798075">Ορισμός ταπετσαρίας</translation>
 <translation id="921989828232331238">Ο γονέας σας κλείδωσε τη συσκευή σας για σήμερα</translation>
+<translation id="9220525904950070496">Κατάργηση λογαριασμού</translation>
 <translation id="923686485342484400">Πατήστε Ctrl + Shift + Q δύο φορές για να αποσυνδεθείτε.</translation>
 <translation id="938963181863597773">Τι υπάρχει στο ημερολόγιό μου;</translation>
 <translation id="945522503751344254">Αποστολή σχολίων</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb
index 76f839b0..3800474 100644
--- a/ash/strings/ash_strings_en-GB.xtb
+++ b/ash/strings/ash_strings_en-GB.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Click for more options</translation>
 <translation id="1570871743947603115">Toggle Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Access all your activity in this session</translation>
-<translation id="1608626060424371292">Remove this user</translation>
+<translation id="1632985212731562677">Switch access can be disabled in Settings &gt; Accessibility.</translation>
 <translation id="1654477262762802994">Start a voice query</translation>
 <translation id="1658406695958299976">Sorry, your password still couldn't be verified. Note: If you changed your password recently, your new password will be applied once you sign out. Please use the old password here.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> left</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">The device admin may monitor your browsing activity.</translation>
 <translation id="3181441307743005334">Restart may take a while</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Connected to a device}other{Connected to # devices}}</translation>
+<translation id="3203405173652969239">Switch access enabled</translation>
 <translation id="3207953481422525583">User settings</translation>
 <translation id="3217205077783620295">Volume is on; toggling will mute audio.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> more</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> remaining until battery is fully charged.</translation>
 <translation id="9215934040295798075">Set wallpaper</translation>
 <translation id="921989828232331238">Your parent locked your device for the day</translation>
+<translation id="9220525904950070496">Remove account</translation>
 <translation id="923686485342484400">Press Control Shift Q twice to sign out.</translation>
 <translation id="938963181863597773">What's on my calendar?</translation>
 <translation id="945522503751344254">Send feedback</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb
index 175665e..0146b9f9 100644
--- a/ash/strings/ash_strings_es-419.xtb
+++ b/ash/strings/ash_strings_es-419.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Haz clic para obtener más opciones</translation>
 <translation id="1570871743947603115">Activar o desactivar Bluetooth: <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Accede a toda tu actividad en esta sesión</translation>
-<translation id="1608626060424371292">Eliminar este usuario</translation>
+<translation id="1632985212731562677">La accesibilidad mejorada se puede inhabilitar en Configuración &gt; Accesibilidad.</translation>
 <translation id="1654477262762802994">Iniciar una búsqueda por voz</translation>
 <translation id="1658406695958299976">Todavía no se pudo verificar tu contraseña. Ten en cuenta que, si cambiaste tu contraseña recientemente, podrás usar la nueva cuando salgas. Aquí deberás usar la contraseña anterior.</translation>
 <translation id="1677472565718498478">Tiempo restante <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Es posible que el administrador de dispositivos supervise tu actividad de navegación.</translation>
 <translation id="3181441307743005334">El reinicio puede tardar unos minutos</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Conectado a un dispositivo}other{Conectado a # dispositivos}}</translation>
+<translation id="3203405173652969239">Se habilitó la accesibilidad mejorada</translation>
 <translation id="3207953481422525583">Configuración del usuario</translation>
 <translation id="3217205077783620295">El volumen está activado. Si lo desactivas, se silenciará.</translation>
 <translation id="3226991577105957773"><ph name="COUNT" /> más</translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">Tiempo restante hasta que se cargue por completo la batería: <ph name="TIME_REMAINING" /></translation>
 <translation id="9215934040295798075">Fondo de pantalla</translation>
 <translation id="921989828232331238">Tus padres bloquearon el dispositivo por el día</translation>
+<translation id="9220525904950070496">Eliminar cuenta</translation>
 <translation id="923686485342484400">Presiona Control Mayús Q dos veces para salir.</translation>
 <translation id="938963181863597773">¿Qué eventos tengo en mi calendario?</translation>
 <translation id="945522503751344254">Enviar comentarios</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index 273c63d..861edfb2 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Haz clic aquí para obtener más opciones</translation>
 <translation id="1570871743947603115">Activa o desactiva el Bluetooth. <ph name="STATE_TEXT" />.</translation>
 <translation id="1589090746204042747">Acceder a toda tu actividad de esta sesión</translation>
-<translation id="1608626060424371292">Eliminar este usuario</translation>
+<translation id="1632985212731562677">La accesibilidad mediante interruptores se puede inhabilitar en Configuración &gt; Accesibilidad.</translation>
 <translation id="1654477262762802994">Iniciar una consulta por voz</translation>
 <translation id="1658406695958299976">Aún no se ha podido verificar tu contraseña. Nota: Si has cambiado la contraseña recientemente, la nueva contraseña se aplicará una vez que hayas cerrado sesión. Utiliza la antigua contraseña aquí.</translation>
 <translation id="1677472565718498478">Queda: <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Es posible que el administrador del dispositivo supervise tu actividad de navegación.</translation>
 <translation id="3181441307743005334">El reinicio puede tardar un poco</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Conectado a 1 dispositivo}other{Conectado a # dispositivos}}</translation>
+<translation id="3203405173652969239">Accesibilidad mediante interruptores habilitada</translation>
 <translation id="3207953481422525583">Ajustes de usuario</translation>
 <translation id="3217205077783620295">El volumen está activado. Utiliza el botón para silenciarlo.</translation>
 <translation id="3226991577105957773">y <ph name="COUNT" /> más</translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">Tiempo restante para que se cargue totalmente la batería: <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Fondo de pantalla</translation>
 <translation id="921989828232331238">Tu padre, madre o tutor han bloqueado tu dispositivo todo el día</translation>
+<translation id="9220525904950070496">Quitar cuenta</translation>
 <translation id="923686485342484400">Pulsa Control Mayús Q dos veces para cerrar sesión.</translation>
 <translation id="938963181863597773">¿Qué tengo en el calendario?</translation>
 <translation id="945522503751344254">Enviar comentarios</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb
index 33ea61d9..2504dfd 100644
--- a/ash/strings/ash_strings_et.xtb
+++ b/ash/strings/ash_strings_et.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Klõpsake lisavalikute nägemiseks</translation>
 <translation id="1570871743947603115">Lülitab Bluetoothi sisse või välja. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Juurdepääs kõigile teie tegevustele selle seansi ajal</translation>
-<translation id="1608626060424371292">Eemalda see kasutaja</translation>
+<translation id="1632985212731562677">Lülitiga juurdepääsu saab keelata menüüs Seaded &gt; Juurdepääsetavus.</translation>
 <translation id="1654477262762802994">Häälpäringu alustamine</translation>
 <translation id="1658406695958299976">Kahjuks ei saanud teie parooli kinnitada. Märkus: kui muutsite parooli hiljuti, rakendub uus parool pärast väljalogimist. Kasutage siin vana parooli.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> tühjenemiseni</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Seadme administraator võib jälgida teie sirvimistegevust.</translation>
 <translation id="3181441307743005334">Taaskäivitamine võib pisut aega võtta</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Ühendatud ühe seadmega}other{Ühendatud # seadmega}}</translation>
+<translation id="3203405173652969239">Lülitiga juurdepääs on lubatud</translation>
 <translation id="3207953481422525583">Kasutaja seaded</translation>
 <translation id="3217205077783620295">Helitugevus on sees, vahetamisel heli vaigistatakse.</translation>
 <translation id="3226991577105957773">ja veel <ph name="COUNT" /></translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">Aku täitumiseni on aega <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Taustapildi määramine</translation>
 <translation id="921989828232331238">Vanem lukustas sinu seadme päevaks</translation>
+<translation id="9220525904950070496">Konto eemaldamine</translation>
 <translation id="923686485342484400">Väljalogimiseks vajutage kaks korda klahvikombinatsiooni Ctrl + tõstuklahv + Q.</translation>
 <translation id="938963181863597773">Mis on minu kalendris?</translation>
 <translation id="945522503751344254">Saada tagasisidet</translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb
index 7b7a2f5a..06296c7 100644
--- a/ash/strings/ash_strings_eu.xtb
+++ b/ash/strings/ash_strings_eu.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Aukera gehiago ikusteko, egin klik hemen</translation>
 <translation id="1570871743947603115">Gaitu/Desgaitu Bluetooth konexioa. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Atzitu saio honetan egin dituzun jarduera guztiak</translation>
-<translation id="1608626060424371292">Kendu erabiltzailea</translation>
+<translation id="1632985212731562677">Ezarpenak &gt; Erabilerraztasuna atalean desgai dezakezu erabilerraztasun-osagarria.</translation>
 <translation id="1654477262762802994">Sortu ahozko kontsulta bat</translation>
 <translation id="1658406695958299976">Oraingoan ere ezin izan da egiaztatu pasahitza. Oharra: duela gutxi aldatu baduzu pasahitza, saioa amaitu eta gero aplikatuko da pasahitz berria; beraz, erabili pasahitz zaharra hemen.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> geratzen dira</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Gailuaren administratzaileak arakatze-jarduerak kontrola ditzake.</translation>
 <translation id="3181441307743005334">Baliteke berrabiarazteko prozesua zertxobait luzatzea</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Gailu batera konektatuta}other{# gailutara konektatuta}}</translation>
+<translation id="3203405173652969239">Erabilerraztasun-osagarria gaitu da</translation>
 <translation id="3207953481422525583">Erabiltzaile-ezarpenak</translation>
 <translation id="3217205077783620295">Bolumena aktibatuta dago. Aldatzen baduzu, audioa isilaraziko da.</translation>
 <translation id="3226991577105957773">eta beste <ph name="COUNT" /></translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> bateria guztiz kargatu arte.</translation>
 <translation id="9215934040295798075">Ezarri horma-papera</translation>
 <translation id="921989828232331238">Guraso batek gailua blokeatu dizu gaurkoz</translation>
+<translation id="9220525904950070496">Kendu kontua</translation>
 <translation id="923686485342484400">Saioa amaitzeko, sakatu Kontrol + Maius + Q bi aldiz.</translation>
 <translation id="938963181863597773">Zer daukat egutegian?</translation>
 <translation id="945522503751344254">Bidali oharrak</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
index ee099ea3..6033aac 100644
--- a/ash/strings/ash_strings_fa.xtb
+++ b/ash/strings/ash_strings_fa.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">برای گزینه‌های بیشتر کلیک کنید</translation>
 <translation id="1570871743947603115">روشن/خاموش کردن بلوتوث. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">به همه فعالیت‌هایتان در این جلسه دسترسی پیدا کنید</translation>
-<translation id="1608626060424371292">حذف این کاربر</translation>
+<translation id="1632985212731562677">می‌توانید «دسترسی کلیدی» را در «تنظیمات &gt; دسترس‌پذیری» غیرفعال کنید.</translation>
 <translation id="1654477262762802994">شروع پُرسمان صوتی</translation>
 <translation id="1658406695958299976">متأسفیم، گذرواژه‌تان هنوز تأیید نشده است. توجه: اگر به‌تازگی گذرواژه‌تان را تغییر داده‌اید، گذرواژه جدید شما هنگامی‌که از سیستم خارج شوید، اعمال می‌شود؛ لطفاً اینجا از گذرواژه قدیمی خود استفاده کنید.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> باقی‌مانده</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">سرپرست دستگاه ممکن است فعالیت مرور شما را پایش کند</translation>
 <translation id="3181441307743005334">بازراه‌اندازی ممکن است مدتی طول بکشد</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{متصل به یک دستگاه.}one{متصل به # دستگاه}other{متصل به # دستگاه}}</translation>
+<translation id="3203405173652969239">«دسترسی کلیدی» فعال شده است</translation>
 <translation id="3207953481422525583">«تنظیمات کاربر»</translation>
 <translation id="3217205077783620295">دکمه میزان صدا فعال است، با تغییر وضعیت صامت می‌شود.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> مورد دیگر</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> زمان تا شارژ کامل باتری باقی‌مانده است.</translation>
 <translation id="9215934040295798075">تنظیم کاغذدیواری</translation>
 <translation id="921989828232331238">پدر یا مادرتان دستگاهتان را برای تمام روز قفل کرده‌ است</translation>
+<translation id="9220525904950070496">حذف حساب</translation>
 <translation id="923686485342484400">‏برای خروج از سیستم Control Shift Q را دو بار فشار دهید.</translation>
 <translation id="938963181863597773">‏?What's on my calendar (در تقویم من چه رویدادی هست؟)</translation>
 <translation id="945522503751344254">ارسال بازخورد</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb
index 0c1a9b3..ebc52b79 100644
--- a/ash/strings/ash_strings_fi.xtb
+++ b/ash/strings/ash_strings_fi.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Näet lisävaihtoehtoja klikkaamalla tätä.</translation>
 <translation id="1570871743947603115">Laita Bluetooth päälle tai pois päältä. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">nähdä kaikki tämän käyttökerran toimintosi</translation>
-<translation id="1608626060424371292">Poista tämä käyttäjä</translation>
+<translation id="1632985212731562677">Kytkimen käytön voi laittaa pois päältä kohdassa Asetukset &gt; Esteettömyys.</translation>
 <translation id="1654477262762802994">Aloita puhekysely</translation>
 <translation id="1658406695958299976">Salasanan vahvistaminen ei onnistunut vieläkään. Huom. Jos vaihdoit salasanasi äskettäin, uusi salasana otetaan käyttöön kirjauduttuasi ulos. Käytä tässä vanhaa salasanaasi.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> jäljellä</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Laitteen järjestelmänvalvoja saattaa seurata selaustoimintaasi.</translation>
 <translation id="3181441307743005334">Uudelleenkäynnistys voi kestää hetken</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Yhdistetty 1 laitteeseen}other{Yhdistetty # laitteeseen}}</translation>
+<translation id="3203405173652969239">Kytkimen käyttö päällä</translation>
 <translation id="3207953481422525583">Käyttäjäasetukset</translation>
 <translation id="3217205077783620295">Äänet ovat päällä. Mykistä ne kytkimellä.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> muuta</translation>
@@ -653,6 +654,7 @@
 <translation id="9211681782751733685">Akku on ladattu täyteen <ph name="TIME_REMAINING" /> kuluttua.</translation>
 <translation id="9215934040295798075">Aseta taustakuva</translation>
 <translation id="921989828232331238">Vanhempasi lukitsi laitteen loppupäivän ajaksi</translation>
+<translation id="9220525904950070496">Poista tili</translation>
 <translation id="923686485342484400">Kirjaudu ulos painamalla Control Shift Q kahdesti.</translation>
 <translation id="938963181863597773">Mitä kalenterissani on?</translation>
 <translation id="945522503751344254">Lähetä palautetta</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index 91796f47..d9b8893b 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Mag-click para sa higit pang mga opsyon</translation>
 <translation id="1570871743947603115">I-toggle ang Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">I-access ang lahat ng iyong aktibidad sa session na ito</translation>
-<translation id="1608626060424371292">Alisin ang user na ito</translation>
+<translation id="1632985212731562677">Puwedeng i-disable ang Switch Access sa Mga Setting &gt; Accessibility.</translation>
 <translation id="1654477262762802994">Magsimula ng query gamit ang boses</translation>
 <translation id="1658406695958299976">Paumanhin, hindi pa rin ma-verify ang iyong password. Tandaan: kung pinalitan mo kamakailan ang iyong password, malalapat ang bago mong password kapag nag-sign out ka, pakigamit ang lumang password dito.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> na lang ang natitira</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Maaaring subaybayan ng admin ng device ang iyong aktibidad sa pag-browse.</translation>
 <translation id="3181441307743005334">Posibleng magtagal nang ilang sandali ang pag-restart</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Nakakonekta sa isang device}one{Nakakonekta sa # device}other{Nakakonekta sa # na device}}</translation>
+<translation id="3203405173652969239">Naka-enable ang Switch Access</translation>
 <translation id="3207953481422525583">Mga Setting ng User</translation>
 <translation id="3217205077783620295">Naka-on ang volume, mamu-mute ang audio kapag nag-toggle.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> pa</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> ang natitira bago ma-charge nang kumpleto ang baterya.</translation>
 <translation id="9215934040295798075">Magtakda ng wallpaper</translation>
 <translation id="921989828232331238">Ni-lock ng iyong magulang ang device mo para sa araw na ito</translation>
+<translation id="9220525904950070496">Alisin ang account</translation>
 <translation id="923686485342484400">Pindutin ang Control Shift Q nang dalawang beses upang mag-sign out.</translation>
 <translation id="938963181863597773">Ano'ng nakaiskedyul sa kalendaryo ko?</translation>
 <translation id="945522503751344254">Magpadala ng feedback...</translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb
index 97ba184..3d35d97b 100644
--- a/ash/strings/ash_strings_fr-CA.xtb
+++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Cliquez pour afficher plus d'options</translation>
 <translation id="1570871743947603115">Activer/désactiver le Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Accédez à toute l'activité de votre session</translation>
-<translation id="1608626060424371292">Supprimer cet utilisateur</translation>
+<translation id="1632985212731562677">Switch Access peut être désactivé sous Paramètres &gt; Accessibilité.</translation>
 <translation id="1654477262762802994">Démarrer une requête vocale</translation>
 <translation id="1658406695958299976">Désolés, nous ne pouvons toujours pas valider votre mot de passe. Remarque : si vous l'avez modifié dernièrement, votre nouveau mot de passe ne sera pas mis à jour qu'une fois que vous vous serez déconnecté. Veuillez donc utiliser votre ancien mot de passe.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> d'autonomie restante</translation>
@@ -105,7 +105,7 @@
 <translation id="2268813581635650749">Déconnecter tous les utilisateurs</translation>
 <translation id="2277103315734023688">Rechercher vers l'avant</translation>
 <translation id="2292698582925480719">Échelle d'affichage</translation>
-<translation id="2295777434187870477">Le microphone est activé, si vous le désactivez, l'entrée sonore sera aussi désactivée.</translation>
+<translation id="2295777434187870477">Le microphone est activé. Si vous le désactivez, l'entrée sonore sera aussi désactivée.</translation>
 <translation id="2298170939937364391">La loupe en mode plein écran a été activée. Appuyez à nouveau sur Ctrl+Recherche+M pour la désactiver.</translation>
 <translation id="2302092602801625023">Ce compte est géré par Family Link</translation>
 <translation id="2303600792989757991">Activer ou désactiver la vue d'ensemble des fenêtres</translation>
@@ -139,7 +139,7 @@
 <translation id="2658778018866295321">Cliquez et faites glisser</translation>
 <translation id="2700493154570097719">Définir votre clavier</translation>
 <translation id="2704781753052663061">Se connecter à d'autres réseaux Wi-Fi</translation>
-<translation id="2705001408393684014">Activer ou désactiver le microphone. <ph name="STATE_TEXT" /></translation>
+<translation id="2705001408393684014">Activer/Désactiver le microphone. <ph name="STATE_TEXT" /></translation>
 <translation id="2718395828230677721">Éclairage nocturne</translation>
 <translation id="2727977024730340865">L'appareil est branché à un chargeur de faible puissance. Il se peut que la recharge de la batterie ne soit pas fiable.</translation>
 <translation id="2792498699870441125">Alt + Recherche</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">L'administrateur de l'appareil peut surveiller votre activité de navigation.</translation>
 <translation id="3181441307743005334">Le redémarrage peut prendre un certain temps</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Connecté à un appareil}one{Connecté à # appareil}other{Connecté à # appareils}}</translation>
+<translation id="3203405173652969239">Switch Access est activé</translation>
 <translation id="3207953481422525583">Paramètres de l'utilisateur</translation>
 <translation id="3217205077783620295">Le son est activé et peut être coupé en cliquant sur le bouton de volume.</translation>
 <translation id="3226991577105957773">et <ph name="COUNT" /> autres</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Il reste <ph name="TIME_REMAINING" /> avant que la pile soit complètement rechargée.</translation>
 <translation id="9215934040295798075">Sélectionner un fond d'écran</translation>
 <translation id="921989828232331238">Ton parent a verrouillé ton appareil pour la journée</translation>
+<translation id="9220525904950070496">Supprimer le compte</translation>
 <translation id="923686485342484400">Appuyez deux fois sur Contrôle + Maj + Q pour vous déconnecter.</translation>
 <translation id="938963181863597773">Qu'y a-t-il dans mon agenda?</translation>
 <translation id="945522503751344254">Envoyer un commentaire à Google</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb
index 03a36782..815fb35 100644
--- a/ash/strings/ash_strings_fr.xtb
+++ b/ash/strings/ash_strings_fr.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Cliquez pour obtenir plus d'options.</translation>
 <translation id="1570871743947603115">Activer/Désactiver le Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Accéder à toutes vos activités dans cette session</translation>
-<translation id="1608626060424371292">Supprimer cet utilisateur</translation>
+<translation id="1632985212731562677">Vous pouvez désactiver Switch Access en sélectionnant Paramètres &gt; Accessibilité.</translation>
 <translation id="1654477262762802994">Soumettre une requête vocale</translation>
 <translation id="1658406695958299976">Impossible de valider le mot de passe. Remarque : si vous l'avez modifié dernièrement, votre nouveau mot de passe ne sera appliqué qu'une fois que vous vous serez déconnecté. Veuillez donc utiliser votre ancien mot de passe.</translation>
 <translation id="1677472565718498478">Temps restant : <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">L'administrateur de cet appareil peut contrôler votre activité de navigation.</translation>
 <translation id="3181441307743005334">Le redémarrage peut prendre du temps</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Connecté à un appareil}one{Connecté à # appareil}other{Connecté à # appareils}}</translation>
+<translation id="3203405173652969239">Switch Access activé</translation>
 <translation id="3207953481422525583">Paramètres utilisateur</translation>
 <translation id="3217205077783620295">Le son est activé et peut être coupé lorsque vous cliquez sur le bouton de volume.</translation>
 <translation id="3226991577105957773">+ <ph name="COUNT" /> autres</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Temps restant avant que la batterie soit entièrement rechargée : <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Définir le fond d'écran</translation>
 <translation id="921989828232331238">Ton parent a verrouillé ton appareil pour la journée</translation>
+<translation id="9220525904950070496">Supprimer le compte</translation>
 <translation id="923686485342484400">Appuyez deux fois sur Contrôle + Maj + Q pour vous déconnecter.</translation>
 <translation id="938963181863597773">Qu'y a-t-il dans mon agenda ?</translation>
 <translation id="945522503751344254">Envoyer un commentaire</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb
index 6b4f38f..ebd7e4b 100644
--- a/ash/strings/ash_strings_gl.xtb
+++ b/ash/strings/ash_strings_gl.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Fai clic para ver máis opcións</translation>
 <translation id="1570871743947603115">Activar/desactivar o Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Acceder a toda a túa actividade nesta sesión</translation>
-<translation id="1608626060424371292">Eliminar este usuario</translation>
+<translation id="1632985212731562677">A función Acceso con interruptores pódese desactivar en Configuración &gt; Accesibilidade.</translation>
 <translation id="1654477262762802994">Iniciar unha consulta de voz</translation>
 <translation id="1658406695958299976">Aínda non se puido verificar o teu contrasinal. Nota: Se cambiaches o teu contrasinal recentemente, o contrasinal novo aplicarase en canto peches sesión. Utiliza aquí o contrasinal antigo.</translation>
 <translation id="1677472565718498478">Tempo restante: <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">O administrador do dispositivo pode supervisar a actividade de navegación.</translation>
 <translation id="3181441307743005334">O reinicio pode tardar uns intres</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Conectado a un dispositivo}other{Conectado a # dispositivos}}</translation>
+<translation id="3203405173652969239">Activouse o Acceso con interruptores</translation>
 <translation id="3207953481422525583">Configuración do usuario</translation>
 <translation id="3217205077783620295">O volume está activado. Utiliza o botón para silencialo.</translation>
 <translation id="3226991577105957773"><ph name="COUNT" /> máis</translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">Tempo restante para que se cargue a batería por completo: <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Definir fondo de pantalla</translation>
 <translation id="921989828232331238">O teu pai ou nai bloqueou o dispositivo para todo o día</translation>
+<translation id="9220525904950070496">Quitar conta</translation>
 <translation id="923686485342484400">Preme Control, maiúsculas e Q dúas veces para pechar sesión.</translation>
 <translation id="938963181863597773">Que hai no meu calendario?</translation>
 <translation id="945522503751344254">Enviar comentarios</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb
index 2adf376..b082918 100644
--- a/ash/strings/ash_strings_gu.xtb
+++ b/ash/strings/ash_strings_gu.xtb
@@ -55,7 +55,6 @@
 <translation id="1550523713251050646">વધુ વિકલ્પો માટે ક્લિક કરો</translation>
 <translation id="1570871743947603115">બ્લૂટૂથ ટૉગલ કરો. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">આ સત્રમાં તમારી બધી પ્રવૃત્તિને ઍક્સેસ કરો</translation>
-<translation id="1608626060424371292">આ વપરાશકર્તાને દૂર કરો</translation>
 <translation id="1654477262762802994">વૉઇસ ક્વેરી શરૂ કરો</translation>
 <translation id="1658406695958299976">માફ કરશો, તમારો પાસવર્ડ હજી ચકાસી શકાયો નથી. નોંધ: જો તમે તાજેતરમાં તમારો પાસવર્ડ બદલ્યો હોય, તો તમારો નવો પાસવર્ડ તમે એક વાર સાઇન આઉટ કરી લો તે પછી લાગુ થશે, કૃપા કરીને અહીં જૂના પાસવર્ડનો ઉપયોગ કરો.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> બાકી</translation>
@@ -105,6 +104,7 @@
 <translation id="2268813581635650749">બધામાંથી સાઇન આઉટ કરો</translation>
 <translation id="2277103315734023688">આગળ લઈ જાઓ</translation>
 <translation id="2292698582925480719">પ્રદર્શન ધોરણ</translation>
+<translation id="2295777434187870477">માઇક્રોફોન ચાલુ છે, ટૉગલ કરવાથી ઇનપુટ મ્યૂટ થશે.</translation>
 <translation id="2298170939937364391">પૂર્ણ-સ્ક્રીન મૅગ્નિફાયર ચાલુ કર્યું. ટૉગલ કરીને તેને બંધ કરવા માટે ફરીથી Ctrl+Search+M દબાવો.</translation>
 <translation id="2302092602801625023">આ એકાઉન્ટ Family Link દ્વારા મેનેજ થાય છે</translation>
 <translation id="2303600792989757991">ટોગલ વિન્ડો વિહંગાવલોકન</translation>
@@ -138,6 +138,7 @@
 <translation id="2658778018866295321">ક્લિક કરો અને ખેંચો</translation>
 <translation id="2700493154570097719">તમારું કીબોર્ડ સેટ કરો</translation>
 <translation id="2704781753052663061">બીજા વાઇ-ફાઇ નેટવર્ક સાથે જોડાઓ</translation>
+<translation id="2705001408393684014">માઇક્રોફોનના વિકલ્પને ટૉગલ કરો. <ph name="STATE_TEXT" /></translation>
 <translation id="2718395828230677721">રાત્રિ પ્રકાશ</translation>
 <translation id="2727977024730340865">નિમ્ન-પાવર ચાર્જરમાં પ્લગ કરેલું છે. બૅટરી ચાર્જિંગ વિશ્વસનીય હશે નહીં.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
@@ -296,6 +297,7 @@
 <translation id="4665114317261903604">'ખલેલ પાડશો નહીં'ને ટૉગલ કરો. <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">માતાપિતાના કોડ વડે ડિવાઇસને અનલૉક કરો</translation>
 <translation id="4702647871202761252">પ્રાઇવસી સ્ક્રીન બંધ છે</translation>
+<translation id="4705716602320768426">પ્રતિસાદ ફાઇલ કરો</translation>
 <translation id="4710243778082831592">IME સેટિંગ</translation>
 <translation id="4731797938093519117">માતાપિતા માટે ઍક્સેસ</translation>
 <translation id="4734965478015604180">આડી</translation>
@@ -376,6 +378,7 @@
 <translation id="5901316534475909376">Shift + Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">ચાલુ</translation>
+<translation id="5920710855273935292">માઇક્રોફોન મ્યૂટ કરેલો છે.</translation>
 <translation id="5947494881799873997">પાછા ફરો</translation>
 <translation id="595202126637698455">ભજવણી ટ્રેસિંગ સક્ષમ</translation>
 <translation id="5957083217255311415">મોબાઇલ ડેટા બંધ છે.</translation>
@@ -647,6 +650,7 @@
 <translation id="9211681782751733685">બૅટરી સંપૂર્ણપણે ચાર્જ થવામાં <ph name="TIME_REMAINING" /> બાકી છે.</translation>
 <translation id="9215934040295798075">વૉલપેપર સેટ કરો</translation>
 <translation id="921989828232331238">તમારા માતાપિતાએ તમારા ડિવાઇસને આજના માટે લૉક કર્યું છે</translation>
+<translation id="9220525904950070496">એકાઉન્ટ દૂર કરો</translation>
 <translation id="923686485342484400">સાઇન આઉટ કરવા માટે બે વાર Control Shift Q દબાવો.</translation>
 <translation id="938963181863597773">મારા કૅલેન્ડરમાં શું છે?</translation>
 <translation id="945522503751344254">પ્રતિસાદ મોકલો</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index 696b52b2..511d03c 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">ज़्यादा विकल्पों के लिए क्लिक करें</translation>
 <translation id="1570871743947603115">ब्लूटूथ टॉगल करें. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">इस सत्र में अपनी सभी गतिविधि ऐक्सेस करें</translation>
-<translation id="1608626060424371292">इस उपयोगकर्ता को हटाएं</translation>
+<translation id="1632985212731562677">ऐक्सेस करने का तरीका बदलने की सुविधा को सेटिंग &gt; सुलभता में जाकर, बंद किया जा सकता है.</translation>
 <translation id="1654477262762802994">बोलकर खोजना शुरू करें</translation>
 <translation id="1658406695958299976">माफ़ करें, आपके पासवर्ड की अब भी पुष्टि नहीं हो पाई है. नोट: अगर आपने हाल ही में अपना पासवर्ड बदला है, तो आपके साइन आउट होते ही आपका नया पासवर्ड लागू हो जाएगा, कृपया यहां पुराने पासवर्ड का इस्तेमाल करें.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> बाकी</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">डिवाइस व्यवस्थापक आपकी ब्राउज़िंग गतिविधि की निगरानी कर सकता है.</translation>
 <translation id="3181441307743005334">रीस्टार्ट होने में कुछ समय लगेगा</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{किसी डिवाइस से कनेक्ट है}one{# डिवाइस से कनेक्ट है}other{# डिवाइस से कनेक्ट है}}</translation>
+<translation id="3203405173652969239">ऐक्सेस करने का तरीका बदलने की सुविधा चालू है</translation>
 <translation id="3207953481422525583">उपयोगकर्ता सेटिंग</translation>
 <translation id="3217205077783620295">आवाज़ चालू है, टॉगल करने से ऑडियो बंद हो जाएगा.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> और</translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">बैटरी के पूरी तरह से चार्ज होने में<ph name="TIME_REMAINING" /> का समय बाकी है.</translation>
 <translation id="9215934040295798075">वॉलपेपर सेट करें</translation>
 <translation id="921989828232331238">आपके अभिभावक ने आज के लिए यह डिवाइस लॉक कर दिया है</translation>
+<translation id="9220525904950070496">खाता हटाएं</translation>
 <translation id="923686485342484400">साइन आउट करने के लिए दो बार Control Shift Q दबाएं.</translation>
 <translation id="938963181863597773">मेरे कैलेंडर पर आज के लिए क्या काम हैं?</translation>
 <translation id="945522503751344254">सुझाव भेजें</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb
index cdec254..7eff4b7 100644
--- a/ash/strings/ash_strings_hr.xtb
+++ b/ash/strings/ash_strings_hr.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Kliknite za više opcija</translation>
 <translation id="1570871743947603115">Prebacivanje Bluetootha. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Pristup svim vašim aktivnostima u ovoj sesiji</translation>
-<translation id="1608626060424371292">Ukloni tog korisnika</translation>
+<translation id="1632985212731562677">Prekidač za pristup možete onemogućiti tako da otvorite Postavke &gt; Pristupačnost.</translation>
 <translation id="1654477262762802994">Pokrenite glasovni upit</translation>
 <translation id="1658406695958299976">Vaša zaporka i dalje nije mogla biti potvrđena. Napomena: ako ste nedavno promijenili zaporku, vaša nova zaporka primjenjivat će se nakon što se odjavite. Ovdje upotrijebite staru zaporku.</translation>
 <translation id="1677472565718498478">Još <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Administrator uređaja može nadzirati vašu aktivnost pregledavanja.</translation>
 <translation id="3181441307743005334">Ponovno pokretanje može potrajati neko vrijeme</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Povezano s jednim uređajem}one{Povezano s # uređajem}few{Povezano s # uređaja}other{Povezano s # uređaja}}</translation>
+<translation id="3203405173652969239">Omogućen je prekidač za pristup</translation>
 <translation id="3207953481422525583">Korisničke postavke</translation>
 <translation id="3217205077783620295">Zvuk je uključen, prebacivanjem će se isključiti.</translation>
 <translation id="3226991577105957773">Još <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Baterija će se napuniti za <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Postavi pozadinu</translation>
 <translation id="921989828232331238">Tvoj je roditelj zaključao ovaj uređaj za danas</translation>
+<translation id="9220525904950070496">Uklanjanje računa</translation>
 <translation id="923686485342484400">Pritisnite Ctrl, Shift i Q dvaput da biste se odjavili.</translation>
 <translation id="938963181863597773">Što je na mojem kalendaru?</translation>
 <translation id="945522503751344254">Slanje povratnih informacija</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index 7782af1c..40eef570 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Kattintson további lehetőségekért</translation>
 <translation id="1570871743947603115">Bluetooth ki- és bekapcsolása. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Hozzáférés az Ön jelen munkamenetben végzett összes tevékenységéhez</translation>
-<translation id="1608626060424371292">Felhasználó eltávolítása</translation>
+<translation id="1632985212731562677">A Kapcsolóalapú hozzáférés a Beállítások Kisegítő lehetőségek pontjában kapcsolható ki.</translation>
 <translation id="1654477262762802994">Hangalapú lekérdezés indítása</translation>
 <translation id="1658406695958299976">Sajnos a jelszó ellenőrzése még mindig nem sikerült. Megjegyzés: ha a közelmúltban módosította jelszavát, az új jelszó beállítása a kijelentkezés után megy végbe, ezért itt a régi jelszót használja.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> van hátra</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Az eszköz rendszergazdája figyelheti a böngészési tevékenységét.</translation>
 <translation id="3181441307743005334">Az újraindítás eltarthat egy ideig</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Egy eszközhöz csatlakoztatva}other{# eszközhöz csatlakoztatva}}</translation>
+<translation id="3203405173652969239">Kapcsolóalapú hozzáférés bekapcsolva</translation>
 <translation id="3207953481422525583">Felhasználói beállítások</translation>
 <translation id="3217205077783620295">A hang be van kapcsolva, a gombra kattintva elnémítja.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> további</translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">Akkumulátor teljes feltöltéséig hátralévő idő: <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Háttérkép beállítása</translation>
 <translation id="921989828232331238">A szülőd zárolta az eszközt mára</translation>
+<translation id="9220525904950070496">Fiók eltávolítása</translation>
 <translation id="923686485342484400">Nyomja meg a Ctrl Shift Q billentyűkombinációt kétszer a kijelentkezéshez.</translation>
 <translation id="938963181863597773">Mi van a naptáramban?</translation>
 <translation id="945522503751344254">Visszajelzés küldése</translation>
diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb
index 339f7181..0011ca2 100644
--- a/ash/strings/ash_strings_hy.xtb
+++ b/ash/strings/ash_strings_hy.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Լրացուցիչ ընտրանքների համար սեղմեք</translation>
 <translation id="1570871743947603115">Միացնել/անջատել Bluetooth-ը: <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Դիտեք այս աշխատաշրջանում ձեր գործողությունների վիճակագրությունը</translation>
-<translation id="1608626060424371292">Հեռացնել այս պրոֆիլը</translation>
+<translation id="1632985212731562677">Switch Access-ն անջատելու համար անցեք Կարգավորումներ &gt; Հատուկ գործառույթներ։</translation>
 <translation id="1654477262762802994">Հնչեցնել հարցում</translation>
 <translation id="1658406695958299976">Ձեր գաղտնաբառը դեռ չի հաստատվել: Ուշադրություն․ եթե վերջերս փոխել եք ձեր գաղտնաբառը, դուրս գրումից հետո պետք է կիրառել նոր գաղտնաբառը: Օգտագործեք հին գաղտնաբառն այստեղ:</translation>
 <translation id="1677472565718498478">Մնացել է <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Այս սարքի ադմինիստրատորը կարող է տեսնել ձեր այցելությունների պատմությունը:</translation>
 <translation id="3181441307743005334">Վերագործարկման համար կարող է որոշ ժամանակ պահանջվել</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Միացված է մեկ սարքի}one{Միացված է # սարքի}other{Միացված է # սարքի}}</translation>
+<translation id="3203405173652969239">Switch Access-ը միացված է</translation>
 <translation id="3207953481422525583">Օգտատիրոջ կարգավորումներ</translation>
 <translation id="3217205077783620295">Ձայնը միացված է։ Անջատելու համար սեղմեք այս կոճակը։</translation>
 <translation id="3226991577105957773">Եվս <ph name="COUNT" /> ծանուցում</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Մարտկոցի լրիվ լիցքավորման համար մնացել է <ph name="TIME_REMAINING" />։</translation>
 <translation id="9215934040295798075">Ընտրել պաստառ</translation>
 <translation id="921989828232331238">Ձեր ծնողը կողպել է սարքը մեկ օրով</translation>
+<translation id="9220525904950070496">Հեռացնել հաշիվը</translation>
 <translation id="923686485342484400">Դուրս գրվելու համար երկու անգամ սեղմեք Control Shift Q:</translation>
 <translation id="938963181863597773">Ի՞նչ ունեմ պլանավորած։</translation>
 <translation id="945522503751344254">Կարծիք հայտնել</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index e44aee4f..016396f 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Klik untuk opsi lainnya</translation>
 <translation id="1570871743947603115">Alihkan Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Akses semua aktivitas Anda di sesi ini</translation>
-<translation id="1608626060424371292">Hapus pengguna ini</translation>
+<translation id="1632985212731562677">Tombol Akses dapat dinonaktifkan di Setelan &gt; Aksesibilitas.</translation>
 <translation id="1654477262762802994">Mulai kueri suara</translation>
 <translation id="1658406695958299976">Maaf, sandi Anda masih belum dapat diverifikasi. Catatan: jika Anda baru saja mengubah sandi, sandi yang baru akan diterapkan saat Anda logout, gunakan sandi lama di sini.</translation>
 <translation id="1677472565718498478">Sisa waktu <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Admin perangkat dapat memantau aktivitas akses internet Anda.</translation>
 <translation id="3181441307743005334">Mulai ulang dapat memerlukan waktu beberapa saat</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Tersambung ke satu perangkat}other{Tersambung ke # perangkat}}</translation>
+<translation id="3203405173652969239">Tombol Akses diaktifkan</translation>
 <translation id="3207953481422525583">Setelan Pengguna</translation>
 <translation id="3217205077783620295">Volume aktif, mengalihkan tombol akan membisukan audio.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> lagi</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Kurang <ph name="TIME_REMAINING" /> lagi sampai baterai terisi penuh.</translation>
 <translation id="9215934040295798075">Setel wallpaper</translation>
 <translation id="921989828232331238">Orang tuamu mengunci perangkat untuk hari ini</translation>
+<translation id="9220525904950070496">Hapus akun</translation>
 <translation id="923686485342484400">Tekan Control Shift Q dua kali untuk keluar.</translation>
 <translation id="938963181863597773">Apa saja daftar acara di kalender saya?</translation>
 <translation id="945522503751344254">Kirim masukan</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb
index cd57195..36bbad6 100644
--- a/ash/strings/ash_strings_is.xtb
+++ b/ash/strings/ash_strings_is.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Smelltu til að sjá fleiri valkosti</translation>
 <translation id="1570871743947603115">Kveikja/slökkva á Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Fengið aðgang að öllum aðgerðum þínum í þessari lotu</translation>
-<translation id="1608626060424371292">Fjarlægja þennan notanda</translation>
+<translation id="1632985212731562677">Hægt er að slökkva á rofaaðgangi í Stillingar &gt; Aðgengi.</translation>
 <translation id="1654477262762802994">Hefja raddfyrirspurn</translation>
 <translation id="1658406695958299976">Því miður hefur ekki enn tekist að staðfesta aðgangsorðið þitt. Hafðu í huga að ef þú hefur breytt aðgangsorðinu nýlega tekur nýja aðgangsorðið gildi eftir útskráningu. Notaðu gamla aðgangsorðið hér.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> eftir</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Stjórnandi tækisins gæti fylgst með vafravirkni þinni.</translation>
 <translation id="3181441307743005334">Endurræsing gæti tekið nokkurn tíma</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Tengdist við tæki}one{Tengdist við # tæki}other{Tengdist við # tæki}}</translation>
+<translation id="3203405173652969239">Kveikt á rofaaðgangi</translation>
 <translation id="3207953481422525583">Notandastillingar</translation>
 <translation id="3217205077783620295">Kveikt er á hljóði; slökkt verður á því ef hnappurinn er valinn.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> í viðbót</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> eftir þar til rafhlaðan er fullhlaðin.</translation>
 <translation id="9215934040295798075">Velja veggfóður</translation>
 <translation id="921989828232331238">Foreldri þitt læsti tækinu þínu fyrir daginn</translation>
+<translation id="9220525904950070496">Fjarlægja reikning</translation>
 <translation id="923686485342484400">Ýttu tvisvar á Control, Shift og Q til að skrá þig út.</translation>
 <translation id="938963181863597773">Hvað er á dagskránni hjá mér?</translation>
 <translation id="945522503751344254">Senda ábendingu</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb
index 7dbb0da..265864e 100644
--- a/ash/strings/ash_strings_it.xtb
+++ b/ash/strings/ash_strings_it.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Fai clic per visualizzare altre opzioni</translation>
 <translation id="1570871743947603115">Attiva/disattiva Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Accedere a tutte le tue attività in questa sessione.</translation>
-<translation id="1608626060424371292">Rimuovi questo utente</translation>
+<translation id="1632985212731562677">È possibile disattivare Switch Access in Impostazioni &gt; Accessibilità.</translation>
 <translation id="1654477262762802994">Avvia una query vocale</translation>
 <translation id="1658406695958299976">Non è stato ancora possibile verificare la password. Nota: se l'hai modificata di recente, la nuova password verrà applicata quando esci dall'account. Utilizza qui la tua vecchia password.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> rimanenti</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">L'amministratore del dispositivo potrebbe monitorare l'attività di navigazione.</translation>
 <translation id="3181441307743005334">Il riavvio potrebbe richiedere un po' di tempo</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Connesso a un dispositivo}other{Connesso a # dispositivi}}</translation>
+<translation id="3203405173652969239">Funzionalità Switch Access attiva</translation>
 <translation id="3207953481422525583">Impostazioni utente</translation>
 <translation id="3217205077783620295">Il volume è attivo. Selezionalo per disattivarlo.</translation>
 <translation id="3226991577105957773">+ altre <ph name="COUNT" /></translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">Tempo rimanente al caricamento completo della batteria: <ph name="TIME_REMAINING" /></translation>
 <translation id="9215934040295798075">Imposta sfondo</translation>
 <translation id="921989828232331238">Uno dei tuoi genitori ha bloccato il tuo dispositivo per tutto il giorno</translation>
+<translation id="9220525904950070496">Rimuovi account</translation>
 <translation id="923686485342484400">Premi due volte Control Maiusc Q per uscire.</translation>
 <translation id="938963181863597773">Cosa è segnato sul mio calendario?</translation>
 <translation id="945522503751344254">Invia feedback</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index 07fd4f24..d738259 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">לחץ לקבלת אפשרויות נוספות</translation>
 <translation id="1570871743947603115">‏הפעלה או השבתה של Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">גישה לכל הפעילות שלך בסשן הזה</translation>
-<translation id="1608626060424371292">הסר את המשתמש הזה</translation>
+<translation id="1632985212731562677">ניתן להשבית את התכונה 'גישה באמצעות מתג' דרך 'הגדרות' &gt; 'נגישות'.</translation>
 <translation id="1654477262762802994">הפעלה של שאילתה קולית</translation>
 <translation id="1658406695958299976">מצטערים, עדיין אי אפשר לאמת את הסיסמה שלך. חשוב לדעת: אם שינית לאחרונה את הסיסמה, הסיסמה החדשה תיכנס לתוקף רק אחרי יציאה מהחשבון. צריך להשתמש כאן בסיסמה הישנה.</translation>
 <translation id="1677472565718498478">זמן נותר - <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">ייתכן שמנהל המכשיר עוקב אחרי פעילות הגלישה שלך.</translation>
 <translation id="3181441307743005334">ההפעלה מחדש עשויה להימשך זמן מה</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{מחובר למכשיר אחד}two{מחובר ל-# מכשירים}many{מחובר ל-# מכשירים}other{מחובר ל-# מכשירים}}</translation>
+<translation id="3203405173652969239">'גישה באמצעות מתג' מופעלת</translation>
 <translation id="3207953481422525583">הגדרות משתמש</translation>
 <translation id="3217205077783620295">לחצן עוצמת הקול מופעל. אם המצב יוחלף, האודיו יושתק.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> נוספות</translation>
@@ -655,6 +656,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> עד לטעינה מלאה של הסוללה.</translation>
 <translation id="9215934040295798075">הגדר טפט</translation>
 <translation id="921989828232331238">הורה נעל את המכשיר שלך להיום</translation>
+<translation id="9220525904950070496">הסר חשבון</translation>
 <translation id="923686485342484400">‏הקש פעמיים על Control Shift Q כדי לצאת.</translation>
 <translation id="938963181863597773">אירועים קרובים ביומן שלי</translation>
 <translation id="945522503751344254"> שליחת משוב</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index 440f8af..10df12a 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">クリックするとその他のオプションが表示されます</translation>
 <translation id="1570871743947603115">Bluetooth を切り替えます。<ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">このセッションのすべてのアクティビティにアクセスする</translation>
-<translation id="1608626060424371292">このユーザーを削除</translation>
+<translation id="1632985212731562677">スイッチ アクセスは [設定] &gt; [ユーザー補助機能] で無効にできます。</translation>
 <translation id="1654477262762802994">音声検索を開始</translation>
 <translation id="1658406695958299976">パスワードをまだ確認できません。注: パスワードを最近変更した場合、新しいパスワードはログアウトした後に適用されます。こちらでは古いパスワードを使用してください。</translation>
 <translation id="1677472565718498478">残り <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">デバイス管理者が閲覧アクティビティを監視している可能性があります。</translation>
 <translation id="3181441307743005334">再起動には時間がかかる場合があります</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{1 台のデバイスと接続されています}other{# 台のデバイスと接続されています}}</translation>
+<translation id="3203405173652969239">スイッチ アクセスが有効になりました</translation>
 <translation id="3207953481422525583">ユーザー設定</translation>
 <translation id="3217205077783620295">音量はオンになっています。切り替えると音声がミュートされます。</translation>
 <translation id="3226991577105957773">他 <ph name="COUNT" /> 件</translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">充電完了まであと <ph name="TIME_REMAINING" />です。</translation>
 <translation id="9215934040295798075">壁紙を設定</translation>
 <translation id="921989828232331238">保護者の方がこのデバイスを終日ロックしています</translation>
+<translation id="9220525904950070496">アカウントを削除</translation>
 <translation id="923686485342484400">ログアウトするには、Ctrl Shift Q を 2 回押します。</translation>
 <translation id="938963181863597773">カレンダーに予定は入ってる?</translation>
 <translation id="945522503751344254">フィードバックを送信</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb
index b665d447..0c4258e3 100644
--- a/ash/strings/ash_strings_ka.xtb
+++ b/ash/strings/ash_strings_ka.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">დააწკაპუნეთ დამატებითი ვარიანტების სანახავად</translation>
 <translation id="1570871743947603115">Bluetooth-ის გადართვა. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">ამ სესიის დროს თქვენს მთელ აქტივობაზე წვდომა</translation>
-<translation id="1608626060424371292">ამ მომხმარებლის წაშლა</translation>
+<translation id="1632985212731562677">გადამრთველით წვდომის გათიშვა შესაძლებელია აქ: პარამეტრები &gt; მარტივი წვდომა.</translation>
 <translation id="1654477262762802994">ხმოვანი მოთხოვნის დაწყება</translation>
 <translation id="1658406695958299976">სამწუხაროდ, თქვენი პაროლის დადასტურება ვერ მოხერხდა. გაითვალისწინეთ: თუ პაროლი ახლახან შეცვალეთ, ახალი პაროლის გააქტიურდება სისტემიდან გამოსვლის შემდეგ. აქ კი, გთხოვთ, გამოიყენოთ ძველი პაროლი.</translation>
 <translation id="1677472565718498478">დარჩენილია <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">მოწყობილობის ადმინისტრატორს თქვენ მიერ ვების დათვალიერების მონიტორინგი შეუძლია.</translation>
 <translation id="3181441307743005334">გადატვირთვას შეიძლება გარკვეული დრო დასჭირდეს</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{დაკავშირებულია მოწყობილობასთან}other{დაკავშირებულია # მოწყობილობასთან}}</translation>
+<translation id="3203405173652969239">გადამრთველით წვდომა ჩართულია</translation>
 <translation id="3207953481422525583">მომხმარებლის პარამეტრები</translation>
 <translation id="3217205077783620295">ხმა ჩართულია, გადართვისას აუდიო დადუმდება.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> სხვა</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">ბატარეის სრულ დატენამდე დარჩენილია <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">ფონის დაყენება</translation>
 <translation id="921989828232331238">თქვენმა მშობელმა ჩაკეტა მოწყობილობა ერთი დღით</translation>
+<translation id="9220525904950070496">ანგარიშის წაშლა</translation>
 <translation id="923686485342484400">დააჭირეთ Control Shift Q ორჯერ, რათა გამოხვიდეთ.</translation>
 <translation id="938963181863597773">რა მაქვს კალენდარში?</translation>
 <translation id="945522503751344254">შეფასების გაგზავნა</translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb
index 1a968d3a..83fb9d2 100644
--- a/ash/strings/ash_strings_kk.xtb
+++ b/ash/strings/ash_strings_kk.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Қосымша опциялар үшін басыңыз</translation>
 <translation id="1570871743947603115">Bluetooth функциясын қосу/өшіру. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Осы сеанстағы барлық әрекеттеріңізге кіріңіз</translation>
-<translation id="1608626060424371292">Бұл пайдаланушыны алып тастау</translation>
+<translation id="1632985212731562677">Switch Access функциясын "Параметрлер &gt; Accessibility" бөлімінен өшіруге болады.</translation>
 <translation id="1654477262762802994">Дауыстық сұрауды бастау</translation>
 <translation id="1658406695958299976">Өкінішке орай, құпия сөзіңіз расталмады. Ескерту: жақында құпия сөзіңізді өзгерткен болсаңыз, жаңа құпия сөзіңіз жүйеден шыққаннан кейін қолданылады, бұл жерде ескі құпия сөзіңізді пайдаланыңыз.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> қалды</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Құрылғы әкімшісі интернетті шолуыңызға қатысты ақпаратты көре алады.</translation>
 <translation id="3181441307743005334">Қайту іске қосуға біраз уақыт қажет болуы мүмкін</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Құрылғыға жалғанған}other{# құрылғыға жалғанған}}</translation>
+<translation id="3203405173652969239">Switch Access қосылды</translation>
 <translation id="3207953481422525583">Пайдаланушы параметрлері</translation>
 <translation id="3217205077783620295">Дыбыс деңгейі қосылып тұр. Түймені қайта бассаңыз, дауыс өшеді.</translation>
 <translation id="3226991577105957773">Тағы <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> өткен соң, батарея толық зарядталады.</translation>
 <translation id="9215934040295798075">Тұсқағазды орнату</translation>
 <translation id="921989828232331238">Ата-анаңыз құрылғыны бір күнге құлыптап қойды</translation>
+<translation id="9220525904950070496">Есептік жазбаны жою</translation>
 <translation id="923686485342484400">Шығу үшін Control + Shift + Q тіркесімін екі рет басыңыз.</translation>
 <translation id="938963181863597773">Күнтізбемде не бар?</translation>
 <translation id="945522503751344254">Пікір жіберу</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb
index 6e744f3..88c6824 100644
--- a/ash/strings/ash_strings_km.xtb
+++ b/ash/strings/ash_strings_km.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">ចុចសម្រាប់ជម្រើសជាច្រើនទៀត</translation>
 <translation id="1570871743947603115">បិទ/បើកប៊្លូធូស។ <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">ចូលប្រើសកម្មភាព​ទាំងអស់របស់អ្នកនៅក្នុង​រយៈពេលចូលប្រើនេះ</translation>
-<translation id="1608626060424371292">ដកអ្នកប្រើចេញ</translation>
+<translation id="1632985212731562677">អាចបិទ​ការប្រើប៊ូតុងចុច​នៅក្នុងការកំណត់ &gt; ភាពងាយស្រួល។</translation>
 <translation id="1654477262762802994">ចាប់ផ្ដើម​សំណួរ​ជាសំឡេង</translation>
 <translation id="1658406695958299976">សូម​អភ័យទោស ពាក្យ​សម្ងាត់​របស់អ្នក​នៅតែ​មិនអាច​ផ្ទៀងផ្ទាត់​បានដដែល។ ចំណាំ៖ ប្រសិនបើ​អ្នកបាន​ប្តូរពាក្យសម្ងាត់​របស់អ្នក​កាលពីពេលថ្មីៗនេះ ពាក្យ​សម្ងាត់​ថ្មីរបស់អ្នក​នឹងត្រូវ​បាន​ប្រើ នៅ​ពេល​ដែល​អ្នកចេញ​ពី​គណនី សូម​ប្រើពាក្យ​សម្ងាត់​ចាស់​នៅ​ទីនេះ។</translation>
 <translation id="1677472565718498478">នៅសល់ <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">អ្នកគ្រប់គ្រងឧបករណ៍នេះអាចនឹងត្រួតពិនិត្យសកម្មភាពរុករករបស់អ្នក។</translation>
 <translation id="3181441307743005334">ការចាប់ផ្ដើម​ឡើងវិញអាច​ចំណាយ​ពេលបន្តិច</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{បាន​ភ្ជាប់​ទៅ​ឧបករណ៍មួយ}other{បាន​ភ្ជាប់​ទៅ​ឧបករណ៍ #}}</translation>
+<translation id="3203405173652969239">បានបើក​ការប្រើ​ប៊ូតុងចុច</translation>
 <translation id="3207953481422525583">ការ​កំណត់​អ្នកប្រើប្រាស់</translation>
 <translation id="3217205077783620295">កម្រិត​សំឡេង​ត្រូវបានបើក ការបិទ​នឹងបិទសំឡេង។</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> ទៀត</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">នៅសល់ <ph name="TIME_REMAINING" /> ទៀត ទើប​សាកថ្មពេញ។</translation>
 <translation id="9215934040295798075">កំណត់ផ្ទាំងរូបភាព</translation>
 <translation id="921989828232331238">មាតា​បិតា​របស់អ្នក​បាន​ចាក់​សោ​ឧបករណ៍​របស់អ្នក​ពេញ​មួយ​ថ្ងៃ</translation>
+<translation id="9220525904950070496">ដកគណនីចេញ</translation>
 <translation id="923686485342484400">ចុច Control Shift Q ពីរដងដើម្បីចាកចេញ។</translation>
 <translation id="938963181863597773">តើ​មានអ្វី​នៅលើ​ប្រតិទិន​របស់ខ្ញុំ?</translation>
 <translation id="945522503751344254">ផ្ញើមតិ</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index 600bcda4..499d765a 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳಿಗೆ ಕ್ಲಿಕ್ ಮಾಡಿ</translation>
 <translation id="1570871743947603115">ಬ್ಲೂಟೂತ್ ಟಾಗಲ್ ಮಾಡಿ. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">ಈ ಸೆಶನ್‌ನಲ್ಲಿ ನೀವು ನಡೆಸುವ ಎಲ್ಲಾ ಚಟುವಟಿಕೆಯನ್ನು ಪ್ರವೇಶಿಸುವುದು</translation>
-<translation id="1608626060424371292">ಈ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
+<translation id="1632985212731562677">ಪ್ರವೇಶ ಬದಲಾಯಿಸಿ ಅನ್ನು ಸೆಟ್ಟಿಂಗ್‌ಗಳು &gt; ಅಕ್ಸೆಸಿಬಿಲಿಟಿಯಲ್ಲಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು.</translation>
 <translation id="1654477262762802994">ಧ್ವನಿ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳಲು ಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="1658406695958299976">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಇನ್ನೂ ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಗಮನಿಸಿ: ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನೀವು ಇತ್ತೀಚೆಗೆ ಬದಲಾಯಿಸಿದ್ದರೆ, ನೀವು ಸೈನ್ ಔಟ್ ಮಾಡಿದ ನಂತರ ನಿಮ್ಮ ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಜಾರಿಗೆ ತರಲಾಗುತ್ತದೆ, ಇಲ್ಲಿ ಹಳೆಯ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬಳಸಿ.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> ಬಾಕಿ ಉಳಿದಿದೆ</translation>
@@ -105,6 +105,7 @@
 <translation id="2268813581635650749">ಎಲ್ಲವನ್ನೂ ಸೈನ್ ಔಟ್ ಮಾಡಿ</translation>
 <translation id="2277103315734023688">ಮುಂದಕ್ಕೆ ಸೀಕ್ ಮಾಡಿ</translation>
 <translation id="2292698582925480719">ಪ್ರಮಾಣ ತೋರಿಸಿ</translation>
+<translation id="2295777434187870477">ಮೈಕ್ ಆನ್ ಆಗಿದೆ, ಟಾಗಲ್ ಮಾಡುವುದರಿಂದ ಇನ್‌ಪುಟ್ ಮ್ಯೂಟ್ ಆಗುತ್ತದೆ.</translation>
 <translation id="2298170939937364391">ಫುಲ್‌ಸ್ಕ್ರೀನ್ ವರ್ಧಕವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಅದನ್ನು ಟಾಗಲ್‌ ಆಫ್‌ ಮಾಡಲು Ctrl+Search+M ಅನ್ನು ಒತ್ತಿರಿ.</translation>
 <translation id="2302092602801625023">ಈ ಖಾತೆಯನ್ನು Family Link ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗಿದೆ</translation>
 <translation id="2303600792989757991">ಟಾಗಲ್ ವಿಂಡೋ ಅವಲೋಕನ</translation>
@@ -138,6 +139,7 @@
 <translation id="2658778018866295321">ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು ಡ್ರ್ಯಾಗ್ ಮಾಡಿ</translation>
 <translation id="2700493154570097719">ನಿಮ್ಮ ಕೀಬೋರ್ಡ್ ಅನ್ನು ಹೊಂದಿಸಿ</translation>
 <translation id="2704781753052663061">ಇತರ ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಗೆ ಸೇರಿ</translation>
+<translation id="2705001408393684014">ಮೈಕ್ ಅನ್ನು ಟಾಗಲ್ ಮಾಡಿ. <ph name="STATE_TEXT" /></translation>
 <translation id="2718395828230677721">ನೈಟ್ ಲೈಟ್</translation>
 <translation id="2727977024730340865">ಕಡಿಮೆ ವಿದ್ಯುತ್ ಚಾರ್ಜರ್‌ಗೆ ಪ್ಲಗ್ ಮಾಡಲಾಗಿದೆ. ಬ್ಯಾಟರಿ ಚಾರ್ಜಿಂಗ್ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿಲ್ಲದಿರಬಹುದು.</translation>
 <translation id="2792498699870441125">Alt+ಹುಡುಕಾಟ</translation>
@@ -180,6 +182,7 @@
 <translation id="3154351730702813399">ಸಾಧನದ ನಿರ್ವಾಹಕರು ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು.</translation>
 <translation id="3181441307743005334">ಮರುಪ್ರಾರಂಭಗೊಳ್ಳಲು ಸ್ವಲ್ಪ ಸಮಯ ಬೇಕಾಗಬಹುದು</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{ಒಂದು ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ}one{# ಸಾಧನಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ}other{# ಸಾಧನಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ}}</translation>
+<translation id="3203405173652969239">ಪ್ರವೇಶ ಬದಲಾಯಿಸುವಿಕೆ ಸಕ್ರಿಯಗೊಂಡಿದೆ</translation>
 <translation id="3207953481422525583">ಬಳಕೆದಾರರ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="3217205077783620295">ವಾಲ್ಯೂಮ್ ಆನ್ ಆಗಿದೆ, ಟಾಗಲ್ ಮಾಡುವುದರಿಂದ ಆಡಿಯೊ ಮ್ಯೂಟ್ ಆಗುತ್ತದೆ.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> ಹೆಚ್ಚು</translation>
@@ -296,6 +299,7 @@
 <translation id="4665114317261903604">'ಅಡಚಣೆ ಮಾಡಬೇಡಿ' ಸ್ಥಿತಿಯನ್ನು ಟಾಗಲ್ ಮಾಡಿ. <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">ಪೋಷಕ ಕೋಡ್ ಬಳಸಿಕೊಂಡು ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಿ</translation>
 <translation id="4702647871202761252">ಗೌಪ್ಯತೆ ಸ್ಕ್ರೀನ್ ಆಫ್ ಆಗಿದೆ</translation>
+<translation id="4705716602320768426">ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸಿ</translation>
 <translation id="4710243778082831592">IME ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="4731797938093519117">ಪೋಷಕ ಪ್ರವೇಶ ಬಟನ್‌</translation>
 <translation id="4734965478015604180">ಅಡ್ಡ</translation>
@@ -376,6 +380,7 @@
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">ಆನ್‌</translation>
+<translation id="5920710855273935292">ಮೈಕ್ ಅನ್ನು ಮ್ಯೂಟ್ ಮಾಡಲಾಗಿದೆ.</translation>
 <translation id="5947494881799873997">ಹಿಂತಿರುಗಿಸು</translation>
 <translation id="595202126637698455">ಕಾರ್ಯಕ್ಷಮತೆ ಟ್ರೇಸಿಂಗ್ ಸಕ್ರಿಯಗೊಂಡಿದೆ</translation>
 <translation id="5957083217255311415">ಮೊಬೈಲ್ ಡೇಟಾ ಆಫ್ ಮಾಡಲಾಗಿದೆ.</translation>
@@ -648,6 +653,7 @@
 <translation id="9211681782751733685">ಬ್ಯಾಟರಿ ಸಂಪೂರ್ಣವಾಗಿ ಚಾರ್ಜ್ ಆಗಲು <ph name="TIME_REMAINING" /> ಉಳಿದಿದೆ.</translation>
 <translation id="9215934040295798075">ವಾಲ್‌ಪೇಪರ್‌ ಹೊಂದಿಸಿ</translation>
 <translation id="921989828232331238">ಈ ದಿನ ನಿಮ್ಮ ಪೋಷಕರು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಲಾಕ್ ಮಾಡಿದ್ದಾರೆ</translation>
+<translation id="9220525904950070496">ಖಾತೆಯನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="923686485342484400">ಸೈನ್ ಔಟ್ ಮಾಡಲು Control Shift Q ಅನ್ನು ಎರಡುಬಾರಿ ಒತ್ತಿರಿ.</translation>
 <translation id="938963181863597773">ನನ್ನ ಕ್ಯಾಲೆಂಡರ್‌ನಲ್ಲಿ ಏನಿದೆ?</translation>
 <translation id="945522503751344254">ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಕಳುಹಿಸಿ</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index f25e2e1..87ea988 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">더 많은 옵션을 확인하려면 클릭하세요.</translation>
 <translation id="1570871743947603115">블루투스를 전환합니다. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">이 세션의 모든 활동에 액세스</translation>
-<translation id="1608626060424371292">이 사용자 삭제</translation>
+<translation id="1632985212731562677">설정 &gt; 접근성에서 스위치 제어를 사용 중지할 수 있습니다.</translation>
 <translation id="1654477262762802994">음성 검색 시작</translation>
 <translation id="1658406695958299976">비밀번호를 여전히 확인할 수 없습니다. 참고: 최근에 비밀번호를 변경한 경우 로그아웃해야 새로운 비밀번호가 적용됩니다. 이전 비밀번호를 사용해 보세요.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> 남음</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">기기 관리자가 탐색 활동을 모니터링할 수 있습니다.</translation>
 <translation id="3181441307743005334">다시 시작하는 데 시간이 다소 걸릴 수 있습니다</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{기기 1개에 연결됨}other{기기 #개에 연결됨}}</translation>
+<translation id="3203405173652969239">스위치 제어 사용 중</translation>
 <translation id="3207953481422525583">사용자 설정</translation>
 <translation id="3217205077783620295">볼륨이 켜져 있으며 전환하면 오디오가 꺼집니다.</translation>
 <translation id="3226991577105957773">외 <ph name="COUNT" />개</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">배터리 충전이 완료될 때까지 남은 시간은 <ph name="TIME_REMAINING" />입니다.</translation>
 <translation id="9215934040295798075">배경화면 설정</translation>
 <translation id="921989828232331238">부모님이 오늘 하루 동안 기기를 잠갔습니다.</translation>
+<translation id="9220525904950070496">계정 삭제</translation>
 <translation id="923686485342484400">로그아웃하려면 Ctrl+Shift+Q를 두 번 누릅니다.</translation>
 <translation id="938963181863597773">오늘 내 일정이 어떻게 돼?</translation>
 <translation id="945522503751344254">의견 보내기</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb
index b1979d1..573ffa5 100644
--- a/ash/strings/ash_strings_ky.xtb
+++ b/ash/strings/ash_strings_ky.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Көбүрөөк опциялар үчүн чыкылдатыңыз</translation>
 <translation id="1570871743947603115">Bluetooth'ду өчүрүү/күйгүзүү. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Бул сеанста аткарган иш-аракеттериңизди көрөт</translation>
-<translation id="1608626060424371292">Бул колдонуучуну алып салуу</translation>
+<translation id="1632985212731562677">Switch Access функциясын Жөндөөлөр &gt; Атайын мүмкүнчүлүктөр бөлүмүнөн өчүрүп коюуга болот.</translation>
 <translation id="1654477262762802994">Айтып издеп баштоо</translation>
 <translation id="1658406695958299976">Кечиресиз, сырсөзүңүздү текшерүү дагы эле мүмкүн болбой жатат. Эскертүү: эгер сырсөзүңүздү жакында өзгөрткөн болсоңуз, жаңы сырсөзүңүз чыгып кайра киргениңизден кийин гана колдонулат, андыктан бул жерде эски сырсөздү колдонуңуз.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> калды</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Түзмөктүн администратору кайсы вебсайттарга киргениңизди көрө алат.</translation>
 <translation id="3181441307743005334">Өчүрүп күйгүзүү бир нече убакытка созулушу мүмкүн</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Бир түзмөккө туташты}other{# түзмөккө туташты}}</translation>
+<translation id="3203405173652969239">Switch Access функциясы иштетилди</translation>
 <translation id="3207953481422525583">Колдонуучунун жөндөөлөрү</translation>
 <translation id="3217205077783620295">Үнү чыгып турат, өчүрүү менен аудионун үнү басылат.</translation>
 <translation id="3226991577105957773">+ дагы <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Батарея <ph name="TIME_REMAINING" /> кийин толот.</translation>
 <translation id="9215934040295798075">Тушкагаз коюу</translation>
 <translation id="921989828232331238">Ата-энеңиз түзмөгүңүздү бир күнгө кулпулап койду</translation>
+<translation id="9220525904950070496">Аккаунтту алып салуу</translation>
 <translation id="923686485342484400">Чыгуу үчүн эки ирет Control Shift Q басыңыз.</translation>
 <translation id="938963181863597773">Жылнаамада эмне бар?</translation>
 <translation id="945522503751344254">Пикириңизди билдириңиз</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb
index fc2399b..078bc4a4 100644
--- a/ash/strings/ash_strings_lo.xtb
+++ b/ash/strings/ash_strings_lo.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">ຄລິກສຳລັບຕົວເລືອກເພີ່ມເຕີມ</translation>
 <translation id="1570871743947603115">ປິດເປີດ Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">ເຂົ້າເຖິງທຸກການເຄື່ອນໄຫວຂອງທ່ານໃນເຊດຊັນນີ້</translation>
-<translation id="1608626060424371292">ເອົາ​ຜູ້​ໃຊ້​ນີ້ອອກໄປ</translation>
+<translation id="1632985212731562677">ປິດການນຳໃຊ້ການເຂົ້າເຖິງດ້ວຍປຸ່ມກົດໄດ້ໃນການຕັ້ງຄ່າ &gt; ການຊ່ວຍເຂົ້າເຖິງ.</translation>
 <translation id="1654477262762802994">ເລີ່ມຄຳຊອກຫາດ້ວຍສຽງ</translation>
 <translation id="1658406695958299976">ຂໍອະໄພ, ຍັງບໍ່ສາມາດພິສູດຢືນຢັນລະຫັດຜ່ານຂອງທ່ານໄດ້. ໝາຍເຫດ: ຖ້າທ່ານປ່ຽນລະຫັດຜ່ານຂອງທ່ານເມື່ອບໍ່ດົນມານີ້, ຈະນຳໃຊ້ລະຫັດຜ່ານໃໝ່ຂອງທ່ານເມື່ອທ່ານອອກຈາກລະບົບແລ້ວ, ກະລຸນາໃຊ້ລະຫັດເກົ່າຢູ່ບ່ອນນີ້.</translation>
 <translation id="1677472565718498478">ຍັງເຫຼືອ <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">ຜູ້ເບິ່ງແຍງລະບົບອາດຈະຕິດຕາມເບິ່ງການເຄື່ອນໄຫວທ່ອງເວັບຂອງທ່ານ.</translation>
 <translation id="3181441307743005334">ການຣິສະຕາດອາດຈະໃຊ້ເວລາຄາວໜຶ່ງ</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{ເຊື່ອມຕໍ່ກັບໜຶ່ງອຸປະກອນແລ້ວ}other{ເຊື່ອມຕໍ່ກັບ # ອຸປະກອນແລ້ວ}}</translation>
+<translation id="3203405173652969239">ເປີດການນຳໃຊ້ການເຂົ້າເຖິງດ້ວຍປຸ່ມກົດ</translation>
 <translation id="3207953481422525583">ຕັ້ງຄ່າຜູ້ໃຊ້</translation>
 <translation id="3217205077783620295">ລະດັບສຽງເປີດຢູ່, ການສະຫຼັບຈະປິດສຽງ.</translation>
 <translation id="3226991577105957773">ອີກ +<ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">ຍັງເຫຼືອ <ph name="TIME_REMAINING" /> ຈົນກວ່າແບັດເຕີຣີຈະສາກເຕັມ.</translation>
 <translation id="9215934040295798075">ຕັ້ງພາບພື້ນຫຼັງ</translation>
 <translation id="921989828232331238">ພໍ່ແມ່ຂອງທ່ານໄດ້ລັອກອຸປະກອນຂອງທ່ານໄວ້ແລ້ວສຳລັບມື້ນີ້</translation>
+<translation id="9220525904950070496">ລົບບັນ​ຊີອອກ</translation>
 <translation id="923686485342484400">ກົດ Control Shift Q ສອງຄັ້ງເພື່ອອອກຈາກລະບົບ.</translation>
 <translation id="938963181863597773">ມີຫຍັງໃນປະຕິທິນຂອງຂ້ອຍ?</translation>
 <translation id="945522503751344254">ສົ່ງ​ຄໍາ​ຄິດ​​ເຫັນ</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index f09efdf..f35f7eea 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Spustelėkite, jei reikia daugiau parinkčių</translation>
 <translation id="1570871743947603115">Perjungti „Bluetooth“. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Pasiekti visą šios sesijos veiklą</translation>
-<translation id="1608626060424371292">Pašalinti šį naudotoją</translation>
+<translation id="1632985212731562677">Prieigos jungikliu funkciją galima išjungti skiltyje „Nustatymai“ &gt; „Pritaikomumas“.</translation>
 <translation id="1654477262762802994">Pradėti užklausą balsu</translation>
 <translation id="1658406695958299976">Deja, jūsų slaptažodžio patvirtinti vis tiek nepavyko. Pastaba: jei neseniai pakeitėte slaptažodį, naujas slaptažodis bus taikomas, kai atsijungsite. Čia naudokite senąjį slaptažodį.</translation>
 <translation id="1677472565718498478">Liko <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Įrenginio administratorius gali stebėti jūsų naršymo veiklą.</translation>
 <translation id="3181441307743005334">Paleidimas iš naujo gali šiek tiek užtrukti</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Prisijungta prie įrenginio}one{Prisijungta prie # įrenginio}few{Prisijungta prie # įrenginių}many{Prisijungta prie # įrenginio}other{Prisijungta prie # įrenginių}}</translation>
+<translation id="3203405173652969239">Prieiga jungikliu įgalinta</translation>
 <translation id="3207953481422525583">Naudotojo nustatymai</translation>
 <translation id="3217205077783620295">Garsumas įjungtas; perjungiant garsas bus nutildytas.</translation>
 <translation id="3226991577105957773">Dar <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Iki akumuliatoriaus įkrovimo liko <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Nustatyti ekrano foną</translation>
 <translation id="921989828232331238">Vienas iš tėvų užrakino įrenginį dienai</translation>
+<translation id="9220525904950070496">Pašalinti paskyrą</translation>
 <translation id="923686485342484400">Jei norite atsijungti, du kartus paspauskite „Control“ + „Shift“ + Q.</translation>
 <translation id="938963181863597773">„What's on my calendar?“ (Kas mano kalendoriuje?)</translation>
 <translation id="945522503751344254">Siųsti atsiliepimą</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb
index 7f53a422..d35f681 100644
--- a/ash/strings/ash_strings_lv.xtb
+++ b/ash/strings/ash_strings_lv.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Noklikšķiniet, lai skatītu citas iespējas.</translation>
 <translation id="1570871743947603115">Pārslēgt Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Piekļūt visām jūsu darbībām šīs sesijas laikā</translation>
-<translation id="1608626060424371292">Noņemt šo lietotāju</translation>
+<translation id="1632985212731562677">Slēdžu piekļuvi var atspējot sadaļā Iestatījumi &gt; Pieejamība.</translation>
 <translation id="1654477262762802994">Sākt balss vaicājumu</translation>
 <translation id="1658406695958299976">Diemžēl jūsu paroli joprojām nevarēja verificēt. Ņemiet vērā: ja nesen mainījāt paroli, jaunā parole tiks lietota pēc izrakstīšanās. Lūdzu, šeit izmantojiet iepriekšējo paroli.</translation>
 <translation id="1677472565718498478">Atlikušais laiks: <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Ierīces administrators var uzraudzīt jūsu pārlūkošanas darbības.</translation>
 <translation id="3181441307743005334">Restartēšana var ilgt kādu brīdi</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Savienots ar ierīci}zero{Savienots ar # ierīcēm}one{Savienots ar # ierīci}other{Savienots ar # ierīcēm}}</translation>
+<translation id="3203405173652969239">Iespējota slēdžu piekļuve</translation>
 <translation id="3207953481422525583">Lietotāja iestatījumi</translation>
 <translation id="3217205077783620295">Skaņa ir ieslēgta. Pārslēdzot tiks izslēgta skaņa.</translation>
 <translation id="3226991577105957773">vēl <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Līdz pilnīgai akumulatora uzlādei atlikušais laiks: <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Iestatīt fona tapeti</translation>
 <translation id="921989828232331238">Jūsu vecāki bloķēja jūsu ierīci šai dienai</translation>
+<translation id="9220525904950070496">Konta noņemšana</translation>
 <translation id="923686485342484400">Lai izrakstītos, divas reizes nospiediet taustiņu kombināciju Ctrl+Shift+Q.</translation>
 <translation id="938963181863597773">Kas ir atrodams manā kalendārā?</translation>
 <translation id="945522503751344254">Sūtīt atsauksmes</translation>
diff --git a/ash/strings/ash_strings_mk.xtb b/ash/strings/ash_strings_mk.xtb
index b0cf52bf..c7d6644 100644
--- a/ash/strings/ash_strings_mk.xtb
+++ b/ash/strings/ash_strings_mk.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Кликни за повеќе опции</translation>
 <translation id="1570871743947603115">Вклучи/исклучи Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Пристапете до целата ваша активност во сесијава</translation>
-<translation id="1608626060424371292">Отстрани го овој корисник</translation>
+<translation id="1632985212731562677">Пристапот со прекинувачи може да се оневозможи во „Поставки &gt; Пристапност“.</translation>
 <translation id="1654477262762802994">Започнете гласовно барање</translation>
 <translation id="1658406695958299976">За жал, вашата лозинка сепак не можеше да се потврди. Белешка: ако сте ја промениле лозинката неодамна, новата лозинка ќе се примени откако ќе се одјавите. Користете ја старата лозинка тука.</translation>
 <translation id="1677472565718498478">Уште <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Администраторот на уредот може да ви го следи прелистувањето.</translation>
 <translation id="3181441307743005334">Рестартирањето може да потрае</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Поврзан со уред}one{Поврзан со # уред}other{Поврзан со # уреди}}</translation>
+<translation id="3203405173652969239">„Пристапот со прекинувачи“ е овозможен</translation>
 <translation id="3207953481422525583">Поставки на корисникот</translation>
 <translation id="3217205077783620295">Јачината на звук е вклучена. Ако смените, ќе се исклучи звукот на аудиото.</translation>
 <translation id="3226991577105957773">и уште <ph name="COUNT" /></translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">Уште <ph name="TIME_REMAINING" /> до целосно полнење на батеријата.</translation>
 <translation id="9215934040295798075">Постави тапет</translation>
 <translation id="921989828232331238">Вашиот родител го заклучи уредот за денес</translation>
+<translation id="9220525904950070496">Отстрани сметка</translation>
 <translation id="923686485342484400">Притиснете Control Shift Q двапати за да се одјавите.</translation>
 <translation id="938963181863597773">Што има во мојот календар?</translation>
 <translation id="945522503751344254">Испратете повратни информации</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index 6cafafb5..683c9a8 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -55,7 +55,6 @@
 <translation id="1550523713251050646">കൂടുതൽ ഓപ്‌ഷനുകൾക്ക് ക്ലിക്ക് ചെയ്യുക</translation>
 <translation id="1570871743947603115">Bluetooth മാറ്റുക. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">ഈ സെഷനിൽ നിങ്ങളുടെ എല്ലാ ആക്‌റ്റിവിറ്റികളും ആക്‌സസ് ചെയ്യുക</translation>
-<translation id="1608626060424371292">ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യുക</translation>
 <translation id="1654477262762802994">ഒരു ശബ്‌ദ ചോദ്യം ആരംഭിക്കുക</translation>
 <translation id="1658406695958299976">ക്ഷമിക്കണം, ഇപ്പോഴും നിങ്ങളുടെ പാസ്‌വേഡ് പരിശോധിച്ചുറപ്പിക്കാൻ കഴിഞ്ഞില്ല. ശ്രദ്ധിക്കുക: സമീപകാലത്ത് നിങ്ങൾ പാസ്‌വേഡ് മാറ്റിയിട്ടുണ്ടെങ്കിൽ, സൈൻ ഔട്ട് ചെയ്‌തുകഴിഞ്ഞാൽ പുതിയ പാസ്‌വേഡ് ബാധകമാകും, ഇവിടെ പഴയ പാസ്‌വേഡ് ഉപയോഗിക്കുക.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> ശേഷിക്കുന്നു</translation>
@@ -105,6 +104,7 @@
 <translation id="2268813581635650749">എല്ലാം സൈൻ ഔട്ട് ചെയ്യുക</translation>
 <translation id="2277103315734023688">മുന്നോട്ട് നീക്കുക</translation>
 <translation id="2292698582925480719">ഡിസ്പ്ലേ സ്കെയിൽ</translation>
+<translation id="2295777434187870477">മൈക്ക് ഓണാണ്, മാറ്റുന്നത് ഓഡിയോയെ മ്യൂട്ട് ചെയ്യും.</translation>
 <translation id="2298170939937364391">പൂർണ്ണ സ്ക്രീൻ മാഗ്നിഫയർ പ്രവർത്തനക്ഷമമാക്കി. ഇത് ഓഫാക്കാൻ Ctrl+തിരയൽ+M വീണ്ടും അമർത്തുക.</translation>
 <translation id="2302092602801625023">ഈ അക്കൗണ്ട് Family Link ഉപയോഗിച്ച് മാനേജ് ചെയ്യുന്നു</translation>
 <translation id="2303600792989757991">വിൻഡോ ചുരുക്കവിവരണം ടോഗിൾ ചെയ്യുക</translation>
@@ -138,6 +138,7 @@
 <translation id="2658778018866295321">ക്ലിക്ക് ചെയ്‌ത് വലിച്ചിടുക</translation>
 <translation id="2700493154570097719">നിങ്ങളുടെ കീബോഡ് സജ്ജീകരിക്കുക</translation>
 <translation id="2704781753052663061">മറ്റ് വൈഫൈ നെറ്റ്‍വർക്കുകളിൽ ചേരുക</translation>
+<translation id="2705001408393684014">മൈക്ക് മാറ്റുക. <ph name="STATE_TEXT" /></translation>
 <translation id="2718395828230677721">നൈറ്റ് ലൈറ്റ്</translation>
 <translation id="2727977024730340865">കുറഞ്ഞ തോതിൽ വൈദ്യുതി പ്രവഹിക്കുന്ന ചാർജ്ജറിലേക്ക് പ്ലഗ് ചെയ്‌തിരിക്കുന്നു. ബാറ്ററി ചാർജുചെയ്യൽ വിശ്വസനീയമാകണമെന്നില്ല.</translation>
 <translation id="2792498699870441125">Alt+തിരയൽ</translation>
@@ -296,6 +297,7 @@
 <translation id="4665114317261903604">ശല്യപ്പെടുത്തരുത് മോഡ് മാറ്റുക. <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">രക്ഷാകർതൃ കോഡ് ഉപയോഗിച്ച് ഉപകരണം അൺലോക്ക് ചെയ്യുക</translation>
 <translation id="4702647871202761252">സ്വകാര്യതാ സ്‌ക്രീൻ ഓഫാണ്</translation>
+<translation id="4705716602320768426">ഫീഡ്‌ബാക്ക് നൽകുക</translation>
 <translation id="4710243778082831592">IME ക്രമീകരണം</translation>
 <translation id="4731797938093519117">രക്ഷാകർതൃ ആക്‌സസ്</translation>
 <translation id="4734965478015604180">സമാന്തരം</translation>
@@ -376,6 +378,7 @@
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">ഓൺ ചെയ്യുക</translation>
+<translation id="5920710855273935292">മൈക്ക് മ്യൂട്ട് ചെയ്തിരിക്കുന്നു.</translation>
 <translation id="5947494881799873997">പഴയപടിയാക്കുക</translation>
 <translation id="595202126637698455">പ്രകടനം പിന്തുടരൽ പ്രവർത്തനക്ഷമമാക്കി</translation>
 <translation id="5957083217255311415">മൊബൈൽ ഡാറ്റ ഓഫാക്കി.</translation>
@@ -647,6 +650,7 @@
 <translation id="9211681782751733685">ബാറ്ററി പൂർണ്ണമായി ചാർജ് ആകാൻ <ph name="TIME_REMAINING" /> ശേഷിക്കുന്നു.</translation>
 <translation id="9215934040295798075">വാൾപേപ്പർ സജ്ജമാക്കുക</translation>
 <translation id="921989828232331238">നിങ്ങളുടെ രക്ഷിതാവ് ഇന്നത്തേക്ക് ഉപകരണം ലോക്ക് ചെയ്‌തു</translation>
+<translation id="9220525904950070496">അക്കൗണ്ട് നീക്കംചെയ്യൽ</translation>
 <translation id="923686485342484400">സൈൻ ഔട്ട് ചെയ്യുന്നതിന് രണ്ടു‌തവണ Control Shift Q അമർത്തുക.</translation>
 <translation id="938963181863597773">എന്റെ കലണ്ടറിൽ എന്താണുള്ളത്?</translation>
 <translation id="945522503751344254">ഫീഡ്ബാക്ക് അയയ്ക്കുക</translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb
index 45ed95a..f5bbc340 100644
--- a/ash/strings/ash_strings_mn.xtb
+++ b/ash/strings/ash_strings_mn.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Бусад сонголтыг харахын тулд дарах</translation>
 <translation id="1570871743947603115">Bluetooth-г унтрааж/асаана уу. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Энэ харилцан үйлдлийн бүх үйл ажиллагаандаа хандах</translation>
-<translation id="1608626060424371292">Энэ хэрэглэгчийг устга</translation>
+<translation id="1632985212731562677">Сэлгүүрийг Тохиргоо &gt; Хандалт хэсэгт идэвхгүй болгох боломжтой.</translation>
 <translation id="1654477262762802994">Дуут асуулга эхлүүлэх</translation>
 <translation id="1658406695958299976">Уучлаарай, таны нууц үгийг баталгаажуулах боломжгүй байна. Санамж: Хэрэв та нууц үгээ саяхан сольсон бол та гарсны дараагаас эхлэн шинэ нууц үгээ ашиглах болно. Хуучин нууц үгээ энд ашиглана уу.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> үлдсэн</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Төхөөрөмжийн админ таны хайлтын үйл ажиллагааг хянаж байж магадгүй.</translation>
 <translation id="3181441307743005334">Дахин эхлүүлэхэд хэдэн хором шаардлагатай байж болзошгүй</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Төхөөрөмжид холбогдсон}other{# төхөөрөмжид холбогдсон}}</translation>
+<translation id="3203405173652969239">Сэлгүүрийг идэвхжүүлсэн</translation>
 <translation id="3207953481422525583">Хэрэглэгчийн тохиргоо</translation>
 <translation id="3217205077783620295">Дууг нээсэн, унтраах нь аудионы дууг хаана.</translation>
 <translation id="3226991577105957773">Бусад +<ph name="COUNT" /></translation>
@@ -653,6 +654,7 @@
 <translation id="9211681782751733685">Батарейг бүрэн цэнэглэхэд <ph name="TIME_REMAINING" /> үлдсэн байна.</translation>
 <translation id="9215934040295798075">Дэлгэцийн зураг тохируулах</translation>
 <translation id="921989828232331238">Таны эцэг эх таны төхөөрөмжийг өдрийн турш түгжсэн байна</translation>
+<translation id="9220525904950070496">Бүртгэлийг хасах</translation>
 <translation id="923686485342484400">Гарахын тулд Control Shift Q дээр хоёр удаа дарна уу.</translation>
 <translation id="938963181863597773">Миний календарьд юу байна вэ?</translation>
 <translation id="945522503751344254">Санал хүсэлт илгээх</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index 3e0ac7e8a..05fd699 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">अधिक पर्यायांसाठी क्लिक करा</translation>
 <translation id="1570871743947603115">ब्लूटूथ टॉगल करा. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">या सेशनमध्ये तुमची सर्व अ‍ॅक्टिव्हिटी अ‍ॅक्सेस करा</translation>
-<translation id="1608626060424371292">हा वापरकर्ता काढून टाका</translation>
+<translation id="1632985212731562677">सेटिंग्ज &gt; अ‍ॅक्सेसिबिलिटी मध्ये स्विच अ‍ॅक्सेस बंद केले जाऊ शकते.</translation>
 <translation id="1654477262762802994">व्हॉइस क्वेरी सुरू करा</translation>
 <translation id="1658406695958299976">सॉरी, तुमच्या पासवर्डची पडताळणी अजूनही झालेली नाही. टिप: तुम्ही तुमचा पासवर्ड अलीकडेच बदलला असल्यास, तुम्ही साइन आउट केल्यानंतर तुमचा नवीन पासवर्ड लागू केला जाईल, कृपया येथे जुना पासवर्ड वापरा.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> शिल्लक</translation>
@@ -105,6 +105,7 @@
 <translation id="2268813581635650749">सर्व साइन आउट करा</translation>
 <translation id="2277103315734023688">पुढे जा</translation>
 <translation id="2292698582925480719">स्केल दाखवा</translation>
+<translation id="2295777434187870477">माइक सुरू आहे, टॉगल केल्याने इनपुट म्यूट होईल.</translation>
 <translation id="2298170939937364391">फुल-स्क्रीन मॅग्निफायर सुरू केला आहे. तो टॉगल करून बंद करण्यासाठी पुन्हा Ctrl+Search+M दाबा.</translation>
 <translation id="2302092602801625023">हे खाते Family Link द्वारे व्यवस्थापित केले जाते</translation>
 <translation id="2303600792989757991">विंडो विहंगावलोकन टॉगल करा</translation>
@@ -138,6 +139,7 @@
 <translation id="2658778018866295321">क्लिक आणि ड्रॅग करा</translation>
 <translation id="2700493154570097719">तुमचा कीबोर्ड सेट करा</translation>
 <translation id="2704781753052663061">इतर वाय-फाय नेटवर्कमध्ये सामील व्हा</translation>
+<translation id="2705001408393684014">माईक टॉगल करा. <ph name="STATE_TEXT" /></translation>
 <translation id="2718395828230677721">रात्रीचा प्रकाश</translation>
 <translation id="2727977024730340865">एका निम्न-उर्जेच्या चार्जरवर प्लग इन केले. बॅटरी चार्जिंग विश्वसनीय असू शकत नाही.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
@@ -180,6 +182,7 @@
 <translation id="3154351730702813399">डिव्हाइस प्रशासक कदाचित आपल्या ब्राउझिंग क्रियाकलापाचे परीक्षण करू शकतो.</translation>
 <translation id="3181441307743005334">रीस्टार्टला थोडा वेळ लागू शकतो</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{डिव्हाइसशी कनेक्ट केले}other{# डिव्हाइसशी कनेक्ट केले}}</translation>
+<translation id="3203405173652969239">स्विच अ‍ॅक्सेस सुरू केले</translation>
 <translation id="3207953481422525583">वापरकर्ता सेटिंग्ज</translation>
 <translation id="3217205077783620295">व्हॉल्यूम सुरू आहे, टॉगल केल्याने ऑडिओ म्यूट होईल.</translation>
 <translation id="3226991577105957773">आणखी +<ph name="COUNT" /></translation>
@@ -296,6 +299,7 @@
 <translation id="4665114317261903604">व्यत्यय आणू नका टॉगल करा. <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">पालक कोडने डिव्हाइस अनलॉक करा</translation>
 <translation id="4702647871202761252">गोपनीयता स्क्रीन बंद आहे</translation>
+<translation id="4705716602320768426">फाइल फीडबॅक</translation>
 <translation id="4710243778082831592">IME सेटिंग्ज</translation>
 <translation id="4731797938093519117">पालक अ‍ॅक्सेस</translation>
 <translation id="4734965478015604180">आडवा</translation>
@@ -376,6 +380,7 @@
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">चालू</translation>
+<translation id="5920710855273935292">माईक म्यूट केलेला आहे.</translation>
 <translation id="5947494881799873997">परत करा</translation>
 <translation id="595202126637698455">कार्यप्रदर्शन ट्रेसिंग सक्षम केले</translation>
 <translation id="5957083217255311415">मोबाइल डेटा बंद केला आहे.</translation>
@@ -647,6 +652,7 @@
 <translation id="9211681782751733685">बॅटरी पूर्णपणे चार्ज होण्यासाठी <ph name="TIME_REMAINING" /> तास बाकी.</translation>
 <translation id="9215934040295798075">वॉलपेपर सेट करा</translation>
 <translation id="921989828232331238">तुमच्या पालकाने आज दिवसभरासाठी तुमचे डिव्हाइस लॉक केले</translation>
+<translation id="9220525904950070496">खाते काढून टाका</translation>
 <translation id="923686485342484400">साइन आउट करण्यासाठी Control Shift Q दोनदा दाबा.</translation>
 <translation id="938963181863597773">माझ्या कॅलेंडरमधील इव्हेंट काय आहेत?</translation>
 <translation id="945522503751344254">अभिप्राय पाठवा</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index 5e88efce..6ec067f5 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Klik untuk mendapatkan lagi pilihan</translation>
 <translation id="1570871743947603115">Togol Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Akses semua aktiviti anda dalam sesi ini</translation>
-<translation id="1608626060424371292">Alih keluar pengguna ini</translation>
+<translation id="1632985212731562677">Akses Suis boleh dilumpuhkan dalam Tetapan &gt; Kebolehaksesan.</translation>
 <translation id="1654477262762802994">Mulakan pertanyaan suara</translation>
 <translation id="1658406695958299976">Maaf, kata laluan anda masih tidak dapat disahkan. Perhatian: jika anda menukar kata laluan anda baru-baru ini, kata laluan baharu anda akan digunakan apabila anda log keluar, sila gunakan kata laluan yang lama di sini.</translation>
 <translation id="1677472565718498478">Berbaki <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Pentadbir peranti boleh memantau aktiviti penyemakan imbas anda.</translation>
 <translation id="3181441307743005334">Proses mula semula mungkin mengambil sedikit masa</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Disambungkan ke peranti}other{Disambungkan ke # peranti}}</translation>
+<translation id="3203405173652969239">Akses Suis didayakan</translation>
 <translation id="3207953481422525583">Tetapan Pengguna</translation>
 <translation id="3217205077783620295">Kelantangan dihidupkan. Tindakan menogol akan meredamkan audio.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> lagi</translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">Tinggal <ph name="TIME_REMAINING" /> sehingga bateri dicas sepenuhnya.</translation>
 <translation id="9215934040295798075">Tetapkan kertas dinding</translation>
 <translation id="921989828232331238">Ibu/bapa anda mengunci peranti untuk hari ini</translation>
+<translation id="9220525904950070496">Alih keluar akaun</translation>
 <translation id="923686485342484400">Tekan Tekan Shift Q dua kali untuk keluar.</translation>
 <translation id="938963181863597773">Apakah acara dalam kalendar saya?</translation>
 <translation id="945522503751344254">Hantar maklum balas</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb
index 02b201b..f9c5bfb 100644
--- a/ash/strings/ash_strings_my.xtb
+++ b/ash/strings/ash_strings_my.xtb
@@ -55,7 +55,6 @@
 <translation id="1550523713251050646">ပိုမိုရွေးစရာများအတွက် နှိပ်ပါ</translation>
 <translation id="1570871743947603115">'ဘလူးတုသ်' ကို အဖွင့်အပိတ် ပြုလုပ်ရန်။ <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">ဤစက်ရှင်ရှိ သင့်လုပ်ဆောင်ချက်အားလုံးကို ဝင်ကြည့်နိုင်သည်</translation>
-<translation id="1608626060424371292">ဒီအသုံးပြုသူကို ဖယ်ရှားရန်</translation>
 <translation id="1632985212731562677">'ဆက်တင်များ &gt; အများသုံးစွဲနိုင်မှု' တွင် 'ခလုတ်သုံးခြင်း' ကို ပိတ်နိုင်သည်။</translation>
 <translation id="1654477262762802994">အသံဖြင့် စတင် စုံစမ်းမေးမြန်းရန်</translation>
 <translation id="1658406695958299976">ဝမ်းနည်းပါသည်။ သင့်စကားဝှက်ကို အတည်ပြု၍ မရသေးပါ။ မှတ်ချက်− သင့်စကားဝှက်အား မကြာသေးခင်က ပြောင်းထားလျှင် သင်ထွက်လိုက်ပြီးသည့်နောက်မှ ၎င်းစကားဝှက်အသစ်သည် အကျိုးသက်ရောက်မည်ဖြစ်သောကြောင့် ဤနေရာတွင် စကားဝှက်အဟောင်းကို အသုံးပြုပါ။</translation>
@@ -653,6 +652,7 @@
 <translation id="9211681782751733685">ဘက်ထရီ အားအပြည့်သွင်းရန် <ph name="TIME_REMAINING" /> လိုသေးသည်။</translation>
 <translation id="9215934040295798075">နောက်ခံပုံ သတ်မှတ်ပါ</translation>
 <translation id="921989828232331238">သင်၏စက်ကို သင့်မိဘက ဤနေ့အဖို့ လော့ခ်ချထားပါပြီ</translation>
+<translation id="9220525904950070496">အကောင့်ကို ဖယ်ရှားရန်</translation>
 <translation id="923686485342484400">ထွက်ခွာရန် Control Shift Q နှစ်ကြိမ် နှိပ်ပါ။</translation>
 <translation id="938963181863597773">ကျွန်ုပ်၏ ပြက္ခဒိန်မှာ ဘာတွေရှိလဲ။</translation>
 <translation id="945522503751344254">အကြံပြုချက် ပေးပို့မည်</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb
index 1888897..d462ff5 100644
--- a/ash/strings/ash_strings_ne.xtb
+++ b/ash/strings/ash_strings_ne.xtb
@@ -55,7 +55,6 @@
 <translation id="1550523713251050646">थप विकल्पहरूका लागि क्लिक गर्नुहोस्</translation>
 <translation id="1570871743947603115">ब्लुटुथ टगल गर्नुहोस्। <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">यो सत्रअन्तर्गतका आफ्ना सबै क्रियाकलापमाथि पहुँच राख्नुहोस्</translation>
-<translation id="1608626060424371292">यो प्रयोगकर्तालाई हटाउनुहोस्</translation>
 <translation id="1654477262762802994">आवाजमार्फत गरिने क्वेरी सुरु गर्नुहोस्</translation>
 <translation id="1658406695958299976">माफ गर्नुहोस्, तपाईंको पासवर्ड अझै प्रमाणित गर्न सकिएन। टिपोट: तपाईंले हालसालै आफ्नो पासवर्ड परिवर्तन गर्नुभएको खण्डमा तपाईं साइन आउट हुनेबित्तिकै तपाईंको नयाँ पासवर्ड लागू हुनेछ, कृपया यहाँ पुरानै पासवर्ड प्रयोग गर्नुहोस्।</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> बाँकी छ</translation>
@@ -105,6 +104,7 @@
 <translation id="2268813581635650749">सबैलाई साइन आउट गर्नुहोस्</translation>
 <translation id="2277103315734023688">अगाडि जानुहोस्</translation>
 <translation id="2292698582925480719">प्रदर्शनको अनुपात</translation>
+<translation id="2295777434187870477">माइक सक्रिय छ, टगल गर्नुले माइक म्युट गर्ने छ।</translation>
 <translation id="2298170939937364391">पूर्ण स्क्रिन म्याग्निफायर सक्षम पारियो। यसलाई निष्क्रिय पार्न फेरि Ctrl+Search+M थिच्नुहोस्।</translation>
 <translation id="2302092602801625023">यो खाता Family Link मार्फत व्यवस्थित गरिन्छ</translation>
 <translation id="2303600792989757991">सञ्झ्याल सिंहावलोकन टगल गर्नुहोस्</translation>
@@ -138,6 +138,7 @@
 <translation id="2658778018866295321">क्लिक गरेर ड्र्याग गर्नुहोस्</translation>
 <translation id="2700493154570097719">आफ्नो किबोर्ड सेट गर्नुहोस्‌</translation>
 <translation id="2704781753052663061">अन्य Wi-Fi नेटवर्कहरूमा सामेल हुनुहोस्</translation>
+<translation id="2705001408393684014">माइक टगल गर्नुहोस्। <ph name="STATE_TEXT" /></translation>
 <translation id="2718395828230677721">रात्रि प्रकाश</translation>
 <translation id="2727977024730340865">कम शक्ति भएको चार्जरमा प्लग इन गरिएको छ। ब्याट्री चार्जिङ भरपर्दो नहुन सक्छ।</translation>
 <translation id="2792498699870441125">Alt + खोज</translation>
@@ -296,6 +297,7 @@
 <translation id="4665114317261903604">बाधा नपुर्‍याउनुहोस् नामक मोड टगल गर्नुहोस्। <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">अभिभावकको कोडमार्फत यन्त्र अनलक गर्नुहोस्</translation>
 <translation id="4702647871202761252">गोपनीयताको स्क्रिन निष्क्रिय छ</translation>
+<translation id="4705716602320768426">प्रतिक्रिया दिनुहोस्</translation>
 <translation id="4710243778082831592">IME का सेटिङहरू</translation>
 <translation id="4731797938093519117">अभिभावकको पहुँच</translation>
 <translation id="4734965478015604180">तेर्सो</translation>
@@ -376,6 +378,7 @@
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">खुल्ला</translation>
+<translation id="5920710855273935292">माइक म्युट गरिएको छ।</translation>
 <translation id="5947494881799873997">उल्टाउनुहोस्</translation>
 <translation id="595202126637698455">प्रदर्शन ट्रेसिङ सक्षम गरियो</translation>
 <translation id="5957083217255311415">मोबाइल डेटा निष्क्रिय पारिएको छ।</translation>
@@ -647,6 +650,7 @@
 <translation id="9211681782751733685">ब्याट्री पूर्ण रूपमा चार्ज हुन <ph name="TIME_REMAINING" /> बाँकी छ।</translation>
 <translation id="9215934040295798075">वालपेपर सेट गर्नुहोस्</translation>
 <translation id="921989828232331238">तपाईंका अभिभावकले आजका लागि तपाईंको यन्त्र लक गर्नुभयो</translation>
+<translation id="9220525904950070496">खाता हटाउनुहोस्</translation>
 <translation id="923686485342484400">साइन आउट गर्न दुई पटक Control Q थिच्नुहोस्।</translation>
 <translation id="938963181863597773">मेरो क्यालेन्डरमा के छ?</translation>
 <translation id="945522503751344254">पृष्ठपोषण पठाउनुहोस्</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index 0bffb3d..ee54d058 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Klik voor meer opties</translation>
 <translation id="1570871743947603115">Bluetooth schakelen. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Al je activiteit in deze sessie bekijken</translation>
-<translation id="1608626060424371292">Gebruiker verwijderen</translation>
+<translation id="1632985212731562677">Je kunt 'Toegang via schakelaar' uitschakelen via Instellingen &gt; Toegankelijkheid.</translation>
 <translation id="1654477262762802994">Een gesproken zoekopdracht starten</translation>
 <translation id="1658406695958299976">Je wachtwoord kan nog steeds niet worden geverifieerd. Opmerking: Als je je wachtwoord onlangs hebt gewijzigd, wordt je nieuwe wachtwoord doorgevoerd wanneer je uitlogt. Gebruik hier het oude wachtwoord.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> resterend</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">De apparaatbeheerder kan je browseactiviteit controleren.</translation>
 <translation id="3181441307743005334">Opnieuw opstarten kan even duren</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Verbonden met een apparaat}other{Verbonden met # apparaten}}</translation>
+<translation id="3203405173652969239">'Toegang via schakelaar' ingeschakeld</translation>
 <translation id="3207953481422525583">Gebruikersinstellingen</translation>
 <translation id="3217205077783620295">Volume staat aan. Als je het uitzet, wordt de audio gedempt.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> andere meldingen</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Nog <ph name="TIME_REMAINING" /> totdat de batterij volledig is opgeladen.</translation>
 <translation id="9215934040295798075">Achtergrond instellen</translation>
 <translation id="921989828232331238">Je ouder heeft je apparaat de hele dag vergrendeld</translation>
+<translation id="9220525904950070496">Rekening verwijderen</translation>
 <translation id="923686485342484400">Druk twee keer op Control+Shift+Q om uit te loggen.</translation>
 <translation id="938963181863597773">Wat staat er in mijn agenda?</translation>
 <translation id="945522503751344254">Feedback sturen</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb
index d898e18..4ca78695 100644
--- a/ash/strings/ash_strings_no.xtb
+++ b/ash/strings/ash_strings_no.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Klikk for å se flere alternativer</translation>
 <translation id="1570871743947603115">Slå av/på Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">se all aktiviteten din i denne økten</translation>
-<translation id="1608626060424371292">Fjern denne brukeren</translation>
+<translation id="1632985212731562677">Brytertilgang kan slås av i Innstillinger &gt; Tilgjengelighet.</translation>
 <translation id="1654477262762802994">Start et talesøk</translation>
 <translation id="1658406695958299976">Beklager, men passordet ditt kunne fremdeles ikke bekreftes. Merk: Hvis du endret passordet ditt nylig, trer det nye passordet ditt i kraft så snart du logger av. Bruk det gamle passordet ditt her.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> igjen</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Enhetsadministratoren kan overvåke surfeaktiviteten din.</translation>
 <translation id="3181441307743005334">Det kan ta en stund å starte på nytt</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Koblet til en enhet}other{Koblet til # enheter}}</translation>
+<translation id="3203405173652969239">Brytertilgang er slått på</translation>
 <translation id="3207953481422525583">Brukerinnstillinger</translation>
 <translation id="3217205077783620295">Volumet er på. Hvis du slår det av, kuttes lyden.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> til</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> gjenstår til batteriet er fulladet.</translation>
 <translation id="9215934040295798075">Velg bakgrunn</translation>
 <translation id="921989828232331238">Forelderen din har låst enheten din for dagen</translation>
+<translation id="9220525904950070496">Fjern konto</translation>
 <translation id="923686485342484400">Trykk på Control+Shift+Q to ganger for å logge av.</translation>
 <translation id="938963181863597773">Hva er i kalenderen min?</translation>
 <translation id="945522503751344254">Gi tilbakemelding</translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb
index f45a39a..80efd594 100644
--- a/ash/strings/ash_strings_or.xtb
+++ b/ash/strings/ash_strings_or.xtb
@@ -55,7 +55,6 @@
 <translation id="1550523713251050646">ଅଧିକ ବିକଳ୍ପଗୁଡ଼ିକ ପାଇଁ କ୍ଲିକ୍ କରନ୍ତୁ</translation>
 <translation id="1570871743947603115">ବ୍ଲୁଟୁଥ୍‌ ଟୋଗଲ୍‌ କରନ୍ତୁ। <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">ଏହି ଅବଧିରେ ଆପଣଙ୍କର ସମସ୍ତ କାର୍ଯ୍ୟକଳାପ ଆକ୍ସେସ୍‌ କରନ୍ତୁ</translation>
-<translation id="1608626060424371292">ଏହି ଉପଯୋଗକର୍ତ୍ତାଙ୍କୁ କାଢ଼ିଦିଅନ୍ତୁ</translation>
 <translation id="1654477262762802994">ଏକ ଭିଡିଓ କ୍ବେରୀ ଆରମ୍ଭ କରନ୍ତୁ</translation>
 <translation id="1658406695958299976">କ୍ଷମା କରିବେ, ଆପଣଙ୍କ ପାସ୍‍ୱାର୍ଡକୁ ଏପର୍ଯ୍ୟନ୍ତ ଯାଞ୍ଚ କରାଯାଇପାରିଲା ନାହିଁ। ଧ୍ୟାନ ଦିଅନ୍ତୁ: ଯଦି ବର୍ତ୍ତମାନ ଆପଣ ଆପଣଙ୍କର ପାସ୍‍ୱାର୍ଡକୁ ବଦଳାଇଥାଆନ୍ତି, ତେବେ ଆପଣ ଥରେ ସାଇନ୍ ଆଉଟ୍ କରିବା ପରେ ନୂଆ ପାସ୍‍ୱାର୍ଡ କାର୍ଯ୍ୟକାରୀ ହେବ, ଦୟାକରି ଏଠାରେ ପୁରୁଣା ପାସ୍‍ୱାର୍ଡ ବ୍ୟବହାର କରନ୍ତୁ।</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> ବାକି ଅଛି</translation>
@@ -105,6 +104,7 @@
 <translation id="2268813581635650749">ସବୁ ସାଇନ୍ ଆଉଟ୍ କରନ୍ତୁ</translation>
 <translation id="2277103315734023688">ଆଗକୁ ବଢ଼ାନ୍ତୁ</translation>
 <translation id="2292698582925480719">ସ୍କେଲ୍‌ ପ୍ରଦର୍ଶନ କରନ୍ତୁ</translation>
+<translation id="2295777434187870477">ମାଇକ୍ ଚାଲୁ ଅଛି, ଟୋଗଲ୍ କରିବା ଦ୍ୱାରା ଇନପୁଟ୍ ମ୍ୟୁଟ୍ ହୋଇଯିବ।</translation>
 <translation id="2298170939937364391">ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍ ମ୍ୟାଗ୍ନିଫାୟର୍ ସକ୍ଷମ କରାଯାଇଛି। ଟୋଗଲ୍ କରି ଏହାକୁ ବନ୍ଦ କରିବା ପାଇଁ ପୁଣି Ctrl+Search+M ଦବାନ୍ତୁ।</translation>
 <translation id="2302092602801625023">Family Link ଦ୍ୱାରା ଏହି ଆକାଉଣ୍ଟ ପରିଚାଳିତ ହେଉଛି</translation>
 <translation id="2303600792989757991">ୱିଣ୍ଡୋର ସାରାଂଶ ଟୋଗଲ୍ କରନ୍ତୁ</translation>
@@ -138,6 +138,7 @@
 <translation id="2658778018866295321">କ୍ଲିକ୍ କରି ଡ୍ରାଗ୍ କରନ୍ତୁ</translation>
 <translation id="2700493154570097719">ନିଜର କୀ'ବୋର୍ଡକୁ ସେଟ୍ କରନ୍ତୁ</translation>
 <translation id="2704781753052663061">ଅନ୍ୟ ୱାଇ-ଫାଇ ନେଟ୍‍ୱାର୍କଗୁଡ଼ିକୁ ଯୋଗ କରନ୍ତୁ</translation>
+<translation id="2705001408393684014">ମାଇକ୍ ଟୋଗଲ୍ କରନ୍ତୁ। <ph name="STATE_TEXT" /></translation>
 <translation id="2718395828230677721">ରାତି ଆଲୋକ</translation>
 <translation id="2727977024730340865">କମ୍-ପାୱର୍‍ଯୁକ୍ତ ଚାର୍ଜର୍। ବ୍ୟାଟେରୀ ଚାର୍ଜିଂ ନିର୍ଭରଯୋଗ୍ୟ ହୋଇନପାରେ।</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
@@ -296,6 +297,7 @@
 <translation id="4665114317261903604">'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ' ଟୋଗଲ୍ କରନ୍ତୁ। <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">ମାତାପିତାଙ୍କ କୋଡ୍‌ରେ ଡିଭାଇସ୍ ଅନଲକ୍ କରନ୍ତୁ</translation>
 <translation id="4702647871202761252">ଗୋପନୀୟତା ସ୍କ୍ରିନ୍ ବନ୍ଦ ଅଛି</translation>
+<translation id="4705716602320768426">ମତାମତ ଦାଖଲ କରନ୍ତୁ</translation>
 <translation id="4710243778082831592">IME ସେଟିଂସ୍</translation>
 <translation id="4731797938093519117">ମାତା-ପିତାଙ୍କର ଆକ୍ସେସ୍</translation>
 <translation id="4734965478015604180">ଭୂସମାନ୍ତର</translation>
@@ -376,6 +378,7 @@
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">ଚାଲୁ</translation>
+<translation id="5920710855273935292">ମାଇକ୍ ମ୍ୟୁଟ୍ କରାଯାଇଛି।</translation>
 <translation id="5947494881799873997">ପୂର୍ବାବସ୍ଥାକୁ ଆଣନ୍ତୁ</translation>
 <translation id="595202126637698455">କାର୍ଯ୍ୟଦକ୍ଷତା ଟ୍ରେସିଂ ସକ୍ଷମ କରାଯାଇଛି</translation>
 <translation id="5957083217255311415">ମୋବାଇଲ୍ ଡାଟା ବନ୍ଦ ଅଛି।</translation>
@@ -647,6 +650,7 @@
 <translation id="9211681782751733685">ବ୍ୟାଟେରୀ ସମ୍ପୂର୍ଣ୍ଣ ଚାର୍ଜ ହେବା ପର୍ଯ୍ୟନ୍ତ ବାକିଥିବା ସମୟ, <ph name="TIME_REMAINING" />।</translation>
 <translation id="9215934040295798075">ୱାଲ୍‌‌ପେପର୍‌ ସେଟ୍ କରନ୍ତୁ</translation>
 <translation id="921989828232331238">ଆପଣଙ୍କ ମାତା-ପିତା ଆଜି ପାଇଁ ଆପଣଙ୍କର ଡିଭାଇସ୍‌କୁ ଲକ୍ କରିଦେଇଛନ୍ତି</translation>
+<translation id="9220525904950070496">ଆକାଉଣ୍ଟ କାଢ଼ିଦିଅନ୍ତୁ</translation>
 <translation id="923686485342484400">ସାଇନ୍‍ ଆଉଟ୍‍ ହେବାକୁ ଦୁଇଥର Control Shift Q ଦବାନ୍ତୁ।</translation>
 <translation id="938963181863597773">ମୋ କ୍ୟାଲେଣ୍ଡରରେ କ’ଣ ଅଛି?</translation>
 <translation id="945522503751344254">ମତାମତ ପଠାନ୍ତୁ</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb
index 2554c9c..dda40da 100644
--- a/ash/strings/ash_strings_pa.xtb
+++ b/ash/strings/ash_strings_pa.xtb
@@ -55,7 +55,6 @@
 <translation id="1550523713251050646">ਹੋਰ ਵਿਕਲਪਾਂ ਲਈ ਕਲਿੱਕ ਕਰੋ</translation>
 <translation id="1570871743947603115">ਬਲੂਟੁੱਥ ਟੌਗਲ ਕਰੋ। <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">ਇਸ ਸ਼ੈਸ਼ਨ ਦੀ ਆਪਣੀ ਸਾਰੀ ਸਰਗਰਮੀ ਤੱਕ ਪਹੁੰਚ ਕਰੋ</translation>
-<translation id="1608626060424371292">ਇਹ ਵਰਤੋਂਕਾਰ ਹਟਾਓ</translation>
 <translation id="1654477262762802994">ਅਵਾਜ਼ੀ ਪੁੱਛਗਿੱਛ ਸ਼ੁਰੂ ਕਰੋ</translation>
 <translation id="1658406695958299976">ਮਾਫ਼ ਕਰਨਾ, ਅਜੇ ਵੀ ਤੁਹਾਡੇ ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ। ਨੋਟ-ਕਥਨ: ਜੇਕਰ ਤੁਸੀਂ ਹਾਲ ਹੀ ਵਿੱਚ ਆਪਣਾ ਪਾਸਵਰਡ ਬਦਲਿਆ ਹੈ, ਤਾਂ ਤੁਹਾਡਾ ਨਵਾਂ ਪਾਸਵਰਡ ਤੁਹਾਡੇ ਸਾਈਨ-ਆਉਟ ਕਰਨ ਤੋਂ ਬਾਅਦ ਲਾਗੂ ਹੋਵੇਗਾ, ਕਿਰਪਾ ਕਰਕੇ ਇੱਥੇ ਪੁਰਾਣਾ ਪਾਸਵਰਡ ਵਰਤੋ।</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> ਬਾਕੀ</translation>
@@ -105,6 +104,7 @@
 <translation id="2268813581635650749">ਸਾਰਿਆਂ ਨੂੰ ਸਾਈਨ-ਆਊਟ ਕਰੋ</translation>
 <translation id="2277103315734023688">ਅੱਗੇ ਕਰੋ</translation>
 <translation id="2292698582925480719">ਡਿਸਪਲੇ ਸਕੇਲ</translation>
+<translation id="2295777434187870477">ਮਾਈਕ ਚਾਲੂ ਹੈ, ਟੌਗਲ ਕਰਨ 'ਤੇ ਇਨਪੁੱਟ ਮਿਊਟ ਹੋ ਜਾਵੇਗਾ।</translation>
 <translation id="2298170939937364391">ਪੂਰੀ-ਸਕ੍ਰੀਨ ਵੱਡਦਰਸ਼ੀ ਚਾਲੂ ਹੈ। ਉਸਨੂੰ ਬੰਦ ਕਰਨ ਲਈ Ctrl+Search+M ਦਬਾਓ।</translation>
 <translation id="2302092602801625023">ਇਸ ਖਾਤੇ ਦਾ ਪ੍ਰਬੰਧਨ Family Link ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ</translation>
 <translation id="2303600792989757991">ਵਿੰਡੋ ਰੂਪ-ਰੇਖਾ ਨੂੰ ਟੌਗਲ ਕਰੋ</translation>
@@ -138,6 +138,7 @@
 <translation id="2658778018866295321">ਕਲਿੱਕ ਕਰਕੇ ਘਸੀਟੋ</translation>
 <translation id="2700493154570097719">ਆਪਣਾ ਕੀ-ਬੋਰਡ ਸੈੱਟ ਕਰੋ</translation>
 <translation id="2704781753052663061">ਦੂਜੇ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਵੋ</translation>
+<translation id="2705001408393684014">ਮਾਈਕ ਨੂੰ ਟੌਗਲ ਕਰੋ। <ph name="STATE_TEXT" /></translation>
 <translation id="2718395828230677721">ਰਾਤ ਦੀ ਰੋਸ਼ਨੀ</translation>
 <translation id="2727977024730340865">ਇੱਕ ਘੱਟ-ਪਾਵਰ ਦੇ ਚਾਰਜਰ ਨਾਲ ਪਲੱਗ-ਇਨ ਕੀਤਾ ਗਿਆ। ਬੈਟਰੀ ਚਾਰਜਿੰਗ ਭਰੋਸੇਯੋਗ ਨਹੀਂ ਵੀ ਹੋ ਸਕਦੀ।</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
@@ -296,6 +297,7 @@
 <translation id="4665114317261903604">'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ' ਨੂੰ ਟੌਗਲ ਕਰੋ। <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">ਮਾਂ-ਪਿਓ ਦੇ ਕੋਡ ਨਾਲ ਡੀਵਾਈਸ ਅਣਲਾਕ ਕਰੋ</translation>
 <translation id="4702647871202761252">ਪਰਦੇਦਾਰੀ ਸਕ੍ਰੀਨ ਬੰਦ ਹੈ</translation>
+<translation id="4705716602320768426">ਫ਼ਾਈਲ ਬਾਰੇ ਵਿਚਾਰ</translation>
 <translation id="4710243778082831592">IME ਸੈਟਿੰਗਾਂ</translation>
 <translation id="4731797938093519117">ਮਾਂ-ਪਿਓ ਲਈ ਪਹੁੰਚ</translation>
 <translation id="4734965478015604180">ਲੇਟਵਾਂ</translation>
@@ -376,6 +378,7 @@
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">ਤੇ</translation>
+<translation id="5920710855273935292">ਮਾਈਕ ਨੂੰ ਮਿਊਟ ਕੀਤਾ ਹੋਇਆ ਹੈ।</translation>
 <translation id="5947494881799873997">ਵਾਪਸ ਲਿਆਓ</translation>
 <translation id="595202126637698455">ਪ੍ਰਦਰਸ਼ਨ ਟ੍ਰੇਸਿੰਗ ਸਮਰਥਿਤ</translation>
 <translation id="5957083217255311415">ਮੋਬਾਈਲ  ਡਾਟਾ  ਬੰਦ ਕੀਤਾ ਹੋਇਆ ਹੈ।</translation>
@@ -647,6 +650,7 @@
 <translation id="9211681782751733685">ਬੈਟਰੀ ਦੇ ਪੂਰਾ ਚਾਰਜ ਹੋਣ ਵਿੱਚ <ph name="TIME_REMAINING" /> ਬਾਕੀ।</translation>
 <translation id="9215934040295798075">ਵਾਲਪੇਪਰ ਸੈੱਟ ਕਰੋ</translation>
 <translation id="921989828232331238">ਤੁਹਾਡੇ ਮਾਂ-ਪਿਓ ਨੇ ਅੱਜ ਦੇ ਦਿਨ ਲਈ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਲਾਕ ਕਰ ਦਿੱਤਾ ਹੈ</translation>
+<translation id="9220525904950070496">ਖਾਤਾ ਹਟਾਓ</translation>
 <translation id="923686485342484400">ਸਾਈਨ-ਆਊਟ ਕਰਨ ਲਈ ਦੋ ਵਾਰ Control Shift Q ਦਬਾਓ।</translation>
 <translation id="938963181863597773">ਮੇਰੇ ਕੈਲੰਡਰ 'ਤੇ ਕੀ ਹੈ?</translation>
 <translation id="945522503751344254">ਪ੍ਰਤੀਕਰਮ ਭੇਜੋ</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb
index 6f90d0f..2c1a487 100644
--- a/ash/strings/ash_strings_pl.xtb
+++ b/ash/strings/ash_strings_pl.xtb
@@ -55,7 +55,6 @@
 <translation id="1550523713251050646">Kliknij, by wyświetlić więcej opcji</translation>
 <translation id="1570871743947603115">Włącz lub wyłącz Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">uzyskiwać dostęp do całej Twojej aktywności w tej sesji;</translation>
-<translation id="1608626060424371292">Usuń tego użytkownika</translation>
 <translation id="1632985212731562677">Funkcję Switch Access możesz wyłączyć, otwierając Ustawienia &gt; Ułatwienia dostępu.</translation>
 <translation id="1654477262762802994">Rozpocznij zapytanie głosowe</translation>
 <translation id="1658406695958299976">Nadal nie można zweryfikować Twojego hasła. Uwaga: jeśli ostatnio hasło było zmieniane, nowe hasło zostanie zastosowane, gdy się wylogujesz. Tu podaj stare hasło.</translation>
@@ -653,6 +652,7 @@
 <translation id="9211681782751733685">Czas pozostały do pełnego naładowania baterii: <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Ustaw tapetę</translation>
 <translation id="921989828232331238">Twój rodzic zablokował urządzenie na cały dzień</translation>
+<translation id="9220525904950070496">Usuń konto</translation>
 <translation id="923686485342484400">Naciśnij dwukrotnie Control Shift Q, by się wylogować.</translation>
 <translation id="938963181863597773">Co mam w kalendarzu?</translation>
 <translation id="945522503751344254">Wyślij zgłoszenie</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index cf45888..52f289e5 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Clique para ver mais opções</translation>
 <translation id="1570871743947603115">Alternar Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">acessar todas as suas atividades nesta sessão;</translation>
-<translation id="1608626060424371292">Remover este usuário</translation>
+<translation id="1632985212731562677">O "acesso com interruptor" pode ser desativado em "Config. &gt; Acessibilidade".</translation>
 <translation id="1654477262762802994">Iniciar uma consulta por voz</translation>
 <translation id="1658406695958299976">Ainda não foi possível confirmar sua senha. Observação: se você alterou sua senha recentemente, a nova senha será aplicada depois que você sair da conta. Use a senha antiga aqui.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> restante(s)</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">O administrador do dispositivo pode monitorar sua atividade de navegação.</translation>
 <translation id="3181441307743005334">A reinicialização pode demorar um pouco</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Conectado a um dispositivo}one{Conectado a # dispositivo}other{Conectado a # dispositivos}}</translation>
+<translation id="3203405173652969239">"Acesso com interruptor" ativado</translation>
 <translation id="3207953481422525583">Configurações do usuário</translation>
 <translation id="3217205077783620295">O som está ativado. Alterná-lo desativará o som.</translation>
 <translation id="3226991577105957773">Mais <ph name="COUNT" /></translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">Tempo restante até que a bateria esteja totalmente carregada: <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Definir plano de fundo</translation>
 <translation id="921989828232331238">Seu pai/mãe bloqueou o dispositivo por hoje</translation>
+<translation id="9220525904950070496">Remover conta</translation>
 <translation id="923686485342484400">Pressione Control+Shift+Q duas vezes para sair.</translation>
 <translation id="938963181863597773">O que tem na minha agenda?</translation>
 <translation id="945522503751344254">Enviar comentários</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb
index e8f5fffc..a1c2996 100644
--- a/ash/strings/ash_strings_pt-PT.xtb
+++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Clicar para obter mais opções</translation>
 <translation id="1570871743947603115">Ativar/desativar Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Aceda a toda a sua atividade nesta sessão.</translation>
-<translation id="1608626060424371292">Remover este utilizador</translation>
+<translation id="1632985212731562677">O acesso por comutador pode ser desativado em Definições &gt; Acessibilidade.</translation>
 <translation id="1654477262762802994">Iniciar uma consulta de voz</translation>
 <translation id="1658406695958299976">Lamentamos, mas ainda não foi possível validar a sua palavra-passe. Nota: se alterou a palavra-passe recentemente, a nova palavra-passe será aplicada quando terminar sessão. Utilize a palavra-passe antiga aqui.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> restante(s)</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">O gestor do dispositivo pode monitorizar a sua atividade de navegação:</translation>
 <translation id="3181441307743005334">O reinício poderá demorar algum tempo</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Ligado a um dispositivo}other{Ligado a # dispositivos}}</translation>
+<translation id="3203405173652969239">Acesso por comutador ativado</translation>
 <translation id="3207953481422525583">Definições do utilizador</translation>
 <translation id="3217205077783620295">O volume está ativado, premir o botão irá desativar o áudio.</translation>
 <translation id="3226991577105957773">E mais <ph name="COUNT" /></translation>
@@ -298,7 +299,7 @@
 <translation id="4665114317261903604">Ative/desative o modo Não incomodar. <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">Desbloquear o dispositivo com o código parental</translation>
 <translation id="4702647871202761252">O ecrã de privacidade está desligado</translation>
-<translation id="4705716602320768426">Enviar comentários</translation>
+<translation id="4705716602320768426">Envie comentários</translation>
 <translation id="4710243778082831592">Definições do IME</translation>
 <translation id="4731797938093519117">Acesso parental</translation>
 <translation id="4734965478015604180">Horizontal</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> restante(s) até a bateria estar totalmente carregada.</translation>
 <translation id="9215934040295798075">Definir imagem de fundo</translation>
 <translation id="921989828232331238">Os teus pais bloquearam o dispositivo para o resto do dia</translation>
+<translation id="9220525904950070496">Remover conta</translation>
 <translation id="923686485342484400">Prima Control Shift Q duas vezes para terminar sessão.</translation>
 <translation id="938963181863597773">O que está no meu calendário?</translation>
 <translation id="945522503751344254">Enviar comentários</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index 4f8c0d8..f967dd0 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Dă clic pentru mai multe opțiuni</translation>
 <translation id="1570871743947603115">Comută Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">să acceseze toată activitatea din această sesiune;</translation>
-<translation id="1608626060424371292">Eliminați acest utilizator</translation>
+<translation id="1632985212731562677">Accesul prin comutare poate fi dezactivat din Setări &gt; Accesibilitate.</translation>
 <translation id="1654477262762802994">Începe o interogare vocală</translation>
 <translation id="1658406695958299976">Ne pare rău, parola tot nu a putut fi confirmată. Notă: dacă ți-ai schimbat recent parola, aceasta se va aplica după ce te deconectezi. Te rugăm să folosești aici parola veche.</translation>
 <translation id="1677472565718498478">Timp rămas: <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Este posibil ca administratorul dispozitivului să monitorizeze activitatea de navigare.</translation>
 <translation id="3181441307743005334">Repornirea poate dura un timp</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Conectat la un dispozitiv}few{Conectat la # dispozitive}other{Conectat la # de dispozitive}}</translation>
+<translation id="3203405173652969239">Accesul prin comutare este activat</translation>
 <translation id="3207953481422525583">Setările utilizatorului</translation>
 <translation id="3217205077783620295">Volumul este activat. Comutarea îl va dezactiva.</translation>
 <translation id="3226991577105957773">+ încă <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Timp rămas până la încărcarea completă a bateriei: <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Setează o imagine de fundal</translation>
 <translation id="921989828232331238">Părintele tău ți-a blocat dispozitivul pentru întreaga zi</translation>
+<translation id="9220525904950070496">Eliminați contul</translation>
 <translation id="923686485342484400">Apăsați de două ori Control Shift Q pentru a vă deconecta.</translation>
 <translation id="938963181863597773">Ce am în calendar?</translation>
 <translation id="945522503751344254">Trimite feedback</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index 1a7543f..0a9421d 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Чтобы изменить источник питания, нажмите здесь.</translation>
 <translation id="1570871743947603115">Изменить настройки Bluetooth. <ph name="STATE_TEXT" />.</translation>
 <translation id="1589090746204042747">Получать доступ к данным о ваших действиях во время этого сеанса.</translation>
-<translation id="1608626060424371292">Удалить профиль</translation>
+<translation id="1632985212731562677">Функцию Switch Access можно отключить в разделе "Настройки &gt; Специальные возможности".</translation>
 <translation id="1654477262762802994">Произнесите запрос</translation>
 <translation id="1658406695958299976">Неверный пароль. Обратите внимание! Если вы недавно изменили пароль, но не выходили из системы, значит, новый пароль ещё не вступил в силу и необходимо указать старый.</translation>
 <translation id="1677472565718498478">Ещё <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Администратору устройства доступна информация о том, какие страницы вы просматриваете в браузере.</translation>
 <translation id="3181441307743005334">Перезапуск может занять несколько минут</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Подключено одно устройство}one{Подключено # устройство}few{Подключено # устройства}many{Подключено # устройств}other{Подключено # устройства}}</translation>
+<translation id="3203405173652969239">Функция Switch Access включена</translation>
 <translation id="3207953481422525583">Пользовательские настройки</translation>
 <translation id="3217205077783620295">Звук включен. Нажмите эту кнопку, чтобы отключить его.</translation>
 <translation id="3226991577105957773">Ещё <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Оставшееся время до полной зарядки батареи: <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Выбрать обои</translation>
 <translation id="921989828232331238">Ваш родитель заблокировал это устройство на целый день.</translation>
+<translation id="9220525904950070496">Удалить аккаунт</translation>
 <translation id="923686485342484400">Чтобы выйти, дважды нажмите Control+Shift+Q.</translation>
 <translation id="938963181863597773">Что у меня запланировано?</translation>
 <translation id="945522503751344254">Отправить отзыв</translation>
diff --git a/ash/strings/ash_strings_si.xtb b/ash/strings/ash_strings_si.xtb
index 272b90c..0660bf46 100644
--- a/ash/strings/ash_strings_si.xtb
+++ b/ash/strings/ash_strings_si.xtb
@@ -55,7 +55,6 @@
 <translation id="1550523713251050646">තවත් විකල්ප සඳහා ක්ලික් කරන්න</translation>
 <translation id="1570871743947603115">බ්ලූටූත් ටොගල කරන්න. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">මෙම සැසියෙහි ඔබේ සියලු ක්‍රියාකාරකම්වලට ප්‍රවේශය</translation>
-<translation id="1608626060424371292">මෙම භාවිතකරු ඉවත් කරන්න</translation>
 <translation id="1632985212731562677">ප්‍රවේශය මාරු කිරීම සැකසීම් &gt; ප්‍රවේශ්‍යතාව තුළ අබල කළ හැක.</translation>
 <translation id="1654477262762802994">හඬ විමසුමක් අරඹන්න</translation>
 <translation id="1658406695958299976">සමාවන්න, ඔබේ මුරපදය තවමත් සත්‍යාපනය කළ නොහැකි විය. සටහන: ඔබ ඔබේ මුරපදය මෑතකදී වෙනස් කළේ නම්, ඔබ වරක් වැරූ විට ඔබේ නව මුරපදය යෙදවෙනු ඇත, පැරණි මුරපදය මෙහි භාවිතා කරන්න.</translation>
@@ -653,6 +652,7 @@
 <translation id="9211681782751733685">බැටරිය සම්පූර්ණයෙන් ආරෝපණ වන තෙක් <ph name="TIME_REMAINING" />ක් ඉතුරුයි.</translation>
 <translation id="9215934040295798075">වෝල්පේපර සකසන්න</translation>
 <translation id="921989828232331238">ඔබේ මාපියන් ඔබේ උපාංගයට අද අඟුලු දමා ඇත</translation>
+<translation id="9220525904950070496">ගිනුම ඉවත් කරන්න</translation>
 <translation id="923686485342484400">වැරීමට Control Shift Q දෙසැරයක් ඔබන්න</translation>
 <translation id="938963181863597773">මාගේ දින දර්ශනයෙහි ඇත්තේ කුමක්ද?</translation>
 <translation id="945522503751344254">අදහස් හා යෝජනා යවන්න</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb
index 77d29f8..f00444c7 100644
--- a/ash/strings/ash_strings_sk.xtb
+++ b/ash/strings/ash_strings_sk.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Kliknutím zobrazíte ďalšie možnosti</translation>
 <translation id="1570871743947603115">Prepnúť Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Získajte prístup k všetkej svojej aktivite v tejto relácii</translation>
-<translation id="1608626060424371292">Odstrániť tohto používateľa</translation>
+<translation id="1632985212731562677">Ovládanie prepínačmi je možné deaktivovať v sekcii Nastavenia &gt; Dostupnosť.</translation>
 <translation id="1654477262762802994">Spustiť hlasový dopyt</translation>
 <translation id="1658406695958299976">Je nám to ľúto, ale vaše heslo sa stále nedarí overiť. Poznámka: Ak ste ho nedávno zmenili, nové heslo sa použije až po odhlásení. Tu použite staré heslo.</translation>
 <translation id="1677472565718498478">Zostávajúci čas: <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Správca zariadenia môže sledovať vašu aktivitu prehliadania.</translation>
 <translation id="3181441307743005334">Reštart môže chvíľu trvať</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Pripojené k zariadeniu}few{Pripojené k # zariadeniam}many{Connected to # devices}other{Pripojené k # zariadeniam}}</translation>
+<translation id="3203405173652969239">Ovládanie prepínačmi je aktivované</translation>
 <translation id="3207953481422525583">Nastavenia používateľa</translation>
 <translation id="3217205077783620295">Zvuk je zapnutý. Ak ho chcete vypnúť, prepnite tlačidlo.</translation>
 <translation id="3226991577105957773">a ďalšie (<ph name="COUNT" />)</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Zostávajúci čas do úplného nabitia batérie: <ph name="TIME_REMAINING" /></translation>
 <translation id="9215934040295798075">Nastaviť tapetu</translation>
 <translation id="921989828232331238">Rodič na dnes toto zariadenie uzamkol</translation>
+<translation id="9220525904950070496">Odstrániť účet</translation>
 <translation id="923686485342484400">Ak sa chcete odhlásiť, stlačte dvakrát kombináciu klávesov Ctrl, Shift a Q.</translation>
 <translation id="938963181863597773">Čo mám v kalendári?</translation>
 <translation id="945522503751344254">Poslať spätnú väzbu</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index fd0c68cd..4b9b6be4 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Kliknite za več možnosti</translation>
 <translation id="1570871743947603115">Preklop Bluetootha. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">dostop do vse dejavnosti v seji;</translation>
-<translation id="1608626060424371292">Odstrani tega uporabnika</translation>
+<translation id="1632985212731562677">Stikalni dostop lahko onemogočite v »Nastavitve &gt; Dostopnost«.</translation>
 <translation id="1654477262762802994">Začetek glasovne poizvedbe</translation>
 <translation id="1658406695958299976">Vašega gesla še ni bilo mogoče preveriti. Opomba: če ste nedavno spremenili geslo, bo novo geslo začelo veljati, ko se odjavite. Tu uporabite starega.</translation>
 <translation id="1677472565718498478">Še <ph name="TIME" /></translation>
@@ -105,7 +105,7 @@
 <translation id="2268813581635650749">Odjava vseh</translation>
 <translation id="2277103315734023688">Išči naprej</translation>
 <translation id="2292698582925480719">Zaslonsko razmerje</translation>
-<translation id="2295777434187870477">Mikrofon je vklopljen; če ga preklopite bo izklopljen vhodni zvok.</translation>
+<translation id="2295777434187870477">Mikrofon je vklopljen; če ga preklopite, bo izklopljen vhodni zvok.</translation>
 <translation id="2298170939937364391">Celozaslonska lupa je omogočena. Če jo želite izklopiti, znova pritisnite Ctrl + tipko za iskanje + M.</translation>
 <translation id="2302092602801625023">Ta račun upravlja Family Link</translation>
 <translation id="2303600792989757991">Preklop pregleda okna</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Skrbnik naprave morda nadzira vašo dejavnost brskanja.</translation>
 <translation id="3181441307743005334">Vnovičen zagon lahko traja nekaj časa</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Vzpostavljena je povezava z eno napravo}one{Vzpostavljena je povezava z # napravo}two{Vzpostavljena je povezava z # napravama}few{Vzpostavljena je povezava s # napravami}other{Vzpostavljena je povezava s # napravami}}</translation>
+<translation id="3203405173652969239">Stikalni dostop je omogočen</translation>
 <translation id="3207953481422525583">Uporabniške nastavitve</translation>
 <translation id="3217205077783620295">Glasnost je vklopljena: če to preklopite, bo zvok izklopljen.</translation>
 <translation id="3226991577105957773">in še <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Še <ph name="TIME_REMAINING" />, da bo akumulator povsem napolnjen.</translation>
 <translation id="9215934040295798075">Nastavi sliko za ozadje</translation>
 <translation id="921989828232331238">Tvoj starš je zaklenil napravo za ves dan</translation>
+<translation id="9220525904950070496">Odstranitev računa</translation>
 <translation id="923686485342484400">Dvakrat pritisnite Control Shift Q, če se želite odjaviti.</translation>
 <translation id="938963181863597773">Kaj je v mojem koledarju?</translation>
 <translation id="945522503751344254">Pošlji povratne informacije</translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb
index 531cd3f..31cf106 100644
--- a/ash/strings/ash_strings_sq.xtb
+++ b/ash/strings/ash_strings_sq.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Kliko për opsione të tjera</translation>
 <translation id="1570871743947603115">Aktivizo/çaktivizo Bluetooth-in. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Qasu te të gjitha aktivitetet e tua në këtë sesion</translation>
-<translation id="1608626060424371292">Hiqe këtë përdorues</translation>
+<translation id="1632985212731562677">"Qasja me çelës" mund të çaktivizohet te Cilësimet &gt; Qasshmëria.</translation>
 <translation id="1654477262762802994">Nis një pyetje me zë</translation>
 <translation id="1658406695958299976">Na vjen keq, por fjalëkalimi sërish nuk mund të verifikohej. Shënim: Nëse ke ndryshuar fjalëkalimin së fundi, fjalëkalimi i ri do të zbatohet pasi të dalësh nga llogaria, prandaj përdor këtu fjalëkalimin e vjetër.</translation>
 <translation id="1677472565718498478">Koha e mbetur <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Administratori i pajisjes mund të monitorojë aktivitetin tënd të shfletimit.</translation>
 <translation id="3181441307743005334">Rindezja mund të zgjasë pak</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Lidhur me një pajisje}other{Lidhur me # pajisje}}</translation>
+<translation id="3203405173652969239">"Qasja me çelës" është aktivizuar</translation>
 <translation id="3207953481422525583">Cilësimet e përdoruesit</translation>
 <translation id="3217205077783620295">Volumi është aktiv. Ndërrimi do ta heqë audion.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> më shumë</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> të mbetura deri sa bateria të karikohet plotësisht.</translation>
 <translation id="9215934040295798075">Cakto imazhin e sfondit</translation>
 <translation id="921989828232331238">Prindi yt e kyçi pajisjen tënde për këtë ditë</translation>
+<translation id="9220525904950070496">Hiq llogarinë</translation>
 <translation id="923686485342484400">Shtyp dy herë Control, Shift, Q për të dalë.</translation>
 <translation id="938963181863597773">Çfarë ka në kalendarin tim?</translation>
 <translation id="945522503751344254">Dërgo komente</translation>
diff --git a/ash/strings/ash_strings_sr-Latn.xtb b/ash/strings/ash_strings_sr-Latn.xtb
index 2b76dfc..23a3073 100644
--- a/ash/strings/ash_strings_sr-Latn.xtb
+++ b/ash/strings/ash_strings_sr-Latn.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Kliknite za više opcija</translation>
 <translation id="1570871743947603115">Uključite/isključite Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Pristupite svim aktivnostima u ovoj sesiji</translation>
-<translation id="1608626060424371292">Ukloni ovog korisnika</translation>
+<translation id="1632985212731562677">Pristup pomoću prekidača može da se onemogući u odeljku Podešavanja &gt; Pristupačnost.</translation>
 <translation id="1654477262762802994">Započnite glasovnu pretragu</translation>
 <translation id="1658406695958299976">Žao nam je, verifikacija lozinke još uvek nije uspela. Napomena: ako ste nedavno promenili lozinku, nova lozinka će se primeniti kada se odjavite. Ovde koristite staru lozinku.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> je preostalo</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Administrator uređaja može da prati aktivnosti pregledanja.</translation>
 <translation id="3181441307743005334">Restartovanje može da potraje</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Povezani ste sa jednim uređajem}one{Povezani ste sa # uređajem}few{Povezani ste sa # uređaja}other{Povezani ste sa # uređaja}}</translation>
+<translation id="3203405173652969239">Pristup pomoću prekidača je omogućen</translation>
 <translation id="3207953481422525583">Podešavanja korisnika</translation>
 <translation id="3217205077783620295">Zvuk je uključen. Možete da ga isključite pomeranjem prekidača.</translation>
 <translation id="3226991577105957773">i još <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Još <ph name="TIME_REMAINING" /> i baterija će se u potpunosti napuniti.</translation>
 <translation id="9215934040295798075">Podesi pozadinu</translation>
 <translation id="921989828232331238">Roditelj je zaključao ovaj uređaj za danas</translation>
+<translation id="9220525904950070496">Uklanjanje naloga</translation>
 <translation id="923686485342484400">Dvaput pritisnite Control Shift Q da biste se odjavili.</translation>
 <translation id="938963181863597773">Šta je u kalendaru?</translation>
 <translation id="945522503751344254">Pošalji povratne informacije</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb
index 0169083..e998c02 100644
--- a/ash/strings/ash_strings_sr.xtb
+++ b/ash/strings/ash_strings_sr.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Кликните за више опција</translation>
 <translation id="1570871743947603115">Укључите/искључите Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Приступите свим активностима у овој сесији</translation>
-<translation id="1608626060424371292">Уклони овог корисника</translation>
+<translation id="1632985212731562677">Приступ помоћу прекидача може да се онемогући у одељку Подешавања &gt; Приступачност.</translation>
 <translation id="1654477262762802994">Започните гласовну претрагу</translation>
 <translation id="1658406695958299976">Жао нам је, верификација лозинке још увек није успела. Напомена: ако сте недавно променили лозинку, нова лозинка ће се применити када се одјавите. Овде користите стару лозинку.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> је преостало</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Администратор уређаја може да прати активности прегледања.</translation>
 <translation id="3181441307743005334">Рестартовање може да потраје</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Повезани сте са једним уређајем}one{Повезани сте са # уређајем}few{Повезани сте са # уређаја}other{Повезани сте са # уређаја}}</translation>
+<translation id="3203405173652969239">Приступ помоћу прекидача је омогућен</translation>
 <translation id="3207953481422525583">Подешавања корисника</translation>
 <translation id="3217205077783620295">Звук је укључен. Можете да га искључите померањем прекидача.</translation>
 <translation id="3226991577105957773">и још <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Још <ph name="TIME_REMAINING" /> и батерија ће се у потпуности напунити.</translation>
 <translation id="9215934040295798075">Подеси позадину</translation>
 <translation id="921989828232331238">Родитељ је закључао овај уређај за данас</translation>
+<translation id="9220525904950070496">Уклањање налога</translation>
 <translation id="923686485342484400">Двапут притисните Control Shift Q да бисте се одјавили.</translation>
 <translation id="938963181863597773">Шта је у календару?</translation>
 <translation id="945522503751344254">Пошаљи повратне информације</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index 6a7f4153..e340df6 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Klicka här för fler alternativ</translation>
 <translation id="1570871743947603115">Aktivera och inaktivera Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Få tillgång till all aktivitet i sessionen</translation>
-<translation id="1608626060424371292">Ta bort denna användare</translation>
+<translation id="1632985212731562677">Brytarstyrning kan inaktiveras under Inställningar &gt; Tillgänglighet</translation>
 <translation id="1654477262762802994">Säg en sökfråga</translation>
 <translation id="1658406695958299976">Det gick inte att verifiera lösenordet. Obs! Om du nyligen har bytt lösenord börjar det nya lösenordet att gälla först när du loggar ut. Använd det gamla lösenordet här.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> kvar</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Enhetsadministratören kan övervaka din webbaktivitet.</translation>
 <translation id="3181441307743005334">Det kan ta en stund att starta om</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Ansluten till en enhet}other{Ansluten till # enheter}}</translation>
+<translation id="3203405173652969239">Brytarstyrning har aktiverats</translation>
 <translation id="3207953481422525583">Användarinställningar</translation>
 <translation id="3217205077783620295">Ljudet är på. Om du ändrar läge stängs ljudet av.</translation>
 <translation id="3226991577105957773">och <ph name="COUNT" /> till</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> återstår tills batteriet är fulladdat.</translation>
 <translation id="9215934040295798075">Ange bakgrund</translation>
 <translation id="921989828232331238">Din förälder har låst enheten för dagen</translation>
+<translation id="9220525904950070496">Ta bort konto</translation>
 <translation id="923686485342484400">Tryck på Control + skift + Q två gånger om du vill logga ut.</translation>
 <translation id="938963181863597773">Vad står det i min kalender?</translation>
 <translation id="945522503751344254">Skicka synpunkter</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb
index 23f2151..91b674da 100644
--- a/ash/strings/ash_strings_sw.xtb
+++ b/ash/strings/ash_strings_sw.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Bofya ili upate chaguo zaidi</translation>
 <translation id="1570871743947603115">Washa au uzime Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Fikia shughuli zako zote katika kipindi hiki</translation>
-<translation id="1608626060424371292">Ondoa mtumiaji huyu</translation>
+<translation id="1632985212731562677">Unaweza kuzima Kipengele cha Kufikia Kupitia Swichi katika Mipangilio &gt; Ufikivu.</translation>
 <translation id="1654477262762802994">Anza kutamka hoja ya utafutaji</translation>
 <translation id="1658406695958299976">Samahani, tumeshindwa kuthibitisha nenosiri lako. Kumbuka: ikiwa ulibadilisha nenosiri lako hivi karibuni, nenosiri lako jipya litaanza kutumika pindi utakapoondoka kwenye akaunti, tafadhali tumia nenosiri la awali hapa.</translation>
 <translation id="1677472565718498478">Zimesalia <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Msimamizi wa kifaa anaweza kufuatilia shughuli zako za kuvinjari.</translation>
 <translation id="3181441307743005334">Shughuli ya kuzima kisha uwashe inaweza kuchukua muda</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Imeunganishwa kwenye kifaa kimoja}other{Imeunganishwa kwenye vifaa #}}</translation>
+<translation id="3203405173652969239">Kipengele cha Kufikia Kupitia Swichi kimewashwa</translation>
 <translation id="3207953481422525583">Mipangilio ya Mtumiaji</translation>
 <translation id="3217205077783620295">Umewasha sauti, Ukigeuza swichi utazima sauti.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> zaidi</translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">Zimebaki <ph name="TIME_REMAINING" /> kabla ya chaji ya betri kujaa.</translation>
 <translation id="9215934040295798075">Weka mandhari</translation>
 <translation id="921989828232331238">Kifaa chako kimefungwa na mzazi wako kwa leo</translation>
+<translation id="9220525904950070496">Ondoa akaunti</translation>
 <translation id="923686485342484400">Bonyeza Control Shift Q mara mbili ili kuondoka katika akaunti.</translation>
 <translation id="938963181863597773">Kuna nini kwenye kalenda yangu?</translation>
 <translation id="945522503751344254">Tuma maoni</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index 93baef5..01edfc5 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -55,7 +55,6 @@
 <translation id="1550523713251050646">மேலும் விருப்பங்களுக்குக் கிளிக் செய்யவும்</translation>
 <translation id="1570871743947603115">புளூடூத்தை நிலைமாற்றும். <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">இந்த அமர்விலுள்ள உங்கள் அனைத்துச் செயல்பாடுகளையும் அணுகுதல்</translation>
-<translation id="1608626060424371292">இவரை அகற்று</translation>
 <translation id="1654477262762802994">குரல் வினவலைத் தொடங்கு</translation>
 <translation id="1658406695958299976">மன்னிக்கவும், உங்கள் கடவுச்சொல் இன்னும் சரிபார்க்கப்படவில்லை. குறிப்பு: உங்கள் கடவுச்சொல்லைச் சமீபத்தில் மாற்றியிருந்தால், நீங்கள் வெளியேறியவுடன் புதிய கடவுச்சொல் பயன்படுத்தப்படும், இங்கு பழைய கடவுச்சொல்லைப் பயன்படுத்தவும்.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> மணி நேரம்</translation>
@@ -105,6 +104,7 @@
 <translation id="2268813581635650749">அனைவரையும் வெளியேற்று</translation>
 <translation id="2277103315734023688">முன்செல்</translation>
 <translation id="2292698582925480719">திரை அளவு</translation>
+<translation id="2295777434187870477">மைக் ஒலி இயக்கப்பட்டுள்ளது, நிலைமாற்றினால் அது ஒலியடக்கப்படும்.</translation>
 <translation id="2298170939937364391">முழுத்திரைப் பெரிதாக்கி இயக்கப்பட்டுள்ளது. அதை முடக்க Ctrl+Search+Mமை மீண்டும் அழுத்தவும்.</translation>
 <translation id="2302092602801625023">இந்தக் கணக்கு Family Linkகால் நிர்வகிக்கப்படுகிறது</translation>
 <translation id="2303600792989757991">சாளர மேலோட்டத்தை நிலைமாற்று</translation>
@@ -138,6 +138,7 @@
 <translation id="2658778018866295321">கிளிக் செய்து இழுக்கும்</translation>
 <translation id="2700493154570097719">எனது விசைப்பலகையை அமை</translation>
 <translation id="2704781753052663061">பிற வைஃபை நெட்வொர்க்குகளில் இணையுங்கள்</translation>
+<translation id="2705001408393684014">மைக்கை நிலைமாற்றும். <ph name="STATE_TEXT" /></translation>
 <translation id="2718395828230677721">நைட் லைட்</translation>
 <translation id="2727977024730340865">குறைந்த சக்தியிலான சார்ஜர் செருகப்பட்டுள்ளது. பேட்டரி சார்ஜிங் நம்பகமானதாக இல்லாமல் இருக்கலாம்.</translation>
 <translation id="2792498699870441125">Alt+தேடல்</translation>
@@ -296,6 +297,7 @@
 <translation id="4665114317261903604">'தொந்தரவு செய்ய வேண்டாம்' அம்சத்தை ஆன்/ஆஃப் செய்யும். <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">பெற்றோர் குறியீட்டின் மூலம் சாதனத்தை திறத்தல்</translation>
 <translation id="4702647871202761252">தனிப்பட்ட திரை முடக்கப்பட்டுள்ளது</translation>
+<translation id="4705716602320768426">கருத்தைப் பதிவுசெய்க</translation>
 <translation id="4710243778082831592">IME அமைப்புகள்</translation>
 <translation id="4731797938093519117">பெற்றோர் அணுகல்</translation>
 <translation id="4734965478015604180">கிடைமட்டம்</translation>
@@ -376,6 +378,7 @@
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">இயக்கு</translation>
+<translation id="5920710855273935292">மைக் ஒலியடக்கப்பட்டுள்ளது.</translation>
 <translation id="5947494881799873997">மாற்றியமை</translation>
 <translation id="595202126637698455">செயல்திறனைத் தடமறிதல் இயக்கப்பட்டுள்ளது</translation>
 <translation id="5957083217255311415">மொபைல் டேட்டா முடக்கப்பட்டது.</translation>
@@ -647,6 +650,7 @@
 <translation id="9211681782751733685">பேட்டரி முழுவதும் சார்ஜ் ஆவதற்கான நேரம்: <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">வால்பேப்பரை அமை</translation>
 <translation id="921989828232331238">உங்கள் பெற்றோர் இன்று சாதனத்தைப் பயன்படுத்த முடியாதபடி பூட்டிவிட்டனர்</translation>
+<translation id="9220525904950070496">கணக்கை அகற்றுக</translation>
 <translation id="923686485342484400">வெளியேற Control Shift Q ஐ இருமுறை அழுத்தவும்.</translation>
 <translation id="938963181863597773">எனது கேலெண்டரில் என்ன உள்ளது?</translation>
 <translation id="945522503751344254">பின்னூட்டம் அனுப்புக</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index b4523de..fcdd13bf 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -55,7 +55,6 @@
 <translation id="1550523713251050646">మరిన్ని ఎంపికల కోసం క్లిక్ చేయండి</translation>
 <translation id="1570871743947603115">బ్లూటూత్‌ను టోగుల్ చేయండి. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">ఈ సెషన్‌లో మీ మొత్తం కార్యకలాపాన్ని యాక్సెస్ చేయండి</translation>
-<translation id="1608626060424371292">ఈ వినియోగదారును తీసివేయండి</translation>
 <translation id="1654477262762802994">వాయిస్ ప్రశ్నను ప్రారంభించు</translation>
 <translation id="1658406695958299976">క్షమించండి, మీ పాస్‌వర్డ్ ఇప్పటికీ ధృవీకరించబడలేదు. గమనిక: మీరు మీ పాస్‌వర్డ్‌ను ఇటీవల మార్చి ఉంటే, మీరు సైన్ అవుట్ చేసిన తర్వాత మీ కొత్త పాస్‌వర్డ్ వర్తించబడుతుంది, దయచేసి పాత పాస్‌వర్డ్‌ను ఇక్కడ ఉపయోగించండి.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> మిగిలి ఉంది</translation>
@@ -105,6 +104,7 @@
 <translation id="2268813581635650749">అందరినీ సైన్ అవుట్ చేయి</translation>
 <translation id="2277103315734023688">ముందుకు జరుపు</translation>
 <translation id="2292698582925480719">ప్రదర్శన ప్రమాణం</translation>
+<translation id="2295777434187870477">మైక్ ఆన్లో ఉంది, టోగుల్ చేయడం వలన ఇన్‌పుట్ మ్యూట్ అవుతుంది.</translation>
 <translation id="2298170939937364391">పూర్తి-స్క్రీన్ మాగ్నిఫైయర్ ఎనేబుల్ చేయబడింది. దాన్ని ఆఫ్‌కు టోగుల్ చేయడానికి మళ్లీ Ctrl+Search+Mని నొక్కండి.</translation>
 <translation id="2302092602801625023">ఈ ఖాతా Family Link ద్వారా నిర్వహించబడుతుంది</translation>
 <translation id="2303600792989757991">విండో స్థూలదృష్టిని టోగుల్ చేయి</translation>
@@ -138,6 +138,7 @@
 <translation id="2658778018866295321">క్లిక్ చేసి, లాగండి</translation>
 <translation id="2700493154570097719">మీ కీబోర్డ్‌ని సెట్ చేయండి</translation>
 <translation id="2704781753052663061">ఇతర Wi-Fi నెట్‌వర్క్‌లలో చేరండి</translation>
+<translation id="2705001408393684014">మైక్‌ను టోగుల్ చేయండి. <ph name="STATE_TEXT" /></translation>
 <translation id="2718395828230677721">రాత్రి కాంతి</translation>
 <translation id="2727977024730340865">తక్కువ-పవర్ గల ఛార్జర్‌కు ప్లగిన్ చేయబడింది. బ్యాటరీ ఛార్జింగ్ విశ్వసనీయంగా ఉండకపోవచ్చు.</translation>
 <translation id="2792498699870441125">Alt+Search</translation>
@@ -297,6 +298,7 @@
 <translation id="4665114317261903604">'అంతరాయం కలిగించవద్దు' ఎంపికను టోగుల్ చేయండి. <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">తల్లి/తండ్రి కోడ్‌తో పరికరాన్ని అన్‌లాక్ చేయండి</translation>
 <translation id="4702647871202761252">గోప్యతా స్క్రీన్ ఆఫ్‌లో ఉంది</translation>
+<translation id="4705716602320768426">ఫైల్ ఫీడ్‌బ్యాక్</translation>
 <translation id="4710243778082831592">IME సెట్టింగ్‌లు</translation>
 <translation id="4731797938093519117">తల్లి/తండ్రి యాక్సెస్</translation>
 <translation id="4734965478015604180">అడ్డంగా ఉంది</translation>
@@ -377,6 +379,7 @@
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">ఆన్ చేయి</translation>
+<translation id="5920710855273935292">మైక్ మ్యూట్ చేయబడింది.</translation>
 <translation id="5947494881799873997">తిరిగి పూర్వ స్థితికి మార్చు</translation>
 <translation id="595202126637698455">పనితీరుని గుర్తించడం ప్రారంభించబడింది</translation>
 <translation id="5957083217255311415">మొబైల్ డేటా ఆఫ్‌లో ఉంది.</translation>
@@ -648,6 +651,7 @@
 <translation id="9211681782751733685">బ్యాటరీ పూర్తిగా ఛార్జ్ కావడానికి పట్టే సమయం, <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">వాల్‌పేపర్‌ను సెట్ చేయండి</translation>
 <translation id="921989828232331238">మీ తల్లి/తండ్రి ఈ రోజుకి మీ పరికరాన్ని లాక్ చేసి ఉంచారు</translation>
+<translation id="9220525904950070496">ఖాతాను తీసివేయండి</translation>
 <translation id="923686485342484400">సైన్ అవుట్ చేయడానికి Control Shift Qను రెండుసార్లు నొక్కండి.</translation>
 <translation id="938963181863597773">నా క్యాలెండర్‌లో ఏమి ఉన్నాయి?</translation>
 <translation id="945522503751344254">అభిప్రాయాన్ని పంపండి</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index e8e96b7..41913e4 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">คลิกเพื่อดูตัวเลือกเพิ่มเติม</translation>
 <translation id="1570871743947603115">เปิด/ปิดบลูทูธ <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">เข้าถึงกิจกรรมทั้งหมดของคุณในเซสชันนี้</translation>
-<translation id="1608626060424371292">ลบผู้ใช้รายนี้</translation>
+<translation id="1632985212731562677">ปิดใช้การเข้าถึงด้วยสวิตช์ได้ในการตั้งค่า &gt; การช่วยเหลือพิเศษ</translation>
 <translation id="1654477262762802994">เริ่มการค้นหาด้วยเสียง</translation>
 <translation id="1658406695958299976">ขออภัย ยังคงยืนยันรหัสผ่านไม่ได้ หมายเหตุ: หากคุณเปลี่ยนแปลงรหัสผ่านไปเมื่อเร็วๆ นี้ รหัสผ่านใหม่จะมีผลเมื่อคุณออกจากระบบ โปรดใช้รหัสผ่านเดิมที่นี่</translation>
 <translation id="1677472565718498478">ใช้ได้อีก <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">ผู้ดูแลระบบของอุปกรณ์อาจตรวจสอบกิจกรรมการท่องเว็บของคุณ</translation>
 <translation id="3181441307743005334">การรีสตาร์ทอาจใช้เวลาสักพัก</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{เชื่อมต่ออุปกรณ์แล้ว 1 เครื่อง}other{เชื่อมต่ออุปกรณ์แล้ว # เครื่อง}}</translation>
+<translation id="3203405173652969239">เปิดใช้การเข้าถึงด้วยสวิตช์แล้ว</translation>
 <translation id="3207953481422525583">การตั้งค่าของผู้ใช้</translation>
 <translation id="3217205077783620295">ระดับเสียงเปิดอยู่ สลับเปิด/ปิดเพื่อปิดเสียง</translation>
 <translation id="3226991577105957773">และอีก <ph name="COUNT" /> รายการ</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">อีก <ph name="TIME_REMAINING" />จะชาร์จเต็ม</translation>
 <translation id="9215934040295798075">ตั้งค่าวอลเปเปอร์</translation>
 <translation id="921989828232331238">ผู้ปกครองล็อกอุปกรณ์ของคุณไว้ทั้งวัน</translation>
+<translation id="9220525904950070496">ลบบัญชี</translation>
 <translation id="923686485342484400">กด Control Shift Q 2 ครั้งเพื่อออกจากระบบ</translation>
 <translation id="938963181863597773">มีอะไรในปฏิทินของฉันบ้าง</translation>
 <translation id="945522503751344254">ส่งความคิดเห็น</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index aafb19f..db391ad 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Daha fazla seçenek için tıklayın</translation>
 <translation id="1570871743947603115">Bluetooth'u aç/kapat. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Bu oturumdaki tüm etkinliğinize erişme</translation>
-<translation id="1608626060424371292">Bu kullanıcıyı kaldır</translation>
+<translation id="1632985212731562677">Anahtar Erişimi, Ayarlar &gt; Erişilebilirlik'te devre dışı bırakılabilir.</translation>
 <translation id="1654477262762802994">Sesli sorgu başlat</translation>
 <translation id="1658406695958299976">Maalesef şifreniz hâlâ doğrulanamadı. Not: Şifrenizi yakın zamanda değiştirdiyseniz, yeni şifreniz oturumu kapatmanızdan sonra geçerli olacaktır. Lütfen burada eski şifrenizi kullanın.</translation>
 <translation id="1677472565718498478">Kalan süre: <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Cihaz yöneticisi göz atma etkinliğinizi izleyebilir.</translation>
 <translation id="3181441307743005334">Yeniden başlatmak biraz zaman alabilir</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Bir cihaza bağlı}other{# cihaza bağlı}}</translation>
+<translation id="3203405173652969239">Anahtar Erişimi etkinleştirildi</translation>
 <translation id="3207953481422525583">Kullanıcı Ayarları</translation>
 <translation id="3217205077783620295">Ses açık, düğmeye basılırsa ses kapatılacak.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> öğe daha</translation>
@@ -652,6 +653,7 @@
 <translation id="9211681782751733685">Pilin tam olarak şarj olmasına <ph name="TIME_REMAINING" /> kaldı.</translation>
 <translation id="9215934040295798075">Duvar kağıdını ayarla</translation>
 <translation id="921989828232331238">Ebeveyniniz cihazınızı bugün için kilitledi</translation>
+<translation id="9220525904950070496">Hesabı kaldır</translation>
 <translation id="923686485342484400">Oturumu kapatmak için Control ÜstKrktr Q tuşlarına iki defa basın.</translation>
 <translation id="938963181863597773">Takvimimde ne var?</translation>
 <translation id="945522503751344254">Geri bildirim gönder</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index 86b7c92..6e40406 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Натисніть, щоб побачити більше опцій</translation>
 <translation id="1570871743947603115">Увімкнути/вимкнути Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">мати доступ до всіх ваших дій у цьому сеансі</translation>
-<translation id="1608626060424371292">Вилучити цього користувача</translation>
+<translation id="1632985212731562677">Щоб вимкнути кнопковий доступ, відкрийте "Налаштування" &gt; "Спеціальні можливості".</translation>
 <translation id="1654477262762802994">Ввести голосовий запит</translation>
 <translation id="1658406695958299976">На жаль, поки не вдалося підтвердити ваш пароль. Зверніть увагу: якщо ви нещодавно змінили пароль, новий пароль буде застосовано, щойно ви вийдете з облікового запису. Скористайтеся старим паролем тут.</translation>
 <translation id="1677472565718498478">Залишилося <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Адміністратор пристрою може відстежувати дані веб-перегляду.</translation>
 <translation id="3181441307743005334">Перезапуск може зайняти якийсь час</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Під’єднано до пристрою}one{Під’єднано до # пристрою}few{Під’єднано до # пристроїв}many{Під’єднано до # пристроїв}other{Під’єднано до # пристрою}}</translation>
+<translation id="3203405173652969239">Кнопковий доступ увімкнено</translation>
 <translation id="3207953481422525583">Налаштування користувача</translation>
 <translation id="3217205077783620295">Звук увімкнено. Його можна вимкнути за допомогою перемикача.</translation>
 <translation id="3226991577105957773">Ще <ph name="COUNT" /></translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">До повного зарядження акумулятора залишилося <ph name="TIME_REMAINING" />.</translation>
 <translation id="9215934040295798075">Вибрати фоновий малюнок</translation>
 <translation id="921989828232331238">Батьки заблокували твій пристрій на весь день</translation>
+<translation id="9220525904950070496">Видалення облікового запису</translation>
 <translation id="923686485342484400">Щоб вийти, двічі натисніть Control Shift Q.</translation>
 <translation id="938963181863597773">Які події заплановано?</translation>
 <translation id="945522503751344254">Надіслати відгук</translation>
diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb
index b3319e3..236f4878 100644
--- a/ash/strings/ash_strings_ur.xtb
+++ b/ash/strings/ash_strings_ur.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">مزید اختیارات کیلئے کلک کریں</translation>
 <translation id="1570871743947603115">بلوٹوتھ ٹوگل کریں۔ <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">اس سیشن کی اپنی ہر سرگرمی تک رسائی حاصل کریں</translation>
-<translation id="1608626060424371292">اس صارف کو ہٹائیں</translation>
+<translation id="1632985212731562677">سوئچ رسائی کو ترتیبات &gt; ایکسیسبیلٹی میں غیر فعال کیا جا سکتا ہے۔</translation>
 <translation id="1654477262762802994">صوتی استفسار شروع کریں</translation>
 <translation id="1658406695958299976">معذرت، آپ کے پاس ورڈ کی اب بھی توثیق نہیں کی جا سکی۔ نوٹ: اگر آپ نے اپنا پاس ورڈ حال ہی میں تبدیل کیا ہے تو آپ کا نیا پاس ورڈ آپ کے سائن آؤٹ کرنے پر لاگو ہو جائے گا، براہ کرم یہاں پرانا پاس ورڈ استعمال کریں۔</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> باقی</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">آلہ کا منتظم آپ کی براؤزنگ سرگرمی کو مانیٹر کر سکتا ہے۔</translation>
 <translation id="3181441307743005334">ری سٹارٹ کرنے میں کچھ وقت لگ سکتا ہے</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{ایک آلہ سے منسلک ہے}other{# آلات سے منسلک ہے}}</translation>
+<translation id="3203405173652969239">سوئچ رسائی فعال ہو گئی</translation>
 <translation id="3207953481422525583">صارف کی ترتیبات</translation>
 <translation id="3217205077783620295">والیوم آن ہے۔ ٹوگل کرنے سے آڈیو خاموش ہو جائے گی۔</translation>
 <translation id="3226991577105957773">‏‎<ph name="COUNT" />+‎ مزید</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">بیٹری کے مکمل طور پر چارج ہونے میں <ph name="TIME_REMAINING" /> باقی ہے۔</translation>
 <translation id="9215934040295798075">وال پیپر سیٹ کریں</translation>
 <translation id="921989828232331238">آپ کے والد/والدہ نے آپ کے آلے کو دن بھر کے لئے مقفل کر دیا</translation>
+<translation id="9220525904950070496">اکاؤنٹ ہٹائیں</translation>
 <translation id="923686485342484400">‏سائن آؤٹ کرنے کیلئے Control Shift Q کو دو بار دبائیں۔</translation>
 <translation id="938963181863597773">میرے کیلینڈر میں کیا ہے؟</translation>
 <translation id="945522503751344254">تاثرات بھیجیں</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb
index a640764..e9bf8fc 100644
--- a/ash/strings/ash_strings_uz.xtb
+++ b/ash/strings/ash_strings_uz.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Qo‘shimcha parametrlarni ko‘rish</translation>
 <translation id="1570871743947603115">Bluetooth qurilmasini yoqish/o‘chirish <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Bu seansdagi barcha harakatlaringizga ruxsat</translation>
-<translation id="1608626060424371292">Profilni o‘chirish</translation>
+<translation id="1632985212731562677">Switch Access funksiyasini Sozlamalar &gt; Maxsus imkoniyatlar orqali faolsizlantirish mumkin.</translation>
 <translation id="1654477262762802994">Ovozli qidiruvni boshlash</translation>
 <translation id="1658406695958299976">Parol noto‘g‘ri kiritildi. Unutmangki: bu parol yaqinda o‘zgartirilgan, lekin tizimdan chiqilmagan, yangi parol qo‘llanishi uchun eski parolingizni kiriting.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> qoldi</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Qurilma administratori brauzeringiz tarixini kuzatishi mumkin.</translation>
 <translation id="3181441307743005334">Oʻchib yonishi biroz vaqt olishi mumkin</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Qurilmaga ulandi}other{# ta qurilmaga ulandi}}</translation>
+<translation id="3203405173652969239">Switch Access yoqildi</translation>
 <translation id="3207953481422525583">Foydalanuvchi sozlamalari</translation>
 <translation id="3217205077783620295">Ovoz yoniq. Ovozsiz qilish uchun shu belgini bosing.</translation>
 <translation id="3226991577105957773">yana <ph name="COUNT" /> ta</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Batareya toʻliq quvvatlanishigacha qolgan vaqt: <ph name="TIME_REMAINING" /></translation>
 <translation id="9215934040295798075">Fon rasmini tanlash</translation>
 <translation id="921989828232331238">Ota-onangiz qurilmangizni butun kun uchun qulfladi</translation>
+<translation id="9220525904950070496">Hisobni olib tashlash</translation>
 <translation id="923686485342484400">Chiqish uchun “Control+Shift+Q” tugmalarini ikki marta bosing.</translation>
 <translation id="938963181863597773">Taqvimda nima bor?</translation>
 <translation id="945522503751344254">Fikr-mulohaza</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index 67ab7a3..9c3703b 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Nhấp để xem các tùy chọn khác</translation>
 <translation id="1570871743947603115">Bật/tắt Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Truy cập vào tất cả hoạt động của bạn trong phiên này</translation>
-<translation id="1608626060424371292">Xóa người dùng này</translation>
+<translation id="1632985212731562677">Bạn có thể tắt tính năng Tiếp cận bằng công tắc trong phần Cài đặt &gt; Hỗ trợ tiếp cận.</translation>
 <translation id="1654477262762802994">Bắt đầu đặt câu hỏi bằng giọng nói</translation>
 <translation id="1658406695958299976">Rất tiếc, chúng tôi vẫn không thể xác minh được mật khẩu của bạn. Lưu ý: nếu gần đây bạn đã đổi mật khẩu thì mật khẩu mới của bạn sẽ được áp dụng sau khi bạn đăng xuất. Vui lòng sử dụng mật khẩu cũ của bạn tại đây.</translation>
 <translation id="1677472565718498478">Còn <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Quản trị viên thiết bị có thể theo dõi hoạt động duyệt web của bạn.</translation>
 <translation id="3181441307743005334">Quá trình khởi động có thể mất một chút thời gian</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Đã kết nối với một thiết bị}other{Đã kết nối với # thiết bị}}</translation>
+<translation id="3203405173652969239">Đã bật tùy chọn Tiếp cận bằng công tắc</translation>
 <translation id="3207953481422525583">Cài đặt người dùng</translation>
 <translation id="3217205077783620295">Âm lượng đang bật. Nếu bạn chuyển đổi, âm thanh sẽ bị tắt.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> mục khác</translation>
@@ -341,7 +342,7 @@
 <translation id="5379115545237091094">Quá nhiều lần thử</translation>
 <translation id="5397578532367286026">Người quản lý (<ph name="MANAGER_EMAIL" />) trên chrome.com có thể xem lại mức sử dụng và lịch sử của người dùng này.</translation>
 <translation id="5400461572260843123">Cài đặt nhanh, Nhấn vào phím tìm kiếm + mũi tên trái để truy cập vào trung tâm thông báo.</translation>
-<translation id="5430931332414098647">Chia sẻ kết nối tức thì</translation>
+<translation id="5430931332414098647">Chia sẻ Internet tức thì</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
 <translation id="544691375626129091">Tất cả người dùng hiện có mặt đã được thêm vào phiên này.</translation>
 <translation id="54609108002486618">Được quản lý</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">Còn <ph name="TIME_REMAINING" /> nữa là sạc đầy pin.</translation>
 <translation id="9215934040295798075">Đặt hình nền</translation>
 <translation id="921989828232331238">Cha mẹ đã khóa thiết bị của bạn cả ngày</translation>
+<translation id="9220525904950070496">Xóa tài khoản</translation>
 <translation id="923686485342484400">Nhấn Control Shift Q hai lần để đăng xuất.</translation>
 <translation id="938963181863597773">Trên lịch của tôi có sự kiện gì?</translation>
 <translation id="945522503751344254">Gửi phản hồi</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index edf3383..bd7104a 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">点击即可查看更多选项</translation>
 <translation id="1570871743947603115">切换蓝牙设置。<ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">访问您在此次会话中的所有活动</translation>
-<translation id="1608626060424371292">移除此用户</translation>
+<translation id="1632985212731562677">您可在“设置”&gt;“无障碍”中停用“开关控制”功能。</translation>
 <translation id="1654477262762802994">启动语音查询</translation>
 <translation id="1658406695958299976">抱歉,系统仍然无法验证您的密码。注意:如果您最近更改了密码,新密码将在您退出后生效。目前请在此处输入旧密码。</translation>
 <translation id="1677472565718498478">电量尚余 <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">此设备的管理员可能会监控您的浏览活动。</translation>
 <translation id="3181441307743005334">重启可能需要一点时间</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{已连接到 1 台设备}other{已连接到 # 台设备}}</translation>
+<translation id="3203405173652969239">“开关控制”功能已启用</translation>
 <translation id="3207953481422525583">用户设置</translation>
 <translation id="3217205077783620295">已开启声音,使用切换开关可将音频静音。</translation>
 <translation id="3226991577105957773">+另外 <ph name="COUNT" /> 条</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">电池电量将在 <ph name="TIME_REMAINING" />后充满。</translation>
 <translation id="9215934040295798075">设置壁纸</translation>
 <translation id="921989828232331238">您的家长已全天锁定您的设备</translation>
+<translation id="9220525904950070496">移除帐号</translation>
 <translation id="923686485342484400">连按两次Ctrl+Shift+Q即可退出。</translation>
 <translation id="938963181863597773">我的日历中有哪些活动?</translation>
 <translation id="945522503751344254">发送反馈</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb
index 7584dc4..69f7a8c5 100644
--- a/ash/strings/ash_strings_zh-HK.xtb
+++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">點擊即可取得更多選項</translation>
 <translation id="1570871743947603115">切換藍牙。<ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">存取此工作階段的所有活動紀錄</translation>
-<translation id="1608626060424371292">移除這個使用者</translation>
+<translation id="1632985212731562677">您可在 [設定] &gt; [無障礙功能] 中停用「按鈕控制」。</translation>
 <translation id="1654477262762802994">開始語音查詢</translation>
 <translation id="1658406695958299976">很抱歉,系統仍然無法驗證您的密碼。請注意:如果您最近修改了密碼,新密碼會在您登出後立即生效,目前請在這裡使用舊密碼。</translation>
 <translation id="1677472565718498478">電量尚餘 <ph name="TIME" /></translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">裝置管理員可能會監控您的瀏覽活動。</translation>
 <translation id="3181441307743005334">重新啟動中,請稍候</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{已連接 1 部裝置}other{已連接 # 部裝置}}</translation>
+<translation id="3203405173652969239">已啟用「按鈕控制」</translation>
 <translation id="3207953481422525583">使用者設定</translation>
 <translation id="3217205077783620295">打開咗音量,切換將會靜音。</translation>
 <translation id="3226991577105957773">還有 <ph name="COUNT" /> 項</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">電池仲有 <ph name="TIME_REMAINING" />就差滿電。</translation>
 <translation id="9215934040295798075">設定桌布</translation>
 <translation id="921989828232331238">您的家長今天已鎖定此裝置</translation>
+<translation id="9220525904950070496">移除帳戶</translation>
 <translation id="923686485342484400">按兩下 Ctrl+Shift+Q 鍵即可登出。</translation>
 <translation id="938963181863597773">我日曆有咩活動?</translation>
 <translation id="945522503751344254">提供意見反映</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index 3b58aa2..71936d2 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">按一下即可查看更多選項</translation>
 <translation id="1570871743947603115">切換藍牙設定。<ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">存取你在這個工作階段內的所有活動</translation>
-<translation id="1608626060424371292">移除這位使用者</translation>
+<translation id="1632985212731562677">你可以依序點選 [設定] &gt; [無障礙設定] 來停用開關功能。</translation>
 <translation id="1654477262762802994">啟動語音查詢</translation>
 <translation id="1658406695958299976">很抱歉,系統仍然無法驗證你的密碼。注意:如果你的密碼最近有所異動,新密碼會在你登出後立即生效,目前請在這裡使用舊密碼。</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> 後用盡</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">裝置管理員可能會監控你的瀏覽活動。</translation>
 <translation id="3181441307743005334">重新啟動中,請稍候</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{已連線至一部裝置}other{已連線至 # 部裝置}}</translation>
+<translation id="3203405173652969239">已啟用開關功能</translation>
 <translation id="3207953481422525583">使用者設定</translation>
 <translation id="3217205077783620295">音量已開啟;使用切換按鈕可設為靜音。</translation>
 <translation id="3226991577105957773">還有 <ph name="COUNT" /> 則</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685">電池剩餘充電時間:<ph name="TIME_REMAINING" />。</translation>
 <translation id="9215934040295798075">設定桌布</translation>
 <translation id="921989828232331238">你的家長今天已鎖定這部裝置</translation>
+<translation id="9220525904950070496">移除帳戶</translation>
 <translation id="923686485342484400">按兩下 Ctrl+Shift+Q 鍵即可登出。</translation>
 <translation id="938963181863597773">我的日曆上有什麼活動?</translation>
 <translation id="945522503751344254">提供意見</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb
index 4bd09ae..d5070b4 100644
--- a/ash/strings/ash_strings_zu.xtb
+++ b/ash/strings/ash_strings_zu.xtb
@@ -55,7 +55,7 @@
 <translation id="1550523713251050646">Chofoza ukuze uthole izinketho eziningi</translation>
 <translation id="1570871743947603115">Shintsha i-Bluetooth. <ph name="STATE_TEXT" /></translation>
 <translation id="1589090746204042747">Finyelela kuwo wonke umsebenzi wakho kule seshini</translation>
-<translation id="1608626060424371292">Susa lo msebenzisi</translation>
+<translation id="1632985212731562677">Ukushintsha ukufinyelela kungakhutshazwa kokuthi Izilungiselelo &gt; Ukufinyeleleka.</translation>
 <translation id="1654477262762802994">Qalisa umbuzo wezwi</translation>
 <translation id="1658406695958299976">Uxolo, iphasiwedi yakho namanje ayikwazanga ukuqinisekiswa. Yazi: Uma uguqule iphasiwedi kamuva nje, iphasiwedi yakho entsha izosetshenziswa ngemuva kokuthi uphume ngemvume, sicela usebenzise iphasiwedi endala lapha.</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> esele</translation>
@@ -182,6 +182,7 @@
 <translation id="3154351730702813399">Umlawuli wedivayisi angangamela umsebenzi wakho wokupheqa.</translation>
 <translation id="3181441307743005334">Ukuqala kabusha kungathatha isikhathi</translation>
 <translation id="3202010236269062730">{NUM_DEVICES,plural, =1{Kuxhunywe kudivayisi}one{Kuxhunywe kumadivayisi angu-#}other{Kuxhunywe kumadivayisi angu-#}}</translation>
+<translation id="3203405173652969239">Ukushintsha ukufinyelela kunikwe amandla</translation>
 <translation id="3207953481422525583">Izilungiselelo Zomsebenzisi</translation>
 <translation id="3217205077783620295">Ivolomu ivuliwe, ukushintsha kuzothulisa umsindo.</translation>
 <translation id="3226991577105957773">+<ph name="COUNT" /> okuningi</translation>
@@ -651,6 +652,7 @@
 <translation id="9211681782751733685"><ph name="TIME_REMAINING" /> osele ibhethri lize lishajiwe ngokugcwele.</translation>
 <translation id="9215934040295798075">Setha isithombe sangemuva</translation>
 <translation id="921989828232331238">Umzali wakho ukhiyele idivayisi yakho usuku</translation>
+<translation id="9220525904950070496">Susa i-akhawunti</translation>
 <translation id="923686485342484400">Cindezela u-Control Shift Q kabili ukuze uphume ngemvume.</translation>
 <translation id="938963181863597773">Yini okukukhalenda yami?</translation>
 <translation id="945522503751344254">Thumela impendulo</translation>
diff --git a/ash/wm/gestures/back_gesture/back_gesture_affordance.cc b/ash/wm/gestures/back_gesture/back_gesture_affordance.cc
index f730e25..bea06c8 100644
--- a/ash/wm/gestures/back_gesture/back_gesture_affordance.cc
+++ b/ash/wm/gestures/back_gesture/back_gesture_affordance.cc
@@ -10,9 +10,11 @@
 #include "ash/wm/splitview/split_view_controller.h"
 #include "ash/wm/splitview/split_view_divider.h"
 #include "ash/wm/window_util.h"
+#include "base/i18n/rtl.h"
 #include "components/vector_icons/vector_icons.h"
 #include "ui/aura/window.h"
 #include "ui/compositor/paint_recorder.h"
+#include "ui/display/screen.h"
 #include "ui/events/event.h"
 #include "ui/gfx/animation/animation_delegate.h"
 #include "ui/gfx/animation/tween.h"
@@ -167,15 +169,18 @@
     // Draw the arrow.
     const float arrow_x = center_point.x() - kArrowSize / 2.f;
     const float arrow_y = center_point.y() - kArrowSize / 2.f;
+    const bool is_rtl = base::i18n::IsRTL();
     if (is_activated) {
       canvas->DrawImageInt(
-          gfx::CreateVectorIcon(vector_icons::kBackArrowIcon, kArrowSize,
-                                kArrowColorAfterActivated),
+          gfx::CreateVectorIcon(is_rtl ? vector_icons::kForwardArrowIcon
+                                       : vector_icons::kBackArrowIcon,
+                                kArrowSize, kArrowColorAfterActivated),
           static_cast<int>(arrow_x), static_cast<int>(arrow_y));
     } else {
       canvas->DrawImageInt(
-          gfx::CreateVectorIcon(vector_icons::kBackArrowIcon, kArrowSize,
-                                kArrowColorBeforeActivated),
+          gfx::CreateVectorIcon(is_rtl ? vector_icons::kForwardArrowIcon
+                                       : vector_icons::kBackArrowIcon,
+                                kArrowSize, kArrowColorBeforeActivated),
           static_cast<int>(arrow_x), static_cast<int>(arrow_y));
     }
   }
@@ -220,12 +225,13 @@
       gfx::Rect(2 * kMaxBurstRippleRadius, 2 * kMaxBurstRippleRadius));
 
   gfx::Point origin;
-  // X origin of the affordance is beyond the left of this location. It could be
-  // the left of the display or the splitview divider.
-  int left_location = 0;
-  if (dragged_from_splitview_divider)
-    left_location = GetSplitViewDividerBoundsInScreen(location).x();
-  origin.set_x(left_location - kDistanceBeyondLeftOrSplitvieDivider);
+  // X origin of the affordance is always beyond the left of the screen. We'll
+  // apply translation to the affordance to put it in the right place during
+  // dragging.
+  const gfx::Rect work_area = display::Screen::GetScreen()
+                                  ->GetDisplayNearestPoint(location)
+                                  .work_area();
+  origin.set_x(work_area.x() - kDistanceBeyondLeftOrSplitvieDivider);
 
   int origin_y =
       location.y() - kDistanceFromArrowToTouchPoint - kMaxBurstRippleRadius;
@@ -240,13 +246,36 @@
   return bounds;
 }
 
+// Returns the mirrored location of |location| if we're in rtl setting. If
+// |dragged_from_splitview_divider| is true,  it will return the mirrored
+// location against the center x position of the divider bar, otherwise, it will
+// return the mirrored location against the center x position of the screen.
+gfx::Point ToMirrorLocationIfRTL(const gfx::Point& location,
+                                 bool dragged_from_splitview_divider) {
+  if (!base::i18n::IsRTL())
+    return location;
+
+  const gfx::Rect work_area = display::Screen::GetScreen()
+                                  ->GetDisplayNearestPoint(location)
+                                  .work_area();
+  if (!dragged_from_splitview_divider) {
+    return gfx::Point(work_area.right() + work_area.x() - location.x(),
+                      location.y());
+  }
+
+  const gfx::Rect divider_bounds = GetSplitViewDividerBoundsInScreen(location);
+  return gfx::Point(2 * divider_bounds.CenterPoint().x() - location.x(),
+                    location.y());
+}
+
 }  // namespace
 
 BackGestureAffordance::BackGestureAffordance(
     const gfx::Point& location,
     bool dragged_from_splitview_divider)
     : dragged_from_splitview_divider_(dragged_from_splitview_divider) {
-  CreateAffordanceWidget(location);
+  CreateAffordanceWidget(
+      ToMirrorLocationIfRTL(location, dragged_from_splitview_divider));
 }
 
 BackGestureAffordance::~BackGestureAffordance() {}
@@ -259,7 +288,8 @@
   // Since affordance is put outside of the display, add the distance from its
   // center point to the left edge of the display to be the actual drag
   // distance.
-  x_drag_amount_ = x_drag_amount + kBackgroundRadius;
+  x_drag_amount_ = (base::i18n::IsRTL() ? -x_drag_amount : x_drag_amount) +
+                   kBackgroundRadius;
 
   float y_progress = y_drag_amount / kDistanceForFullYProgress;
   y_drag_progress_ = std::min(1.0f, std::max(-1.0f, y_progress));
@@ -321,10 +351,23 @@
     // Clip the affordance to make sure it will only be visible inside the
     // snapped window's bounds. Note, |clip_bounds| is the area that the
     // affordance will be visible, and it is based on the layer's coordinate.
-    gfx::Rect clip_bounds(
-        GetSplitViewDividerBoundsInScreen(location).right() - widget_bounds.x(),
-        0, kDistanceForMaxRadius + kMaxBurstRippleRadius,
-        widget_bounds.height());
+    gfx::Rect clip_bounds;
+    const gfx::Rect divider_bounds =
+        GetSplitViewDividerBoundsInScreen(location);
+    const gfx::Rect work_area = display::Screen::GetScreen()
+                                    ->GetDisplayNearestPoint(location)
+                                    .work_area();
+    if (base::i18n::IsRTL()) {
+      clip_bounds = gfx::Rect(divider_bounds.x() - kDistanceForMaxRadius -
+                                  kMaxBurstRippleRadius - widget_bounds.x(),
+                              0, kDistanceForMaxRadius + kMaxBurstRippleRadius,
+                              widget_bounds.height());
+    } else {
+      clip_bounds = gfx::Rect(divider_bounds.right() - work_area.x() +
+                                  kDistanceBeyondLeftOrSplitvieDivider,
+                              0, kDistanceForMaxRadius + kMaxBurstRippleRadius,
+                              widget_bounds.height());
+    }
     affordance_widget_->GetLayer()->SetClipRect(clip_bounds);
   }
   affordance_widget_->Show();
@@ -359,6 +402,29 @@
   offset = std::fmin(kDistanceForMaxRadius, std::fmax(0, offset));
   current_offset_ = offset;
 
+  // Adjusting the affordance offset based on different configurations (e.g.,
+  // drag from split view divider bar or rtl language) so that affordance can
+  // remain under or above the finger.
+  const gfx::Rect work_area =
+      display::Screen::GetScreen()
+          ->GetDisplayNearestWindow(affordance_widget_->GetNativeWindow())
+          .work_area();
+  if (dragged_from_splitview_divider_) {
+    auto* split_view_controller = SplitViewController::Get(
+        affordance_widget_->GetNativeWindow()->GetRootWindow());
+    const gfx::Rect divider_bounds =
+        split_view_controller->split_view_divider()->GetDividerBoundsInScreen(
+            /*is_dragging=*/false);
+    if (base::i18n::IsRTL()) {
+      offset = divider_bounds.right() - work_area.x() - offset +
+               kMaxBurstRippleRadius;
+    } else {
+      offset += divider_bounds.right() - work_area.x();
+    }
+  } else if (base::i18n::IsRTL()) {
+    offset = work_area.width() - offset + kMaxBurstRippleRadius;
+  }
+
   float y_offset = kMaxYMovement * y_drag_progress_;
   gfx::Transform transform;
   transform.Translate(offset, y_offset);
diff --git a/ash/wm/gestures/back_gesture/back_gesture_event_handler.cc b/ash/wm/gestures/back_gesture/back_gesture_event_handler.cc
index 43af7d38..f3744c0 100644
--- a/ash/wm/gestures/back_gesture/back_gesture_event_handler.cc
+++ b/ash/wm/gestures/back_gesture/back_gesture_event_handler.cc
@@ -21,6 +21,7 @@
 #include "ash/wm/window_state.h"
 #include "ash/wm/window_util.h"
 #include "ash/wm/wm_event.h"
+#include "base/i18n/rtl.h"
 #include "base/metrics/user_metrics.h"
 #include "ui/aura/client/aura_constants.h"
 #include "ui/aura/window.h"
@@ -75,8 +76,15 @@
     return false;
   }
 
-  divider_bounds.set_x(divider_bounds.x() -
-                       SplitViewDivider::kDividerEdgeInsetForTouch);
+  if (!base::i18n::IsRTL()) {
+    divider_bounds.set_x(divider_bounds.x() -
+                         SplitViewDivider::kDividerEdgeInsetForTouch);
+  } else {
+    divider_bounds.set_x(divider_bounds.x() -
+                         SplitViewDivider::kDividerEdgeInsetForTouch -
+                         BackGestureEventHandler::kStartGoingBackLeftEdgeInset);
+  }
+
   divider_bounds.set_width(
       divider_bounds.width() + SplitViewDivider::kDividerEdgeInsetForTouch +
       BackGestureEventHandler::kStartGoingBackLeftEdgeInset);
@@ -101,8 +109,11 @@
   if (!split_view_controller->InTabletSplitViewMode())
     return;
 
-  auto* left_window = split_view_controller->left_window();
-  auto* right_window = split_view_controller->right_window();
+  const bool is_rtl = base::i18n::IsRTL();
+  auto* left_window = is_rtl ? split_view_controller->right_window()
+                             : split_view_controller->left_window();
+  auto* right_window = is_rtl ? split_view_controller->left_window()
+                              : split_view_controller->right_window();
   const OrientationLockType current_orientation = GetCurrentScreenOrientation();
   if (current_orientation == OrientationLockType::kLandscapePrimary) {
     ActivateWindow(dragged_from_splitview_divider ? right_window : left_window);
@@ -191,10 +202,11 @@
 
     // Do not update |during_reverse_dragging_| if touch point's location
     // doesn't change.
-    if (current_location.x() < last_touch_point_.x())
-      during_reverse_dragging_ = true;
-    else if (current_location.x() > last_touch_point_.x())
-      during_reverse_dragging_ = false;
+    if (current_location.x() != last_touch_point_.x()) {
+      during_reverse_dragging_ = current_location.x() < last_touch_point_.x();
+      if (base::i18n::IsRTL())
+        during_reverse_dragging_ = !during_reverse_dragging_;
+    }
   }
   last_touch_point_ = event->location();
 
@@ -392,6 +404,10 @@
   gfx::Rect hit_bounds_in_screen(display::Screen::GetScreen()
                                      ->GetDisplayNearestWindow(top_window)
                                      .work_area());
+  if (base::i18n::IsRTL()) {
+    hit_bounds_in_screen.set_x(hit_bounds_in_screen.right() -
+                               kStartGoingBackLeftEdgeInset);
+  }
   hit_bounds_in_screen.set_width(kStartGoingBackLeftEdgeInset);
   if (hit_bounds_in_screen.Contains(screen_location))
     return true;
diff --git a/ash/wm/tablet_mode/tablet_mode_event_handler.cc b/ash/wm/tablet_mode/tablet_mode_event_handler.cc
deleted file mode 100644
index 46d5185..0000000
--- a/ash/wm/tablet_mode/tablet_mode_event_handler.cc
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/wm/tablet_mode/tablet_mode_event_handler.h"
-
-#include "ash/session/session_controller_impl.h"
-#include "ash/shell.h"
-#include "ash/wm/window_state.h"
-#include "ash/wm/window_util.h"
-#include "ash/wm/wm_event.h"
-#include "ui/aura/window.h"
-#include "ui/events/event.h"
-
-namespace ash {
-namespace {
-
-// The height of the area in which a touch operation leads to exiting the
-// full screen mode.
-const int kLeaveFullScreenAreaHeightInPixel = 2;
-
-}  // namespace
-
-TabletModeEventHandler::TabletModeEventHandler() {
-  Shell::Get()->AddPreTargetHandler(this);
-}
-
-TabletModeEventHandler::~TabletModeEventHandler() {
-  Shell::Get()->RemovePreTargetHandler(this);
-}
-
-void TabletModeEventHandler::OnTouchEvent(ui::TouchEvent* event) {
-  if (ToggleFullscreen(*event))
-    event->StopPropagation();
-}
-
-bool TabletModeEventHandler::ToggleFullscreen(const ui::TouchEvent& event) {
-  if (event.type() != ui::ET_TOUCH_PRESSED)
-    return false;
-
-  const SessionControllerImpl* controller = Shell::Get()->session_controller();
-
-  if (controller->IsScreenLocked() ||
-      controller->GetSessionState() != session_manager::SessionState::ACTIVE) {
-    return false;
-  }
-
-  // Find the active window (from the primary screen) to un-fullscreen.
-  aura::Window* window = window_util::GetActiveWindow();
-  if (!window)
-    return false;
-
-  WindowState* window_state = WindowState::Get(window);
-  if (!window_state->IsFullscreen() || window_state->IsInImmersiveFullscreen())
-    return false;
-
-  // Test that the touch happened in the top or bottom lines.
-  int y = event.y();
-  if (y >= kLeaveFullScreenAreaHeightInPixel &&
-      y < (window->bounds().height() - kLeaveFullScreenAreaHeightInPixel)) {
-    return false;
-  }
-
-  // Do not exit fullscreen in kiosk app mode.
-  if (Shell::Get()->session_controller()->IsRunningInAppMode())
-    return false;
-
-  WMEvent toggle_fullscreen(WM_EVENT_TOGGLE_FULLSCREEN);
-  WindowState::Get(window)->OnWMEvent(&toggle_fullscreen);
-  return true;
-}
-
-}  // namespace ash
diff --git a/ash/wm/tablet_mode/tablet_mode_event_handler.h b/ash/wm/tablet_mode/tablet_mode_event_handler.h
deleted file mode 100644
index a7b7a450..0000000
--- a/ash/wm/tablet_mode/tablet_mode_event_handler.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_WM_TABLET_MODE_TABLET_MODE_EVENT_HANDLER_H_
-#define ASH_WM_TABLET_MODE_TABLET_MODE_EVENT_HANDLER_H_
-
-#include "base/macros.h"
-#include "ui/events/event_handler.h"
-
-namespace ui {
-class TouchEvent;
-}
-
-namespace ash {
-
-// TabletModeEventHandler handles toggling fullscreen when appropriate.
-// TabletModeEventHandler installs event handlers in an environment specific
-// way, e.g. EventHandler for aura.
-class TabletModeEventHandler : public ui::EventHandler {
- public:
-  TabletModeEventHandler();
-  ~TabletModeEventHandler() override;
-
- private:
-  // ui::EventHandler:
-  void OnTouchEvent(ui::TouchEvent* event) override;
-
-  // Returns true if a toggle happened.
-  bool ToggleFullscreen(const ui::TouchEvent& event);
-
-  DISALLOW_COPY_AND_ASSIGN(TabletModeEventHandler);
-};
-
-}  // namespace ash
-
-#endif  // ASH_WM_TABLET_MODE_TABLET_MODE_EVENT_HANDLER_H_
diff --git a/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler.cc b/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler.cc
new file mode 100644
index 0000000..afa3036
--- /dev/null
+++ b/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler.cc
@@ -0,0 +1,139 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler.h"
+
+#include "ash/public/cpp/shelf_config.h"
+#include "ash/session/session_controller_impl.h"
+#include "ash/shell.h"
+#include "ash/wm/window_state.h"
+#include "ash/wm/window_util.h"
+#include "ash/wm/wm_event.h"
+#include "ui/aura/window.h"
+#include "ui/events/event.h"
+
+namespace ash {
+namespace {
+
+// The height of the area in which a touch operation leads to exiting the
+// full screen mode.
+constexpr int kLeaveFullScreenAreaHeightInPixel = 2;
+
+}  // namespace
+
+TabletModeToggleFullscreenEventHandler::
+    TabletModeToggleFullscreenEventHandler() {
+  Shell::Get()->AddPreTargetHandler(this);
+}
+
+TabletModeToggleFullscreenEventHandler::
+    ~TabletModeToggleFullscreenEventHandler() {
+  ResetDragData();
+  Shell::Get()->RemovePreTargetHandler(this);
+}
+
+void TabletModeToggleFullscreenEventHandler::OnTouchEvent(
+    ui::TouchEvent* event) {
+  if (ProcessEvent(*event)) {
+    event->SetHandled();
+    event->StopPropagation();
+  }
+}
+
+void TabletModeToggleFullscreenEventHandler::OnWindowDestroying(
+    aura::Window* window) {
+  DCHECK(drag_data_);
+  DCHECK_EQ(drag_data_->window, window);
+  ResetDragData();
+}
+
+bool TabletModeToggleFullscreenEventHandler::ProcessEvent(
+    const ui::TouchEvent& event) {
+  switch (event.type()) {
+    case ui::ET_TOUCH_PRESSED: {
+      DCHECK(!drag_data_);
+
+      aura::Window* active_window = window_util::GetActiveWindow();
+      if (!active_window || !CanToggleFullscreen(active_window))
+        return false;
+
+      const int y = event.y();
+      // For touch press events only process the ones on the top or bottom
+      // lines.
+      if (y >= kLeaveFullScreenAreaHeightInPixel &&
+          y < (active_window->bounds().height() -
+               kLeaveFullScreenAreaHeightInPixel)) {
+        return false;
+      }
+
+      drag_data_ = DragData{y, active_window};
+      active_window->AddObserver(this);
+      return true;
+    }
+    case ui::ET_TOUCH_RELEASED: {
+      if (!drag_data_)
+        return false;
+
+      // Toggle fullscreen if dragged enough and the window can still be
+      // fullscreened.
+      const int drag_threshold =
+          ShelfConfig::Get()->shelf_size() *
+          ShelfConfig::Get()->drag_hide_ratio_threshold();
+      if (abs(event.y() - drag_data_->start_y_location) > drag_threshold &&
+          CanToggleFullscreen(drag_data_->window)) {
+        WMEvent toggle_fullscreen(WM_EVENT_TOGGLE_FULLSCREEN);
+        WindowState::Get(drag_data_->window)->OnWMEvent(&toggle_fullscreen);
+      }
+
+      ResetDragData();
+      return true;
+    }
+    case ui::ET_TOUCH_MOVED:
+      return drag_data_.has_value();
+    case ui::ET_TOUCH_CANCELLED: {
+      const bool drag_in_progress = drag_data_.has_value();
+      ResetDragData();
+      return drag_in_progress;
+    }
+    default:
+      break;
+  }
+
+  NOTREACHED();
+  return false;
+}
+
+bool TabletModeToggleFullscreenEventHandler::CanToggleFullscreen(
+    const aura::Window* window) {
+  DCHECK(window);
+
+  const SessionControllerImpl* controller = Shell::Get()->session_controller();
+  if (controller->IsScreenLocked() ||
+      controller->GetSessionState() != session_manager::SessionState::ACTIVE) {
+    return false;
+  }
+
+  // Find the active window (from the primary screen) to un-fullscreen.
+  aura::Window* active_window = window_util::GetActiveWindow();
+  if (window != active_window)
+    return false;
+
+  const WindowState* window_state = WindowState::Get(window);
+  if (!window_state->IsFullscreen() || window_state->IsInImmersiveFullscreen())
+    return false;
+
+  // Do not exit fullscreen in kiosk app mode.
+  if (Shell::Get()->session_controller()->IsRunningInAppMode())
+    return false;
+
+  return true;
+}
+
+void TabletModeToggleFullscreenEventHandler::ResetDragData() {
+  if (drag_data_)
+    drag_data_->window->RemoveObserver(this);
+  drag_data_.reset();
+}
+
+}  // namespace ash
diff --git a/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler.h b/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler.h
new file mode 100644
index 0000000..4ff560f0
--- /dev/null
+++ b/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler.h
@@ -0,0 +1,57 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_WM_TABLET_MODE_TABLET_MODE_TOGGLE_FULLSCREEN_EVENT_HANDLER_H_
+#define ASH_WM_TABLET_MODE_TABLET_MODE_TOGGLE_FULLSCREEN_EVENT_HANDLER_H_
+
+#include "ui/aura/window_observer.h"
+#include "ui/events/event_handler.h"
+
+namespace ui {
+class TouchEvent;
+}
+
+namespace ash {
+
+// TabletModeToggleFullscreenEventHandler handles toggling fullscreen when
+// appropriate. TabletModeToggleFullscreenEventHandler installs event handlers
+// in an environment specific way, e.g. EventHandler for aura.
+class TabletModeToggleFullscreenEventHandler : public ui::EventHandler,
+                                               public aura::WindowObserver {
+ public:
+  TabletModeToggleFullscreenEventHandler();
+  TabletModeToggleFullscreenEventHandler(
+      const TabletModeToggleFullscreenEventHandler&) = delete;
+  TabletModeToggleFullscreenEventHandler& operator=(
+      const TabletModeToggleFullscreenEventHandler&) = delete;
+  ~TabletModeToggleFullscreenEventHandler() override;
+
+ private:
+  struct DragData {
+    int start_y_location;
+    aura::Window* window;
+  };
+
+  // ui::EventHandler:
+  void OnTouchEvent(ui::TouchEvent* event) override;
+
+  // aura::WindowObserver:
+  void OnWindowDestroying(aura::Window* window) override;
+
+  bool ProcessEvent(const ui::TouchEvent& event);
+
+  // Returns true if |window| can be fullscreen toggled.
+  bool CanToggleFullscreen(const aura::Window* window);
+
+  // Resets |drag_data_| and remove the WindowObserver.
+  void ResetDragData();
+
+  // Valid if a processable drag is in progress. Contains the event initial
+  // location and the window that was active when the drag started.
+  base::Optional<DragData> drag_data_;
+};
+
+}  // namespace ash
+
+#endif  // ASH_WM_TABLET_MODE_TABLET_MODE_TOGGLE_FULLSCREEN_EVENT_HANDLER_H_
diff --git a/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler_unittest.cc b/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler_unittest.cc
new file mode 100644
index 0000000..c369eb7
--- /dev/null
+++ b/ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler_unittest.cc
@@ -0,0 +1,171 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler.h"
+
+#include "ash/public/cpp/window_properties.h"
+#include "ash/test/ash_test_base.h"
+#include "ash/wm/tablet_mode/tablet_mode_controller_test_api.h"
+#include "ash/wm/window_state.h"
+#include "ash/wm/wm_event.h"
+#include "ui/aura/window.h"
+
+namespace ash {
+
+class TabletModeToggleFullscreenEventHandlerTest : public AshTestBase {
+ public:
+  TabletModeToggleFullscreenEventHandlerTest() = default;
+  TabletModeToggleFullscreenEventHandlerTest(
+      const TabletModeToggleFullscreenEventHandlerTest&) = delete;
+  TabletModeToggleFullscreenEventHandlerTest& operator=(
+      const TabletModeToggleFullscreenEventHandlerTest&) = delete;
+  ~TabletModeToggleFullscreenEventHandlerTest() override = default;
+
+  // AshTestBase:
+  void SetUp() override {
+    AshTestBase::SetUp();
+
+    UpdateDisplay("800x600");
+    TabletModeControllerTestApi().EnterTabletMode();
+
+    background_window_ = CreateTestWindow(gfx::Rect(200, 200));
+    foreground_window_ = CreateTestWindow(gfx::Rect(200, 200));
+    ToggleFullscreen(foreground_window_.get(), /*immersive=*/false);
+    ToggleFullscreen(background_window_.get(), /*immersive=*/false);
+  }
+
+  void TearDown() override {
+    background_window_.reset();
+    foreground_window_.reset();
+    AshTestBase::TearDown();
+  }
+
+  void ToggleFullscreen(aura::Window* window, bool immersive) {
+    WMEvent toggle_fullscreen(WM_EVENT_TOGGLE_FULLSCREEN);
+    WindowState::Get(window)->OnWMEvent(&toggle_fullscreen);
+    window->SetProperty(kImmersiveIsActive, immersive);
+  }
+
+  bool IsFullscreen(aura::Window* window) const {
+    return WindowState::Get(window)->IsFullscreen();
+  }
+
+  void GenerateSwipe(int start_y, int end_y) {
+    GetEventGenerator()->GestureScrollSequence(
+        gfx::Point(400, start_y), gfx::Point(400, end_y),
+        base::TimeDelta::FromMilliseconds(100), 3);
+  }
+
+  aura::Window* foreground_window() { return foreground_window_.get(); }
+  aura::Window* background_window() { return background_window_.get(); }
+
+ private:
+  std::unique_ptr<aura::Window> foreground_window_;
+  std::unique_ptr<aura::Window> background_window_;
+};
+
+TEST_F(TabletModeToggleFullscreenEventHandlerTest, SwipeFromTop) {
+  ASSERT_TRUE(IsFullscreen(foreground_window()));
+  ASSERT_TRUE(IsFullscreen(background_window()));
+
+  // Try swiping from a point not on the edge. Verify that we do not exit
+  // fullscreen.
+  GenerateSwipe(100, 200);
+  ASSERT_TRUE(IsFullscreen(foreground_window()));
+  ASSERT_TRUE(IsFullscreen(background_window()));
+
+  // Try a tiny swipe that is on the edge. Verify that we do not exit
+  // fullscreen.
+  GenerateSwipe(1, 5);
+  ASSERT_TRUE(IsFullscreen(foreground_window()));
+  ASSERT_TRUE(IsFullscreen(background_window()));
+
+  // Test that a normal swipe on the edge will exit fullscreen on the active
+  // window.
+  GenerateSwipe(1, 50);
+  EXPECT_FALSE(IsFullscreen(foreground_window()));
+  EXPECT_TRUE(IsFullscreen(background_window()));
+
+  // Test that a second swipe will not do anything..
+  GenerateSwipe(1, 50);
+  EXPECT_FALSE(IsFullscreen(foreground_window()));
+  EXPECT_TRUE(IsFullscreen(background_window()));
+}
+
+TEST_F(TabletModeToggleFullscreenEventHandlerTest, SwipeFromBottom) {
+  ASSERT_TRUE(IsFullscreen(foreground_window()));
+  ASSERT_TRUE(IsFullscreen(background_window()));
+
+  // Try swiping from a point not on the edge. Verify that we do not exit
+  // fullscreen.
+  GenerateSwipe(500, 400);
+  ASSERT_TRUE(IsFullscreen(foreground_window()));
+  ASSERT_TRUE(IsFullscreen(background_window()));
+
+  // Try a tiny swipe that is on the edge. Verify that we do not exit
+  // fullscreen.
+  GenerateSwipe(599, 594);
+  ASSERT_TRUE(IsFullscreen(foreground_window()));
+  ASSERT_TRUE(IsFullscreen(background_window()));
+
+  // Test that a normal swipe on the edge will exit fullscreen on the active
+  // window.
+  GenerateSwipe(599, 549);
+  EXPECT_FALSE(IsFullscreen(foreground_window()));
+  EXPECT_TRUE(IsFullscreen(background_window()));
+}
+
+// Tests that tapping on the edge does not exit fullscreen.
+TEST_F(TabletModeToggleFullscreenEventHandlerTest, TapOnEdge) {
+  ASSERT_TRUE(IsFullscreen(foreground_window()));
+
+  // Tap on the top edge.
+  GetEventGenerator()->set_current_screen_location(gfx::Point(400, 1));
+  GetEventGenerator()->PressTouch();
+  GetEventGenerator()->ReleaseTouch();
+  EXPECT_TRUE(IsFullscreen(foreground_window()));
+
+  // Tap on the bottom edge.
+  GetEventGenerator()->set_current_screen_location(gfx::Point(400, 50));
+  GetEventGenerator()->PressTouch();
+  GetEventGenerator()->ReleaseTouch();
+  EXPECT_TRUE(IsFullscreen(foreground_window()));
+}
+
+TEST_F(TabletModeToggleFullscreenEventHandlerTest,
+       SwipeImmersiveFullscreenWindow) {
+  // Switch from non-immersive fullscreen to immersive fullscreen mode.
+  ToggleFullscreen(foreground_window(), /*immersive=*/true);
+  ToggleFullscreen(foreground_window(), /*immersive=*/true);
+  ASSERT_TRUE(IsFullscreen(foreground_window()));
+
+  // Test that a normal swipe on the top edge will not exit immersive
+  // fullscreen.
+  GenerateSwipe(1, 50);
+  EXPECT_TRUE(IsFullscreen(foreground_window()));
+  EXPECT_TRUE(IsFullscreen(background_window()));
+
+  // Test that a normal swipe on the top edge will not exit immersive
+  // fullscreen.
+  GenerateSwipe(599, 549);
+  EXPECT_TRUE(IsFullscreen(foreground_window()));
+  EXPECT_TRUE(IsFullscreen(background_window()));
+}
+
+// Tests that if a window is un-fullscreened during a drag, it remains
+// un-fullscreened on touch release.
+TEST_F(TabletModeToggleFullscreenEventHandlerTest, ToggleFullscreenDuringDrag) {
+  ASSERT_TRUE(IsFullscreen(foreground_window()));
+
+  GetEventGenerator()->set_current_screen_location(gfx::Point(400, 1));
+  GetEventGenerator()->PressTouch();
+  ToggleFullscreen(foreground_window(), /*immersive=*/false);
+  EXPECT_FALSE(IsFullscreen(foreground_window()));
+
+  GetEventGenerator()->set_current_screen_location(gfx::Point(400, 50));
+  GetEventGenerator()->ReleaseTouch();
+  EXPECT_FALSE(IsFullscreen(foreground_window()));
+}
+
+}  // namespace ash
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.cc b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
index b144ef8..94cc436e 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_manager.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
@@ -23,7 +23,7 @@
 #include "ash/wm/splitview/split_view_controller.h"
 #include "ash/wm/splitview/split_view_utils.h"
 #include "ash/wm/tablet_mode/scoped_skip_user_session_blocked_check.h"
-#include "ash/wm/tablet_mode/tablet_mode_event_handler.h"
+#include "ash/wm/tablet_mode/tablet_mode_toggle_fullscreen_event_handler.h"
 #include "ash/wm/tablet_mode/tablet_mode_window_state.h"
 #include "ash/wm/window_state.h"
 #include "ash/wm/window_util.h"
@@ -158,7 +158,7 @@
   Shell::Get()->overview_controller()->AddObserver(this);
   accounts_since_entering_tablet_.insert(
       Shell::Get()->session_controller()->GetActiveAccountId());
-  event_handler_ = std::make_unique<TabletModeEventHandler>();
+  event_handler_ = std::make_unique<TabletModeToggleFullscreenEventHandler>();
 }
 
 void TabletModeWindowManager::Shutdown() {
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.h b/ash/wm/tablet_mode/tablet_mode_window_manager.h
index 4666ea88..cb1b372 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_manager.h
+++ b/ash/wm/tablet_mode/tablet_mode_window_manager.h
@@ -29,7 +29,7 @@
 
 namespace ash {
 class TabletModeController;
-class TabletModeEventHandler;
+class TabletModeToggleFullscreenEventHandler;
 class TabletModeWindowState;
 
 // A window manager which - when created - will force all windows into maximized
@@ -184,7 +184,7 @@
   // All accounts that have been active at least once since tablet mode started.
   base::flat_set<AccountId> accounts_since_entering_tablet_;
 
-  std::unique_ptr<TabletModeEventHandler> event_handler_;
+  std::unique_ptr<TabletModeToggleFullscreenEventHandler> event_handler_;
 
   // True when tablet mode is about to end.
   bool is_exiting_ = false;
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc b/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc
index d44f375..e0ae2089 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc
@@ -1318,215 +1318,6 @@
   EXPECT_EQ(first_dragged_origin.y() + 5, window->bounds().y());
 }
 
-// Test that an edge swipe from the top will end full screen mode.
-TEST_P(TabletModeWindowManagerTest, ExitFullScreenWithEdgeSwipeFromTop) {
-  gfx::Rect rect(10, 10, 200, 50);
-  std::unique_ptr<aura::Window> background_window(
-      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
-  std::unique_ptr<aura::Window> foreground_window(
-      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
-  WindowState* background_window_state =
-      WindowState::Get(background_window.get());
-  WindowState* foreground_window_state =
-      WindowState::Get(foreground_window.get());
-  wm::ActivateWindow(foreground_window.get());
-  CreateTabletModeWindowManager();
-
-  // Fullscreen both windows.
-  WMEvent event(WM_EVENT_TOGGLE_FULLSCREEN);
-  background_window_state->OnWMEvent(&event);
-  foreground_window_state->OnWMEvent(&event);
-  EXPECT_TRUE(background_window_state->IsFullscreen());
-  EXPECT_TRUE(foreground_window_state->IsFullscreen());
-  EXPECT_EQ(foreground_window.get(), window_util::GetActiveWindow());
-
-  // Do an edge swipe top into screen.
-  ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
-  generator.GestureScrollSequence(gfx::Point(50, 0), gfx::Point(50, 100),
-                                  base::TimeDelta::FromMilliseconds(20), 10);
-
-  EXPECT_FALSE(foreground_window_state->IsFullscreen());
-  EXPECT_TRUE(background_window_state->IsFullscreen());
-
-  // Do a second edge swipe top into screen.
-  generator.GestureScrollSequence(gfx::Point(50, 0), gfx::Point(50, 100),
-                                  base::TimeDelta::FromMilliseconds(20), 10);
-
-  EXPECT_FALSE(foreground_window_state->IsFullscreen());
-  EXPECT_TRUE(background_window_state->IsFullscreen());
-
-  DestroyTabletModeWindowManager();
-}
-
-// Test that an edge swipe from the bottom will end full screen mode.
-TEST_P(TabletModeWindowManagerTest, ExitFullScreenWithEdgeSwipeFromBottom) {
-  gfx::Rect rect(10, 10, 200, 50);
-  std::unique_ptr<aura::Window> background_window(
-      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
-  std::unique_ptr<aura::Window> foreground_window(
-      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
-  WindowState* background_window_state =
-      WindowState::Get(background_window.get());
-  WindowState* foreground_window_state =
-      WindowState::Get(foreground_window.get());
-  wm::ActivateWindow(foreground_window.get());
-  CreateTabletModeWindowManager();
-
-  // Fullscreen both windows.
-  WMEvent event(WM_EVENT_TOGGLE_FULLSCREEN);
-  background_window_state->OnWMEvent(&event);
-  foreground_window_state->OnWMEvent(&event);
-  EXPECT_TRUE(background_window_state->IsFullscreen());
-  EXPECT_TRUE(foreground_window_state->IsFullscreen());
-  EXPECT_EQ(foreground_window.get(), window_util::GetActiveWindow());
-
-  // Do an edge swipe bottom into screen.
-  ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
-  int y = Shell::GetPrimaryRootWindow()->bounds().bottom();
-  generator.GestureScrollSequence(gfx::Point(50, y), gfx::Point(50, y - 100),
-                                  base::TimeDelta::FromMilliseconds(20), 10);
-
-  EXPECT_FALSE(foreground_window_state->IsFullscreen());
-  EXPECT_TRUE(background_window_state->IsFullscreen());
-
-  DestroyTabletModeWindowManager();
-}
-
-// Test that an edge touch press at the top will end full screen mode.
-TEST_P(TabletModeWindowManagerTest, ExitFullScreenWithEdgeTouchAtTop) {
-  gfx::Rect rect(10, 10, 200, 50);
-  std::unique_ptr<aura::Window> background_window(
-      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
-  std::unique_ptr<aura::Window> foreground_window(
-      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
-  WindowState* background_window_state =
-      WindowState::Get(background_window.get());
-  WindowState* foreground_window_state =
-      WindowState::Get(foreground_window.get());
-  wm::ActivateWindow(foreground_window.get());
-  CreateTabletModeWindowManager();
-
-  // Fullscreen both windows.
-  WMEvent event(WM_EVENT_TOGGLE_FULLSCREEN);
-  background_window_state->OnWMEvent(&event);
-  foreground_window_state->OnWMEvent(&event);
-  EXPECT_TRUE(background_window_state->IsFullscreen());
-  EXPECT_TRUE(foreground_window_state->IsFullscreen());
-  EXPECT_EQ(foreground_window.get(), window_util::GetActiveWindow());
-
-  // Touch tap on the top edge.
-  ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
-  generator.GestureTapAt(gfx::Point(100, 0));
-  EXPECT_FALSE(foreground_window_state->IsFullscreen());
-  EXPECT_TRUE(background_window_state->IsFullscreen());
-
-  // Try the same again and see that nothing changes.
-  generator.GestureTapAt(gfx::Point(100, 0));
-  EXPECT_FALSE(foreground_window_state->IsFullscreen());
-  EXPECT_TRUE(background_window_state->IsFullscreen());
-
-  DestroyTabletModeWindowManager();
-}
-
-// Test that an edge touch press at the bottom will end full screen mode.
-TEST_P(TabletModeWindowManagerTest, ExitFullScreenWithEdgeTouchAtBottom) {
-  gfx::Rect rect(10, 10, 200, 50);
-  std::unique_ptr<aura::Window> background_window(
-      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
-  std::unique_ptr<aura::Window> foreground_window(
-      CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect));
-  WindowState* background_window_state =
-      WindowState::Get(background_window.get());
-  WindowState* foreground_window_state =
-      WindowState::Get(foreground_window.get());
-  wm::ActivateWindow(foreground_window.get());
-  CreateTabletModeWindowManager();
-
-  // Fullscreen both windows.
-  WMEvent event(WM_EVENT_TOGGLE_FULLSCREEN);
-  background_window_state->OnWMEvent(&event);
-  foreground_window_state->OnWMEvent(&event);
-  EXPECT_TRUE(background_window_state->IsFullscreen());
-  EXPECT_TRUE(foreground_window_state->IsFullscreen());
-  EXPECT_EQ(foreground_window.get(), window_util::GetActiveWindow());
-
-  // Touch tap on the bottom edge.
-  ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
-  generator.GestureTapAt(
-      gfx::Point(100, Shell::GetPrimaryRootWindow()->bounds().bottom() - 1));
-  EXPECT_FALSE(foreground_window_state->IsFullscreen());
-  EXPECT_TRUE(background_window_state->IsFullscreen());
-
-  // Try the same again and see that nothing changes.
-  generator.GestureTapAt(
-      gfx::Point(100, Shell::GetPrimaryRootWindow()->bounds().bottom() - 1));
-  EXPECT_FALSE(foreground_window_state->IsFullscreen());
-  EXPECT_TRUE(background_window_state->IsFullscreen());
-
-  DestroyTabletModeWindowManager();
-}
-
-// Test that an edge swipe from the top on an immersive mode window will not end
-// full screen mode.
-TEST_P(TabletModeWindowManagerTest, NoExitImmersiveModeWithEdgeSwipeFromTop) {
-  std::unique_ptr<aura::Window> window(CreateWindow(
-      aura::client::WINDOW_TYPE_NORMAL, gfx::Rect(10, 10, 200, 50)));
-  WindowState* window_state = WindowState::Get(window.get());
-  wm::ActivateWindow(window.get());
-  CreateTabletModeWindowManager();
-
-  // Fullscreen the window.
-  WMEvent event(WM_EVENT_TOGGLE_FULLSCREEN);
-  window_state->OnWMEvent(&event);
-  EXPECT_TRUE(window_state->IsFullscreen());
-  EXPECT_FALSE(window_state->IsInImmersiveFullscreen());
-  EXPECT_EQ(window.get(), window_util::GetActiveWindow());
-
-  window->SetProperty(kImmersiveIsActive, true);
-
-  // Do an edge swipe top into screen.
-  ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
-  generator.GestureScrollSequence(gfx::Point(50, 0), gfx::Point(50, 100),
-                                  base::TimeDelta::FromMilliseconds(20), 10);
-
-  // It should have not exited full screen or immersive mode.
-  EXPECT_TRUE(window_state->IsFullscreen());
-  EXPECT_TRUE(window_state->IsInImmersiveFullscreen());
-
-  DestroyTabletModeWindowManager();
-}
-
-// Test that an edge swipe from the bottom will not end immersive mode.
-TEST_P(TabletModeWindowManagerTest,
-       NoExitImmersiveModeWithEdgeSwipeFromBottom) {
-  std::unique_ptr<aura::Window> window(CreateWindow(
-      aura::client::WINDOW_TYPE_NORMAL, gfx::Rect(10, 10, 200, 50)));
-  WindowState* window_state = WindowState::Get(window.get());
-  wm::ActivateWindow(window.get());
-  CreateTabletModeWindowManager();
-
-  // Fullscreen the window.
-  WMEvent event(WM_EVENT_TOGGLE_FULLSCREEN);
-  window_state->OnWMEvent(&event);
-  EXPECT_TRUE(window_state->IsFullscreen());
-  EXPECT_FALSE(window_state->IsInImmersiveFullscreen());
-  EXPECT_EQ(window.get(), window_util::GetActiveWindow());
-  window->SetProperty(kImmersiveIsActive, true);
-  EXPECT_TRUE(window_state->IsInImmersiveFullscreen());
-
-  // Do an edge swipe bottom into screen.
-  ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
-  int y = Shell::GetPrimaryRootWindow()->bounds().bottom();
-  generator.GestureScrollSequence(gfx::Point(50, y), gfx::Point(50, y - 100),
-                                  base::TimeDelta::FromMilliseconds(20), 10);
-
-  // The window should still be full screen and immersive.
-  EXPECT_TRUE(window_state->IsFullscreen());
-  EXPECT_TRUE(window_state->IsInImmersiveFullscreen());
-
-  DestroyTabletModeWindowManager();
-}
-
 // Tests that windows with the always-on-top property are not managed by
 // the TabletModeWindowManager while tablet mode is engaged (i.e.,
 // they remain free-floating).
diff --git a/base/fuchsia/test_component_context_for_process.cc b/base/fuchsia/test_component_context_for_process.cc
index 22a30499..3f2f9ea 100644
--- a/base/fuchsia/test_component_context_for_process.cc
+++ b/base/fuchsia/test_component_context_for_process.cc
@@ -9,6 +9,7 @@
 #include <lib/fidl/cpp/interface_handle.h>
 #include <lib/sys/cpp/component_context.h>
 
+#include "base/files/file_enumerator.h"
 #include "base/fuchsia/default_context.h"
 #include "base/fuchsia/filtered_service_directory.h"
 #include "base/fuchsia/fuchsia_logging.h"
@@ -16,7 +17,8 @@
 
 namespace base {
 
-TestComponentContextForProcess::TestComponentContextForProcess() {
+TestComponentContextForProcess::TestComponentContextForProcess(
+    InitialState initial_state) {
   // TODO(https://crbug.com/1038786): Migrate to sys::ComponentContextProvider
   // once it provides access to an sys::OutgoingDirectory or PseudoDir through
   // which to publish additional_services().
@@ -26,6 +28,15 @@
   context_services_ = std::make_unique<fuchsia::FilteredServiceDirectory>(
       base::fuchsia::ComponentContextForCurrentProcess()->svc().get());
 
+  // Push all services from /svc to the test context if requested.
+  if (initial_state == InitialState::kCloneAll) {
+    base::FileEnumerator file_enum(base::FilePath("/svc"), false,
+                                   base::FileEnumerator::FILES);
+    for (auto file = file_enum.Next(); !file.empty(); file = file_enum.Next()) {
+      AddService(file.BaseName().value());
+    }
+  }
+
   // Create a ServiceDirectory backed by the contents of |incoming_directory|.
   fidl::InterfaceHandle<::fuchsia::io::Directory> incoming_directory;
   context_services_->ConnectClient(incoming_directory.NewRequest());
@@ -60,10 +71,15 @@
   return context_services_->outgoing_directory();
 }
 
+void TestComponentContextForProcess::AddService(
+    const base::StringPiece service) {
+  context_services_->AddService(service);
+}
+
 void TestComponentContextForProcess::AddServices(
     base::span<const base::StringPiece> services) {
   for (auto service : services)
-    context_services_->AddService(service);
+    AddService(service);
 }
 
 }  // namespace base
diff --git a/base/fuchsia/test_component_context_for_process.h b/base/fuchsia/test_component_context_for_process.h
index f2e2b42..0c35447 100644
--- a/base/fuchsia/test_component_context_for_process.h
+++ b/base/fuchsia/test_component_context_for_process.h
@@ -41,18 +41,25 @@
 // test base-class:
 //
 //   TEST(MyFunkyTest, IsFunky) {
-//     TestComponentContextForTest test_context;
+//     TestComponentContextForProcess test_context;
 //     // Configure the |test_context|.
 //     // Run tests of code that uses ComponentContextForProcess().
 //   }
 //
-// Services from the original process-global ComponentContext (usually the
-// environment in which the test process is running), can be exposed through the
-// |test_context| with AddServices(), during test setup:
+// By default created context doesn't expose any services. Services from the
+// original process-global ComponentContext (usually the environment in which
+// the test process is running), can be exposed through the |test_context| with
+// AddServices(), during test setup:
 //
 //   test_context.AddServices({fuchsia::memorypressure::Provider::Name_, ...});
 //   // ... Execute tests which use fuchsia.memorypressure.Provider ...
 //
+// Alternatively InitialState::kEmpty can be passed to the constructor to expose
+// all services listed in /svc, e.g.:
+//
+//   TestComponentContextForProcess test_context(
+//       TestComponentContextForProcess::InitialState::kEmpty);
+//
 // Fake/mock implementations can be exposed via additional_services():
 //
 //   ScopedServiceBinding<funky::Service> binding(
@@ -68,7 +75,13 @@
 //
 class BASE_EXPORT TestComponentContextForProcess {
  public:
-  TestComponentContextForProcess();
+  enum class InitialState {
+    kEmpty,
+    kCloneAll,
+  };
+
+  TestComponentContextForProcess(
+      InitialState initial_state = InitialState::kEmpty);
   ~TestComponentContextForProcess();
 
   TestComponentContextForProcess(const TestComponentContextForProcess&) =
@@ -80,8 +93,9 @@
   // published for use by the code-under test.
   sys::OutgoingDirectory* additional_services();
 
-  // Allows the specified services from the original ComponentContext to be
+  // Allows the specified service(s) from the original ComponentContext to be
   // exposed via the test default ComponentContext.
+  void AddService(const base::StringPiece service);
   void AddServices(base::span<const base::StringPiece> services);
 
   // Returns the directory of services that the code under test has published
diff --git a/build/android/pylib/local/emulator/avd.py b/build/android/pylib/local/emulator/avd.py
index ba41e0c2..012071ba 100644
--- a/build/android/pylib/local/emulator/avd.py
+++ b/build/android/pylib/local/emulator/avd.py
@@ -183,7 +183,8 @@
              force=False,
              snapshot=False,
              keep=False,
-             cipd_json_output=None):
+             cipd_json_output=None,
+             dry_run=False):
     """Create an instance of the AVD CIPD package.
 
     This method:
@@ -192,7 +193,8 @@
      - modifies the AVD's ini files to support running chromium tests
        in chromium infrastructure
      - optionally starts & stops the AVD for snapshotting (default no)
-     - creates and uploads an instance of the AVD CIPD package
+     - By default creates and uploads an instance of the AVD CIPD package
+       (can be turned off by dry_run flag).
      - optionally deletes the AVD (default yes)
 
     Args:
@@ -202,6 +204,8 @@
       keep: bool indicating whether to keep the AVD after creating
         the CIPD package.
       cipd_json_output: string path to pass to `cipd create` via -json-output.
+      dry_run: When set to True, it will skip the CIPD package creation
+        after creating the AVD.
     """
     logging.info('Installing required packages.')
     self._InstallCipdPackages(packages=[
@@ -309,13 +313,16 @@
               '-json-output',
               cipd_json_output,
           ])
-        try:
-          for line in cmd_helper.IterCmdOutputLines(cipd_create_cmd):
-            logging.info('    %s', line)
-        except subprocess.CalledProcessError as e:
-          raise AvdException(
-              'CIPD package creation failed: %s' % str(e),
-              command=cipd_create_cmd)
+        if dry_run:
+          logging.info('Dry run. CIPD package creation skipped')
+        else:
+          try:
+            for line in cmd_helper.IterCmdOutputLines(cipd_create_cmd):
+              logging.info('    %s', line)
+          except subprocess.CalledProcessError as e:
+            raise AvdException(
+                'CIPD package creation failed: %s' % str(e),
+                command=cipd_create_cmd)
 
     finally:
       if not keep:
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
index 53137fd0..cf80acb 100644
--- a/build/config/android/internal_rules.gni
+++ b/build/config/android/internal_rules.gni
@@ -866,7 +866,7 @@
       _cache_dir = "$root_build_dir/android_lint_cache"
       _result_path = "$target_out_dir/$target_name/result.xml"
       _config_path = "$target_out_dir/$target_name/config.xml"
-      _stamp_path = "$target_out_dir/$target_name/build.stamp"
+      _stamp_path = "$target_out_dir/$target_name/build.lint.stamp"
       _suppressions_file = lint_suppressions_file
       _platform_xml_path =
           "${android_sdk_root}/platform-tools/api/api-versions.xml"
@@ -1606,7 +1606,7 @@
     if (!_skip_jetify) {
       _jetify_target = "${target_name}__jetify"
       _jetify_input_jar = _previous_output_jar
-      _jetify_output_jar = "$target_out_dir/$target_name-jetified.jar"
+      _jetify_output_jar = "$target_out_dir/$target_name.jetified.jar"
 
       action_with_pydeps(_jetify_target) {
         script = "//build/android/gyp/jetify_jar.py"
@@ -1645,7 +1645,7 @@
       _java_bytecode_rewriter_target = "${target_name}__bytecode_rewrite"
       _java_bytecode_rewriter_input_jar = _previous_output_jar
       _java_bytecode_rewriter_output_jar =
-          "$target_out_dir/$target_name-bytecode-rewritten.jar"
+          "$target_out_dir/$target_name.bytecode-rewritten.jar"
 
       action_with_pydeps(_java_bytecode_rewriter_target) {
         script = "//build/android/gyp/bytecode_processor.py"
@@ -1699,7 +1699,7 @@
     if (invoker.enable_desugar) {
       _desugar_target = "${target_name}__desugar"
       _desugar_input_jar = _previous_output_jar
-      _desugar_output_jar = "$target_out_dir/$target_name-desugar.jar"
+      _desugar_output_jar = "$target_out_dir/$target_name.desugar.jar"
 
       action_with_pydeps(_desugar_target) {
         script = "//build/android/gyp/desugar.py"
@@ -1741,7 +1741,7 @@
     if (_filter_jar) {
       _filter_target = "${target_name}__filter"
       _filter_input_jar = _previous_output_jar
-      _filter_output_jar = "$target_out_dir/$target_name-filtered.jar"
+      _filter_output_jar = "$target_out_dir/$target_name.filtered.jar"
 
       action_with_pydeps(_filter_target) {
         script = "//build/android/gyp/filter_zip.py"
@@ -1776,7 +1776,7 @@
       # Jacoco must run after desugar (or else desugar sometimes fails).
       _jacoco_target = "${target_name}__jacoco"
       _jacoco_input_jar = _previous_output_jar
-      _jacoco_output_jar = "$target_out_dir/$target_name-instrumented.jar"
+      _jacoco_output_jar = "$target_out_dir/$target_name.instrumented.jar"
 
       jacoco_instr(_jacoco_target) {
         deps = _deps
@@ -3322,7 +3322,7 @@
       _accumulated_deps += [ _sdk_java_dep ]
     }
     _jetified_jar_path =
-        "$target_out_dir/${target_name}__process_prebuilt-jetified.jar"
+        "$target_out_dir/${target_name}__process_prebuilt.jetified.jar"
 
     # Define build_config_deps which will be a list of targets required to
     # build the _build_config.
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index 2dd2937..d27fdfb 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -3284,7 +3284,7 @@
         _generated_script = "$root_build_dir/bin/${invoker.target_name}"
         script = "//build/android/gyp/create_apk_operations_script.py"
         outputs = [ _generated_script ]
-        if (_proguard_enabled) {
+        if (_proguard_enabled && !_incremental_apk) {
           # Required by logcat command.
           data_deps = [ "//build/android/stacktrace:java_deobfuscate" ]
           data = [ "$_final_apk_path.mapping" ]
diff --git a/build/config/sanitizers/sanitizers.gni b/build/config/sanitizers/sanitizers.gni
index f0cfd8a..119bb5c4 100644
--- a/build/config/sanitizers/sanitizers.gni
+++ b/build/config/sanitizers/sanitizers.gni
@@ -79,6 +79,9 @@
   # Compile for fuzzing with AFL.
   use_afl = false
 
+  # Compile for fuzzing with an external engine (e.g., Grammarinator).
+  use_external_fuzzing_engine = false
+
   # Enables core ubsan security features. Will later be removed once it matches
   # is_ubsan.
   is_ubsan_security = false
@@ -152,7 +155,7 @@
 # Whether we are doing a fuzzer build. Normally this should be checked instead
 # of checking "use_libfuzzer || use_afl" because often developers forget to
 # check for "use_afl".
-use_fuzzing_engine = use_libfuzzer || use_afl
+use_fuzzing_engine = use_libfuzzer || use_afl || use_external_fuzzing_engine
 
 # Args that are in turn dependent on other args must be in a separate
 # declare_args block. User overrides are only applied at the end of a
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 6c224f8..503e6d0 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -2930,7 +2930,6 @@
     "java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.java",
     "java/src/org/chromium/chrome/browser/site_settings/WebsitePreferenceBridge.java",
     "java/src/org/chromium/chrome/browser/sms/SmsReceiverInfoBar.java",
-    "java/src/org/chromium/chrome/browser/ssl/ChromeSecurityStateModelDelegate.java",
     "java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java",
     "java/src/org/chromium/chrome/browser/suggestions/SuggestionsEventReporterBridge.java",
     "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index 0096116..9025cc9 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -1513,7 +1513,6 @@
   "java/src/org/chromium/chrome/browser/site_settings/WebsitePreferenceBridge.java",
   "java/src/org/chromium/chrome/browser/sms/SmsReceiverInfoBar.java",
   "java/src/org/chromium/chrome/browser/sms/SmsReceiverUma.java",
-  "java/src/org/chromium/chrome/browser/ssl/ChromeSecurityStateModelDelegate.java",
   "java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java",
   "java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorMediator.java",
   "java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorProperties.java",
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingTestHelper.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingTestHelper.java
index 36573d4c..f25f09a 100644
--- a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingTestHelper.java
+++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingTestHelper.java
@@ -452,7 +452,7 @@
      * @return An interaction on the view matching |matcher.
      */
     public static ViewInteraction whenDisplayed(Matcher<View> matcher) {
-        onView(isRoot()).check((r, e) -> waitForView((ViewGroup) r, allOf(matcher, isDisplayed())));
+        onView(isRoot()).check(waitForView(allOf(matcher, isDisplayed())));
         return onView(matcher);
     }
 
@@ -468,9 +468,7 @@
     }
 
     public static void waitToBeHidden(Matcher<View> matcher) {
-        onView(isRoot()).check((r, e) -> {
-            waitForView((ViewGroup) r, matcher, VIEW_INVISIBLE | VIEW_NULL | VIEW_GONE);
-        });
+        onView(isRoot()).check(waitForView(matcher, VIEW_INVISIBLE | VIEW_NULL | VIEW_GONE));
     }
 
     public String getAttribute(String node, String attribute)
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java
index 91d61d4..65b902b 100644
--- a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java
+++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java
@@ -34,7 +34,6 @@
 import android.support.test.espresso.matcher.RootMatchers;
 import android.support.test.filters.MediumTest;
 import android.view.View;
-import android.view.ViewGroup;
 import android.view.ViewStub;
 
 import androidx.annotation.Nullable;
@@ -205,7 +204,7 @@
                     createAutofillChipAndTab("Johnathan", result -> clickRecorded.set(true)));
         });
 
-        onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("Johnathan")));
+        onView(isRoot()).check(waitForView(withText("Johnathan")));
         onView(withText("Johnathan")).perform(click());
 
         assertTrue(clickRecorded.get());
@@ -255,7 +254,7 @@
             mModel.get(BAR_ITEMS).set(new BarItem[] {itemWithIPH, createTabs()});
         });
 
-        onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("Johnathan")));
+        onView(isRoot()).check(waitForView(withText("Johnathan")));
         waitForHelpBubble(withText(R.string.iph_keyboard_accessory_fill_password));
         onView(withChild(withText("Johnathan"))).check(matches(isSelected()));
         onView(withText("Johnathan")).perform(click());
@@ -283,7 +282,7 @@
             mModel.get(BAR_ITEMS).set(new BarItem[] {itemWithIPH, createTabs()});
         });
 
-        onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("Johnathan")));
+        onView(isRoot()).check(waitForView(withText("Johnathan")));
         waitForHelpBubble(withText(R.string.iph_keyboard_accessory_fill_address));
         onView(withText("Johnathan")).perform(click());
 
@@ -309,7 +308,7 @@
             mModel.get(BAR_ITEMS).set(new BarItem[] {itemWithIPH, createTabs()});
         });
 
-        onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("Johnathan")));
+        onView(isRoot()).check(waitForView(withText("Johnathan")));
         waitForHelpBubble(withText(R.string.iph_keyboard_accessory_fill_payment));
         onView(withText("Johnathan")).perform(click());
 
@@ -322,7 +321,7 @@
         View mainDecorView = mActivityTestRule.getActivity().getWindow().getDecorView();
         onView(isRoot())
                 .inRoot(RootMatchers.withDecorView(not(is(mainDecorView))))
-                .check((root, e) -> waitForView((ViewGroup) root, matcher));
+                .check(waitForView(matcher));
     }
 
     private void rotateActivityToLandscape() {
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryViewTest.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryViewTest.java
index f9f813b..b8c1aad 100644
--- a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryViewTest.java
+++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryViewTest.java
@@ -30,7 +30,6 @@
 
 import android.support.test.filters.MediumTest;
 import android.view.View;
-import android.view.ViewGroup;
 import android.view.ViewStub;
 
 import com.google.android.material.tabs.TabLayout;
@@ -134,7 +133,7 @@
             mModel.get(BAR_ITEMS).add(testItem);
         });
 
-        onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("Test Button")));
+        onView(isRoot()).check(waitForView(withText("Test Button")));
         onView(withText("Test Button")).perform(click());
 
         assertTrue(buttonClicked.get());
@@ -152,7 +151,7 @@
                             new Action("Second", AUTOFILL_SUGGESTION, action -> {}))});
         });
 
-        onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("First")));
+        onView(isRoot()).check(waitForView(withText("First")));
         onView(withText("First")).check(matches(isDisplayed()));
         onView(withText("Second")).check(matches(isDisplayed()));
 
@@ -161,7 +160,7 @@
                     new Action("Third", GENERATE_PASSWORD_AUTOMATIC, action -> {})));
         });
 
-        onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("Third")));
+        onView(isRoot()).check(waitForView(withText("Third")));
         onView(withText("First")).check(matches(isDisplayed()));
         onView(withText("Second")).check(matches(isDisplayed()));
         onView(withText("Third")).check(matches(isDisplayed()));
@@ -181,7 +180,7 @@
                             new Action("Third", GENERATE_PASSWORD_AUTOMATIC, action -> {}))});
         });
 
-        onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("First")));
+        onView(isRoot()).check(waitForView(withText("First")));
         onView(withText("First")).check(matches(isDisplayed()));
         onView(withText("Second")).check(matches(isDisplayed()));
         onView(withText("Third")).check(matches(isDisplayed()));
@@ -189,9 +188,8 @@
         TestThreadUtils.runOnUiThreadBlocking(
                 () -> mModel.get(BAR_ITEMS).remove(mModel.get(BAR_ITEMS).get(1)));
 
-        onView(isRoot()).check((root, e)
-                                       -> waitForView((ViewGroup) root, withText("Second"),
-                                               VIEW_INVISIBLE | VIEW_GONE | VIEW_NULL));
+        onView(isRoot()).check(
+                waitForView(withText("Second"), VIEW_INVISIBLE | VIEW_GONE | VIEW_NULL));
         onView(withText("First")).check(matches(isDisplayed()));
         onView(withText("Second")).check(doesNotExist());
         onView(withText("Third")).check(matches(isDisplayed()));
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetViewTest.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetViewTest.java
index b316ca4..7dbc8a89 100644
--- a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetViewTest.java
+++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetViewTest.java
@@ -153,7 +153,7 @@
 
         TestThreadUtils.runOnUiThreadBlocking(() -> mModel.set(ACTIVE_TAB_INDEX, 1));
 
-        onView(isRoot()).check((r, e) -> waitForView((ViewGroup) r, withText(kSecondTab)));
+        onView(isRoot()).check(waitForView(withText(kSecondTab)));
     }
 
     @Test
@@ -194,7 +194,7 @@
             mModel.get(TABS).add(createTestTabWithTextView(kSecondTab));
             mModel.set(ACTIVE_TAB_INDEX, 0);
         });
-        onView(isRoot()).check((r, e) -> waitForView((ViewGroup) r, withText(kSecondTab)));
+        onView(isRoot()).check(waitForView(withText(kSecondTab)));
     }
 
     @Test
@@ -203,19 +203,15 @@
         mModel.get(TABS).add(createTestTabWithTextView("SomeTab"));
         mModel.set(TOP_SHADOW_VISIBLE, false);
         TestThreadUtils.runOnUiThreadBlocking(() -> mModel.set(VISIBLE, true)); // Render view.
-        onView(isRoot()).check((r, e) -> {
-            waitForView(
-                    (ViewGroup) r, withId(R.id.accessory_sheet_shadow), ViewUtils.VIEW_INVISIBLE);
-        });
+        onView(isRoot()).check(
+                waitForView(withId(R.id.accessory_sheet_shadow), ViewUtils.VIEW_INVISIBLE));
 
         TestThreadUtils.runOnUiThreadBlocking(() -> mModel.set(TOP_SHADOW_VISIBLE, true));
         onView(withId(R.id.accessory_sheet_shadow)).check(matches(isDisplayed()));
 
         TestThreadUtils.runOnUiThreadBlocking(() -> mModel.set(TOP_SHADOW_VISIBLE, false));
-        onView(isRoot()).check((r, e) -> {
-            waitForView(
-                    (ViewGroup) r, withId(R.id.accessory_sheet_shadow), ViewUtils.VIEW_INVISIBLE);
-        });
+        onView(isRoot()).check(
+                waitForView(withId(R.id.accessory_sheet_shadow), ViewUtils.VIEW_INVISIBLE));
     }
 
     private Tab createTestTabWithTextView(String textViewCaption) {
diff --git a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java
index bb335f8f..28921ca8 100644
--- a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java
+++ b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java
@@ -69,7 +69,7 @@
 public class InstantStartTest {
     // clang-format on
     private static final String IMMEDIATE_RETURN_PARAMS = "force-fieldtrial-params=Study.Group:"
-            + ReturnToChromeExperimentsUtil.TAB_SWITCHER_ON_RETURN_MS + "/0";
+            + ReturnToChromeExperimentsUtil.TAB_SWITCHER_ON_RETURN_MS_PARAM + "/0";
     private Bitmap mBitmap;
     private int mThumbnailFetchCount;
 
diff --git a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTest.java b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTest.java
index 2690bfd..52a10f50 100644
--- a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTest.java
+++ b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTest.java
@@ -12,6 +12,7 @@
 import static android.support.test.espresso.assertion.ViewAssertions.matches;
 import static android.support.test.espresso.matcher.ViewMatchers.Visibility.GONE;
 import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static android.support.test.espresso.matcher.ViewMatchers.isRoot;
 import static android.support.test.espresso.matcher.ViewMatchers.withEffectiveVisibility;
 import static android.support.test.espresso.matcher.ViewMatchers.withId;
 import static android.support.test.espresso.matcher.ViewMatchers.withParent;
@@ -164,18 +165,10 @@
                 .check(matches(isDisplayed()));
 
         onView(withId(R.id.ss_explore_tab)).perform(click());
-        waitForView((ViewGroup) mActivityTestRule.getActivity()
-                            .getWindow()
-                            .getDecorView()
-                            .getRootView(),
-                withId(R.id.start_surface_explore_view));
+        onView(isRoot()).check(waitForView(withId(R.id.start_surface_explore_view)));
 
         pressBack();
-        waitForView((ViewGroup) mActivityTestRule.getActivity()
-                            .getWindow()
-                            .getDecorView()
-                            .getRootView(),
-                withId(R.id.primary_tasks_surface_view));
+        onView(isRoot()).check(waitForView(withId(R.id.primary_tasks_surface_view)));
 
         TestThreadUtils.runOnUiThreadBlocking(
                 () -> mActivityTestRule.getActivity().getLayoutManager().hideOverview(false));
@@ -214,18 +207,10 @@
         } catch (ExecutionException e) {
             fail("Failed to tap 'more tabs' " + e.toString());
         }
-        waitForView((ViewGroup) mActivityTestRule.getActivity()
-                            .getWindow()
-                            .getDecorView()
-                            .getRootView(),
-                withId(R.id.secondary_tasks_surface_view));
+        onView(isRoot()).check(waitForView(withId(R.id.secondary_tasks_surface_view)));
 
         pressBack();
-        waitForView((ViewGroup) mActivityTestRule.getActivity()
-                            .getWindow()
-                            .getDecorView()
-                            .getRootView(),
-                withId(R.id.primary_tasks_surface_view));
+        onView(isRoot()).check(waitForView(withId(R.id.primary_tasks_surface_view)));
 
         OverviewModeBehaviorWatcher hideWatcher =
                 TabUiTestHelper.createOverviewHideWatcher(mActivityTestRule.getActivity());
@@ -274,18 +259,10 @@
         } catch (ExecutionException e) {
             fail("Failed to tap 'more tabs' " + e.toString());
         }
-        waitForView((ViewGroup) mActivityTestRule.getActivity()
-                            .getWindow()
-                            .getDecorView()
-                            .getRootView(),
-                withId(R.id.secondary_tasks_surface_view));
+        onView(isRoot()).check(waitForView(withId(R.id.secondary_tasks_surface_view)));
 
         pressBack();
-        waitForView((ViewGroup) mActivityTestRule.getActivity()
-                            .getWindow()
-                            .getDecorView()
-                            .getRootView(),
-                withId(R.id.primary_tasks_surface_view));
+        onView(isRoot()).check(waitForView(withId(R.id.primary_tasks_surface_view)));
 
         OverviewModeBehaviorWatcher hideWatcher =
                 TabUiTestHelper.createOverviewHideWatcher(mActivityTestRule.getActivity());
@@ -336,18 +313,10 @@
         } catch (ExecutionException e) {
             fail("Failed to tap 'more tabs' " + e.toString());
         }
-        waitForView((ViewGroup) mActivityTestRule.getActivity()
-                            .getWindow()
-                            .getDecorView()
-                            .getRootView(),
-                withId(R.id.secondary_tasks_surface_view));
+        onView(isRoot()).check(waitForView(withId(R.id.secondary_tasks_surface_view)));
 
         pressBack();
-        waitForView((ViewGroup) mActivityTestRule.getActivity()
-                            .getWindow()
-                            .getDecorView()
-                            .getRootView(),
-                withId(R.id.primary_tasks_surface_view));
+        onView(isRoot()).check(waitForView(withId(R.id.primary_tasks_surface_view)));
 
         OverviewModeBehaviorWatcher hideWatcher =
                 TabUiTestHelper.createOverviewHideWatcher(mActivityTestRule.getActivity());
diff --git a/chrome/android/features/tab_ui/java/res/values/dimens.xml b/chrome/android/features/tab_ui/java/res/values/dimens.xml
index 2d8f0f1..e3daf7f 100644
--- a/chrome/android/features/tab_ui/java/res/values/dimens.xml
+++ b/chrome/android/features/tab_ui/java/res/values/dimens.xml
@@ -5,6 +5,7 @@
 <resources xmlns:tools="http://schemas.android.com/tools">
     <dimen name="tab_grid_favicon_size">32dp</dimen>
     <dimen name="tab_list_selected_inset">7dp</dimen>
+    <dimen name="tab_list_selected_inset_low_end">6dp</dimen>
     <dimen name="tab_list_card_padding">8dp</dimen>
     <dimen name="tab_list_card_radius">4dp</dimen>
     <dimen name="tab_list_mini_card_radius">4dp</dimen>
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/NewTabTileMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/NewTabTileMediator.java
index e6af7e5..a017966 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/NewTabTileMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/NewTabTileMediator.java
@@ -27,8 +27,10 @@
             TabCreatorManager tabCreatorManager) {
         mTabModelSelector = tabModelSelector;
 
+        // Deliberately use un-cached value to match with native.
         float aspectRatio = (float) ChromeFeatureList.getFieldTrialParamByFeatureAsDouble(
-                ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, "thumbnail_aspect_ratio", 1.0);
+                ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID,
+                TabUiFeatureUtilities.THUMBNAIL_ASPECT_RATIO_PARAM, 1.0);
         aspectRatio = MathUtils.clamp(aspectRatio, 0.5f, 2.0f);
         model.set(NewTabTileViewProperties.THUMBNAIL_ASPECT_RATIO, aspectRatio);
         model.set(NewTabTileViewProperties.CARD_HEIGHT_INTERCEPT, 0);
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
index c3203d2..dff3752 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
@@ -300,8 +300,8 @@
         if (TabUiFeatureUtilities.isTabThumbnailAspectRatioNotOne()) {
             float expectedThumbnailAspectRatio =
                     (float) ChromeFeatureList.getFieldTrialParamByFeatureAsDouble(
-                            ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, "thumbnail_aspect_ratio",
-                            1.0);
+                            ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID,
+                            TabUiFeatureUtilities.THUMBNAIL_ASPECT_RATIO_PARAM, 1.0);
             expectedThumbnailAspectRatio =
                     MathUtils.clamp(expectedThumbnailAspectRatio, 0.5f, 2.0f);
             int height = (int) (thumbnail.getWidth() * 1.0 / expectedThumbnailAspectRatio);
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
index f7ad37b..71d0fba 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
@@ -152,7 +152,7 @@
                     float expectedThumbnailAspectRatio =
                             (float) ChromeFeatureList.getFieldTrialParamByFeatureAsDouble(
                                     ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID,
-                                    "thumbnail_aspect_ratio", 1.0);
+                                    TabUiFeatureUtilities.THUMBNAIL_ASPECT_RATIO_PARAM, 1.0);
                     expectedThumbnailAspectRatio =
                             MathUtils.clamp(expectedThumbnailAspectRatio, 0.5f, 2.0f);
                     int height = (int) (thumbnail.getWidth() * 1.0 / expectedThumbnailAspectRatio);
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewBinder.java
index eaa3706..a6c2c4e8 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewBinder.java
@@ -63,7 +63,7 @@
                 Resources.Theme theme = view.getContext().getTheme();
                 Drawable drawable = new InsetDrawable(
                         ResourcesCompat.getDrawable(res, selectedTabBackground, theme),
-                        (int) res.getDimension(R.dimen.tab_list_selected_inset));
+                        (int) res.getDimension(R.dimen.tab_list_selected_inset_low_end));
                 view.setForeground(model.get(TabProperties.IS_SELECTED) ? drawable : null);
             }
         } else if (TabProperties.TAB_SELECTED_LISTENER == propertyKey) {
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java
index da54a2db..ffb83e0 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java
@@ -19,7 +19,6 @@
 import org.chromium.chrome.browser.flags.DoubleCachedFieldTrialParameter;
 import org.chromium.chrome.browser.flags.IntCachedFieldTrialParameter;
 import org.chromium.chrome.browser.flags.StringCachedFieldTrialParameter;
-import org.chromium.chrome.browser.tasks.ReturnToChromeExperimentsUtil;
 import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration;
 import org.chromium.ui.base.DeviceFormFactor;
 
@@ -34,43 +33,40 @@
     private static final String TAG = "TabFeatureUtilities";
 
     // Field trial parameters:
-    public static final String SKIP_SLOW_ZOOMING_PARAM = "skip-slow-zooming";
+    private static final String SKIP_SLOW_ZOOMING_PARAM = "skip-slow-zooming";
     public static final BooleanCachedFieldTrialParameter SKIP_SLOW_ZOOMING =
             new BooleanCachedFieldTrialParameter(
                     ChromeFeatureList.TAB_TO_GTS_ANIMATION, SKIP_SLOW_ZOOMING_PARAM, true);
 
-    public static final String TAB_GRID_LAYOUT_ANDROID_NEW_TAB_TILE_PARAM =
+    private static final String TAB_GRID_LAYOUT_ANDROID_NEW_TAB_TILE_PARAM =
             "tab_grid_layout_android_new_tab_tile";
     public static final StringCachedFieldTrialParameter TAB_GRID_LAYOUT_ANDROID_NEW_TAB_TILE =
             new StringCachedFieldTrialParameter(ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID,
                     TAB_GRID_LAYOUT_ANDROID_NEW_TAB_TILE_PARAM, "");
 
-    public static final IntCachedFieldTrialParameter TAB_SWITCHER_ON_RETURN_MS =
-            new IntCachedFieldTrialParameter(ChromeFeatureList.TAB_SWITCHER_ON_RETURN,
-                    ReturnToChromeExperimentsUtil.TAB_SWITCHER_ON_RETURN_MS, -1);
-
     public static final String THUMBNAIL_ASPECT_RATIO_PARAM = "thumbnail_aspect_ratio";
     public static final DoubleCachedFieldTrialParameter THUMBNAIL_ASPECT_RATIO =
             new DoubleCachedFieldTrialParameter(
                     ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, THUMBNAIL_ASPECT_RATIO_PARAM, 1.0);
 
-    public static final String SEARCH_CHIP_PARAM = "enable_search_term_chip";
+    private static final String SEARCH_CHIP_PARAM = "enable_search_term_chip";
     public static final BooleanCachedFieldTrialParameter ENABLE_SEARCH_CHIP =
             new BooleanCachedFieldTrialParameter(
                     ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, SEARCH_CHIP_PARAM, false);
 
-    public static final String SEARCH_CHIP_ADAPTIVE_PARAM = "enable_search_term_chip_adaptive_icon";
+    private static final String SEARCH_CHIP_ADAPTIVE_PARAM =
+            "enable_search_term_chip_adaptive_icon";
     public static final BooleanCachedFieldTrialParameter ENABLE_SEARCH_CHIP_ADAPTIVE =
             new BooleanCachedFieldTrialParameter(
                     ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, SEARCH_CHIP_ADAPTIVE_PARAM, false);
 
     // Field trial parameter for the minimum Android SDK version to enable zooming animation.
-    public static final String MIN_SDK_PARAM = "zooming-min-sdk-version";
+    private static final String MIN_SDK_PARAM = "zooming-min-sdk-version";
     public static final IntCachedFieldTrialParameter ZOOMING_MIN_SDK =
             new IntCachedFieldTrialParameter(
                     ChromeFeatureList.TAB_TO_GTS_ANIMATION, MIN_SDK_PARAM, Build.VERSION_CODES.M);
     // Field trial parameter for the minimum physical memory size to enable zooming animation.
-    public static final String MIN_MEMORY_MB_PARAM = "zooming-min-memory-mb";
+    private static final String MIN_MEMORY_MB_PARAM = "zooming-min-memory-mb";
     public static final IntCachedFieldTrialParameter ZOOMING_MIN_MEMORY =
             new IntCachedFieldTrialParameter(
                     ChromeFeatureList.TAB_TO_GTS_ANIMATION, MIN_MEMORY_MB_PARAM, 2048);
diff --git a/chrome/android/features/vr/java/strings/translations/android_chrome_vr_strings_vi.xtb b/chrome/android/features/vr/java/strings/translations/android_chrome_vr_strings_vi.xtb
index f4182838..2ef1b26 100644
--- a/chrome/android/features/vr/java/strings/translations/android_chrome_vr_strings_vi.xtb
+++ b/chrome/android/features/vr/java/strings/translations/android_chrome_vr_strings_vi.xtb
@@ -1,10 +1,10 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="vi">
-<translation id="1729516292547892356">Để xem nội dung thực tế ảo, hãy cập nhật Dịch vụ VR của Google</translation>
+<translation id="1729516292547892356">Để xem nội dung thực tế ảo, hãy cập nhật Dịch vụ thực tế ảo của Google</translation>
 <translation id="1938981467853765413">Cung cấp phản hồi</translation>
 <translation id="360207483134687714">Giúp nâng cao trải nghiệm VR trong Chrome</translation>
 <translation id="3789841737615482174">Cài đặt</translation>
 <translation id="473775607612524610">Cập nhật</translation>
-<translation id="9071742570345586758">Để xem nội dung thực tế ảo, hãy cài đặt Dịch vụ VR của Google</translation>
+<translation id="9071742570345586758">Để xem nội dung thực tế ảo, hãy cài đặt Dịch vụ thực tế ảo của Google</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/java/res/layout/status_indicator_container.xml b/chrome/android/java/res/layout/status_indicator_container.xml
index c279ee3..a8e27af 100644
--- a/chrome/android/java/res/layout/status_indicator_container.xml
+++ b/chrome/android/java/res/layout/status_indicator_container.xml
@@ -5,6 +5,7 @@
 
 <org.chromium.components.browser_ui.widget.ViewResourceFrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/status_indicator"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -12,11 +13,13 @@
 
     <org.chromium.components.browser_ui.widget.text.TextViewWithCompoundDrawables
         android:id="@+id/status_text"
-        android:layout_width="match_parent"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
-        android:minHeight="20dp"
-        android:textAlignment="center"
-        android:drawablePadding="8dp"
-        android:textAppearance="@style/TextAppearance.TextSmall.Primary"/>
+        android:gravity="center"
+        android:minHeight="@dimen/status_indicator_min_height"
+        android:drawablePadding="@dimen/status_indicator_icon_padding"
+        android:textAppearance="@style/TextAppearance.TextSmall.Primary"
+        app:drawableWidth="@dimen/status_indicator_icon_size"
+        app:drawableHeight="@dimen/status_indicator_icon_size"/>
 </org.chromium.components.browser_ui.widget.ViewResourceFrameLayout>
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
index 3bd210f..0e544e38 100644
--- a/chrome/android/java/res/values/dimens.xml
+++ b/chrome/android/java/res/values/dimens.xml
@@ -624,4 +624,9 @@
     <dimen name="tab_indicator_height">3dp</dimen>
     <dimen name="tab_indicator_radius">3dp</dimen>
     <dimen name="tab_indicator_padding">2dp</dimen>
+
+    <!-- Status indicator dimensions -->
+    <dimen name="status_indicator_min_height">21dp</dimen>
+    <dimen name="status_indicator_icon_padding">8dp</dimen>
+    <dimen name="status_indicator_icon_size">12dp</dimen>
 </resources>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeCachedFlags.java
index 5626dfcd9..dec543db 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeCachedFlags.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeCachedFlags.java
@@ -11,6 +11,7 @@
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
+import org.chromium.chrome.browser.tasks.ReturnToChromeExperimentsUtil;
 import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities;
 import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarVariationManager;
 import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration;
@@ -68,6 +69,7 @@
         // clang-format off
         List<CachedFieldTrialParameter> fieldTrialsToCache = Arrays.asList(
                 BottomToolbarVariationManager.BOTTOM_TOOLBAR_VARIATION,
+                ReturnToChromeExperimentsUtil.TAB_SWITCHER_ON_RETURN_MS,
                 StartSurfaceConfiguration.START_SURFACE_EXCLUDE_MV_TILES,
                 StartSurfaceConfiguration.START_SURFACE_HIDE_INCOGNITO_SWITCH,
                 StartSurfaceConfiguration.START_SURFACE_LAST_ACTIVE_TAB_ONLY,
@@ -79,7 +81,6 @@
                 TabUiFeatureUtilities.ZOOMING_MIN_SDK,
                 TabUiFeatureUtilities.SKIP_SLOW_ZOOMING,
                 TabUiFeatureUtilities.TAB_GRID_LAYOUT_ANDROID_NEW_TAB_TILE,
-                TabUiFeatureUtilities.TAB_SWITCHER_ON_RETURN_MS,
                 TabUiFeatureUtilities.THUMBNAIL_ASPECT_RATIO);
         // clang-format on
         CachedFeatureFlags.cacheFieldTrialParameters(fieldTrialsToCache);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityBrowserControlsVisibilityManager.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityBrowserControlsVisibilityManager.java
index 0c8eeae..b5d8210 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityBrowserControlsVisibilityManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityBrowserControlsVisibilityManager.java
@@ -14,7 +14,6 @@
 import org.chromium.chrome.browser.customtabs.content.TabObserverRegistrar.CustomTabTabObserver;
 import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarCoordinator;
 import org.chromium.chrome.browser.dependency_injection.ActivityScope;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.webapps.WebDisplayMode;
 import org.chromium.chrome.browser.webapps.WebappExtras;
@@ -144,8 +143,7 @@
     @ConnectionSecurityLevel
     @VisibleForTesting
     int getSecurityLevel(Tab tab) {
-        int securityLevel = SecurityStateModel.getSecurityLevelForWebContents(
-                tab.getWebContents(), ChromeSecurityStateModelDelegate.getInstance());
+        int securityLevel = SecurityStateModel.getSecurityLevelForWebContents(tab.getWebContents());
         return securityLevel;
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator.java
index 78b1071..da59b45a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator.java
@@ -13,7 +13,6 @@
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.ntp.NewTabPage;
 import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetController;
 import org.chromium.components.embedder_support.delegate.WebContentsDelegateAndroid;
 import org.chromium.components.embedder_support.view.ContentView;
@@ -144,8 +143,7 @@
             @Override
             public void visibleSSLStateChanged() {
                 if (mSheetContent == null) return;
-                int securityLevel = SecurityStateModel.getSecurityLevelForWebContents(
-                        mWebContents, ChromeSecurityStateModelDelegate.getInstance());
+                int securityLevel = SecurityStateModel.getSecurityLevelForWebContents(mWebContents);
                 mSheetContent.setSecurityIcon(getSecurityIconResource(securityLevel));
                 mSheetContent.updateURL(mWebContents.getVisibleUrl());
             }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
index fe1268e..466a2b25 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
@@ -27,6 +27,9 @@
 import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarColorController;
 import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarCoordinator;
 import org.chromium.chrome.browser.flags.ActivityType;
+import org.chromium.chrome.browser.night_mode.NightModeStateProvider;
+import org.chromium.chrome.browser.night_mode.PowerSavingModeMonitor;
+import org.chromium.chrome.browser.night_mode.SystemNightModeMonitor;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabState;
 import org.chromium.chrome.browser.tabmodel.ChromeTabCreator;
@@ -51,6 +54,7 @@
     protected CustomTabStatusBarColorProvider mStatusBarColorProvider;
     protected CustomTabActivityTabFactory mTabFactory;
     protected CustomTabIntentHandler mCustomTabIntentHandler;
+    protected CustomTabNightModeStateController mNightModeStateController;
     protected @Nullable WebappActivityCoordinator mWebappActivityCoordinator;
 
     // This is to give the right package name while using the client's resources during an
@@ -74,6 +78,19 @@
     }
 
     @Override
+    protected NightModeStateProvider createNightModeStateProvider() {
+        // This is called before Dagger component is created, so using getInstance() directly.
+        mNightModeStateController = new CustomTabNightModeStateController(getLifecycleDispatcher(),
+                SystemNightModeMonitor.getInstance(), PowerSavingModeMonitor.getInstance());
+        return mNightModeStateController;
+    }
+
+    @Override
+    protected void initializeNightModeStateProvider() {
+        mNightModeStateController.initialize(getDelegate(), getIntent());
+    }
+
+    @Override
     protected RootUiCoordinator createRootUiCoordinator() {
         return new BaseCustomTabRootUiCoordinator(this, getShareDelegateSupplier(),
                 mToolbarCoordinator, mNavigationController, getActivityTabProvider());
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
index 4c5f70d2..287dbda 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
@@ -47,10 +47,7 @@
 import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.infobar.InfoBarContainer;
-import org.chromium.chrome.browser.night_mode.NightModeStateProvider;
 import org.chromium.chrome.browser.night_mode.NightModeUtils;
-import org.chromium.chrome.browser.night_mode.PowerSavingModeMonitor;
-import org.chromium.chrome.browser.night_mode.SystemNightModeMonitor;
 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
 import org.chromium.chrome.browser.page_info.PageInfoController;
 import org.chromium.chrome.browser.previews.Previews;
@@ -71,7 +68,6 @@
 
     private final CustomTabsConnection mConnection = CustomTabsConnection.getInstance();
 
-    private CustomTabNightModeStateController mNightModeStateController;
 
     private CustomTabActivityTabProvider.Observer mTabChangeObserver =
             new CustomTabActivityTabProvider.Observer() {
@@ -153,20 +149,6 @@
     }
 
     @Override
-    protected NightModeStateProvider createNightModeStateProvider() {
-        // This is called before Dagger component is created, so using getInstance() directly.
-        mNightModeStateController = new CustomTabNightModeStateController(getLifecycleDispatcher(),
-                SystemNightModeMonitor.getInstance(),
-                PowerSavingModeMonitor.getInstance());
-        return mNightModeStateController;
-    }
-
-    @Override
-    protected void initializeNightModeStateProvider() {
-        mNightModeStateController.initialize(getDelegate(), getIntent());
-    }
-
-    @Override
     public void finishNativeInitialization() {
         if (!mIntentDataProvider.isInfoPage()) FirstRunSignInProcessor.start(this);
 
@@ -353,10 +335,10 @@
         IntentIgnoringCriterion intentIgnoringCriterion =
                 (intent) -> mIntentHandler.shouldIgnoreIntent(intent);
 
-        BaseCustomTabActivityModule baseCustomTabsModule =
-                new BaseCustomTabActivityModule(mIntentDataProvider, intentIgnoringCriterion);
+        BaseCustomTabActivityModule baseCustomTabsModule = new BaseCustomTabActivityModule(
+                mIntentDataProvider, mNightModeStateController, intentIgnoringCriterion);
         CustomTabActivityModule customTabsModule =
-                new CustomTabActivityModule(mNightModeStateController, getStartupTabPreloader());
+                new CustomTabActivityModule(getStartupTabPreloader());
 
         CustomTabActivityComponent component =
                 ChromeApplication.getComponent().createCustomTabActivityComponent(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabNavigationEventObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabNavigationEventObserver.java
index 184a5a86..d98b6df 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabNavigationEventObserver.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabNavigationEventObserver.java
@@ -9,7 +9,6 @@
 
 import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProvider;
 import org.chromium.chrome.browser.dependency_injection.ActivityScope;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.chrome.browser.tab.EmptyTabObserver;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabHidingType;
@@ -65,8 +64,7 @@
 
     @Override
     public void onDidAttachInterstitialPage(Tab tab) {
-        boolean isContentDangerous = SecurityStateModel.isContentDangerous(
-                tab.getWebContents(), ChromeSecurityStateModelDelegate.getInstance());
+        boolean isContentDangerous = SecurityStateModel.isContentDangerous(tab.getWebContents());
         if (isContentDangerous) {
             return;
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabObserver.java
index cec96ca..cdd1911 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabObserver.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabObserver.java
@@ -22,7 +22,6 @@
 import org.chromium.chrome.browser.dependency_injection.ActivityScope;
 import org.chromium.chrome.browser.prerender.ExternalPrerenderHandler;
 import org.chromium.chrome.browser.share.ShareImageFileUtils;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.chrome.browser.tab.EmptyTabObserver;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabHidingType;
@@ -180,8 +179,7 @@
 
     @Override
     public void onDidAttachInterstitialPage(Tab tab) {
-        if (SecurityStateModel.isContentDangerous(
-                    tab.getWebContents(), ChromeSecurityStateModelDelegate.getInstance())) {
+        if (SecurityStateModel.isContentDangerous(tab.getWebContents())) {
             return;
         }
         resetPageLoadTracking();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabTaskDescriptionHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabTaskDescriptionHelper.java
index f00fc42..6f22e85 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabTaskDescriptionHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabTaskDescriptionHelper.java
@@ -24,7 +24,6 @@
 import org.chromium.chrome.browser.lifecycle.Destroyable;
 import org.chromium.chrome.browser.lifecycle.NativeInitObserver;
 import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabThemeColorHelper;
 import org.chromium.chrome.browser.ui.favicon.FaviconHelper;
@@ -180,8 +179,8 @@
                 }
 
                 private boolean hasSecurityWarningOrError(Tab tab) {
-                    boolean isContentDangerous = SecurityStateModel.isContentDangerous(
-                            tab.getWebContents(), ChromeSecurityStateModelDelegate.getInstance());
+                    boolean isContentDangerous =
+                            SecurityStateModel.isContentDangerous(tab.getWebContents());
                     return isContentDangerous;
                 }
             };
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/BaseCustomTabActivityModule.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/BaseCustomTabActivityModule.java
index 660c28d..80ce7b7 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/BaseCustomTabActivityModule.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/BaseCustomTabActivityModule.java
@@ -8,6 +8,7 @@
 import org.chromium.chrome.browser.browserservices.trustedwebactivityui.TwaIntentHandlingStrategy;
 import org.chromium.chrome.browser.browserservices.trustedwebactivityui.controller.TwaVerifier;
 import org.chromium.chrome.browser.browserservices.trustedwebactivityui.controller.Verifier;
+import org.chromium.chrome.browser.customtabs.CustomTabNightModeStateController;
 import org.chromium.chrome.browser.customtabs.content.CustomTabIntentHandler.IntentIgnoringCriterion;
 import org.chromium.chrome.browser.customtabs.content.CustomTabIntentHandlingStrategy;
 import org.chromium.chrome.browser.customtabs.content.DefaultCustomTabIntentHandlingStrategy;
@@ -28,12 +29,15 @@
 public class BaseCustomTabActivityModule {
     private final BrowserServicesIntentDataProvider mIntentDataProvider;
     private final @ActivityType int mActivityType;
+    private final CustomTabNightModeStateController mNightModeController;
     private final IntentIgnoringCriterion mIntentIgnoringCriterion;
 
     public BaseCustomTabActivityModule(BrowserServicesIntentDataProvider intentDataProvider,
+            CustomTabNightModeStateController nightModeController,
             IntentIgnoringCriterion intentIgnoringCriterion) {
         mIntentDataProvider = intentDataProvider;
         mActivityType = intentDataProvider.getActivityType();
+        mNightModeController = nightModeController;
         mIntentIgnoringCriterion = intentIgnoringCriterion;
     }
 
@@ -70,6 +74,11 @@
     }
 
     @Provides
+    public CustomTabNightModeStateController provideNightModeController() {
+        return mNightModeController;
+    }
+
+    @Provides
     @Reusable
     public WebApkPostShareTargetNavigator providePostShareTargetNavigator() {
         return new WebApkPostShareTargetNavigator();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java
index 56d7acc..e95eafd5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java
@@ -6,7 +6,6 @@
 
 import org.chromium.chrome.browser.browserservices.BrowserServicesActivityTabController;
 import org.chromium.chrome.browser.browserservices.ClientAppDataRegister;
-import org.chromium.chrome.browser.customtabs.CustomTabNightModeStateController;
 import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabController;
 import org.chromium.chrome.browser.init.StartupTabPreloader;
 
@@ -18,12 +17,9 @@
  */
 @Module
 public class CustomTabActivityModule {
-    private final CustomTabNightModeStateController mNightModeController;
     private final StartupTabPreloader mStartupTabPreloader;
 
-    public CustomTabActivityModule(CustomTabNightModeStateController nightModeController,
-            StartupTabPreloader startupTabPreloader) {
-        mNightModeController = nightModeController;
+    public CustomTabActivityModule(StartupTabPreloader startupTabPreloader) {
         mStartupTabPreloader = startupTabPreloader;
     }
 
@@ -39,11 +35,6 @@
     }
 
     @Provides
-    public CustomTabNightModeStateController provideNightModeController() {
-        return mNightModeController;
-    }
-
-    @Provides
     public StartupTabPreloader provideStartupTabPreloader() {
         return mStartupTabPreloader;
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java
index d2defe0..ef938044 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java
@@ -485,8 +485,8 @@
 
         DomDistillerTabUtils.distillCurrentPage(baseWebContents);
 
-        String distillerUrl =
-                DomDistillerUrlUtils.getDistillerViewUrlFromUrl(DOM_DISTILLER_SCHEME, url);
+        String distillerUrl = DomDistillerUrlUtils.getDistillerViewUrlFromUrl(
+                DOM_DISTILLER_SCHEME, url, baseWebContents.getTitle());
 
         CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
         builder.setShowTitle(true);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FreIntentCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FreIntentCreator.java
index 6bc3ab68..0b334b3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FreIntentCreator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FreIntentCreator.java
@@ -17,7 +17,7 @@
 import org.chromium.base.ApplicationStatus;
 import org.chromium.chrome.browser.AppHooks;
 import org.chromium.chrome.browser.LaunchIntentDispatcher;
-import org.chromium.chrome.browser.webapps.WebApkInfo;
+import org.chromium.chrome.browser.webapps.WebappInfo;
 import org.chromium.chrome.browser.webapps.WebappLauncherActivity;
 import org.chromium.ui.base.DeviceFormFactor;
 
@@ -37,7 +37,8 @@
      */
     public Intent create(Context caller, Intent fromIntent, boolean requiresBroadcast,
             boolean preferLightweightFre) {
-        @Nullable WebApkInfo webApkInfo =
+        @Nullable
+        WebappInfo webApkInfo =
                 WebappLauncherActivity.maybeSlowlyGenerateWebApkInfoFromIntent(fromIntent);
         Intent intentToLaunchAfterFreComplete = (webApkInfo == null)
                 ? fromIntent
@@ -55,12 +56,12 @@
      * @param caller               Activity instance that is requesting the first run.
      * @param fromIntent           Intent used to launch the caller.
      * @param preferLightweightFre Whether to prefer the Lightweight First Run Experience.
-     * @param webApkInfo           An optional WebApkInfo if this FRE flow was triggered
+     * @param webApkInfo           An optional WebappInfo if this FRE flow was triggered
      *                             by launching a WebAPK.
      * @return Intent to launch First Run Experience.
      */
     protected Intent createInternal(Context caller, Intent fromIntent, boolean preferLightweightFre,
-            @Nullable WebApkInfo webApkInfo) {
+            @Nullable WebappInfo webApkInfo) {
         // Launch the Generic First Run Experience if it was previously active.
         boolean isGenericFreActive = checkIsGenericFreActive();
         if (preferLightweightFre && !isGenericFreActive) {
@@ -73,11 +74,11 @@
     /**
      * Returns an intent to show the lightweight first run activity.
      * @param context                        The context.
-     * @param webApkInfo                     An optional WebApkInfo if this FRE flow was triggered
+     * @param webApkInfo                     An optional WebappInfo if this FRE flow was triggered
      *                                       by launching a WebAPK.
      */
     private static Intent createLightweightFirstRunIntent(
-            Context context, @Nullable WebApkInfo webApkInfo) {
+            Context context, @Nullable WebappInfo webApkInfo) {
         Intent intent = new Intent(context, LightweightFirstRunActivity.class);
         String webApkShortName = webApkInfo == null ? null : webApkInfo.shortName();
         if (webApkShortName != null) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
index 795f294..5018854 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
@@ -8,7 +8,6 @@
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.base.annotations.NativeMethods;
 import org.chromium.chrome.browser.ShortcutSource;
-import org.chromium.chrome.browser.webapps.WebApkInfo;
 import org.chromium.chrome.browser.webapps.WebApkUkmRecorder;
 import org.chromium.chrome.browser.webapps.WebDisplayMode;
 import org.chromium.chrome.browser.webapps.WebappDataStorage;
@@ -52,7 +51,7 @@
         int source = webappInfo.source();
 
         if (webappInfo.isForWebApk() && source == ShortcutSource.UNKNOWN) {
-            // WebApkInfo#source() identifies how the WebAPK was launched (e.g. via deep link).
+            // WebappInfo#source() identifies how the WebAPK was launched (e.g. via deep link).
             // When the WebAPK is launched from the app list (ShortcutSource#UNKNOWN), query
             // WebappDataStorage to determine how the WebAPK was installed (SOURCE_APP_BANNER_WEBAPK
             // vs SOURCE_ADD_TO_HOMESCREEN_PWA). WebAPKs set WebappDataStorage#getSource() at
@@ -87,9 +86,8 @@
             LaunchMetricsJni.get().recordLaunch(
                     launch.mIsShortcut, launch.mUrl, launch.mSource, displayMode, webContents);
             if (webappInfo != null && webappInfo.isForWebApk()) {
-                WebApkInfo webApkInfo = (WebApkInfo) webappInfo;
-                WebApkUkmRecorder.recordWebApkLaunch(webApkInfo.manifestUrl(),
-                        webApkInfo.distributor(), webApkInfo.webApkVersionCode(), launch.mSource);
+                WebApkUkmRecorder.recordWebApkLaunch(webappInfo.manifestUrl(),
+                        webappInfo.distributor(), webappInfo.webApkVersionCode(), launch.mSource);
             }
         }
         sHomeScreenLaunches.clear();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/PageInfoController.java b/chrome/android/java/src/org/chromium/chrome/browser/page_info/PageInfoController.java
index ac9a0d0..844731e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/page_info/PageInfoController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/page_info/PageInfoController.java
@@ -39,7 +39,6 @@
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.site_settings.ContentSettingValues;
 import org.chromium.chrome.browser.site_settings.CookieControlsBridge;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.chrome.browser.vr.VrModuleProvider;
 import org.chromium.components.content_settings.CookieControlsEnforcement;
 import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
@@ -576,8 +575,7 @@
             assert false : "Invalid source passed";
         }
 
-        final int securityLevel = SecurityStateModel.getSecurityLevelForWebContents(
-                webContents, ChromeSecurityStateModelDelegate.getInstance());
+        final int securityLevel = SecurityStateModel.getSecurityLevelForWebContents(webContents);
 
         @PreviewPageState
         int previewPageState = PreviewPageState.NOT_PREVIEW;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/PaintPreviewDemoManager.java b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/PaintPreviewDemoManager.java
index 66bd2f5..5fc3402d6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/PaintPreviewDemoManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/PaintPreviewDemoManager.java
@@ -35,6 +35,8 @@
     }
 
     public void showPaintPreviewDemo() {
+        if (isShowingPaintPreviewDemo()) return;
+
         if (mPaintPreviewDemoService == null) {
             mPaintPreviewDemoService = PaintPreviewDemoServiceFactory.getServiceInstance();
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
index ced20b4..6d2bd81 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
@@ -51,7 +51,7 @@
     static final String PARTNER_DISABLE_INCOGNITO_MODE_PATH = "disableincognitomode";
 
     private static String sProviderAuthority = PROVIDER_AUTHORITY;
-    private static boolean sIgnoreBrowserProviderSystemPackageCheck;
+    private static Boolean sIgnoreSystemPackageCheck;
 
     private static volatile PartnerBrowserCustomizations sInstance;
 
@@ -97,17 +97,34 @@
             if (providerInfo == null) {
                 return false;
             }
+            if ((providerInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
+                return true;
+            }
 
-            if ((providerInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0
-                    && !sIgnoreBrowserProviderSystemPackageCheck) {
-                Log.w(TAG,
-                        "Browser Customizations content provider package, "
-                                + providerInfo.packageName + ", is not a system package. "
-                                + "This could be a malicious attempt from a third party "
-                                + "app, so skip reading the browser content provider.");
+            // In prod mode (sIgnoreBrowserProviderSystemPackageCheck == null), non-system package
+            // is rejected unless Chrome Android is a local build.
+            // When sIgnoreBrowserProviderSystemPackageCheck is true, accept non-system package.
+            // When sIgnoreBrowserProviderSystemPackageCheck is false, reject non-system package.
+            if (sIgnoreSystemPackageCheck != null && sIgnoreSystemPackageCheck) {
+                return true;
+            }
+
+            Log.w(TAG,
+                    "Browser Customizations content provider package, " + providerInfo.packageName
+                            + ", is not a system package. "
+                            + "This could be a malicious attempt from a third party "
+                            + "app, so skip reading the browser content provider.");
+            if (sIgnoreSystemPackageCheck != null && !sIgnoreSystemPackageCheck) {
                 return false;
             }
-            return true;
+            if (ChromeVersionInfo.isLocalBuild()) {
+                Log.w(TAG,
+                        "This is a local build of Chrome Android, "
+                                + "so keep reading the browser content provider, "
+                                + "to make debugging customization easier.");
+                return true;
+            }
+            return false;
         }
 
         private boolean isValid() {
@@ -240,7 +257,7 @@
      */
     @VisibleForTesting
     static void ignoreBrowserProviderSystemPackageCheckForTests(boolean ignore) {
-        sIgnoreBrowserProviderSystemPackageCheck = ignore;
+        sIgnoreSystemPackageCheck = ignore;
     }
 
     @VisibleForTesting
@@ -402,6 +419,7 @@
     public static void destroy() {
         getInstance().destroyInternal();
         sInstance = null;
+        sIgnoreSystemPackageCheck = null;
     }
 
     private void destroyInternal() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java
index fb063131..a8a805ccb 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java
@@ -15,6 +15,7 @@
 
 import org.chromium.base.Log;
 import org.chromium.chrome.browser.ChromeActivity;
+import org.chromium.chrome.browser.customtabs.CustomTabActivity;
 import org.chromium.chrome.browser.payments.PaymentManifestVerifier.ManifestVerifyCallback;
 import org.chromium.components.payments.MethodStrings;
 import org.chromium.components.payments.PaymentManifestDownloader;
@@ -22,7 +23,6 @@
 import org.chromium.components.payments.intent.WebPaymentIntentHelper;
 import org.chromium.payments.mojom.PaymentDetailsModifier;
 import org.chromium.payments.mojom.PaymentMethodData;
-import org.chromium.url.GURL;
 import org.chromium.url.URI;
 
 import java.util.ArrayList;
@@ -69,6 +69,12 @@
     /* package */ static final String META_DATA_NAME_OF_SUPPORTED_DELEGATIONS =
             "org.chromium.payment_supported_delegations";
 
+    /*
+     * The ignored payment method identifiers. Payment apps with this payment method identifier are
+     * ignored.
+     */
+    private final Set<String> mIgnoredMethods = new HashSet<>();
+
     private final Set<String> mNonUriPaymentMethods = new HashSet<>();
     private final Set<URI> mUriPaymentMethods = new HashSet<>();
     private final PaymentManifestDownloader mDownloader;
@@ -80,13 +86,10 @@
     private final boolean mIsIncognito;
 
     /**
-     * The app stores that supports app-store billing methods.
-     *
-     * key: the app-store app's package name, e.g., "com.google.vendor" (Google Play Store).
-     * value: the app-store app's billing method identifier, e.g.,
-     * "https://play.google.com/billing". Only valid GURLs are allowed.
+     * A map from an app-store app's package name to its billing method. All of the supported
+     * app-store billing method must insert an entry to this map.
      */
-    private final Map<String, GURL> mAppStores = new HashMap();
+    private final Map<String, String> mAppStoreBillingMethodMap = new HashMap();
 
     /**
      * A mapping from an Android package name to the payment app with that package name. The apps
@@ -170,10 +173,9 @@
             PaymentAppFactoryInterface factory) {
         mDelegate = delegate;
 
-        mAppStores.put(PLAY_STORE_PACKAGE_NAME, new GURL(MethodStrings.GOOGLE_PLAY_BILLING));
-        for (GURL method : mAppStores.values()) {
-            assert method.isValid();
-        }
+        mIgnoredMethods.add(MethodStrings.GOOGLE_PLAY_BILLING);
+
+        mAppStoreBillingMethodMap.put(PLAY_STORE_PACKAGE_NAME, MethodStrings.GOOGLE_PLAY_BILLING);
 
         mDownloader = downloader;
         mWebDataService = webDataService;
@@ -185,62 +187,19 @@
         mIsIncognito = activity != null && activity.getCurrentTabModel().isIncognito();
     }
 
-    private boolean isInTwaInstalledFromAppStore(ChromeActivity activity) {
-        assert activity != null;
-        String twaPackageName = mPackageManagerDelegate.getTwaPackageName(activity);
+    private boolean isInTwaInstalledFromAppStore() {
+        ChromeActivity activity =
+                ChromeActivity.fromWebContents(mDelegate.getParams().getWebContents());
+        if (activity == null) return false;
+        if (!(activity instanceof CustomTabActivity)) return false;
+        CustomTabActivity customTabActivity = ((CustomTabActivity) activity);
+        if (!customTabActivity.isInTwaMode()) return false;
+        String twaPackageName = customTabActivity.getTwaPackage();
         if (twaPackageName == null) return false;
-        String installerPackageName = mPackageManagerDelegate.getInstallerPackage(twaPackageName);
+        String installerPackageName =
+                activity.getPackageManager().getInstallerPackageName(twaPackageName);
         if (installerPackageName == null) return false;
-        return mAppStores.containsKey(installerPackageName);
-    }
-
-    /** Precondition: {@link #isInTwaInstalledFromAppStore} returns true. */
-    private void findAppStoreBillingApp(
-            ChromeActivity activity, List<ResolveInfo> allInstalledPaymentApps) {
-        assert activity != null;
-        // The following asserts are assumed to have been checked in {@link
-        // isInTwaInstalledFromAppStore}.
-        String twaPackageName = mPackageManagerDelegate.getTwaPackageName(activity);
-        assert twaPackageName != null;
-        String installerAppStorePackageName =
-                mPackageManagerDelegate.getInstallerPackage(twaPackageName);
-        assert installerAppStorePackageName != null;
-
-        GURL appStoreBillingUriMethod = mAppStores.get(installerAppStorePackageName);
-        assert appStoreBillingUriMethod != null;
-        assert appStoreBillingUriMethod.isValid();
-        String appStoreBillingMethod = appStoreBillingUriMethod.getSpec();
-        if (!mDelegate.getParams().getMethodData().containsKey(appStoreBillingMethod)) return;
-        ResolveInfo twaApp = findAppWithPackageNameAndSupportedMethod(
-                allInstalledPaymentApps, twaPackageName, appStoreBillingUriMethod);
-        if (twaApp == null) {
-            android.util.Log.d(TAG, "The current TWA cannot handle Payment Request.");
-            return;
-        }
-        onValidPaymentAppForPaymentMethodName(twaApp, appStoreBillingMethod);
-    }
-
-    private ResolveInfo findAppWithPackageNameAndSupportedMethod(
-            List<ResolveInfo> apps, String packageName, GURL uriMethod) {
-        assert packageName != null;
-        assert uriMethod != null;
-        for (int i = 0; i < apps.size(); i++) {
-            ResolveInfo app = apps.get(i);
-            String appPackageName = app.activityInfo.packageName;
-            if (!packageName.equals(appPackageName)) continue;
-            String defaultMethod = app.activityInfo.metaData == null
-                    ? null
-                    : app.activityInfo.metaData.getString(
-                            META_DATA_NAME_OF_DEFAULT_PAYMENT_METHOD_NAME);
-            GURL defaultUriMethod = new GURL(defaultMethod);
-            if ((uriMethod.isValid()
-                        && getSupportedPaymentMethods(app.activityInfo)
-                                   .contains(uriMethod.getSpec()))
-                    || (defaultUriMethod.isValid() && uriMethod.equals(defaultUriMethod))) {
-                return app;
-            }
-        }
-        return null;
+        return mAppStoreBillingMethodMap.keySet().contains(installerPackageName);
     }
 
     /**
@@ -259,7 +218,7 @@
 
         for (String method : mDelegate.getParams().getMethodData().keySet()) {
             assert !TextUtils.isEmpty(method);
-            if (mAppStores.containsValue(new GURL(method))) continue;
+            if (mIgnoredMethods.contains(method)) continue;
             if (supportedNonUriPaymentMethods.contains(method)) {
                 mNonUriPaymentMethods.add(method);
             } else if (UriUtils.looksLikeUriMethod(method)) {
@@ -286,17 +245,9 @@
             }
         }
 
-        // WebContents is possible to attach to different activities on {@link PaymentRequest}
-        // created and shown. Ideally {@link #findAppStoreBillingApp} should have based on the
-        // activity that is used when PaymentRequest is shown. But we intentionally not do that for
-        // the sake of simple design and better performance. Plus, for app store billing case in
-        // particular, it's unusual for a TWA to switch to CCT without destroying JavaScript context
-        // and, consequently, the {@link PaymentRequest} object.
-        ChromeActivity activity =
-                ChromeActivity.fromWebContents(mDelegate.getParams().getWebContents());
-        if (!mDelegate.getParams().requestShippingOrPayerContact() && activity != null
-                && isInTwaInstalledFromAppStore(activity)) {
-            findAppStoreBillingApp(activity, allInstalledPaymentApps);
+        if (isInTwaInstalledFromAppStore()) {
+            // TODO(crbug.com/1064740): the finder would special-case the TWA installed from App
+            // Store to return only the app-store app.
         }
 
         // All URI methods for which manifests should be downloaded. For example, if merchant
@@ -695,14 +646,14 @@
     }
 
     /**
-     * Add an app store for testing.
+     * Ignores the given payment method identifier, so no Android payment apps for this method are
+     * looked up in findAndroidPaymentApps(). Calling this multiple times will union the new payment
+     * methods with the existing set.
      *
-     * @param packageName The package name of the app store.
-     * @param paymentMethod The payment method identifier of the app store.
+     * @param ignoredPaymentMethodIdentifier The ignored payment method identifier.
      */
     @VisibleForTesting
-    /* package */ void addAppStoreForTest(String packageName, GURL paymentMethod) {
-        assert paymentMethod.isValid();
-        mAppStores.put(packageName, paymentMethod);
+    /* package */ void ignorePaymentMethodForTest(String ignoredPaymentMethodIdentifier) {
+        mIgnoredMethods.add(ignoredPaymentMethodIdentifier);
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PackageManagerDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PackageManagerDelegate.java
index 4cc4de2..1eb4ec8f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PackageManagerDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PackageManagerDelegate.java
@@ -20,8 +20,6 @@
 
 import org.chromium.base.ContextUtils;
 import org.chromium.base.PackageManagerUtils;
-import org.chromium.chrome.browser.ChromeActivity;
-import org.chromium.chrome.browser.customtabs.CustomTabActivity;
 
 import java.util.List;
 
@@ -125,31 +123,4 @@
         }
         return resources == null ? null : resources.getStringArray(resourceId);
     }
-
-    /**
-     * Get the package name of an activity if it is a Trusted Web Activity.
-     * @param activity An activity that is intended to check whether its a Trusted Web Activity and
-     *         get the package name from. Not allowed to be null.
-     * @return The package name of a given activity if it is a Trusted Web Activity; null otherwise.
-     */
-    @Nullable
-    public String getTwaPackageName(ChromeActivity activity) {
-        assert activity != null;
-        if (!(activity instanceof CustomTabActivity)) return null;
-        CustomTabActivity customTabActivity = ((CustomTabActivity) activity);
-        if (!customTabActivity.isInTwaMode()) return null;
-        return customTabActivity.getTwaPackage();
-    }
-
-    /**
-     * Get the package name of a specified package's installer app.
-     * @param packageName The package name of the specified package. Not allowed to be null.
-     * @return The package name of the installer app.
-     */
-    @Nullable
-    public String getInstallerPackage(String packageName) {
-        assert packageName != null;
-        return ContextUtils.getApplicationContext().getPackageManager().getInstallerPackageName(
-                packageName);
-    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentAppFactoryParams.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentAppFactoryParams.java
index 3114bb5..49f0b43 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentAppFactoryParams.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentAppFactoryParams.java
@@ -95,12 +95,4 @@
     default String getTotalAmountCurrency() {
         return null;
     }
-
-    /**
-     * @return Whether the PaymentRequest is requesting delegation of either shipping or payer
-     *         contact.
-     */
-    default boolean requestShippingOrPayerContact() {
-        return false;
-    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
index 0bf63b87..4de2a31 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
@@ -41,7 +41,6 @@
 import org.chromium.chrome.browser.payments.ui.ShoppingCart;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.settings.SettingsLauncher;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabSelectionType;
 import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver;
@@ -896,8 +895,7 @@
 
         mUI = new PaymentRequestUI(activity, this, mMerchantSupportsAutofillCards,
                 !PaymentPreferencesUtil.isPaymentCompleteOnce(), mMerchantName, mTopLevelOrigin,
-                SecurityStateModel.getSecurityLevelForWebContents(
-                        mWebContents, ChromeSecurityStateModelDelegate.getInstance()),
+                SecurityStateModel.getSecurityLevelForWebContents(mWebContents),
                 new ShippingStrings(mShippingType), mPaymentUisShowStateReconciler);
         activity.getLifecycleDispatcher().register(mUI);
 
@@ -2622,12 +2620,6 @@
         return mRawTotal.amount.currency;
     }
 
-    // PaymentAppFactoryParams implementation.
-    @Override
-    public boolean requestShippingOrPayerContact() {
-        return mRequestShipping || mRequestPayerName || mRequestPayerPhone || mRequestPayerEmail;
-    }
-
     // PaymentAppFactoryDelegate implementation.
     @Override
     public PaymentAppFactoryParams getParams() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/handler/toolbar/PaymentHandlerToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/handler/toolbar/PaymentHandlerToolbarMediator.java
index ee0df21..6c3aa28 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/handler/toolbar/PaymentHandlerToolbarMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/handler/toolbar/PaymentHandlerToolbarMediator.java
@@ -12,7 +12,6 @@
 import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
 import org.chromium.chrome.browser.page_info.PageInfoController;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.components.omnibox.SecurityStatusIcon;
 import org.chromium.components.security_state.ConnectionSecurityLevel;
 import org.chromium.components.security_state.SecurityStateModel;
@@ -123,8 +122,7 @@
 
     @Override
     public void didChangeVisibleSecurityState() {
-        int securityLevel = SecurityStateModel.getSecurityLevelForWebContents(
-                mWebContentsRef, ChromeSecurityStateModelDelegate.getInstance());
+        int securityLevel = SecurityStateModel.getSecurityLevelForWebContents(mWebContentsRef);
         mModel.set(PaymentHandlerToolbarProperties.SECURITY_ICON,
                 getSecurityIconResource(securityLevel));
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/previews/Previews.java b/chrome/android/java/src/org/chromium/chrome/browser/previews/Previews.java
index 1dbf435..2f31e58 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/previews/Previews.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/previews/Previews.java
@@ -4,7 +4,6 @@
 
 package org.chromium.chrome.browser.previews;
 
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.components.security_state.SecurityStateModel;
 import org.chromium.content_public.browser.WebContents;
@@ -21,8 +20,7 @@
         if (tab == null || tab.isNativePage()) return false;
         WebContents webContents = tab.getWebContents();
         boolean isPreview = webContents != null && !webContents.isShowingInterstitialPage()
-                && !SecurityStateModel.isContentDangerous(
-                        webContents, ChromeSecurityStateModelDelegate.getInstance())
+                && !SecurityStateModel.isContentDangerous(webContents)
                 && PreviewsAndroidBridge.getInstance().shouldShowPreviewUI(webContents);
         return isPreview;
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ssl/ChromeSecurityStateModelDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/ssl/ChromeSecurityStateModelDelegate.java
deleted file mode 100644
index 212275c..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/ssl/ChromeSecurityStateModelDelegate.java
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.ssl;
-
-import androidx.annotation.VisibleForTesting;
-
-import org.chromium.base.annotations.NativeMethods;
-import org.chromium.components.security_state.SecurityStateModelDelegate;
-
-/**
- * Creates the C++ class that acts as the SecurityStateModelDelegate for Chrome.
- */
-public class ChromeSecurityStateModelDelegate {
-    private static SecurityStateModelDelegate sInstance = new SecurityStateModelDelegate(
-            ChromeSecurityStateModelDelegateJni.get().createSecurityStateModelDelegate());
-
-    /**
-     * Get an instance of SecurityStateModelDelegate.
-     */
-    public static SecurityStateModelDelegate getInstance() {
-        return sInstance;
-    }
-
-    @NativeMethods
-    @VisibleForTesting
-    public interface Natives {
-        long createSecurityStateModelDelegate();
-    }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorViewBinder.java
index ab923c3..84172ec 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorViewBinder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorViewBinder.java
@@ -5,6 +5,7 @@
 package org.chromium.chrome.browser.status_indicator;
 
 import android.content.res.ColorStateList;
+import android.graphics.drawable.Drawable;
 import android.view.View;
 import android.widget.TextView;
 
@@ -40,9 +41,9 @@
             ((TextView) view.javaViewRoot.findViewById(R.id.status_text))
                     .setText(model.get(StatusIndicatorProperties.STATUS_TEXT));
         } else if (StatusIndicatorProperties.STATUS_ICON == propertyKey) {
+            final Drawable drawable = model.get(StatusIndicatorProperties.STATUS_ICON);
             ((TextView) view.javaViewRoot.findViewById(R.id.status_text))
-                    .setCompoundDrawablesRelativeWithIntrinsicBounds(
-                            model.get(StatusIndicatorProperties.STATUS_ICON), null, null, null);
+                    .setCompoundDrawablesRelative(drawable, null, null, null);
         } else if (StatusIndicatorProperties.COMPOSITED_VIEW_VISIBLE == propertyKey) {
             assert view.sceneLayer != null;
             view.sceneLayer.setIsVisible(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java
index c3d7270..0606eef1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java
@@ -10,7 +10,6 @@
 
 import org.chromium.chrome.browser.device.DeviceClassManager;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.chrome.browser.util.AccessibilityUtil;
 import org.chromium.components.browser_ui.util.BrowserControlsVisibilityDelegate;
 import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
@@ -193,8 +192,8 @@
         enableHidingBrowserControls &= !url.startsWith(UrlConstants.CHROME_URL_PREFIX);
         enableHidingBrowserControls &= !url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX);
 
-        enableHidingBrowserControls &= !SecurityStateModel.isContentDangerous(
-                mTab.getWebContents(), ChromeSecurityStateModelDelegate.getInstance());
+        enableHidingBrowserControls &=
+                !SecurityStateModel.isContentDangerous(mTab.getWebContents());
         enableHidingBrowserControls &=
                 !SelectionPopupController.fromWebContents(webContents).isFocusedNodeEditable();
         enableHidingBrowserControls &= !mTab.isShowingErrorPage();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabThemeColorHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabThemeColorHelper.java
index d30dbede..76513cc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabThemeColorHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabThemeColorHelper.java
@@ -11,7 +11,6 @@
 
 import org.chromium.base.UserData;
 import org.chromium.chrome.browser.previews.Previews;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.components.browser_ui.styles.ChromeColors;
 import org.chromium.components.security_state.ConnectionSecurityLevel;
 import org.chromium.components.security_state.SecurityStateModel;
@@ -155,8 +154,8 @@
      */
     private boolean checkThemingAllowed() {
         // Do not apply the theme color if there are any security issues on the page.
-        final int securityLevel = SecurityStateModel.getSecurityLevelForWebContents(
-                mTab.getWebContents(), ChromeSecurityStateModelDelegate.getInstance());
+        final int securityLevel =
+                SecurityStateModel.getSecurityLevelForWebContents(mTab.getWebContents());
         return securityLevel != ConnectionSecurityLevel.DANGEROUS
                 && securityLevel != ConnectionSecurityLevel.SECURE_WITH_POLICY_INSTALLED_CERT
                 && (mTab.getActivity() == null || !mTab.getActivity().isTablet())
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TrustedCdn.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TrustedCdn.java
index 92995563..d1319a28 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TrustedCdn.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TrustedCdn.java
@@ -9,7 +9,6 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.NativeMethods;
 import org.chromium.chrome.browser.ChromeActivity;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.components.security_state.ConnectionSecurityLevel;
 import org.chromium.components.security_state.SecurityStateModel;
 import org.chromium.content_public.browser.WebContents;
@@ -81,8 +80,8 @@
     }
 
     private int getSecurityLevel() {
-        int securityLevel = SecurityStateModel.getSecurityLevelForWebContents(
-                mTab.getWebContents(), ChromeSecurityStateModelDelegate.getInstance());
+        int securityLevel =
+                SecurityStateModel.getSecurityLevelForWebContents(mTab.getWebContents());
         return securityLevel;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
index af81755..4c102b0e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -4,10 +4,12 @@
 
 package org.chromium.chrome.browser.tabbed_mode;
 
+import android.graphics.drawable.Drawable;
 import android.os.Handler;
 
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
+import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
 
 import org.chromium.base.ApiCompatibilityUtils;
 import org.chromium.base.Callback;
@@ -252,16 +254,20 @@
                         mActivity.getResources(), R.color.offline_indicator_offline_color);
                 final int textColor = ApiCompatibilityUtils.getColor(
                         mActivity.getResources(), R.color.default_text_color_light);
+                final Drawable statusIcon = VectorDrawableCompat.create(mActivity.getResources(),
+                        R.drawable.ic_cloud_offline_24dp, mActivity.getTheme());
                 final int iconTint = ApiCompatibilityUtils.getColor(
                         mActivity.getResources(), R.color.default_icon_color_light);
                 mStatusIndicatorCoordinator.show(
-                        mActivity.getString(R.string.offline_indicator_v2_offline_text), null,
+                        mActivity.getString(R.string.offline_indicator_v2_offline_text), statusIcon,
                         backgroundColor, textColor, iconTint);
             } else {
                 final int backgroundColor = ApiCompatibilityUtils.getColor(
                         mActivity.getResources(), R.color.offline_indicator_back_online_color);
                 final int textColor = ApiCompatibilityUtils.getColor(
                         mActivity.getResources(), R.color.default_text_color_inverse);
+                final Drawable statusIcon = VectorDrawableCompat.create(
+                        mActivity.getResources(), R.drawable.ic_globe_24dp, mActivity.getTheme());
                 final int iconTint = ApiCompatibilityUtils.getColor(
                         mActivity.getResources(), R.color.default_icon_color_inverse);
                 Runnable hide = () -> {
@@ -270,8 +276,8 @@
                             STATUS_INDICATOR_WAIT_BEFORE_HIDE_DURATION_MS);
                 };
                 mStatusIndicatorCoordinator.updateContent(
-                        mActivity.getString(R.string.offline_indicator_v2_back_online_text), null,
-                        backgroundColor, textColor, iconTint, hide);
+                        mActivity.getString(R.string.offline_indicator_v2_back_online_text),
+                        statusIcon, backgroundColor, textColor, iconTint, hide);
             }
         });
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeExperimentsUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeExperimentsUtil.java
index 84b5183..cc2a359 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeExperimentsUtil.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeExperimentsUtil.java
@@ -15,12 +15,13 @@
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.browser.ChromeActivity;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.flags.IntCachedFieldTrialParameter;
 import org.chromium.chrome.browser.homepage.HomepageManager;
 import org.chromium.chrome.browser.locale.LocaleManager;
 import org.chromium.chrome.browser.ntp.NewTabPage;
 import org.chromium.chrome.browser.tab.TabLaunchType;
 import org.chromium.chrome.browser.tabmodel.TabModel;
-import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities;
 import org.chromium.chrome.browser.util.AccessibilityUtil;
 import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration;
 import org.chromium.content_public.browser.LoadUrlParams;
@@ -34,7 +35,10 @@
     private static final String TAG = "TabSwitcherOnReturn";
 
     @VisibleForTesting
-    public static final String TAB_SWITCHER_ON_RETURN_MS = "tab_switcher_on_return_time_ms";
+    public static final String TAB_SWITCHER_ON_RETURN_MS_PARAM = "tab_switcher_on_return_time_ms";
+    public static final IntCachedFieldTrialParameter TAB_SWITCHER_ON_RETURN_MS =
+            new IntCachedFieldTrialParameter(
+                    ChromeFeatureList.TAB_SWITCHER_ON_RETURN, TAB_SWITCHER_ON_RETURN_MS_PARAM, -1);
 
     @VisibleForTesting
     static final String UMA_TIME_TO_GTS_FIRST_MEANINGFUL_PAINT =
@@ -57,7 +61,7 @@
      * @return true if past threshold, false if not past threshold or experiment cannot be loaded.
      */
     public static boolean shouldShowTabSwitcher(final long lastBackgroundedTimeMillis) {
-        int tabSwitcherAfterMillis = TabUiFeatureUtilities.TAB_SWITCHER_ON_RETURN_MS.getValue();
+        int tabSwitcherAfterMillis = TAB_SWITCHER_ON_RETURN_MS.getValue();
 
         if (lastBackgroundedTimeMillis == -1) {
             // No last background timestamp set, use control behavior unless "immediate" was set.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
index 5f2e11d..eef4ee01 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
@@ -29,7 +29,6 @@
 import org.chromium.chrome.browser.previews.Previews;
 import org.chromium.chrome.browser.previews.PreviewsAndroidBridge;
 import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabUtils;
 import org.chromium.chrome.browser.tab.TrustedCdn;
@@ -403,8 +402,7 @@
     @VisibleForTesting
     @ConnectionSecurityLevel
     int getSecurityLevelFromStateModel(WebContents webContents) {
-        int securityLevel = SecurityStateModel.getSecurityLevelForWebContents(
-                webContents, ChromeSecurityStateModelDelegate.getInstance());
+        int securityLevel = SecurityStateModel.getSecurityLevelForWebContents(webContents);
         return securityLevel;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivityCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivityCoordinator.java
index 61463c4..755c1fe 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivityCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivityCoordinator.java
@@ -51,8 +51,7 @@
         assert storage != null;
         storage.incrementLaunchCount();
 
-        WebApkInfo info = (WebApkInfo) mActivity.getWebappInfo();
-        mWebApkUpdateManager.get().updateIfNeeded(storage, info);
+        mWebApkUpdateManager.get().updateIfNeeded(storage, mActivity.getWebappInfo());
     }
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkHandlerDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkHandlerDelegate.java
index af4d36c..c70a283 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkHandlerDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkHandlerDelegate.java
@@ -78,7 +78,7 @@
         }
         // Pass non-null URL parameter so that {@link WebApkInfo#create()}
         // return value is non-null
-        WebApkInfo webApkInfo =
+        WebappInfo webApkInfo =
                 WebApkInfo.create(packageInfo.packageName, "", ShortcutSource.UNKNOWN,
                         false /* forceNavigation */, false /* isSplashProvidedByWebApk */,
                         null /* shareData */, null /* shareDataActivityClassName */);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInfo.java
index 5aabe5ea..21a3eda 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInfo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInfo.java
@@ -97,7 +97,7 @@
      * manifest.
      * @param intent Intent containing info about the app.
      */
-    public static WebApkInfo create(Intent intent) {
+    public static WebappInfo create(Intent intent) {
         return create(WebApkIntentDataProviderFactory.create(intent));
     }
 
@@ -115,7 +115,7 @@
      * @param shareData Shared information from the share intent.
      * @param shareDataActivityClassName Name of WebAPK activity which received share intent.
      */
-    public static WebApkInfo create(String webApkPackageName, String url, int source,
+    public static WebappInfo create(String webApkPackageName, String url, int source,
             boolean forceNavigation, boolean canUseSplashFromContentProvider, ShareData shareData,
             String shareDataActivityClassName) {
         return create(WebApkIntentDataProviderFactory.create(webApkPackageName, url, source,
@@ -157,7 +157,7 @@
      * @param shareData                Shared information from the share intent.
      * @param webApkVersionCode        WebAPK's version code.
      */
-    public static WebApkInfo create(String url, String scope, WebappIcon primaryIcon,
+    public static WebappInfo create(String url, String scope, WebappIcon primaryIcon,
             WebappIcon splashIcon, String name, String shortName, @WebDisplayMode int displayMode,
             int orientation, int source, long themeColor, long backgroundColor,
             int defaultBackgroundColor, boolean isPrimaryIconMaskable, boolean isSplashIconMaskable,
@@ -174,7 +174,7 @@
                 shareData, shortcutItems, webApkVersionCode));
     }
 
-    private static WebApkInfo create(@Nullable BrowserServicesIntentDataProvider provider) {
+    private static WebappInfo create(@Nullable BrowserServicesIntentDataProvider provider) {
         return (provider != null) ? new WebApkInfo(provider) : null;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java
index fefce25..d997585 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java
@@ -86,7 +86,7 @@
                         new WebappRegistry.FetchWebappDataStorageCallback() {
                             @Override
                             public void onWebappDataStorageRetrieved(WebappDataStorage storage) {
-                                WebApkInfo webApkInfo = WebApkInfo.create(packageName, null, source,
+                                WebappInfo webApkInfo = WebApkInfo.create(packageName, null, source,
                                         false /* forceNavigation */,
                                         false /* canUseSplashFromContentProvider */,
                                         null /* shareData */,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java
index 7f662dd..aba2152 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java
@@ -36,7 +36,7 @@
          * @param splashIconUrl  The icon URL in {@link fetchedInfo#iconUrlToMurmur2HashMap()} best
          *                       suited for use as the splash icon on this device.
          */
-        void onGotManifestData(WebApkInfo fetchedInfo, String primaryIconUrl, String splashIconUrl);
+        void onGotManifestData(WebappInfo fetchedInfo, String primaryIconUrl, String splashIconUrl);
     }
 
     /**
@@ -49,12 +49,12 @@
     private Tab mTab;
 
     /** Web Manifest data at the time that the WebAPK was generated. */
-    private WebApkInfo mOldInfo;
+    private WebappInfo mOldInfo;
 
     private Observer mObserver;
 
     /** Starts observing page loads in order to fetch the Web Manifest after each page load. */
-    public boolean start(Tab tab, WebApkInfo oldInfo, Observer observer) {
+    public boolean start(Tab tab, WebappInfo oldInfo, Observer observer) {
         if (tab.getWebContents() == null || TextUtils.isEmpty(oldInfo.manifestUrl())) {
             return false;
         }
@@ -140,7 +140,7 @@
                         shareParamsAccepts);
 
         int defaultBackgroundColor = SplashLayout.getDefaultBackgroundColor(appContext);
-        WebApkInfo info = WebApkInfo.create(mOldInfo.url(), scopeUrl,
+        WebappInfo info = WebApkInfo.create(mOldInfo.url(), scopeUrl,
                 new WebappIcon(primaryIconBitmap), new WebappIcon(splashIconBitmap), name,
                 shortName, displayMode, orientation, mOldInfo.source(), themeColor, backgroundColor,
                 defaultBackgroundColor, isPrimaryIconMaskable, false /* isSplashIconMaskable */,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java
index 4a655947..b3bb5c12 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java
@@ -53,7 +53,7 @@
     private static boolean sUpdatesEnabled = true;
 
     /** Data extracted from the WebAPK's launch intent and from the WebAPK's Android Manifest. */
-    private WebApkInfo mInfo;
+    private WebappInfo mInfo;
 
     /** The WebappDataStorage with cached data about prior update requests. */
     private WebappDataStorage mStorage;
@@ -80,7 +80,7 @@
      * Checks whether the WebAPK's Web Manifest has changed. Requests an updated WebAPK if the Web
      * Manifest has changed. Skips the check if the check was done recently.
      */
-    public void updateIfNeeded(WebappDataStorage storage, WebApkInfo info) {
+    public void updateIfNeeded(WebappDataStorage storage, WebappInfo info) {
         mStorage = storage;
         mInfo = info;
 
@@ -113,7 +113,7 @@
 
     @Override
     public void onGotManifestData(
-            WebApkInfo fetchedInfo, String primaryIconUrl, String splashIconUrl) {
+            WebappInfo fetchedInfo, String primaryIconUrl, String splashIconUrl) {
         mStorage.updateTimeOfLastCheckForUpdatedWebManifest();
         if (mUpdateFailureHandler != null) {
             mUpdateFailureHandler.removeCallbacksAndMessages(null);
@@ -177,7 +177,7 @@
     }
 
     /** Builds proto to send to the WebAPK server. */
-    private void buildUpdateRequestAndSchedule(WebApkInfo info, String primaryIconUrl,
+    private void buildUpdateRequestAndSchedule(WebappInfo info, String primaryIconUrl,
             String splashIconUrl, boolean isManifestStale, @WebApkUpdateReason int updateReason) {
         Callback<Boolean> callback = (success) -> {
             if (!success) {
@@ -247,7 +247,7 @@
     /**
      * Whether there is a new version of the //chrome/android/webapk/shell_apk code.
      */
-    private static boolean isShellApkVersionOutOfDate(WebApkInfo info) {
+    private static boolean isShellApkVersionOutOfDate(WebappInfo info) {
         return info.shellApkVersion() < WebApkVersion.REQUEST_UPDATE_FOR_SHELL_APK_VERSION;
     }
 
@@ -257,7 +257,7 @@
      * @param info Meta data from WebAPK's Android Manifest.
      * True if there has not been any update attempts.
      */
-    private boolean shouldCheckIfWebManifestUpdated(WebApkInfo info) {
+    private boolean shouldCheckIfWebManifestUpdated(WebappInfo info) {
         if (!sUpdatesEnabled) return false;
 
         if (CommandLine.getInstance().hasSwitch(
@@ -338,7 +338,7 @@
      * @return reason that an update is needed or {@link WebApkUpdateReason#NONE} if an update is
      *         not needed.
      */
-    private static @WebApkUpdateReason int needsUpdate(WebApkInfo oldInfo, WebApkInfo fetchedInfo,
+    private static @WebApkUpdateReason int needsUpdate(WebappInfo oldInfo, WebappInfo fetchedInfo,
             String primaryIconUrl, String splashIconUrl) {
         if (isShellApkVersionOutOfDate(oldInfo)) return WebApkUpdateReason.OLD_SHELL_APK;
         if (fetchedInfo == null) return WebApkUpdateReason.NONE;
@@ -402,7 +402,7 @@
         return null;
     }
 
-    protected void storeWebApkUpdateRequestToFile(String updateRequestPath, WebApkInfo info,
+    protected void storeWebApkUpdateRequestToFile(String updateRequestPath, WebappInfo info,
             String primaryIconUrl, String splashIconUrl, boolean isManifestStale,
             @WebApkUpdateReason int updateReason, Callback<Boolean> callback) {
         int versionCode = info.webApkVersionCode();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java
index 336b1854..585317c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java
@@ -306,8 +306,8 @@
                 (intent) -> mIntentHandler.shouldIgnoreIntent(intent);
 
         mIntentDataProvider = mWebappInfo.getProvider();
-        BaseCustomTabActivityModule baseCustomTabModule =
-                new BaseCustomTabActivityModule(mIntentDataProvider, intentIgnoringCriterion);
+        BaseCustomTabActivityModule baseCustomTabModule = new BaseCustomTabActivityModule(
+                mIntentDataProvider, mNightModeStateController, intentIgnoringCriterion);
         WebappActivityModule webappModule = new WebappActivityModule();
         WebappActivityComponent component =
                 ChromeApplication.getComponent().createWebappActivityComponent(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java
index 5537fa2..7c64703 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java
@@ -546,7 +546,7 @@
      * Returns file where WebAPK update data should be stored and stores the file name in
      * SharedPreferences.
      */
-    String createAndSetUpdateRequestFilePath(WebApkInfo info) {
+    String createAndSetUpdateRequestFilePath(WebappInfo info) {
         String filePath = WebappDirectoryManager.getWebApkUpdateFilePathForStorage(this).getPath();
         mPreferences.edit().putString(KEY_PENDING_UPDATE_FILE_PATH, filePath).apply();
         return filePath;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java
index 1498880..7e1409db 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java
@@ -97,7 +97,7 @@
      * if the intent does not launch either a WebappLauncherActivity or a WebAPK Activity. This
      * method is slow. It makes several PackageManager calls.
      */
-    public static @Nullable WebApkInfo maybeSlowlyGenerateWebApkInfoFromIntent(Intent fromIntent) {
+    public static @Nullable WebappInfo maybeSlowlyGenerateWebApkInfoFromIntent(Intent fromIntent) {
         // Check for intents targeted at WebappActivity, WebappActivity0-9,
         // SameTaskWebApkActivity and WebappLauncherActivity.
         String targetActivityClassName = fromIntent.getComponent().getClassName();
@@ -350,10 +350,10 @@
         return launchIntent;
     }
 
-    /** Tries to create WebappInfo/WebApkInfo for the intent. */
+    /** Tries to create WebappInfo for the intent. */
     @VisibleForTesting
     static WebappInfo tryCreateWebappInfo(Intent intent) {
-        // Builds WebApkInfo for the intent if the WebAPK package specified in the intent is a valid
+        // Builds WebappInfo for the intent if the WebAPK package specified in the intent is a valid
         // WebAPK and the URL specified in the intent can be fulfilled by the WebAPK.
         String webApkPackage =
                 IntentUtils.safeGetStringExtra(intent, WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTypeTestUtils.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTypeTestUtils.java
index f944b0d..caa787f7 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTypeTestUtils.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTypeTestUtils.java
@@ -11,8 +11,8 @@
 import org.chromium.chrome.browser.browserservices.TrustedWebActivityTestUtil;
 import org.chromium.chrome.browser.flags.ActivityType;
 import org.chromium.chrome.browser.webapps.WebApkActivityTestRule;
-import org.chromium.chrome.browser.webapps.WebApkInfo;
 import org.chromium.chrome.browser.webapps.WebappActivityTestRule;
+import org.chromium.chrome.browser.webapps.WebappInfo;
 import org.chromium.chrome.test.ChromeActivityTestRule;
 import org.chromium.chrome.test.util.browser.webapps.WebApkInfoBuilder;
 
@@ -62,7 +62,7 @@
     }
 
     private static void launchWebApk(WebApkActivityTestRule activityTestRule, String url) {
-        WebApkInfo webApkInfo = new WebApkInfoBuilder("org.chromium.webapk.random", url).build();
+        WebappInfo webApkInfo = new WebApkInfoBuilder("org.chromium.webapk.random", url).build();
         activityTestRule.startWebApkActivity(webApkInfo);
     }
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenterTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenterTest.java
index dbb093e8..447c5d9 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenterTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenterTest.java
@@ -32,6 +32,7 @@
 import org.hamcrest.Matchers;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.ClassRule;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -62,6 +63,7 @@
 import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType;
 import org.chromium.ui.modaldialog.ModalDialogProperties;
 import org.chromium.ui.modelutil.PropertyModel;
+import org.chromium.ui.test.util.DisableAnimationsTestRule;
 import org.chromium.ui.test.util.UiRestriction;
 
 /**
@@ -93,6 +95,10 @@
         }
     }
 
+    // Disable animations to reduce flakiness.
+    @ClassRule
+    public static DisableAnimationsTestRule sNoAnimationsRule = new DisableAnimationsTestRule();
+
     @Rule
     public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
 
@@ -114,7 +120,6 @@
                 .addUrlFocusChangeListener(mTestObserver);
         mTabModalPresenter =
                 (ChromeTabModalPresenter) mManager.getPresenterForTest(ModalDialogType.TAB);
-        mTabModalPresenter.disableAnimationForTest();
     }
 
     @Test
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettingsTest.java
index a7ca5d8..9b8e569 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettingsTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettingsTest.java
@@ -61,7 +61,6 @@
 import android.support.test.filters.SmallTest;
 import android.view.MenuItem;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.EditText;
 import android.widget.LinearLayout;
 
@@ -1782,10 +1781,7 @@
         setPasswordSource(null);
         SettingsActivityTest.startSettingsActivity(
                 InstrumentationRegistry.getInstrumentation(), PasswordSettings.class.getName());
-        Espresso.onView(isRoot()).check(
-                (root, e)
-                        -> waitForView(
-                                (ViewGroup) root, withText(R.string.password_settings_title)));
+        Espresso.onView(isRoot()).check(waitForView(withText(R.string.password_settings_title)));
 
         // Retrieve the initial status and ensure that the help option is there at all.
         final AtomicReference<Boolean> helpInOverflowMenu = new AtomicReference<>(false);
@@ -1806,10 +1802,7 @@
         Espresso.onView(withSearchMenuIdOrText()).perform(click());
         Espresso.onView(withContentDescription(R.string.abc_action_bar_up_description))
                 .perform(click());
-        Espresso.onView(isRoot()).check(
-                (root, e)
-                        -> waitForView(
-                                (ViewGroup) root, withText(R.string.password_settings_title)));
+        Espresso.onView(isRoot()).check(waitForView(withText(R.string.password_settings_title)));
 
         // Check that the help option is exactly where it was to begin with.
         if (helpInOverflowMenu.get()) {
@@ -1962,12 +1955,9 @@
         Espresso.onView(withSearchMenuIdOrText()).perform(click());
 
         Espresso.onView(withText(R.string.passwords_auto_signin_title)).check(doesNotExist());
-        Espresso.onView(isRoot()).check(
-                (root, e)
-                        -> waitForView((ViewGroup) root,
-                                withParent(withContentDescription(
-                                        R.string.abc_action_menu_overflow_description)),
-                                VIEW_INVISIBLE | VIEW_GONE | VIEW_NULL));
+        Espresso.onView(isRoot()).check(waitForView(
+                withParent(withContentDescription(R.string.abc_action_menu_overflow_description)),
+                VIEW_INVISIBLE | VIEW_GONE | VIEW_NULL));
 
         Espresso.onView(withContentDescription(R.string.abc_action_bar_up_description))
                 .perform(click());
@@ -2018,9 +2008,7 @@
         // Trigger search which shouldn't have the button yet.
         Espresso.onView(withSearchMenuIdOrText()).perform(click());
         Espresso.onView(isRoot()).check(
-                (root, e)
-                        -> waitForView((ViewGroup) root, withId(R.id.search_close_btn),
-                                VIEW_INVISIBLE | VIEW_GONE | VIEW_NULL));
+                waitForView(withId(R.id.search_close_btn), VIEW_INVISIBLE | VIEW_GONE | VIEW_NULL));
 
         // Type something and see the button appear.
         Espresso.onView(withId(R.id.search_src_text))
@@ -2031,9 +2019,7 @@
         // Clear the search which should hide the button again.
         Espresso.onView(withId(R.id.search_close_btn)).perform(click()); // Clear search.
         Espresso.onView(isRoot()).check(
-                (root, e)
-                        -> waitForView((ViewGroup) root, withId(R.id.search_close_btn),
-                                VIEW_INVISIBLE | VIEW_GONE | VIEW_NULL));
+                waitForView(withId(R.id.search_close_btn), VIEW_INVISIBLE | VIEW_GONE | VIEW_NULL));
     }
 
     /**
@@ -2105,8 +2091,7 @@
         // Open the search and filter all but "Zeus".
         Espresso.onView(withSearchMenuIdOrText()).perform(click());
 
-        Espresso.onView(isRoot()).check(
-                (root, e) -> waitForView((ViewGroup) root, withId(R.id.search_src_text)));
+        Espresso.onView(isRoot()).check(waitForView(withId(R.id.search_src_text)));
         Espresso.onView(withId(R.id.search_src_text))
                 .perform(click(), typeText("Zeu"), closeSoftKeyboard());
         InstrumentationRegistry.getInstrumentation().waitForIdleSync();
@@ -2144,9 +2129,7 @@
 
         // The search bar should still be open and still display the search query.
         Espresso.onView(isRoot()).check(
-                (root, e)
-                        -> waitForView((ViewGroup) root,
-                                allOf(withId(R.id.search_src_text), withText("Zeu"))));
+                waitForView(allOf(withId(R.id.search_src_text), withText("Zeu"))));
         Espresso.onView(withId(R.id.search_src_text)).check(matches(withText("Zeu")));
     }
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderTest.java
index 5356be0..44cd642 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderTest.java
@@ -29,7 +29,6 @@
 import org.chromium.net.test.EmbeddedTestServer;
 import org.chromium.payments.mojom.PaymentDetailsModifier;
 import org.chromium.payments.mojom.PaymentMethodData;
-import org.chromium.url.GURL;
 import org.chromium.url.Origin;
 import org.chromium.url.URI;
 
@@ -39,7 +38,6 @@
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
@@ -98,7 +96,6 @@
     private List<PaymentApp> mPaymentApps;
     private boolean mAllPaymentAppsCreated;
     private Map<String, PaymentMethodData> mMethodData;
-    private boolean mRequestShippingOrPayerContact;
 
     // PaymentAppFactoryDelegate implementation.
     @Override
@@ -164,12 +161,6 @@
         return mMethodData;
     }
 
-    // PaymentAppFactoryParams implementation.
-    @Override
-    public boolean requestShippingOrPayerContact() {
-        return mRequestShippingOrPayerContact;
-    }
-
     @Before
     public void setUp() throws Throwable {
         mRule.startMainActivityOnBlankPage();
@@ -380,17 +371,17 @@
         Assert.assertEquals("com.bobpay", mPaymentApps.get(0).getIdentifier());
     }
 
-    /** When Chrome is not running in TWA, the app store billing methods should be filtered out. */
+    /** Ignored payment methods should be filtered out. */
     @Test
     @Feature({"Payments"})
-    public void testIgnoreAppStoreMethodsInNonTwa() throws Throwable {
+    public void testIgnoredPaymentMethodIdentifier() throws Throwable {
         Set<String> methods = new HashSet<>();
         methods.add("https://bobpay.com/webpay");
         mPackageManager.installPaymentApp("BobPay", "com.bobpay", "https://bobpay.com/webpay",
                 /*signature=*/"01020304050607080900");
 
-        addAppStoreMethodAndFindApps(/*appStorePackageName=*/"com.bobpay",
-                /*appStorePaymentMethod=*/new GURL("https://bobpay.com/webpay"), methods);
+        ignorePaymentMethodIdentifierAndFindApps(
+                /*ignoredPaymentMethodIdentifier=*/"https://bobpay.com/webpay", methods);
 
         Assert.assertTrue("No apps should match the query", mPaymentApps.isEmpty());
     }
@@ -1100,230 +1091,6 @@
     }
 
     /**
-     * The basic test for {@link AndroidPaymentAppFinder#findAndroidPaymentApps} to find a app-store
-     * (e.g., Google Store) billing app.
-     */
-    @Test
-    @Feature({"Payments"})
-    public void testFindAppStoreBillingApp() throws Throwable {
-        Set<String> methods = new HashSet<>();
-        methods.add("https://play.google.com/billing");
-        mPackageManager.installPaymentApp("MerchantTwaApp", "com.merchant.twa",
-                "https://play.google.com/billing", /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.merchant.twa", new String[] {"https://play.google.com/billing"});
-
-        mockTwaAndItsInstaller("com.merchant.twa", "com.android.vending");
-        findApps(methods);
-
-        Assert.assertEquals("1 app should still match the query", 1, mPaymentApps.size());
-        Assert.assertEquals("com.merchant.twa", mPaymentApps.get(0).getIdentifier());
-    }
-
-    /**
-     * For finding app store billing app, test that the TWA only has default app store but no
-     * support the billing method in its Android manifest. The test setting intentionally omits the
-     * setting of the twa's supported methods.
-     */
-    @Test
-    @Feature({"Payments"})
-    public void testFindAppStoreBillingAppTwaHasDefaultAppStoreMethod() throws Throwable {
-        Set<String> methods = new HashSet<>();
-        methods.add("https://play.google.com/billing");
-        mPackageManager.installPaymentApp("MerchantTwaApp", "com.merchant.twa",
-                "https://play.google.com/billing", /*signature=*/"01020304050607080900");
-
-        mockTwaAndItsInstaller("com.merchant.twa", "com.android.vending");
-        findApps(methods);
-
-        Assert.assertEquals("1 app should still match the query", 1, mPaymentApps.size());
-        Assert.assertEquals("com.merchant.twa", mPaymentApps.get(0).getIdentifier());
-    }
-
-    /**
-     * For finding app store billing app, test that the TWA has support the billing method but no
-     * default method in its manifest. The test setting intentionally set TWA's default method to a
-     * non-store method.
-     */
-    @Test
-    @Feature({"Payments"})
-    public void testFindAppStoreBillingAppTwaHasSupportedAppStoreMethod() throws Throwable {
-        Set<String> methods = new HashSet<>();
-        methods.add("https://play.google.com/billing");
-        mPackageManager.installPaymentApp("MerchantTwaApp", "com.merchant.twa", "an://invalid.url",
-                /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.merchant.twa", new String[] {"https://play.google.com/billing"});
-
-        mockTwaAndItsInstaller("com.merchant.twa", "com.android.vending");
-        findApps(methods);
-
-        Assert.assertEquals("1 app should still match the query", 1, mPaymentApps.size());
-        Assert.assertEquals("com.merchant.twa", mPaymentApps.get(0).getIdentifier());
-    }
-
-    /**
-     * For finding app store billing app, test that the TWA's installer app store must be the same
-     * as the app store in the payment request. The test setting sets the twa installer app store to
-     * be a different one.
-     */
-    @Test
-    @Feature({"Payments"})
-    public void testFindAppStoreBillingAppMustFromSameAppStoreAsTheRequested() throws Throwable {
-        Set<String> methods = new HashSet<>();
-        methods.add("https://play.google.com/billing");
-        methods.add("https://bobpay.com/webpay");
-        mPackageManager.installPaymentApp("MerchantTwaApp", "com.merchant.twa",
-                "https://play.google.com/billing", /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.merchant.twa", new String[] {"https://play.google.com/billing"});
-        mPackageManager.installPaymentApp("BobPay", "com.bobpay", "https://bobpay.com/webpay",
-                /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.bobpay", new String[] {"https://bobpay.com/webpay"});
-
-        mockTwaAndItsInstaller("com.merchant.twa", "com.another.appstore");
-        findApps(methods);
-
-        Assert.assertEquals("1 app should still match the query", 1, mPaymentApps.size());
-        Assert.assertEquals("com.bobpay", mPaymentApps.get(0).getIdentifier());
-    }
-
-    /**
-     * For finding app store billing app, test that the TWA's installer app store must be a
-     * whitelisted one. The test setting sets the twa installer app store to be an unsupported one.
-     */
-    @Test
-    @Feature({"Payments"})
-    public void testFindAppStoreBillingAppMustInSupportedAppStore() throws Throwable {
-        Set<String> methods = new HashSet<>();
-        methods.add("https://another.playstore.com/billing");
-        methods.add("https://bobpay.com/webpay");
-        mPackageManager.installPaymentApp("MerchantTwaApp", "com.merchant.twa",
-                "https://another.playstore.com/billing", /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.merchant.twa", new String[] {"https://another.playstore.com/billing"});
-        mPackageManager.installPaymentApp("BobPay", "com.bobpay", "https://bobpay.com/webpay",
-                /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.bobpay", new String[] {"https://bobpay.com/webpay"});
-
-        mockTwaAndItsInstaller("com.merchant.twa", "com.another.appstore");
-        findApps(methods);
-
-        Assert.assertEquals("1 app should still match the query", 1, mPaymentApps.size());
-        Assert.assertEquals("com.bobpay", mPaymentApps.get(0).getIdentifier());
-    }
-
-    /**
-     * For finding app store billing app, test that Chrome must be in TWA to use app store billing.
-     * The test setting intentionally omits the twa mocking.
-     */
-    @Test
-    @Feature({"Payments"})
-    public void testFindAppStoreBillingAppMustInTwa() throws Throwable {
-        Set<String> methods = new HashSet<>();
-        methods.add("https://play.google.com/billing");
-        methods.add("https://bobpay.com/webpay");
-
-        mPackageManager.installPaymentApp("MerchantTwaApp", "com.merchant.twa",
-                "https://play.google.com/billing", /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.merchant.twa", new String[] {"https://play.google.com/billing"});
-        mPackageManager.installPaymentApp("BobPay", "com.bobpay", "https://bobpay.com/webpay",
-                /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.bobpay", new String[] {"https://bobpay.com/webpay"});
-
-        findApps(methods);
-
-        Assert.assertEquals("1 app should still match the query", 1, mPaymentApps.size());
-        Assert.assertEquals("com.bobpay", mPaymentApps.get(0).getIdentifier());
-    }
-
-    /**
-     * For finding app store billing app, test that the payment request must support the app store
-     * billing method to be able to use it. The test setting intentionally omits the app store
-     * billing method in the payment request.
-     */
-    @Test
-    @Feature({"Payments"})
-    public void testFindAppStoreBillingAppNotRequested() throws Throwable {
-        Set<String> noRequestedMethod = new HashSet<>();
-        noRequestedMethod.add("https://bobpay.com/webpay");
-
-        mPackageManager.installPaymentApp("MerchantTwaApp", "com.merchant.twa",
-                "https://play.google.com/billing", /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.merchant.twa", new String[] {"https://play.google.com/billing"});
-        mPackageManager.installPaymentApp("BobPay", "com.bobpay", "https://bobpay.com/webpay",
-                /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.bobpay", new String[] {"https://bobpay.com/webpay"});
-
-        mockTwaAndItsInstaller("com.merchant.twa", "com.android.vending");
-        findApps(noRequestedMethod);
-
-        Assert.assertEquals("1 app should still match the query", 1, mPaymentApps.size());
-        Assert.assertEquals("com.bobpay", mPaymentApps.get(0).getIdentifier());
-    }
-
-    /**
-     * For finding app store billing app, test that once when Chrome starts to look for app store
-     * billing app, it ignores all other normal payment apps. The test setting includes a normal
-     * native payment method and play billing method, and expects to see the normal one is ignored.
-     */
-    @Test
-    @Feature({"Payments"})
-    public void testFindAppStoreBillingAppIgnoreNonAppStoreBillingApps() throws Throwable {
-        Set<String> methods = new HashSet<>();
-        methods.add("https://play.google.com/billing");
-        methods.add("https://bobpay.com/webpay");
-        mPackageManager.installPaymentApp("MerchantTwaApp", "com.merchant.twa",
-                "https://play.google.com/billing", /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.merchant.twa", new String[] {"https://play.google.com/billing"});
-        mPackageManager.installPaymentApp("BobPay", "com.bobpay", "https://bobpay.com/webpay",
-                /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.bobpay", new String[] {"https://bobpay.com/webpay"});
-
-        mockTwaAndItsInstaller("com.merchant.twa", "com.android.vending");
-        findApps(methods);
-
-        assertPaymentAppsHaveIdentifiers("com.merchant.twa", "com.bobpay");
-    }
-
-    /**
-     * For finding app store billing app, test that if delegation is requested along with the
-     * app-store billing method, the app-store billing method would be ignore. The test setting
-     * requests the shipping or payer contact delegation.
-     */
-    @Test
-    @Feature({"Payments"})
-    public void testFindAppStoreBillingAppDelegationRejectBilling() throws Throwable {
-        Set<String> methods = new HashSet<>();
-        methods.add("https://play.google.com/billing");
-        methods.add("https://bobpay.com/webpay");
-        mRequestShippingOrPayerContact = true;
-        mPackageManager.installPaymentApp("MerchantTwaApp", "com.merchant.twa",
-                "https://play.google.com/billing",
-                /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.merchant.twa", new String[] {"https://play.google.com/billing"});
-        mPackageManager.installPaymentApp("BobPay", "com.bobpay", "https://bobpay.com/webpay",
-                /*signature=*/"01020304050607080900");
-        mPackageManager.setStringArrayMetaData(
-                "com.bobpay", new String[] {"https://bobpay.com/webpay"});
-
-        mockTwaAndItsInstaller("com.merchant.twa", "com.android.vending");
-        findApps(methods);
-
-        Assert.assertEquals("1 app should still match the query", 1, mPaymentApps.size());
-        Assert.assertEquals("com.bobpay", mPaymentApps.get(0).getIdentifier());
-    }
-
-    /**
      * If a payment method supports two apps from different origins, both apps should be found.
      * Repeated app look ups should succeed.
      */
@@ -1464,12 +1231,12 @@
     }
 
     private void findApps(Set<String> methodNames) throws Throwable {
-        addAppStoreMethodAndFindApps(
-                /*appStorePackageName=*/null, /*appStorePaymentMethod=*/null, methodNames);
+        ignorePaymentMethodIdentifierAndFindApps(
+                /*ignoredPaymentMethodIdentifier=*/null, methodNames);
     }
 
-    private void addAppStoreMethodAndFindApps(String appStorePackageName,
-            GURL appStorePaymentMethod, Set<String> methodNames) throws Throwable {
+    private void ignorePaymentMethodIdentifierAndFindApps(
+            String ignoredPaymentMethodIdentifier, Set<String> methodNames) throws Throwable {
         mMethodData = buildMethodData(methodNames);
         mRule.runOnUiThread(() -> {
             AndroidPaymentAppFinder finder =
@@ -1477,10 +1244,8 @@
                             new PaymentManifestParser(), mPackageManager,
                             /*delegate=*/AndroidPaymentAppFinderTest.this, /*factory=*/null);
             finder.bypassIsReadyToPayServiceInTest();
-            if (appStorePackageName != null) {
-                assert appStorePaymentMethod != null;
-                assert appStorePaymentMethod.isValid();
-                finder.addAppStoreForTest(appStorePackageName, appStorePaymentMethod);
+            if (ignoredPaymentMethodIdentifier != null) {
+                finder.ignorePaymentMethodForTest(ignoredPaymentMethodIdentifier);
             }
             finder.findAndroidPaymentApps();
         });
@@ -1501,28 +1266,4 @@
         }
         return result;
     }
-
-    private void mockTwaAndItsInstaller(String twaPackageName, String installerPackageName) {
-        mPackageManager.setMockTrustedWebActivity(twaPackageName);
-        mPackageManager.mockInstallerForPackage(twaPackageName, installerPackageName);
-    }
-
-    private void assertPaymentAppsHaveIdentifiers(String... expectedIds) {
-        Set<String> ids = new HashSet<>();
-        for (PaymentApp app : mPaymentApps) {
-            ids.add(app.getIdentifier());
-        }
-        Assert.assertEquals(
-                String.format(Locale.getDefault(), "Expected %d apps, but got %d apps instead.",
-                        expectedIds.length, ids.size()),
-                expectedIds.length, ids.size());
-        for (String expectedId : expectedIds) {
-            Assert.assertTrue(String.format(Locale.getDefault(),
-                                      "Expected id %s is not found. "
-                                              + "Expected identifiers: %s. "
-                                              + "Actual identifiers: %s",
-                                      expectedId, expectedIds.toString(), ids.toString()),
-                    ids.contains(expectedId));
-        }
-    }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/MockPackageManagerDelegate.java b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/MockPackageManagerDelegate.java
index a12ecce..b17aa6c4 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/MockPackageManagerDelegate.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/MockPackageManagerDelegate.java
@@ -16,8 +16,6 @@
 
 import androidx.annotation.Nullable;
 
-import org.chromium.chrome.browser.ChromeActivity;
-
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -33,10 +31,6 @@
     private final List<ResolveInfo> mServices = new ArrayList<>();
     private final Map<ApplicationInfo, String[]> mResources = new HashMap<>();
 
-    private String mMockTwaPackage;
-    // A map of a package name to its installer's package name.
-    private Map<String, String> mMockInstallerPackageMap = new HashMap<>();
-
     /**
      * Simulates an installed payment app with no supported delegations.
      *
@@ -146,27 +140,6 @@
         mLabels.clear();
     }
 
-    /**
-     * Mock the current package to be a Trust Web Activity package.
-     * @param mockTwaPackage The intended package nam, not allowed to be null.
-     */
-    public void setMockTrustedWebActivity(String mockTwaPackage) {
-        assert mockTwaPackage != null;
-        mMockTwaPackage = mockTwaPackage;
-    }
-
-    /**
-     * Mock the installer of a specified package.
-     * @param packageName The package name that is intended to mock a installer for.
-     * @param installerPackageName The package name intended to be set as the installer of the
-     *         specified package. not allowed to be null.
-     */
-    public void mockInstallerForPackage(String packageName, String installerPackageName) {
-        assert installerPackageName != null;
-        assert packageName != null;
-        mMockInstallerPackageMap.put(packageName, installerPackageName);
-    }
-
     @Override
     public List<ResolveInfo> getActivitiesThatCanRespondToIntentWithMetaData(Intent intent) {
         return mActivities;
@@ -204,17 +177,4 @@
         assert STRING_ARRAY_RESOURCE_ID == resourceId;
         return mResources.get(applicationInfo);
     }
-
-    @Override
-    @Nullable
-    public String getInstallerPackage(String packageName) {
-        return !mMockInstallerPackageMap.isEmpty() ? mMockInstallerPackageMap.get(packageName)
-                                                   : super.getInstallerPackage(packageName);
-    }
-
-    @Override
-    @Nullable
-    public String getTwaPackageName(ChromeActivity activity) {
-        return mMockTwaPackage != null ? mMockTwaPackage : super.getTwaPackageName(activity);
-    }
 }
\ No newline at end of file
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/share/ShareUrlTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/share/ShareUrlTest.java
index 1bbe8380..6c4309da 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/share/ShareUrlTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/share/ShareUrlTest.java
@@ -63,10 +63,10 @@
     @SmallTest
     public void testDistilledUrl() {
         final String DomDistillerScheme = "chrome-distiller";
-        String distilledHttpUrl =
-                DomDistillerUrlUtils.getDistillerViewUrlFromUrl(DomDistillerScheme, HTTP_URL);
-        String distilledHttpsUrl =
-                DomDistillerUrlUtils.getDistillerViewUrlFromUrl(DomDistillerScheme, HTTPS_URL);
+        String distilledHttpUrl = DomDistillerUrlUtils.getDistillerViewUrlFromUrl(
+                DomDistillerScheme, HTTP_URL, "Title");
+        String distilledHttpsUrl = DomDistillerUrlUtils.getDistillerViewUrlFromUrl(
+                DomDistillerScheme, HTTPS_URL, "Title");
 
         assertCorrectUrl(HTTP_URL, distilledHttpUrl);
         assertCorrectUrl(HTTPS_URL, distilledHttpsUrl);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tasks/ReturnToChromeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tasks/ReturnToChromeTest.java
index 550dde8..2922298 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tasks/ReturnToChromeTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tasks/ReturnToChromeTest.java
@@ -6,7 +6,7 @@
 
 import static org.junit.Assert.assertEquals;
 
-import static org.chromium.chrome.browser.tasks.ReturnToChromeExperimentsUtil.TAB_SWITCHER_ON_RETURN_MS;
+import static org.chromium.chrome.browser.tasks.ReturnToChromeExperimentsUtil.TAB_SWITCHER_ON_RETURN_MS_PARAM;
 
 import android.content.Intent;
 import android.support.test.InstrumentationRegistry;
@@ -52,7 +52,7 @@
 public class ReturnToChromeTest {
     // clang-format on
     private static final String BASE_PARAMS =
-            "force-fieldtrial-params=Study.Group:" + TAB_SWITCHER_ON_RETURN_MS + "/0";
+            "force-fieldtrial-params=Study.Group:" + TAB_SWITCHER_ON_RETURN_MS_PARAM + "/0";
     @Rule
     public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
 
@@ -77,7 +77,7 @@
     @Test
     @SmallTest
     @Feature({"ReturnToChrome"})
-    @CommandLineFlags.Add({BASE_PARAMS + "/" + TAB_SWITCHER_ON_RETURN_MS + "/100000"})
+    @CommandLineFlags.Add({BASE_PARAMS + "/" + TAB_SWITCHER_ON_RETURN_MS_PARAM + "/100000"})
     public void testTabSwitcherModeNotTriggeredWithinThreshold() throws Exception {
         TabUiTestHelper.prepareTabsWithThumbnail(mActivityTestRule, 2, 0, mUrl);
         TabUiTestHelper.finishActivity(mActivityTestRule.getActivity());
@@ -97,7 +97,7 @@
     @Test
     @SmallTest
     @Feature({"ReturnToChrome"})
-    @CommandLineFlags.Add({BASE_PARAMS + "/" + TAB_SWITCHER_ON_RETURN_MS + "/0"})
+    @CommandLineFlags.Add({BASE_PARAMS + "/" + TAB_SWITCHER_ON_RETURN_MS_PARAM + "/0"})
     @FlakyTest(message = "crbug.com/1040895")
     public void testTabSwitcherModeTriggeredBeyondThreshold() throws Exception {
         TabUiTestHelper.prepareTabsWithThumbnail(mActivityTestRule, 2, 0, mUrl);
@@ -149,7 +149,7 @@
     @Test
     @MediumTest
     @Feature({"ReturnToChrome"})
-    @CommandLineFlags.Add({BASE_PARAMS + "/" + TAB_SWITCHER_ON_RETURN_MS + "/0"})
+    @CommandLineFlags.Add({BASE_PARAMS + "/" + TAB_SWITCHER_ON_RETURN_MS_PARAM + "/0"})
     @FlakyTest(message = "crbug.com/1040896")
     public void testTabSwitcherModeTriggeredBeyondThreshold_WarmStart() throws Exception {
         testTabSwitcherModeTriggeredBeyondThreshold();
@@ -210,7 +210,7 @@
     @Test
     @SmallTest
     @Feature({"ReturnToChrome"})
-    @CommandLineFlags.Add({BASE_PARAMS + "/" + TAB_SWITCHER_ON_RETURN_MS + "/0"})
+    @CommandLineFlags.Add({BASE_PARAMS + "/" + TAB_SWITCHER_ON_RETURN_MS_PARAM + "/0"})
     @DisabledTest(message = "http://crbug.com/1027315")
     public void testTabSwitcherModeTriggeredBeyondThreshold_NoTabs() throws Exception {
         TestThreadUtils.runOnUiThreadBlocking(
@@ -262,7 +262,7 @@
     @SmallTest
     @Feature({"ReturnToChrome", "RenderTest"})
     // clang-format off
-    @CommandLineFlags.Add({BASE_PARAMS + "/" + TAB_SWITCHER_ON_RETURN_MS + "/0"})
+    @CommandLineFlags.Add({BASE_PARAMS + "/" + TAB_SWITCHER_ON_RETURN_MS_PARAM + "/0"})
     @Restriction(UiRestriction.RESTRICTION_TYPE_PHONE)
     @DisableIf.Build(hardware_is = "bullhead", message = "https://crbug.com/1025241")
     public void testInitialScrollIndex() throws Exception {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTest.java
index b52e5048..19fe12be 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTest.java
@@ -113,7 +113,7 @@
         ChromeActivityTestRule.waitFor(WebappActivity.class);
     }
 
-    private WebApkInfo createWebApkInfo(String startUrl, String scopeUrl) {
+    private WebappInfo createWebApkInfo(String startUrl, String scopeUrl) {
         WebApkInfoBuilder webApkInfoBuilder =
                 new WebApkInfoBuilder(TEST_WEBAPK_PACKAGE_NAME, startUrl);
         webApkInfoBuilder.setScope(scopeUrl);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTestRule.java
index 2c734842..538b081 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkActivityTestRule.java
@@ -48,7 +48,7 @@
      * Launches a WebAPK Activity and waits for the page to have finished loading and for the splash
      * screen to be hidden.
      */
-    public WebappActivity startWebApkActivity(WebApkInfo webApkInfo) {
+    public WebappActivity startWebApkActivity(WebappInfo webApkInfo) {
         Intent intent = createIntent(webApkInfo);
 
         WebappActivity.addWebappInfo(webApkInfo.id(), webApkInfo);
@@ -74,7 +74,7 @@
         return webApkActivity;
     }
 
-    private Intent createIntent(WebApkInfo webApkInfo) {
+    private Intent createIntent(WebappInfo webApkInfo) {
         Intent intent =
                 new Intent(InstrumentationRegistry.getTargetContext(), WebappActivity0.class);
         intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, webApkInfo.webApkPackageName());
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkCurrentPageVerifierTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkCurrentPageVerifierTest.java
index de553072..0719d28 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkCurrentPageVerifierTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkCurrentPageVerifierTest.java
@@ -38,7 +38,7 @@
     }
 
     private WebappActivity launchWebApk(String url) {
-        WebApkInfo webApkInfo = new WebApkInfoBuilder("org.chromium.webapk.random", url).build();
+        WebappInfo webApkInfo = new WebApkInfoBuilder("org.chromium.webapk.random", url).build();
         return mActivityTestRule.startWebApkActivity(webApkInfo);
     }
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcherTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcherTest.java
index 2315374..8a7f038 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcherTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcherTest.java
@@ -74,7 +74,7 @@
 
         @Override
         public void onGotManifestData(
-                WebApkInfo fetchedInfo, String primaryIconUrl, String splashIconUrl) {
+                WebappInfo fetchedInfo, String primaryIconUrl, String splashIconUrl) {
             Assert.assertNull(mName);
             mWebApkCompatible = true;
             mName = fetchedInfo.name();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java
index 4ac7a17a..143f42c 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java
@@ -96,13 +96,13 @@
 
         @Override
         public void onGotManifestData(
-                WebApkInfo fetchedInfo, String primaryIconUrl, String splashIconUrl) {
+                WebappInfo fetchedInfo, String primaryIconUrl, String splashIconUrl) {
             super.onGotManifestData(fetchedInfo, primaryIconUrl, splashIconUrl);
             mWaiter.notifyCalled();
         }
 
         @Override
-        protected void storeWebApkUpdateRequestToFile(String updateRequestPath, WebApkInfo info,
+        protected void storeWebApkUpdateRequestToFile(String updateRequestPath, WebappInfo info,
                 String primaryIconUrl, String splashIconUrl, boolean isManifestStale,
                 @WebApkUpdateReason int updateReason, Callback<Boolean> callback) {
             mNeedsUpdate = true;
@@ -176,7 +176,7 @@
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             WebappDataStorage storage =
                     WebappRegistry.getInstance().getWebappDataStorage(WEBAPK_ID);
-            WebApkInfo info = WebApkInfo.create("", creationData.scope, null, null,
+            WebappInfo info = WebApkInfo.create("", creationData.scope, null, null,
                     creationData.name, creationData.shortName, creationData.displayMode,
                     creationData.orientation, 0, creationData.themeColor,
                     creationData.backgroundColor, 0, creationData.isPrimaryIconMaskable,
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityBrowserControlsVisibilityManagerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityBrowserControlsVisibilityManagerTest.java
index 97a8267a..278c75d 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityBrowserControlsVisibilityManagerTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityBrowserControlsVisibilityManagerTest.java
@@ -29,8 +29,6 @@
 import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabProvider;
 import org.chromium.chrome.browser.customtabs.content.TabObserverRegistrar;
 import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarCoordinator;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegate;
-import org.chromium.chrome.browser.ssl.ChromeSecurityStateModelDelegateJni;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabImpl;
 import org.chromium.chrome.browser.webapps.WebDisplayMode;
@@ -53,8 +51,6 @@
     @Mock
     public TabImpl mTab;
     @Mock
-    ChromeSecurityStateModelDelegate.Natives mChromeSecurityStateModelDelegateMocks;
-    @Mock
     SecurityStateModel.Natives mSecurityStateMocks;
     @Mock
     public CustomTabToolbarCoordinator mToolbarCoordinator;
@@ -68,8 +64,6 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         SecurityStateModelJni.TEST_HOOKS.setInstanceForTesting(mSecurityStateMocks);
-        ChromeSecurityStateModelDelegateJni.TEST_HOOKS.setInstanceForTesting(
-                mChromeSecurityStateModelDelegateMocks);
         when(mTabProvider.getTab()).thenReturn(mTab);
         when(mTab.getParentId()).thenReturn(Tab.INVALID_TAB_ID);
         setTabSecurityLevel(ConnectionSecurityLevel.NONE);
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java
index 826d37a..43554c75 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java
@@ -167,7 +167,7 @@
     }
 
     /**
-     * Returns simplest intent which builds valid WebApkInfo via {@link WebApkInfo#create()}.
+     * Returns simplest intent which builds valid WebappInfo via {@link WebApkInfo#create()}.
      */
     private static Intent createMinimalWebApkIntent(String webApkPackage, String url) {
         Intent intent = new Intent();
@@ -180,7 +180,7 @@
     public void testSanity() {
         // Test guidelines:
         // - Stubbing out native calls in this test likely means that there is a bug.
-        // - For every WebApkInfo boolean there should be a test which tests both values.
+        // - For every WebappInfo boolean there should be a test which tests both values.
 
         Bundle bundle = new Bundle();
         bundle.putString(WebApkMetaDataKeys.SCOPE, SCOPE);
@@ -219,7 +219,7 @@
         intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.NOTIFICATION);
         intent.putExtra(WebApkConstants.EXTRA_SPLASH_PROVIDED_BY_WEBAPK, true);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
 
         Assert.assertEquals(WebApkConstants.WEBAPK_ID_PREFIX + WEBAPK_PACKAGE_NAME, info.id());
         Assert.assertEquals(START_URL, info.url());
@@ -279,7 +279,7 @@
                 WEBAPK_PACKAGE_NAME, bundle, null /* shareTargetMetaData */);
 
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(PRIMARY_ICON_ID, info.icon().resourceIdForTesting());
         Assert.assertEquals(false, info.isIconAdaptive());
     }
@@ -297,7 +297,7 @@
                 WEBAPK_PACKAGE_NAME, bundle, null /* shareTargetMetaData */);
 
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(PRIMARY_ICON_ID, info.icon().resourceIdForTesting());
         Assert.assertEquals(false, info.isIconAdaptive());
     }
@@ -319,7 +319,7 @@
 
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, intentStartUrl);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(intentStartUrl, info.url());
 
         // {@link WebApkInfo#manifestStartUrl()} should contain the start URL from the Android
@@ -349,7 +349,7 @@
 
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, intentStartUrl);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(scopeFromManifestStartUrl, info.scopeUrl());
     }
 
@@ -372,7 +372,7 @@
                 WEBAPK_PACKAGE_NAME, bundle, null /* shareTargetMetaData */);
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Map<String, String> iconUrlToMurmur2HashMap = info.iconUrlToMurmur2HashMap();
         Assert.assertEquals(2, iconUrlToMurmur2HashMap.size());
         Assert.assertEquals(murmur2Hash1, iconUrlToMurmur2HashMap.get(iconUrl1));
@@ -395,7 +395,7 @@
                 WEBAPK_PACKAGE_NAME, bundle, null /* shareTargetMetaData */);
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Map<String, String> iconUrlToMurmur2HashMap = info.iconUrlToMurmur2HashMap();
         Assert.assertEquals(1, iconUrlToMurmur2HashMap.size());
         Assert.assertTrue(iconUrlToMurmur2HashMap.containsValue(hash));
@@ -416,7 +416,7 @@
 
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertTrue(info.shouldForceNavigation());
     }
 
@@ -435,7 +435,7 @@
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
         intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.COUNT + 1);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(ShortcutSource.UNKNOWN, info.source());
     }
 
@@ -456,7 +456,7 @@
 
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(name, info.name());
         Assert.assertEquals(shortName, info.shortName());
     }
@@ -484,7 +484,7 @@
 
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(name, info.name());
         Assert.assertEquals(shortName, info.shortName());
     }
@@ -507,7 +507,7 @@
         intent.putExtra(
                 Browser.EXTRA_APPLICATION_ID, RuntimeEnvironment.application.getPackageName());
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(ShortcutSource.EXTERNAL_INTENT_FROM_CHROME, info.source());
     }
 
@@ -526,7 +526,7 @@
         intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.EXTERNAL_INTENT);
         intent.putExtra(Browser.EXTRA_APPLICATION_ID, "com.google.android.talk");
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(ShortcutSource.EXTERNAL_INTENT, info.source());
     }
 
@@ -554,7 +554,7 @@
         intent.putExtra(Intent.EXTRA_STREAM, uris);
         intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.WEBAPK_SHARE_TARGET);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(ShortcutSource.WEBAPK_SHARE_TARGET_FILE, info.source());
     }
 
@@ -571,7 +571,7 @@
         WebApkTestHelper.registerWebApkWithMetaData(
                 WEBAPK_PACKAGE_NAME, bundle, null /* shareTargetMetaData */);
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(WebApkDistributor.BROWSER, info.distributor());
 
         // Test Case: Unbound WebAPK
@@ -594,7 +594,7 @@
         bundle.putString(WebApkMetaDataKeys.START_URL, START_URL);
         WebApkTestHelper.registerWebApkWithMetaData(WEBAPK_PACKAGE_NAME, bundle, null);
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
 
         Assert.assertNotNull(info.shareTarget());
         Assert.assertEquals("", info.shareTarget().getAction());
@@ -620,7 +620,7 @@
         WebApkTestHelper.registerWebApkWithMetaData(
                 WEBAPK_PACKAGE_NAME, bundle, new Bundle[] {shareActivityBundle});
         Intent intent = createMinimalWebApkIntent(WEBAPK_PACKAGE_NAME, START_URL);
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
 
         WebApkInfo.ShareTarget shareTarget = info.shareTarget();
         Assert.assertNotNull(shareTarget);
@@ -647,7 +647,7 @@
         Uri sharedFileUri = Uri.parse("mock-uri-1");
         intent.putExtra(Intent.EXTRA_STREAM, sharedFileUri);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         ShareData shareData = info.shareData();
         Assert.assertNotNull(shareData);
         Assert.assertNotNull(shareData.uris);
@@ -677,7 +677,7 @@
         uris.add(sharedFileUri);
         intent.putExtra(Intent.EXTRA_STREAM, uris);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         ShareData shareData = info.shareData();
         Assert.assertNotNull(shareData);
         Assert.assertNotNull(shareData.uris);
@@ -701,7 +701,7 @@
         intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, WEBAPK_PACKAGE_NAME);
         intent.putExtra(ShortcutHelper.EXTRA_URL, START_URL);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(SplashLayout.getDefaultBackgroundColor(RuntimeEnvironment.application),
                 info.backgroundColorFallbackToDefault());
     }
@@ -732,7 +732,7 @@
         intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, WEBAPK_PACKAGE_NAME);
         intent.putExtra(ShortcutHelper.EXTRA_URL, START_URL);
 
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(
                 defaultBackgroundColorInWebApk, info.backgroundColorFallbackToDefault());
     }
@@ -769,7 +769,7 @@
         // No shortcuts case.
         res.setShortcutsXmlContent(
                 "<shortcuts xmlns:android='http://schemas.android.com/apk/res/android'/>");
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         Assert.assertEquals(info.shortcutItems().size(), 0);
 
         // One shortcut case.
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java
index 7536f415..50d02d58 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java
@@ -113,7 +113,7 @@
         }
 
         @Override
-        public boolean start(Tab tab, WebApkInfo oldInfo, Observer observer) {
+        public boolean start(Tab tab, WebappInfo oldInfo, Observer observer) {
             mStarted = true;
             return true;
         }
@@ -204,7 +204,7 @@
         }
 
         @Override
-        protected void storeWebApkUpdateRequestToFile(String updateRequestPath, WebApkInfo info,
+        protected void storeWebApkUpdateRequestToFile(String updateRequestPath, WebappInfo info,
                 String primaryIconUrl, String splashIconUrl, boolean isManifestStale,
                 @WebApkUpdateReason int updateReason, Callback<Boolean> callback) {
             mStoreUpdateRequestCallback = callback;
@@ -371,7 +371,7 @@
         return manifestData;
     }
 
-    private static WebApkInfo infoFromManifestData(ManifestData manifestData) {
+    private static WebappInfo infoFromManifestData(ManifestData manifestData) {
         if (manifestData == null) return null;
 
         final String kPackageName = "org.random.webapk";
@@ -412,7 +412,7 @@
         Intent intent = new Intent();
         intent.putExtra(ShortcutHelper.EXTRA_URL, "");
         intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, packageName);
-        WebApkInfo info = WebApkInfo.create(intent);
+        WebappInfo info = WebApkInfo.create(intent);
         info.getProvider().getWebApkExtras().shortcutItems.clear();
         info.getProvider().getWebApkExtras().shortcutItems.addAll(shortcuts);
 
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java
index b4f13fb..e21dddd 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java
@@ -342,10 +342,10 @@
         String webApkPackage1 = "uninstalledWebApk1";
         String webApkPackage2 = "uninstalledWebApk2";
 
-        WebApkInfo webApkInfo1 = new WebApkInfoBuilder(webApkPackage1, START_URL).build();
+        WebappInfo webApkInfo1 = new WebApkInfoBuilder(webApkPackage1, START_URL).build();
         registerWebapp(webApkInfo1.id(), webApkInfo1);
 
-        WebApkInfo webApkInfo2 = new WebApkInfoBuilder(webApkPackage2, START_URL).build();
+        WebappInfo webApkInfo2 = new WebApkInfoBuilder(webApkPackage2, START_URL).build();
         registerWebapp(webApkInfo2.id(), webApkInfo2);
 
         // Verify that both WebAPKs are registered.
@@ -374,10 +374,10 @@
         String webApkPackage = "installedWebApk";
         String uninstalledWebApkPackage = "uninstalledWebApk";
 
-        WebApkInfo webApkInfo = new WebApkInfoBuilder(webApkPackage, START_URL).build();
+        WebappInfo webApkInfo = new WebApkInfoBuilder(webApkPackage, START_URL).build();
         registerWebapp(webApkInfo.id(), webApkInfo);
 
-        WebApkInfo uninstalledWebApkInfo =
+        WebappInfo uninstalledWebApkInfo =
                 new WebApkInfoBuilder(uninstalledWebApkPackage, START_URL).build();
         registerWebapp(uninstalledWebApkInfo.id(), uninstalledWebApkInfo);
 
@@ -411,7 +411,7 @@
     public void testCleanupDoesRemoveOldInstalledWebApks() throws Exception {
         String deprecatedWebApkIdPrefix = "webapk:";
         String webApkPackage = "installedWebApk";
-        WebApkInfo webApkInfo = new WebApkInfoBuilder(webApkPackage, START_URL).build();
+        WebappInfo webApkInfo = new WebApkInfoBuilder(webApkPackage, START_URL).build();
         String deprecatedWebApkId = deprecatedWebApkIdPrefix + webApkInfo.webApkPackageName();
 
         registerWebapp(deprecatedWebApkId, webApkInfo);
@@ -647,7 +647,7 @@
         final String startUrl = START_URL;
         final String testUrl = START_URL + "/index.html";
 
-        WebApkInfo webApkInfo = new WebApkInfoBuilder("org.chromium.webapk", startUrl).build();
+        WebappInfo webApkInfo = new WebApkInfoBuilder("org.chromium.webapk", startUrl).build();
         registerWebapp(webApkInfo.id(), webApkInfo);
 
         // testUrl should return null.
@@ -676,7 +676,7 @@
         registerWebapp(webappId, createShortcutWebappInfo(startUrl));
         assertFalse(WebappRegistry.getInstance().hasAtLeastOneWebApkForOrigin(testOrigin));
 
-        WebApkInfo webApkInfo = new WebApkInfoBuilder("org.chromium.webapk", startUrl).build();
+        WebappInfo webApkInfo = new WebApkInfoBuilder("org.chromium.webapk", startUrl).build();
         registerWebapp(webApkInfo.id(), webApkInfo);
         assertTrue(WebappRegistry.getInstance().hasAtLeastOneWebApkForOrigin(testOrigin));
     }
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp
index 32541cb..9006c0e 100644
--- a/chrome/app/chromeos_strings.grdp
+++ b/chrome/app/chromeos_strings.grdp
@@ -1435,6 +1435,266 @@
     Not available
   </message>
 
+  <!-- Open Network (ONC)-->
+  <message name="IDS_ONC_IPV4_ADDRESS" desc="ONC Property label for ipv4-IPAddress">
+    IP address
+  </message>
+  <message name="IDS_ONC_IPV4_GATEWAY" desc="ONC Property label for ipv4-Gateway">
+    Gateway
+  </message>
+  <message name="IDS_ONC_IPV4_ROUTING_PREFIX" desc="ONC Property label for ipv4-RoutingPrefix">
+    Routing prefix
+  </message>
+  <message name="IDS_ONC_IPV6_ADDRESS" desc="ONC Property label for ipv6-Address">
+    IPv6 address
+  </message>
+  <message name="IDS_ONC_CELLULAR_ACTIVATION_STATE" desc="ONC Property label for Cellular.ActivationState">
+    Activation status
+  </message>
+  <message name="IDS_ONC_CELLULAR_ACTIVATION_STATE_ACTIVATED" desc="ONC Property value when Cellular.ActivationState = Activated">
+    Activated
+  </message>
+  <message name="IDS_ONC_CELLULAR_ACTIVATION_STATE_ACTIVATING" desc="ONC Property value when Cellular.ActivationState = Activating">
+    Activating
+  </message>
+  <message name="IDS_ONC_CELLULAR_ACTIVATION_STATE_NOT_ACTIVATED" desc="ONC Property value when Cellular.ActivationStat = NotActivated">
+    Not activated
+  </message>
+  <message name="IDS_ONC_CELLULAR_ACTIVATION_STATE_PARTIALLY_ACTIVATED" desc="ONC Property value when Cellular.ActivationState = PartiallyActivated">
+    Partially activated
+  </message>
+  <message name="IDS_ONC_CELLULAR_ACTIVATION_STATE_NO_SERVICE" desc="ONC Property value when Cellular.ActivationState = NoService">
+    No service
+  </message>
+  <message name="IDS_ONC_CELLULAR_APN_ACCESS_POINT_NAME" desc="ONC Property label for APN-AccessPointName">
+    Access point name
+  </message>
+  <message name="IDS_ONC_CELLULAR_APN_ACCESS_POINT_NAME_NONE" desc="ONC Property label for APN-AccessPointName = none (or empty)">
+    None
+  </message>
+  <message name="IDS_ONC_CELLULAR_APN_USERNAME" desc="ONC Property label for APN-Username">
+    Username
+  </message>
+  <message name="IDS_ONC_CELLULAR_APN_PASSWORD" desc="ONC Property label for APN-Password">
+    Password
+  </message>
+  <message name="IDS_ONC_CELLULAR_APN_AUTHENTICATION" desc="ONC Property label for APN-Authentication">
+    Authentication
+  </message>
+  <message name="IDS_ONC_CELLULAR_FAMILY" desc="ONC Property label for Cellular.Family">
+    Family
+  </message>
+  <message name="IDS_ONC_CELLULAR_FIRMWARE_REVISION" desc="ONC Property label for Cellular.FirmwareRevision">
+    Firmware revision
+  </message>
+  <message name="IDS_ONC_CELLULAR_HARDWARE_REVISION" desc="ONC Property label for Cellular.HardwareRevision">
+    Hardware revision
+  </message>
+  <message name="IDS_ONC_CELLULAR_HOME_PROVIDER_CODE" desc="ONC Property label for Cellular.HomeProvider.Code">
+    Home provider code
+  </message>
+  <message name="IDS_ONC_CELLULAR_HOME_PROVIDER_COUNTRY" desc="ONC Property label for Cellular.HomeProvider.Country">
+    Home provider country
+  </message>
+  <message name="IDS_ONC_CELLULAR_HOME_PROVIDER_NAME" desc="ONC Property label for Cellular.HomeProvider.Name">
+    Home provider name
+  </message>
+  <message name="IDS_ONC_CELLULAR_MANUFACTURER" desc="ONC Property label for Cellular.Manufacturer">
+    Manufacturer
+  </message>
+  <message name="IDS_ONC_CELLULAR_MODEL_ID" desc="ONC Property label for Cellular.ModelID">
+    Model ID
+  </message>
+  <message name="IDS_ONC_CELLULAR_NETWORK_TECHNOLOGY" desc="ONC Property label for Cellular.NetworkTechnology">
+    Technology
+  </message>
+  <message name="IDS_ONC_CELLULAR_ROAMING_STATE" desc="ONC Property label for Cellular.RoamingState">
+    Roaming status
+  </message>
+  <message name="IDS_ONC_CELLULAR_ROAMING_STATE_HOME" desc="ONC Property value when OncCellular.RoamingState = Home">
+    Home network, not roaming
+  </message>
+  <message name="IDS_ONC_CELLULAR_ROAMING_STATE_ROAMING" desc="ONC Property value when OncCellular.RoamingState = Roaming">
+    Roaming
+  </message>
+  <message name="IDS_ONC_CELLULAR_SERVING_OPERATOR_CODE" desc="ONC Property label for Cellular.ServingOperator.Code">
+    Operator code
+  </message>
+  <message name="IDS_ONC_CELLULAR_SERVING_OPERATOR_NAME" desc="ONC Property label for Cellular.ServingOperator.Name">
+    Operator
+  </message>
+  <message name="IDS_ONC_CONNECTED" desc="Settings > Internet, text in network summary when a network is connected.">
+    Connected
+  </message>
+  <message name="IDS_ONC_CONNECTING" desc="Settings > Internet, text in network summary when a network is connecting.">
+    Connecting
+  </message>
+  <message name="IDS_ONC_EAP_ANONYMOUS_IDENTITY" desc="ONC Property label for EAP.AnonymousIdentity">
+    Anonymous Identity
+  </message>
+  <message name="IDS_ONC_EAP_IDENTITY" desc="ONC Property label for EAP.Identity">
+    Identity
+  </message>
+  <message name="IDS_ONC_EAP_INNER" desc="ONC Property label for EAP.Inner (Phase 2 authentication)">
+    EAP Phase 2 authentication
+  </message>
+  <message name="IDS_ONC_EAP_INNER_AUTOMATIC" desc="ONC Property value for EAP.Inner = Automatic">
+    Automatic
+  </message>
+  <message name="IDS_ONC_EAP_INNER_MD5" desc="ONC Property value for EAP.Inner = MD5">
+    EAP-MD5
+  </message>
+  <message name="IDS_ONC_EAP_INNER_MSCHAP" desc="ONC Property value for EAP.Inner = MSCHAP">
+    MSCHAP
+  </message>
+  <message name="IDS_ONC_EAP_INNER_MSCHAPV2" desc="ONC Property value for EAP.Inner = MSCHAPv2">
+    MSCHAPv2
+  </message>
+  <message name="IDS_ONC_EAP_INNER_PAP" desc="ONC Property value for EAP.Inner = PAP">
+    PAP
+  </message>
+  <message name="IDS_ONC_EAP_INNER_CHAP" desc="ONC Property value for EAP.Inner = CHAP">
+    CHAP
+  </message>
+  <message name="IDS_ONC_EAP_INNER_GTC" desc="ONC Property value for EAP.Inner = GTC">
+    GTC
+  </message>
+  <message name="IDS_ONC_EAP_OUTER" desc="ONC Property label for EAP.Outer (Method)">
+    EAP method
+  </message>
+  <message name="IDS_ONC_EAP_OUTER_LEAP" desc="ONC Property value for EAP.Outer = LEAP">
+    LEAP
+  </message>
+  <message name="IDS_ONC_EAP_OUTER_PEAP" desc="ONC Property value for EAP.Outer = PEAP">
+    PEAP
+  </message>
+  <message name="IDS_ONC_EAP_OUTER_TLS" desc="ONC Property value for EAP.Outer = TLS">
+    EAP-TLS
+  </message>
+  <message name="IDS_ONC_EAP_OUTER_TTLS" desc="ONC Property value for EAP.Outer = TTLS">
+    EAP-TTLS
+  </message>
+  <message name="IDS_ONC_EAP_SERVER_CA" desc="ONC Property label for EAP Server CA Certificate">
+    Server CA certificate
+  </message>
+  <message name="IDS_ONC_EAP_SUBJECT_MATCH" desc="ONC Property label for EAP.SubjectMatch">
+    Subject match
+  </message>
+  <message name="IDS_ONC_EAP_USER_CERT" desc="ONC Property label for EAP User Certs">
+    User certificate
+  </message>
+  <message name="IDS_ONC_NOT_CONNECTED" desc="Settings > Internet, text in network summary when a network is not connecting or connected.">
+    Not Connected
+  </message>
+  <message name="IDS_ONC_MAC_ADDRESS" desc="ONC Property label for MacAddress">
+    MAC address
+  </message>
+  <message name="IDS_ONC_NAME" desc="ONC Property label for the network Name (displayed when configuring a VPN service name)">
+    Service name
+  </message>
+  <message name="IDS_ONC_RESTRICTED_CONNECTIVITY" desc="ONC Property label for RestrictedConnectivity">
+    Restricted IP
+  </message>
+  <message name="IDS_ONC_TETHER_BATTERY_PERCENTAGE" desc="Settings > Internet > Title of section which displays the battery percentage of another device which provides a tether hotspot for the current device to connect to.">
+    Battery
+  </message>
+  <message name="IDS_ONC_TETHER_BATTERY_PERCENTAGE_VALUE" desc="Settings > Internet > Text contents of section which displays the battery percentage of another device which provides a tether hotspot for the current device to connect to.">
+    <ph name="BATTERY_PERCENTAGE">$1<ex>100</ex></ph>%
+  </message>
+  <message name="IDS_ONC_TETHER_SIGNAL_STRENGTH" desc="Settings > Internet > Title of section which displays the cellular signal strength of another device which provides a tether hotspot for the current device to connect to. The signal strength is displayed as a string (e.g., Strong)">
+    Signal strength
+  </message>
+  <message name="IDS_ONC_TETHER_SIGNAL_STRENGTH_WEAK" desc="Settings > Internet > Label used to describe the signal strength of a device's cellular connection when the signal is weak. The strength value is 1 on a scale from 1 (min) to 5 (max).">
+    Weak
+  </message>
+  <message name="IDS_ONC_TETHER_SIGNAL_STRENGTH_OKAY" desc="Settings > Internet > Label used to describe the signal strength of a device's cellular connection when the signal is okay. The strength value is 2 on a scale from 1 (min) to 5 (max).">
+    Okay
+  </message>
+  <message name="IDS_ONC_TETHER_SIGNAL_STRENGTH_GOOD" desc="Settings > Internet > Label used to describe the signal strength of a device's cellular connection when the signal is good. The strength value is 3 on a scale from 1 (min) to 5 (max).">
+    Fine
+  </message>
+  <message name="IDS_ONC_TETHER_SIGNAL_STRENGTH_STRONG" desc="Settings > Internet > Label used to describe the signal strength of a device's cellular connection when the signal is strong. The strength value is 4 on a scale from 1 (min) to 5 (max).">
+    Strong
+  </message>
+  <message name="IDS_ONC_TETHER_SIGNAL_STRENGTH_VERY_STRONG" desc="Settings > Internet > Label used to describe the signal strength of a device's cellular connection when the signal is very strong. The strength value is 5 on a scale from 1 (min) to 5 (max).">
+    Very strong
+  </message>
+  <message name="IDS_ONC_TETHER_CARRIER" desc="Settings > Internet > Title of section which displays the name of the cellular provider (e.g., Verizon) of another device which provides a tether hotspot for the current device to connect to. To be clear, the current device does not have cellular service; instead, another device has it and can provide data to the current device via a Wi-Fi hotspot.">
+    Cellular provider
+  </message>
+  <message name="IDS_ONC_TETHER_CARRIER_UNKNOWN" desc="Settings > Internet > Text displayed in the settings UI in place of a cellular provider when the actual name of the provider is unknown. In this context, the cellular provider refers to the carrier which provides mobile data service to another device which can start a tether hotspot to provide a data connection to the current device.">
+    Unknown carrier
+  </message>
+  <message name="IDS_ONC_VPN_HOST" desc="ONC Property label for VPN.Host">
+    Server hostname
+  </message>
+  <message name="IDS_ONC_VPN_IPSEC_GROUP" desc="ONC Property label for VPN.IPSec.Group">
+    Group name
+  </message>
+  <message name="IDS_ONC_VPN_IPSEC_PSK" desc="ONC Property label for VPN.IPSec.PSK">
+    Pre-shared key
+  </message>
+  <message name="IDS_ONC_VPN_OPENVPN_EXTRA_HOSTS" desc="ONC Property label for VPN.OpenVPN.ExtraHosts">
+    Extra hosts
+  </message>
+  <message name="IDS_ONC_VPN_OPENVPN_OTP" desc="ONC Property label for VPN.OpenVPN.OTP">
+    OTP
+  </message>
+  <message name="IDS_ONC_VPN_PASSWORD" desc="ONC Property label for VPN.OpenVPN.Password or VPN.L2TP.Password">
+    Password
+  </message>
+  <message name="IDS_ONC_VPN_USERNAME" desc="ONC Property label for VPN.OpenVPN.Username or VPN.L2TP.Username">
+    Username
+  </message>
+  <message name="IDS_ONC_VPN_THIRD_PARTY_VPN_PROVIDER_NAME" desc="ONC Property label for VPN.ThirdPartyVPN.ProviderName">
+    Provider name
+  </message>
+  <message name="IDS_ONC_VPN_TYPE" desc="ONC Property label for VPN.Type">
+    Provider type
+  </message>
+  <message name="IDS_ONC_VPN_TYPE_L2TP_IPSEC" desc="ONC Property label for VPN.Type.L2TP-IPSec">
+    L2TP/IPsec
+  </message>
+  <message name="IDS_ONC_VPN_TYPE_L2TP_IPSEC_PSK" desc="ONC Property label for configuring VPN.Type.L2TP-IPSec with AuthenticationType = PSK">
+    L2TP/IPsec + pre-shared key
+  </message>
+  <message name="IDS_ONC_VPN_TYPE_L2TP_IPSEC_CERT" desc="ONC Property label for configuring VPN.Type.L2TP-IPSec  with AuthenticationType = Cert">
+    L2TP/IPsec + user certificate
+  </message>
+  <message name="IDS_ONC_VPN_TYPE_OPENVPN" desc="ONC Property label for VPN.Type.OpenVPN">
+    Open VPN
+  </message>
+  <message name="IDS_ONC_VPN_TYPE_ARCVPN" desc="ONC Property label for VPN.Type.ARCVPN">
+    Android VPN
+  </message>
+  <message name="IDS_ONC_WIFI_FREQUENCY" desc="ONC Property label for WiFi.Frequency">
+    Frequency
+  </message>
+  <message name="IDS_ONC_WIFI_PASSWORD" desc="ONC Property label for WiFi.Password">
+    Password
+  </message>
+  <message name="IDS_ONC_WIFI_SECURITY" desc="ONC Property label for WiFi.Security">
+    Security
+  </message>
+  <message name="IDS_ONC_WIFI_SECURITY_NONE" desc="In settings > Internet, a string specifying security type = none.">
+    None
+  </message>
+  <message name="IDS_ONC_WIFI_SECURITY_WEP" desc="In settings > Internet, a string specifying security type = WEP.">
+    WEP
+  </message>
+  <message name="IDS_ONC_WIFI_SECURITY_PSK" desc="In settings > Internet, a string specifying security type = PSK (either WPA-PSK or RSN-PSK).">
+    PSK (WPA or RSN)
+  </message>
+  <message name="IDS_ONC_WIFI_SECURITY_EAP" desc="In settings > Internet, a string specifying security type = EAP (802.1X).">
+    EAP
+  </message>
+  <message name="IDS_ONC_WIFI_SIGNAL_STRENGTH" desc="ONC Property label for WiFi.SignalStrength">
+    Signal strength
+  </message>
+  <message name="IDS_ONC_WIFI_SSID" desc="ONC Property label for WiFi.SSID">
+    SSID
+  </message>
+
   <!-- Strings shown within Tether notifications -->
   <message name="IDS_TETHER_NOTIFICATION_CONNECTION_FAILED_TITLE" desc="Title of the notification shown to the user when an attempt to tether to another device has failed.">
     Instant Tethering connection failed
diff --git a/chrome/app/resources/chromium_strings_ca.xtb b/chrome/app/resources/chromium_strings_ca.xtb
index f4a19e42..cd196ca 100644
--- a/chrome/app/resources/chromium_strings_ca.xtb
+++ b/chrome/app/resources/chromium_strings_ca.xtb
@@ -34,7 +34,7 @@
 <translation id="2587578672395088481">Cal reiniciar Chromium OS per aplicar l'actualització.</translation>
 <translation id="2648074677641340862">S'ha produït un error en el sistema operatiu durant la instal·lació. Torneu a baixar Chromium.</translation>
 <translation id="2711502716910134313">Pestanya de Chromium</translation>
-<translation id="2718390899429598676">Per més seguretat, Chromium encriptarà les vostres dades.</translation>
+<translation id="2718390899429598676">Per a més seguretat, Chromium encriptarà les teves dades.</translation>
 <translation id="2770231113462710648">Canvia el navegador predeterminat a:</translation>
 <translation id="2799223571221894425">Reinicia</translation>
 <translation id="2805036593126168338">Chromium OS no ha pogut sincronitzar les teves contrasenyes. Soluciona aquest problema.</translation>
diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb
index 59c11bf7..ec0eb501 100644
--- a/chrome/app/resources/chromium_strings_gu.xtb
+++ b/chrome/app/resources/chromium_strings_gu.xtb
@@ -128,6 +128,7 @@
 <translation id="6096348254544841612">Chromiumને કસ્ટમાઇઝ અને નિયંત્રિત કરો. અપડેટ ઉપલબ્ધ છે.</translation>
 <translation id="6120345080069858279">Chromium આ પાસવર્ડ તમારા Google એકાઉન્ટમાં સાચવશે. તમારે તેને યાદ રાખવો જરૂરી નથી.</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> જોખમી છે, તેથી Chromium એ તેને અવરોધિત કરેલ છે.</translation>
+<translation id="6134968993075716475">Safe Browsingની સુવિધા બંધ છે. Chromium તેને ચાલુ રાખવાનો સુઝાવ આપે છે.</translation>
 <translation id="6212496753309875659">આ કમ્પ્યુટર પર પહેલાંથી જ Chromiumનું સૌથી તાજેતરનું વર્ઝન છે. જો સૉફ્ટવેર કાર્ય કરી રહ્યું નથી, તો કૃપા કરીને Chromiumને અનઇન્સ્ટૉલ કરો અને ફરીથી પ્રયાસ કરો.</translation>
 <translation id="6219195342503754812">{0,plural, =0{Chromium હમણાં ફરીથી લૉન્ચ થશે}=1{Chromium 1 સેકન્ડમાં ફરીથી લૉન્ચ થશે}one{Chromium # સેકન્ડમાં ફરીથી લૉન્ચ થશે}other{Chromium # સેકન્ડમાં ફરીથી લૉન્ચ થશે}}</translation>
 <translation id="6248213926982192922">Chromium ને ડિફોલ્ટ બ્રાઉઝર બનાવો</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb
index 19cd4a0..e6e4375b 100644
--- a/chrome/app/resources/chromium_strings_kn.xtb
+++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -124,6 +124,7 @@
 <translation id="6096348254544841612">Chromium ಅನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ. ಅಪ್‌ಡೇಟ್ ಲಭ್ಯವಿದೆ.</translation>
 <translation id="6120345080069858279">Chromium, ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಈ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಉಳಿಸುತ್ತದೆ. ನೀವು ಅದನ್ನು ನೆನಪಿಡುವ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> ಅಪಾಯಕಾರಿಯಾಗಿದೆ, ಹಾಗಾಗಿ Chromium ಅದನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ.</translation>
+<translation id="6134968993075716475">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್‌ ಆಫ್ ಆಗಿದೆ. ಅದನ್ನು ಆನ್ ಮಾಡಲು Chromium ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
 <translation id="6212496753309875659">ಈ ಕಂಪ್ಯೂಟರ್ Chromium ನ ಇತ್ತೀಚಿನ ಹೆಚ್ಚಿನ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿದೆ. ಸಾಫ್ಟ್‌ವೇರ್ ಕಾರ್ಯನಿರ್ವಹಿಸದಿದ್ದರೆ, ದಯವಿಟ್ಟು Chromium ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="6219195342503754812">{0,plural, =0{ಇದೀಗ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}=1{1 ಸೆಕೆಂಡಿನಲ್ಲಿ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ಸೆಕೆಂಡುಗಳಲ್ಲಿ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ಸೆಕೆಂಡುಗಳಲ್ಲಿ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation>
 <translation id="6248213926982192922">Chromium ಅನ್ನು ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಮಾಡಿ</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index 9c83e3e..0ae150a7 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -128,6 +128,7 @@
 <translation id="6096348254544841612">Chromium ഇഷ്ടാനുസൃതമാക്കി നിയന്ത്രിക്കുക. അപ്‌ഡേറ്റ് ലഭ്യമാണ്.</translation>
 <translation id="6120345080069858279">നിങ്ങളുടെ Google അക്കൗണ്ടിൽ Chromium ഈ പാസ്‌വേഡ് സംരക്ഷിക്കും. നിങ്ങൾ അത് ഓർത്ത് വയ്ക്കേണ്ടതില്ല.</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> അപകടകരമായതിനാൽ, Chromium ഇതിനെ ബ്ലോക്കുചെയ്‌തു.</translation>
+<translation id="6134968993075716475">സുരക്ഷിത ബ്രൗസിംഗ് ഓഫാണ്. ഇത് ഓണാക്കാൻ Chromium നിർദ്ദേശിക്കുന്നു.</translation>
 <translation id="6212496753309875659">Chromium-ത്തിന്റെ ഏറ്റവും പുതിയ പതിപ്പ് ഈ കമ്പ്യൂട്ടറില്‍ ഇപ്പോൾ തന്നെയുണ്ട്. സോഫ്റ്റ്‌വെയര്‍ പ്രവര്‍ത്തിക്കുന്നില്ലെങ്കില്‍, Chromium അൺഇൻസ്റ്റാൾ ചെയ്‌ത് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="6219195342503754812">{0,plural, =0{Chromium ഇപ്പോൾ വീണ്ടും സമാരംഭിക്കും}=1{ഒരു സെക്കൻഡിൽ Chromium വീണ്ടും സമാരംഭിക്കും}other{# സെക്കൻഡിൽ Chromium വീണ്ടും സമാരംഭിക്കും}}</translation>
 <translation id="6248213926982192922">Chromium ഡിഫോൾട്ട് ബ്രൗസറാക്കൂ</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb
index 300c87c..af2a428 100644
--- a/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -127,6 +127,7 @@
 <translation id="6096348254544841612">Chromium कस्टमाइझ करा आणि नियंत्रित करा. अपडेट उपलब्ध आहे.</translation>
 <translation id="6120345080069858279">Chromium हा पासवर्ड तुमच्या Google खात्यामध्ये सेव्ह करेल. तुम्हाला पासवर्ड लक्षात ठेवावा लागणार नाही.</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> धोकादायक आहे, त्यामुळे Chromium ने ते अवरोधित केले आहे.</translation>
+<translation id="6134968993075716475">सुरक्षित ब्राउझिंग बंद आहे. Chromium ते सुरू करण्याची शिफारस करते.</translation>
 <translation id="6212496753309875659">या कॉंप्युटरवर आधीपासून Chromium ची अगदी अलीकडील आवृत्ती आहे. सॉफ्‍टवेअर काम करत नसल्‍यास, कृपया Chromium अनइंस्टॉल करा आणि पुन्‍हा प्रयत्‍न करा.</translation>
 <translation id="6219195342503754812">{0,plural, =0{Chromium आता पुन्हा लाँच होईल}=1{Chromium एका सेकंदामध्ये पुन्हा लाँच होईल}other{Chromium # सेकंदांमध्ये पुन्हा लाँच होईल}}</translation>
 <translation id="6248213926982192922">Chromium ला डीफॉल्‍ट ब्राउझर बनवा</translation>
diff --git a/chrome/app/resources/chromium_strings_ne.xtb b/chrome/app/resources/chromium_strings_ne.xtb
index 0038408..cd10c1cc 100644
--- a/chrome/app/resources/chromium_strings_ne.xtb
+++ b/chrome/app/resources/chromium_strings_ne.xtb
@@ -126,6 +126,7 @@
 <translation id="6096348254544841612">Chromium लाई आफू अनुकूल बनाउने र नियन्त्रण गर्ने कार्य गर्नुहोस्। अद्यावधिक उपलब्ध छ।</translation>
 <translation id="6120345080069858279">Chromium ले यो पासवर्ड तपाईंको Google खातामा सुरक्षित गर्ने छ। तपाईंले यसलाई सम्झिराख्नु पर्ने छैन।</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> खतरनाक छ, त्यसैले Chromium ले यसमाथि रोक लगाएको छ।</translation>
+<translation id="6134968993075716475">सुरक्षित ब्राउजिङ निष्क्रिय छ। Chromium ले यो सेवा सक्रिय गर्न सिफारिस गर्छ।</translation>
 <translation id="6212496753309875659">यो कम्प्युटरमा पहिले नै Chromium को अझ हालैको संस्करण छ। यदि सफ्टवेयरले काम गरिरहेको छैन भने, कृपया Chromium को स्थापना हटाएर पुन: प्रयास गर्नुहोस्।</translation>
 <translation id="6219195342503754812">{0,plural, =0{Chromium अब पुनः सुरु हुने छ}=1{Chromium १ सेकेन्डमा पुनः सुरु हुने छ}other{Chromium # सेकेन्डमा पुनः सुरु हुने छ}}</translation>
 <translation id="6248213926982192922">क्रोमियमलाई पूर्वनिर्धारित ब्राउजर बनाउनुहोस्</translation>
diff --git a/chrome/app/resources/chromium_strings_or.xtb b/chrome/app/resources/chromium_strings_or.xtb
index 59c1c69..f52414fe 100644
--- a/chrome/app/resources/chromium_strings_or.xtb
+++ b/chrome/app/resources/chromium_strings_or.xtb
@@ -128,6 +128,7 @@
 <translation id="6096348254544841612">Chromium କଷ୍ଟମାଇଜ୍ ଓ ନିୟନ୍ତ୍ରଣ କରନ୍ତୁ। ଅପ୍‍‍ଡେଟ୍ ଉପଲବ୍ଧ ଅଟେ।</translation>
 <translation id="6120345080069858279">ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟରେ Chromium ଏହି ପାସ୍‌ୱର୍ଡ ସେଭ୍ କରିବ। ଆପଣଙ୍କୁ ଏହା ମନେରଖିବାକୁ ପଡ଼ିବ ନାହିଁ।</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> ବିପଜ୍ଜନକ ଅଟେ, ତେଣୁ Chromium ଏହାକୁ ବ୍ଲକ୍ କରିଛି।</translation>
+<translation id="6134968993075716475">ସେଫ୍ ବ୍ରାଉଜିଂ ବନ୍ଦ ଅଛି। Chromium ଏହାକୁ ଚାଲୁ କରିବାକୁ ସୁପାରିଶ କରେ।</translation>
 <translation id="6212496753309875659">ଏହି କମ୍ପ୍ୟୁଟର୍‌ରେ ପୂର୍ବରୁ Chromiumର ସବୁଠାରୁ ନିକଟତମ ସଂସ୍କରଣ ଅଛି। ଯଦି ସଫ୍ଟୱେର୍‌ଟି କାମ କରୁନାହିଁ, ତେବେ Chromiumକୁ ଅନ୍‌ଇନ୍‌ଷ୍ଟଲ୍ କରି ପୁଣିଥରେ ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="6219195342503754812">{0,plural, =0{ବର୍ତ୍ତମାନ Chromium ପୁଣି ଲଞ୍ଚ ହେବ}=1{1 ସେକେଣ୍ଡରେ Chromium ପୁଣି ଲଞ୍ଚ ହେବ}other{# ସେକେଣ୍ଡରେ Chromium ପୁଣି ଲଞ୍ଚ ହେବ}}</translation>
 <translation id="6248213926982192922">Chromiumକୁ ଏକ ଡିଫଲ୍ଟ ବ୍ରାଉଜର୍ କରନ୍ତୁ</translation>
diff --git a/chrome/app/resources/chromium_strings_pa.xtb b/chrome/app/resources/chromium_strings_pa.xtb
index 7f8681d..ca6a7ed 100644
--- a/chrome/app/resources/chromium_strings_pa.xtb
+++ b/chrome/app/resources/chromium_strings_pa.xtb
@@ -128,6 +128,7 @@
 <translation id="6096348254544841612">Chromium ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰਕੇ ਕੰਟਰੋਲ ਕਰੋ। ਅੱਪਡੇਟ ਉਪਲਬਧ ਹੈ।</translation>
 <translation id="6120345080069858279">Chromium ਇਸ ਪਾਸਵਰਡ ਨੂੰ ਤੁਹਾਡੇ 'Google ਖਾਤੇ' ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੇਗਾ। ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਯਾਦ ਨਹੀਂ ਰੱਖਣਾ ਪਵੇਗਾ।</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> ਖਤਰਨਾਕ ਹੈ, ਇਸ ਲਈ Chromium ਨੇ ਇਸਨੂੰ ਬਲੌਕ ਕਰ ਦਿੱਤਾ ਹੈ।</translation>
+<translation id="6134968993075716475">ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ ਬੰਦ ਹੈ। Chromium ਇਸਨੂੰ ਚਾਲੂ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ।</translation>
 <translation id="6212496753309875659">ਇਸ ਕੰਪਿਊਟਰ ਵਿੱਚ ਪਹਿਲਾਂ ਹੀ Chromium ਦਾ ਇੱਕ ਬਿਲਕੁਲ ਨਵਾਂ ਵਰਜਨ ਹੈ। ਜੇਕਰ ਸਾਫ਼ਟਵੇਅਰ ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ Chromium ਨੂੰ ਅਣਸਥਾਪਤ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="6219195342503754812">{0,plural, =0{Chromium ਹੁਣੇ ਮੁੜ-ਲਾਂਚ ਹੋਵੇਗਾ}=1{Chromium 1 ਸਕਿੰਟ ਵਿੱਚ ਮੁੜ-ਲਾਂਚ ਹੋਵੇਗਾ}other{Chromium # ਸਕਿੰਟਾਂ ਵਿੱਚ ਮੁੜ-ਲਾਂਚ ਹੋਵੇਗਾ}}</translation>
 <translation id="6248213926982192922">Chromium ਨੂੰ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਬ੍ਰਾਊਜ਼ਰ ਬਣਾਓ</translation>
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb
index ae2cf8d7..757d8f9 100644
--- a/chrome/app/resources/chromium_strings_ta.xtb
+++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -126,6 +126,7 @@
 <translation id="6096348254544841612">Chromiumஐத் தனிப்பயனாக்கி, கட்டுப்படுத்தலாம். புதுப்பிப்பு உள்ளது.</translation>
 <translation id="6120345080069858279">Chromium இந்தக் கடவுச்சொல்லை உங்கள் Google கணக்கில் சேமிக்கும். அதை நீங்கள் நினைவில் வைத்திருக்கத் தேவையில்லை.</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> ஆபத்தானது என்பதால் Chromium அதைத் தடுத்துள்ளது.</translation>
+<translation id="6134968993075716475">’பாதுகாப்பு உலாவல்‘ அம்சம் முடக்கப்பட்டுள்ளது. அதை இயக்குமாறு Chromium பரிந்துரைக்கிறது.</translation>
 <translation id="6212496753309875659">இந்தக் கம்ப்யூட்டரில் ஏற்கனவே Chromiumமின் மிகச் சமீபத்திய பதிப்பு உள்ளது. மென்பொருள் இயங்கவில்லை எனில் Chromiumமை நிறுவல் நீக்கி, பின்னர் முயலவும்.</translation>
 <translation id="6219195342503754812">{0,plural, =0{இப்போது Chromium மீண்டும் தொடங்கும்}=1{ஒரு வினாடியில் Chromium மீண்டும் தொடங்கும்}other{# வினாடிகளில் Chromium மீண்டும் தொடங்கும்}}</translation>
 <translation id="6248213926982192922">Chromium ஐ இயல்புநிலை உலாவியாக மாற்று</translation>
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb
index 5af33361..3828538 100644
--- a/chrome/app/resources/chromium_strings_te.xtb
+++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -124,6 +124,7 @@
 <translation id="6096348254544841612">Chromiumను అనుకూలీకరించండి మరియు నియంత్రించండి. అప్‌డేట్ అందుబాటులో ఉంది.</translation>
 <translation id="6120345080069858279">Chromium ఈ పాస్‌వర్డ్‌ను మీ Google ఖాతాలో సేవ్ చేస్తుంది. మీరు దీనిని గుర్తుంచుకోవాల్సిన అవసరం లేదు.</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> హానికరం, కావున Chromium దాన్ని బ్లాక్ చేసింది.</translation>
+<translation id="6134968993075716475">సురక్షిత బ్రౌజింగ్ ఆఫ్ చేయబడింది. దాన్ని ఆన్ చేయమని Chromium సిఫార్సు చేస్తోంది.</translation>
 <translation id="6212496753309875659">ఈ కంప్యూటర్‌లో ఇప్పటికే మరింత తాజాదైన Chromium వెర్షన్ ఉంది. సాఫ్ట్‌వేర్ పని చేయకపోతే, దయచేసి Chromiumను అన్ఇన్‌స్టాల్ చేసి, మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="6219195342503754812">{0,plural, =0{Chromium ఇప్పుడు తిరిగి ప్రారంభించబడుతుంది}=1{1 సెకనులో Chromium తిరిగి ప్రారంభించబడుతుంది}other{# సెకన్లలో Chromium తిరిగి ప్రారంభించబడుతుంది}}</translation>
 <translation id="6248213926982192922">Chromiumను డిఫాల్ట్ బ్రౌజర్‌గా చేయి</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index 9a7725f..6c3b7048 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Beskikbare toestelle</translation>
 <translation id="1042174272890264476">Jou rekenaar kom ook met <ph name="SHORT_PRODUCT_NAME" /> se RLZ-biblioteek ingebou. RLZ wys 'n nie-unieke, nie-persoonlik identifiseerbare merker toe om die soektogte en <ph name="SHORT_PRODUCT_NAME" /> se gebruik, gedryf deur 'n bepaalde promosieveldtog, te meet. Hierdie etikette verskyn somtyds in Google Search-navrae op <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Vee ook data in hierdie programme uit?</translation>
+<translation id="1045448422538531528">Voeg by groep</translation>
 <translation id="1046635659603195359">Dit lyk of jy Voice Match reeds op 'n ander toestel opgestel het met jou Google Assistent. Hierdie vorige opnames kan gebruik word om 'n stemmodel op hierdie toestel te maak. Dit behoort minder as 'n minuut te neem.</translation>
 <translation id="104710386808485638">Herbegin Linux?</translation>
 <translation id="1047431265488717055">Kopieer skakelteks</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Blokkeer altyd toegang tot kamera</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> wil jou Chrome-instellings na hul oorspronklike verstekwaardes herstel. Dit sal jou tuisblad, nuwe oortjie-bladsy en soekenjin terugstel, jou uitbreidings deaktiveer en alle oortjies ontspeld. Dit sal ook alle tydelike en gekaste data soos koekies, inhoud en werfdata uitvee.</translation>
+<translation id="1084096383128641877">As hierdie wagwoord verwyder word, sal dit nie jou rekening op <ph name="DOMAIN" /> uitvee nie. Verander jou wagwoord of vee jou rekening op <ph name="DOMAIN_LINK" /> uit om dit veilig te hou van ander mense.</translation>
 <translation id="1084824384139382525">Kopieer skakeladres</translation>
 <translation id="1085697365578766383">Kon nie die virtuele masjien begin nie. Probeer asseblief weer.</translation>
 <translation id="1090126737595388931">Geen agtergrondprogramme wat loop nie</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Veiligheidskontrole het gister plaasgevind</translation>
 <translation id="1260451001046713751">Laat altyd opspringers en herleidings van <ph name="HOST" /> af toe</translation>
 <translation id="126156426083987769">Iets was fout met demonstrasiemodus-toestellisensies.</translation>
+<translation id="1263490604593716556">Rekening word bestuur deur <ph name="FIRST_PARENT_EMAIL" /> en <ph name="SECOND_PARENT_EMAIL" />. Klik die tyd op jou skerm om uit die primêre rekening op hierdie toestel af te meld. Klik "Meld af" op die kieslys wat verskyn.</translation>
 <translation id="126710816202626562">Vertaaltaal:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Stop</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Webwerf</translation>
 <translation id="15662109988763471">Die gekose drukker is nie beskikbaar of reg geïnstalleer nie. Gaan jou drukker na of probeer om 'n ander drukker te kies.</translation>
 <translation id="1567387640189251553">'n Ander sleutelbord is gekoppel sedert jy jou wagwoord laas ingevoer het. Dit kan dalk probeer om jou sleuteldrukke te steel.</translation>
-<translation id="1567750922576943685">As jy jou identiteit verifieer, help dit om jou persoonlike inligting te beskerm</translation>
 <translation id="1567993339577891801">JavaScript-konsole</translation>
 <translation id="1568323446248056064">Maak vertoontoestelinstellings oop</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Gas)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Kuns</translation>
 <translation id="1697686431566694143">Wysig lêer</translation>
 <translation id="1698122934742150150">Net huidige incognitosessie</translation>
-<translation id="1698650002254827833">Die lys programme kan nie gelaai word nie. Probeer asseblief weer.</translation>
 <translation id="1700079447639026019">Werwe wat nooit webkoekies kan gebruik nie</translation>
 <translation id="1701062906490865540">Verwyder hierdie persoon</translation>
 <translation id="1703331064825191675">Moet nooit oor jou wagwoorde bekommerd wees nie</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Gaan voort</translation>
 <translation id="2173302385160625112">Gaan jou internetverbinding na</translation>
 <translation id="2173801458090845390">Voeg rekwisisie-ID by hierdie toestel</translation>
+<translation id="2174948148799307353">Rekening word bestuur deur <ph name="PARENT_EMAIL" />. Klik die tyd op jou skerm om uit die primêre rekening op hierdie toestel af te meld. Klik "Meld af" op die kieslys wat verskyn.</translation>
 <translation id="2175607476662778685">Kitslanseerbalk</translation>
 <translation id="217576141146192373">Kan nie drukker byvoeg nie. Gaan asseblief jou drukker se opstelling na en probeer weer.</translation>
 <translation id="2177950615300672361">Incognito-oortjie: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Teksskadu</translation>
 <translation id="2445081178310039857">Uitbreiding se wortelgids word vereis.</translation>
 <translation id="2445484935443597917">Skep 'n nuwe profiel</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> wil jou identiteit verifieer</translation>
 <translation id="2448312741937722512">Soort</translation>
 <translation id="2450223707519584812">Jy sal nie gebruikers kan byvoeg nie omdat Google-API-sleutels ontbreek. Sien <ph name="DETAILS_URL" /> vir besonderhede.</translation>
 <translation id="2450849356604136918">Geen aktiewe aansigte nie</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Gaan na <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">'n Vinnige, eenvoudige en veilige webblaaier wat vir die moderne web gebou is.</translation>
 <translation id="2949289451367477459">Gebruik ligging. Laat programme en dienste met liggingtoestemming toe om hierdie toestel se ligging te gebruik. Google kan van tyd tot tyd liggingdata insamel en hierdie data op 'n anonieme manier gebruik om liggingakkuraatheid en ligginggegronde dienste te verbeter. <ph name="BEGIN_LINK1" />Kom meer te wete<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Ek wil aansluit</translation>
 <translation id="2956070239128776395">Afdeling genes in groep: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Moet geen werwe toelaat om lêers of vouers op jou toestel te wysig nie</translation>
 <translation id="2958721676848865875">Waarskuwing oor pakketuitbreiding</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Verstek- geel avatar</translation>
 <translation id="3141318088920353606">Luister tans …</translation>
 <translation id="3141917231319778873">Die gegewe versoek word nie gesteun nie op: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Nuwe groep</translation>
 <translation id="3143515551205905069">Kanselleer sinkronisering</translation>
 <translation id="3143754809889689516">Speel van die begin af</translation>
 <translation id="3144647712221361880">Maak skakel oop as</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardeware-gesteun)</translation>
 <translation id="3161522574479303604">Alle tale</translation>
+<translation id="3162853326462195145">Skoolrekening</translation>
 <translation id="3162899666601560689">Werwe kan webkoekies gebruik om jou blaai-ervaring beter te maak, byvoorbeeld, om jou aangemeld te hou of om items in jou inkopiemandjie te onthou</translation>
 <translation id="3163201441334626963">Onbekende produk <ph name="PRODUCT_ID" /> vanaf verkoper <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Deel tans hierdie oortjie met <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Dateer toestel binne 'n dag op}other{Dateer toestel binne # dae op}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – Netwerkfout</translation>
 <translation id="3248902735035392926">Veiligheid is belangrik. Vat 'n oomblik om <ph name="BEGIN_LINK" />jou uitbreidings nou na te gaan<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Nie deel van sertifikaat nie&gt;</translation>
 <translation id="3253225298092156258">Nie beskikbaar nie</translation>
 <translation id="3253448572569133955">Onbekende rekening</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Deur die "Aanvaar en gaan voort"-knoppie te klik, stem jy in tot die verwerking wat hierbo vir hierdie Google-dienste beskryf word.</translation>
 <translation id="3399432415385675819">Kennisgewings sal gedeaktiveer word</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz) – deurweef</translation>
+<translation id="3402585168444815892">Skryf tans in by demonstrasiemodus</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Geen wagwoorde is vir hierdie werf gestoor nie</translation>
 <translation id="3405664148539009465">Pasmaak lettertipes</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android-foon</translation>
 <translation id="3470442499439619530">Verwyder hierdie gebruiker</translation>
 <translation id="3471876058939596279">HDMI- en USB Tipe C-poorte kan nie tegelyk vir video gebruik word nie. Gebruik 'n ander videopoort.</translation>
+<translation id="3473241910002674503">Navigeer tuis en terug, en wissel programme met knoppies in tabletmodus.</translation>
 <translation id="3473479545200714844">Skermvergrootglas</translation>
 <translation id="3475843873335999118">Jammer, jou vingerafdruk word steeds nie herken nie. Voer asseblief jou wagwoord in.</translation>
 <translation id="3476303763173086583">Stuur gebruik- en diagnostiese data. Help om jou kind se Android-ervaring beter te maak deur diagnostiese, toestel- en programgebruikdata outomaties na Google toe te stuur. Dit sal nie gebruik word om jou kind te identifiseer nie en sal met stelsel- en programstabiliteit en ander verbeteringe help. Sekere saamgestelde data sal ook Google-programme en -vennote, soos Android-ontwikkelaars, help. Hierdie <ph name="BEGIN_LINK1" />instelling<ph name="END_LINK1" /> word deur die eienaar afgedwing. Die eienaar kan kies om diagnostiese en gebruikdata vir hierdie toestel na Google toe te stuur. As die bykomende Web- en Programaktiwiteit-instelling vir jou kind aangeskakel is, kan hierdie data in hul Google-rekening gestoor word. <ph name="BEGIN_LINK2" />Kom meer te wete<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Vingerafdrukke op hierdie sekuriteitsleutel</translation>
 <translation id="3973660817924297510">Gaan tans wagwoorde na (<ph name="CHECKED_PASSWORDS" /> van <ph name="TOTAL_PASSWORDS" />) …</translation>
 <translation id="3975565978598857337">Kon nie bediener vir domein kontak nie</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan nie jou wagwoorde nagaan nie. Probeer later weer.</translation>
 <translation id="3976108569178263973">Daar is geen drukkers beskikbaar nie.</translation>
 <translation id="397703832102027365">Finaliseer tans …</translation>
 <translation id="3977886311744775419">Outomatiese opdaterings laai nie op hierdie netwerktipe af nie, maar jy kan self vir opdaterings kyk.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Hierdie bladsy bevat elemente van die volgende werwe wat jou ligging naspoor:</translation>
 <translation id="4068776064906523561">Gestoorde vingerafdrukke</translation>
 <translation id="407173827865827707">Met klik</translation>
+<translation id="4073520450811433493">Instellingssinkronisering</translation>
 <translation id="4074900173531346617">E-pos se ondertekenaarsertifikaat</translation>
 <translation id="407520071244661467">Skaal</translation>
 <translation id="4075639477629295004">Kan nie <ph name="FILE_NAME" /> uitsaai nie.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Wollerig</translation>
 <translation id="4423376891418188461">Stel instellings terug</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, jou administrateur vereis dat jy jou wagwoord verander.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan nie jou wagwoorde nagaan nie. Probeer weer ná 24 uur.</translation>
 <translation id="4429030830601238961">Hierdie data oortree jou organisasie se sekuriteitbeleid en kan nie geplak word nie.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Boekmerk is bygevoeg</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Wil jy hierdie program outomaties begin wanneer die masjien aanskakel?</translation>
 <translation id="4441147046941420429">Verwyder jou sekuriteitsleutel uit jou toestel, sit dit weer in en raak daaraan om voort te gaan</translation>
 <translation id="444134486829715816">Vou uit …</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan jou wagwoorde nagaan wanneer jy met jou Google-rekening aanmeld</translation>
 <translation id="4442424173763614572">DNS-opsoek het misluk</translation>
 <translation id="4443536555189480885">Hulp</translation>
 <translation id="4444304522807523469">Kry toegang tot dokumentskandeerders wat via USB of op die plaaslike netwerk gekoppel is</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Om hierdie kode te skandeer, moet jy 'n QR-skandeerderprogram op jou foon of sommige kameraprogramme gebruik.</translation>
 <translation id="4477015793815781985">Sluit Ctrl, Alt of ⌘ in</translation>
 <translation id="4478664379124702289">Stoor skakel as …</translation>
+<translation id="4478777936860197922">Geen gestoorde wagwoorde nie. <ph name="IDS_SHORT_PRODUCT_NAME" /> kan jou wagwoorde nagaan wanneer jy hulle stoor.</translation>
 <translation id="4479424953165245642">Bestuur kioskprogramme</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Stel tans die virtuele masjien op. Dit kan 'n paar minute neem.</translation>
 <translation id="4480590691557335796">Chrome kan skadelike sagteware op jou rekenaar opspoor en dit verwyder</translation>
 <translation id="4481530544597605423">Losgemaakte toestelle</translation>
+<translation id="4488107067273194838">Kontroleer blaaiersinkroniseringopsies ná opstelling</translation>
 <translation id="4488502501195719518">Vee alle data uit?</translation>
 <translation id="4495419450179050807">Moenie op hierdie bladsy wys nie</translation>
 <translation id="4496054781541092778">het <ph name="PERMISSION" /> outomaties geblokkeer</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Moenie installeer nie</translation>
 <translation id="4850669014075537160">Rollees</translation>
 <translation id="4850886885716139402">Bekyk</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> sal jou in kennis stel wanneer jy met 'n gekompromitteerde wagwoord aanmeld</translation>
 <translation id="4853020600495124913">Maak in nuwe venster oop</translation>
 <translation id="4854317507773910281">Kies ouerrekening vir goedkeuring</translation>
 <translation id="485480310608090163">Meer instellings en toestemmings</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN bevat ongeldige karakters</translation>
 <translation id="4871370605780490696">Voeg boekmerk by</translation>
 <translation id="4871719318659334896">Maak groep toe</translation>
+<translation id="4871852311166078968">Voeg by groep</translation>
 <translation id="4873312501243535625">Medialêerkontroleerder</translation>
 <translation id="4876273079589074638">Help ons ingenieurs om hierdie omval te ondersoek en reg te stel. Lys noukeurige stappe as jy kan. Geen besonderhede is te klein nie!</translation>
 <translation id="4876895919560854374">Sluit en ontsluit die skerm</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Jou administrateur het die beskikbare invoermetodes beperk.</translation>
 <translation id="4994474651455208930">Laat werwe toe om te vra om verstekhanteerders van protokolle te word</translation>
 <translation id="4994754230098574403">Stel tans op</translation>
-<translation id="4996978546172906250">Deel via</translation>
 <translation id="4997086284911172121">Geen internetverbinding nie.</translation>
 <translation id="4997384734315285248">Deïnstalleer Plugin VM</translation>
 <translation id="4998430619171209993">Aan</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Gaan na jou Assistent toe wanneer jy "Ok Google" sê.</translation>
 <translation id="5135533361271311778">Kon nie boekmerkitem skep nie.</translation>
 <translation id="5137501176474113045">Vee hierdie item uit</translation>
-<translation id="5138982052046316113">Verander grootte van Linux-skyf</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, soek met <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Voer die PIN vir jou sekuriteitsleutel in. As jy nie die PIN ken nie, sal jy die sekuriteitsleutel moet terugstel.</translation>
 <translation id="5139955368427980650">Maak oop</translation>
@@ -3520,6 +3531,7 @@
 <translation id="5739235828260127894">Wag tans vir verifikasie. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Baie groot</translation>
 <translation id="574209121243317957">Toonhoogte</translation>
+<translation id="5745136023067925867">Kry <ph name="DEVICE_TYPE" />-wenke, -aanbiedings en -opdaterings, en deel terugvoer</translation>
 <translation id="5746169159649715125">Stoor as PDF</translation>
 <translation id="5747552184818312860">Verval</translation>
 <translation id="5747785204778348146">Ontwikkelaar – onstabiel</translation>
@@ -3932,7 +3944,6 @@
 <translation id="6291953229176937411">Wys in vinder</translation>
 <translation id="6295158916970320988">Alle werwe</translation>
 <translation id="6295855836753816081">Stoor tans …</translation>
-<translation id="629730747756840877">Rekening</translation>
 <translation id="6298962879096096191">Gebruik Google Play om Android-programme te installeer</translation>
 <translation id="630065524203833229">Gaan uit</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> kon nie outomaties opgestel word nie. Spesifiseer asseblief gevorderde drukkerbesonderhede. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation>
@@ -4338,7 +4349,6 @@
 <translation id="6865598234501509159">Bladsy is nie in <ph name="LANGUAGE" /> nie</translation>
 <translation id="6865708901122695652">WebRTC-gebeureloglêers (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Kleurtemperatuur</translation>
-<translation id="6870888490422746447">Kies 'n program om na te deel:</translation>
 <translation id="6871644448911473373">OCSP-respondent: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Die wagwoord wat jy ingevoer het, is deur die bediener afgekeur.</translation>
 <translation id="6876155724392614295">Fiets</translation>
@@ -4431,6 +4441,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – aktiwiteitloglêer</translation>
 <translation id="6997707937646349884">Op jou toestelle:</translation>
 <translation id="6998793565256476099">Skryf toestel in vir videokonferensie</translation>
+<translation id="6999956497249459195">Nuwe groep</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> is gekoppel, maar moet opgestel word</translation>
 <translation id="7000347579424117903">Sluit Ctrl, Alt of Soek in</translation>
 <translation id="7001036685275644873">Rugsteun tans Linux-programme en -lêers</translation>
@@ -4729,6 +4740,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Stel verbinding op jou <ph name="PHONE_NAME" /> op</translation>
 <translation id="7401778920660465883">Maak hierdie boodskap toe</translation>
+<translation id="7403642243184989645">Laai tans hulpbronne af</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Veiligheidskontrole het 1 uur gelede plaasgevind}other{Veiligheidskontrole het {NUM_HOURS} uur gelede plaasgevind}}</translation>
 <translation id="740624631517654988">Opspringer geblokkeer</translation>
 <translation id="7407430846095439694">Voer in en bind</translation>
@@ -4965,6 +4977,7 @@
 <translation id="7716781361494605745">Netscape-sertifikaatoutoriteit se beleid-URL</translation>
 <translation id="7717014941119698257">Laai tans af: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Kyk vir opdaterings</translation>
+<translation id="7719070594859855691">Gee toegang tot kamera</translation>
 <translation id="7719367874908701697">Bladsyzoem:</translation>
 <translation id="7721179060400456005">Laat toe dat vensters oor skerms heen strek</translation>
 <translation id="7722040605881499779">Nodig om op te dateer: <ph name="NECESSARY_SPACE" /></translation>
@@ -4979,7 +4992,6 @@
 <translation id="7744047395460924128">Sien jou drukgeskiedenis</translation>
 <translation id="7744192722284567281">Bevind dat dit data skend</translation>
 <translation id="7750228210027921155">Prent-in-prent</translation>
-<translation id="7751229152614300329">Veiligblaai is op datum en beskerm jou teen skadelike werwe en aflaaie</translation>
 <translation id="7751260505918304024">Wys alles</translation>
 <translation id="7754704193130578113">Vra waar om elke lêer te stoor voor jy aflaai</translation>
 <translation id="7755287808199759310">Jou ouer kan dit vir jou deblokkeer</translation>
@@ -5067,6 +5079,7 @@
     <ph name="BEGIN_BOLD" />Let wel:<ph name="END_BOLD" /> Die stelsel sal tydens die proses herselflaai.</translation>
 <translation id="7828731929332799387">Dit sal alle webkoekies en werfdata uitvee wat in derdeparty-kontekste beskikbaar is. Wil jy voortgaan?</translation>
 <translation id="7829298379596169484">Gaan tans by oudio-invoer in</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan nie jou wagwoorde nagaan nie. Probeer jou internetverbinding nagaan.</translation>
 <translation id="7829877209233347340">Vra 'n ouer om aan te meld om toestemming te gee om 'n skoolrekening by te voeg</translation>
 <translation id="7830594666202422257">Koppel aan Linux</translation>
 <translation id="7831491651892296503">Kon nie netwerk opstel nie</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Installeer tans die Google Play Winkel op jou <ph name="DEVICE_TYPE" />. Dit kan 'n paar minute neem.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Geen derdeparty-webkoekies nie}=1{1 derdeparty-webkoekie is geblokkeer}other{# derdeparty-webkoekies is geblokkeer}}</translation>
 <translation id="810875025413331850">Geen nabygeleë toestelle gevind nie.</translation>
+<translation id="8114199541033039755">Navigeer tuis en terug, en wissel programme met knoppies in tabletmodus. Aangeskakel wanneer ChromeVox of outomatiese klikke geaktiveer is.</translation>
 <translation id="8114875720387900039">Verdeel horisontaal</translation>
 <translation id="8116972784401310538">Boekmerkbestuurder</translation>
 <translation id="8117620576188476503">Bestuur verbindings, opdaterings en instellings met die statuslaai. Druk Alt + Shift + S om met die sleutelbord hierheen te kom.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> het jou muismerker gedeaktiveer.</translation>
 <translation id="8264024885325823677">Jou administrateur bestuur hierdie instelling.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" het volskerm veroorsaak.</translation>
+<translation id="826511437356419340">Het in vensteroorsigmodus ingegaan. Swiep om te navigeer of druk Tab as jy 'n sleutelbord gebruik.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Dit is algemene inligting oor hierdie toestel en hoe dit gebruik word (soos batteryvlak, stelsel- en programaktiwiteit, en foute). Die data sal gebruik word om Android te verbeter, en van die saamgestelde inligting sal ook Google-programme en -vennote, soos Android-ontwikkelaars, help om hul programme en produkte beter te maak.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />As hierdie kenmerk afgeskakel word, beïnvloed dit nie hierdie toestel se vermoë om die inligting te stuur wat vir noodsaaklike dienste soos stelselopdaterings en sekuriteit benodig word nie.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Die eienaar kan hierdie kenmerk beheer in Instellings &gt; Gevorderd &gt; Stuur diagnostiese en gebruiksdata outomaties na Google.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Aktiveer tans</translation>
 <translation id="8427292751741042100">op enige gasheer ingebed</translation>
 <translation id="8428213095426709021">Instellings</translation>
+<translation id="8428271547607112339">Voeg skoolrekening by</translation>
 <translation id="8428628598981198790">Jou sekuriteitsleutel kan nie met hierdie werf gebruik word nie</translation>
 <translation id="84297032718407999">Jy sal oor <ph name="LOGOUT_TIME_LEFT" /> afgemeld word</translation>
 <translation id="8431190899827883166">Wys tikke</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Laat <ph name="HOST" /> altyd toe om prente te wys</translation>
 <translation id="8513108775083588393">Outodraai</translation>
 <translation id="8514746246728959655">Probeer 'n ander sekuriteitsleutel</translation>
+<translation id="851960115758509829">Jou programme, instellings en ander pasmakings sal sinkroniseer op alle toestelle met Chrome-bedryfstelsel waarop jy met jou Google-rekening aangemeld is.</translation>
 <translation id="8521475323816527629">Kom vinnig by jou programme uit</translation>
 <translation id="8523493869875972733">Hou veranderings</translation>
 <translation id="8523849605371521713">Bygevoeg volgens beleid</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Berging</translation>
 <translation id="8859057652521303089">Kies jou taal:</translation>
 <translation id="8859174528519900719">Subraam: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Ouerrekening</translation>
 <translation id="8862003515646449717">Wissel na 'n vinnige blaaier</translation>
 <translation id="8863753581171631212">Maak skakel in nuwe <ph name="APP" /> oop</translation>
 <translation id="8864055848767439877">Deel <ph name="TAB_NAME" /> tans na <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> is van hierdie toestel af verwyder</translation>
 <translation id="8867228703146808825">Kopieer boubesonderhede na knipbord toe</translation>
+<translation id="8868333925931032127">Begin tans demonstrasiemodus</translation>
 <translation id="8868626022555786497">Word gebruik</translation>
 <translation id="8870413625673593573">Onlangs toegemaak</translation>
 <translation id="8871551568777368300">Deur administrateur vasgespeld</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Maak 'n oortjie weer oop as jy dit per ongeluk toegemaak het</translation>
 <translation id="8967866634928501045">Druk Alt Shift A om te wys</translation>
 <translation id="8968766641738584599">Stoor kaart</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan nie jou wagwoorde nagaan nie. Probeer ná 24 weer uur of <ph name="BEGIN_LINK" />gaan wagwoorde in jou Google-rekening na<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Maak asseblief by jou netwerkadministrateur seker dat die brandmuur nie aflaaie van Google-bedieners af blokkeer nie.</translation>
 <translation id="8973557916016709913">Verwyder zoemvlak</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 7975dea..90bb3e9 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">የሚገኙ መሣሪያዎች</translation>
 <translation id="1042174272890264476">እንዲሁም ኮምፒውተርዎ የ<ph name="SHORT_PRODUCT_NAME" /> RLZ ቤተ-ፍርግም አብሮ ተሰርቶለት ነው የሚመጣው። RLZ ፍለጋዎችን እና በአንድ የተወሰነ የማስተዋወቂያ ዘመቻ የሚነዳ የ<ph name="SHORT_PRODUCT_NAME" /> አጠቃቀምን ለመለካት ልዩ ያልሆነ፣ በግል ሊለይ የማይችል መለያ ይመድባል። እነዚህ መለያ ስሞች አንዳንድ ጊዜ በ<ph name="PRODUCT_NAME" /> የGoogle ፍለጋ መጠይቆች ላይ ይታያሉ።</translation>
 <translation id="1043818413152647937">በተጨማሪ ከእነዚህ መተግበሪያዎች ውሂብ ይጸዳ?</translation>
+<translation id="1045448422538531528">ወደ ቡድን አክል</translation>
 <translation id="1046635659603195359">አስቀድመው በሌላ መሣሪያ ላይ በእርስዎ Google ረዳት Voice Matchን ያቀናበሩ ይመስላሉ። እነዚህ ቀዳሚ ቀረጻዎች በዚህ መሣሪያ ላይ የድምጽ ሞዴል ለመስራት ስራ ላይ መዋል ይችላሉ። ይሄ ከደቂቃ ያነሰ ጊዜ ነው መውሰድ ያለበት።</translation>
 <translation id="104710386808485638">Linux ዳግም ይነሳ?</translation>
 <translation id="1047431265488717055">የአገናኝ ጽሑፍ &amp;ቅዳ</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">ሁልጊዜ የካሜራ መዳረሻ አግድ</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" />የእርስዎ Chrome ቅንብሮች ወደ የመጀመሪያቸው ነባሪዎች መመለስ ፈልጓል። ይሄ የእርስዎን መነሻ ገጽ፣ አዲስ የትር ገጽ እና የፍለጋ ፕሮግራም ዳግም ያስጀምራቸዋል፣ ቅጥያዎችዎን ያሰናክላቸዋል፣ እና ሁሉንም ትሮች ይነቅላቸዋል። እንዲሁም ሌሎች እንደ ኩኪዎች፣ ይዘት እና የጣቢያ ውሂብ ያለ ጊዜያዊ እና የተሸጎጠ ውሂብንም ያጸዳል።</translation>
+<translation id="1084096383128641877">ይህን የይለፍ ቃል ማስወገድ <ph name="DOMAIN" /> ላይ መለያዎን አይሰርዘውም። መለያዎን ከሌሎች ለመጠበቅ የይለፍ ቃልዎን ይቀይሩት ወይም <ph name="DOMAIN_LINK" /> ላይ መለያዎን ይሰርዙት።</translation>
 <translation id="1084824384139382525">የአገናኝ አድ&amp;ራሻ ቅዳ</translation>
 <translation id="1085697365578766383">ምናባዊ ማሽንን ማስጀመር አልተቻለም። እባክዎ እንደገና ይሞክሩ።</translation>
 <translation id="1090126737595388931">ምንም የሚያሂዱ የጀርባ መተግበሪያዎች የሉም</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">የደህንነት ፍተሻ ትላንትና ተካሂዷል</translation>
 <translation id="1260451001046713751">ሁልጊዜ ከ<ph name="HOST" /> የሚመጡ ብቅ-ባዮችን እና አቅጣጫ ማዞሮችን ፍቀድ</translation>
 <translation id="126156426083987769">በቅንጭብ ማሳያ ሁነታ ፈቃዶች ችግር አጋጥሟል።</translation>
+<translation id="1263490604593716556">መለያው በ<ph name="FIRST_PARENT_EMAIL" /> እና <ph name="SECOND_PARENT_EMAIL" /> ነው የሚቀናበረው። በዚህ መሣሪያ ላይ ከዋናው መለያ ዘግተው ለመውጣት በማያ ገጽዎ ላይ ጊዜውን ጠቅ ያድርጉ። በሚመጣው ምናሌ ላይ «ዘግተህ ውጣ»ን ጠቅ ያድርጉ።</translation>
 <translation id="126710816202626562">የትርጉም ቋንቋ፦</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">አቁም</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">ድር ጣቢያ</translation>
 <translation id="15662109988763471">የተመረጠው አታሚ የለም ወይም በትክክል አልተጫነም። አታሚዎን ይፈትሹት ወይም ሌላ አታሚ ለመምረጥ ይሞክሩ።</translation>
 <translation id="1567387640189251553">የእርስዎን የይለፍ ቃል ለመጨረሻ ጊዜ ካስገቡ ወዲህ የተለየ የቁልፍ ሰሌዳ ተገናኝቷል። የእርስዎን የቁልፍ ጭረቶች ለመስረቅ እየሞከረ ሊሆን ይችላል።</translation>
-<translation id="1567750922576943685">ማንነትዎን ማረጋገጥ የግል መረጃዎ እንዲጠበቅ ያግዛል</translation>
 <translation id="1567993339577891801">ጃቫስክሪፕት ኮንሶል</translation>
 <translation id="1568323446248056064">የማሳያ የመሣሪያ ቅንብሮችን ክፈት</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (እንግዳ)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">ሥነ ጥበብ</translation>
 <translation id="1697686431566694143">ፋይል አርትዕ ያድርጉ</translation>
 <translation id="1698122934742150150">የአሁኑ ማንነት የማያሳውቅ ክፍለ-ጊዜ ብቻ</translation>
-<translation id="1698650002254827833">የመተግበሪያዎች ዝርዝር ሊጫን አይችልም። እባክዎ እንደገና ይሞክሩ።</translation>
 <translation id="1700079447639026019">ኩኪዎችን በጭራሽ መጠቀም የማይችሉ ጣቢያዎች</translation>
 <translation id="1701062906490865540">ይህን ሰው አስወግድ</translation>
 <translation id="1703331064825191675">ስለ የእርስዎ የይለፍ ቃላት አይጨነቁ</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">ቀጥል</translation>
 <translation id="2173302385160625112">የበይነመረብ ግኑኝነትዎን ይፈትሹ</translation>
 <translation id="2173801458090845390">የማግኛ መታወቂያ ወደዚህ መሣሪያ ያክሉ</translation>
+<translation id="2174948148799307353">መለያው በ<ph name="PARENT_EMAIL" /> ነው የሚቀናበረው በዚህ መሣሪያ ላይ ከዋናው መለያ ዘግተው ለመውጣት በማያ ገጽዎ ላይ ጊዜውን ጠቅ ያድርጉ። በሚመጣው ምናሌ ላይ «ዘግተህ ውጣ»ን ጠቅ ያድርጉ።</translation>
 <translation id="2175607476662778685">የፈጣን አጀማመር አሞሌ</translation>
 <translation id="217576141146192373">አታሚን ማከል አልተቻለም። የእርስዎን አታሚ ውቅረት እባክዎ ይፈትሹ እና እንደገና ይሞክሩ።</translation>
 <translation id="2177950615300672361">ማንነት የማያሳውቅ ትር፦ <ph name="TAB_NAME" /></translation>
@@ -1080,7 +1082,6 @@
 <translation id="2442916515643169563">የጽሑፍ ጥላ</translation>
 <translation id="2445081178310039857">የቅጥያ ስርወ ማውጫ ያስፈልጋል።</translation>
 <translation id="2445484935443597917">አዲስ መገለጫ ፍጠር</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> የእርስዎን ማንነት ማረጋገጥ ይፈልጋል</translation>
 <translation id="2448312741937722512">አይነት</translation>
 <translation id="2450223707519584812">የGoogle ኤፒአይ ቁልፎች ስለጎደሉ ተጠቃሚዎችን ማከል አይችሉም። ለዝርዝሩ <ph name="DETAILS_URL" />ን ይመልከቱ።</translation>
 <translation id="2450849356604136918">ምንም ገቢር እይታዎች የሉም</translation>
@@ -1478,6 +1479,7 @@
 <translation id="2948300991547862301">ወደ <ph name="PAGE_TITLE" /> ይሂዱ</translation>
 <translation id="29488703364906173">ለዘመናዊ ድር የተሰራ ፈጣን፣ ቀላል እና ደህንነቱ አስተማማኝ የሆነ የድር አሳሽ።</translation>
 <translation id="2949289451367477459">መገኛ አካባቢን ይጠቀሙ። ይህን የመሣሪያ መገኛ አካባቢ ለመጠቀም ከመገኛ አካባቢ ፈቃድ ጋር እንዲጠቀሙ ለመተግበሪያዎች እና አገልግሎቶች ይፍቀዱ። Google የአካባቢ ትክክለኝነትን እና በአካባቢ ላይ የተመሠረቱ አገልግሎቶችን ለማሻሻል በየጊዜው የአካባቢ ውሂብን ሊሰበስብና ይህን ውሂብ ስም-አልባ በሆነ መልኩ ሊጠቀምበት ይችላል። <ph name="BEGIN_LINK1" />የበለጠ ለመረዳት<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">መዝግበኝ</translation>
 <translation id="2956070239128776395">ክፍል በቡድን እቀፍ ውስጥ ተካቷል፦ <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">ማናቸውም ጣቢያዎች በመሣሪያዎ ላይ ያሉ ፋይሎችን ወይም አቃፊዎችን እንዲያርትዑ አይፍቀዱ</translation>
 <translation id="2958721676848865875">የጥቅል ቅጥያ ማስጠንቀቂያ</translation>
@@ -1602,6 +1604,7 @@
 <translation id="3139925690611372679">ነባሪ ቢጫ አምሳያ</translation>
 <translation id="3141318088920353606">በማዳመጥ ላይ...</translation>
 <translation id="3141917231319778873">የተሰጠው ጥያቄው በዚህ ላይ አይደገፍም፦ «<ph name="DEVICE_NAME" />»።</translation>
+<translation id="3142562627629111859">አዲስ ቡድን</translation>
 <translation id="3143515551205905069">ስምረትን ሰርዝ</translation>
 <translation id="3143754809889689516">ከመጀመሪያው አጫውት</translation>
 <translation id="3144647712221361880">አገናኙን ክፈት እንደ</translation>
@@ -1626,6 +1629,7 @@
 <translation id="3159493096109238499">ቤዥ</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (በሃርድዌር የሚደገፍ)</translation>
 <translation id="3161522574479303604">ሁሉም ቋንቋዎች</translation>
+<translation id="3162853326462195145">የትምህርት ቤት መለያ</translation>
 <translation id="3162899666601560689">ጣቢያዎች የአሰሳዎን ተሞክሮ ለማሻሻል ኩኪዎችን መጠቀም ይችላሉ፣ ለምሳሌ እርስዎ በመለያ እንደገቡ ማቆየት ወይም በግዢ ጋሪዎ ውስጥ ንጥሎችን ለማስታወስ</translation>
 <translation id="3163201441334626963">ያልታወቀ ምርት <ph name="PRODUCT_ID" /> ከ<ph name="VENDOR_ID" /> ሻጭ</translation>
 <translation id="3164329792803560526">ወደ <ph name="APP_NAME" /> ይህን ትር በማጋራት ላይ</translation>
@@ -1684,7 +1688,6 @@
 <translation id="3246107497225150582">{0,plural, =1{በአንድ ቀን ውስጥ መሣሪያን ያዘምኑ}one{በ# ቀኖች ውስጥ መሣሪያን ያዘምኑ}other{በ# ቀኖች ውስጥ መሣሪያን ያዘምኑ}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - የአውታረ መረብ ስህተት</translation>
 <translation id="3248902735035392926">ደህንነት ወሳኝ ነው። አሁን ጊዜ ወስደው <ph name="BEGIN_LINK" />ቅጥያዎችዎን ይፈትሹ<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">‹የሰርቲፊኬቱ አካል አይደለም›</translation>
 <translation id="3253225298092156258">አይገኝም</translation>
 <translation id="3253448572569133955">ያልታወቀ መለያ</translation>
@@ -1789,6 +1792,7 @@
 <translation id="3396800784455899911">የ«እስማማለሁ እና ቀጥል» አዝራርን ጠቅ በማድረግ ለእነዚህ የGoogle አገልግሎቶች ከላይ በተብራራው ማስሄድ መስማማትዎን ያረጋግጣሉ።</translation>
 <translation id="3399432415385675819">ማሳወቂያዎች ይሰናከላሉ</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - የተጠላለፈ</translation>
+<translation id="3402585168444815892">በማሳያ ሁነታ ላይ ያስመዝግቡ</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />፣ <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">ለዚህ ጣቢያ ምንም የይለፍ ቃላት አልተቀመጡም</translation>
 <translation id="3405664148539009465">ቅርጸ-ቁምፊዎችን አብጅ</translation>
@@ -1850,6 +1854,7 @@
 <translation id="3468999815377931311">የAndroid ስልክ</translation>
 <translation id="3470442499439619530">ይህን ተጠቃሚ አስወግድ</translation>
 <translation id="3471876058939596279">HDMI እና USB Type-C ወደቦች በተመሳሳይ ጊዜ አንድ ላይ ጥቅም ላይ ሊውሉ አይችሉም። የተለየ ቪዲዮ ወደብ ይጠቀሙ።</translation>
+<translation id="3473241910002674503">በጡባዊ ሁነታ ላይ ወደ ቤት ይዳስሱ፣ ይመለሱ እና መተግበሪያዎችን ይቀይሩ።</translation>
 <translation id="3473479545200714844">የማያ ገጽ ማጉያ</translation>
 <translation id="3475843873335999118">ይቅርታ፣ የጣት አሻራዎ አሁንም አልታወቀም። እባክዎ የይለፍ ቃልዎን ያስገቡት።</translation>
 <translation id="3476303763173086583">የአጠቃቀም እና የምርመራ ውሂብ ይላኩ። የምርመራ፣ የመሣሪያ እና የመተግበሪያ አጠቃቀም ውሂብ በራስ-ሰር ወደ Google በመላክ የልጅዎን የAndroid ተሞክሮ እንዲሻሻል ያግዙ። ይህ ልጅዎን ለመለየት ስራ ላይ አይውልም፣ እና የስርዓት እና የመተግበሪያ እርጋታን እና ሌሎች ማሻሻያዎችን ያግዛል። አንዳንድ ውሑድ ውሂብ እንዲሁም የGoogle መተግበሪያዎችን እና እንደ የAndroid ገንቢዎች ያሉ አጋሮችን ያግዛሉ። ይህ <ph name="BEGIN_LINK1" />ቅንብር<ph name="END_LINK1" /> በባለቤቱ ተፈጻሚ ይደረጋል። ባለቤቱ የዚህ መሣሪያ የምርመራ እና የአጠቃቀም ለGoogle ለመላክ ሊመርጥ ይችላሉ። የተጨማሪ የድር እና መተግበሪያ እንቅስቃሴ ቅንብር ለልጅዎ በርቶ ከሆነ ይህ ውሂብ ወደ የGoogle መለያቸው ሊቀመጥ ይችላል። <ph name="BEGIN_LINK2" />የበለጠ ለመረዳት<ph name="END_LINK2" /></translation>
@@ -2274,6 +2279,7 @@
 <translation id="3971764089670057203">በዚህ የደህንነት ቁልፍ ላይ ያሉ የጣት አሻራዎች</translation>
 <translation id="3973660817924297510">የይለፍ ቃላትን (<ph name="CHECKED_PASSWORDS" /> ከ<ph name="TOTAL_PASSWORDS" />) በመፈተሽ ላይ…</translation>
 <translation id="3975565978598857337">ለማከማቸት አገልጋይን ማግኘት አልተሳካም</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> የእርስዎን የይለፍ ቃላት መፈተሽ አይችልም። ቆይተው እንደገና ይሞክሩ።</translation>
 <translation id="3976108569178263973">ምንም የሚገኙ አታሚዎች የሉም።</translation>
 <translation id="397703832102027365">በማጠናቀቅ ላይ...</translation>
 <translation id="3977886311744775419">ራስሰር ዝማኔዎች በዚህ ዓይነቱ አውታረ መረብ ላይ አይወርድም ሆኖም ግን በእጅ ዝማኔዎችን መፈለግ ይችላሉ።</translation>
@@ -2337,6 +2343,7 @@
 <translation id="4068506536726151626">ይህ ገጽ አካባቢዎን እየተከታተሉ ካሉት የሚከተሉት ጣቢያዎች አባላትን ይዟል፦</translation>
 <translation id="4068776064906523561">የተቀመጡ የጣት አሻራዎች</translation>
 <translation id="407173827865827707">ጠቅ ሲደረግ</translation>
+<translation id="4073520450811433493">የቅንብሮች ስምረት</translation>
 <translation id="4074900173531346617">የኢሜይል ፈራሚ ሰርቲፊኬት</translation>
 <translation id="407520071244661467">የልኬት ለውጥ</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" />ን cast ማድረግ አልተቻለም።</translation>
@@ -2571,6 +2578,7 @@
 <translation id="4421932782753506458">ለስላሳ</translation>
 <translation id="4423376891418188461">ቅንብሮችን ወደነበሩበት መልስ</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />፣ የእርስዎ አስተዳዳሪ የይለፍ ቃልዎን እንዲቀይሩ ይፈልግብዎታል።</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> የእርስዎን የይለፍ ቃላት መፈተሽ አይችልም። ከ24 ሰዓቶች በኋላ እንደገና ይሞክሩ።</translation>
 <translation id="4429030830601238961">ይህ ውሂብ የድርጅትዎን የደህንነት መመሪያዎችን ይጥሳል፣ እና ሊለጠፍ አይችልም።</translation>
 <translation id="4430019312045809116">ድምፅ</translation>
 <translation id="4430369329743628066">ዕልባት ታክሏል</translation>
@@ -2583,6 +2591,7 @@
 <translation id="4441124369922430666">ማሽኑ ሲበራ ይህን መተግበሪያ በራስ-ሰር እንዲጀመር ይፈልጋሉ?</translation>
 <translation id="4441147046941420429">ለመቀጠል የደህንነት ቁልፍዎን ከመሣሪያዎ ያስወግዱት፣ ከዚያ ዳግም ያስገቡትና ይንኩት</translation>
 <translation id="444134486829715816">ዘርጋ...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> በእርስዎ የGoogle መለያ በሚገቡበት ጊዜ የእርስዎን የይለፍ ቃላትን ሊፈትሽ ይችላል።</translation>
 <translation id="4442424173763614572">የዲ ኤን ኤስ ፍለጋ አልተሳካም</translation>
 <translation id="4443536555189480885">&amp;እገዛ</translation>
 <translation id="4444304522807523469">በዩ.ኤስ.ቢ ወይም በአካባቢ አውታረ መረብ በኩል የተያያዙ የሰነድ ቃኚዎችን ይድረስባቸው</translation>
@@ -2609,11 +2618,13 @@
 <translation id="4476659815936224889">ይህን ኮድ ለመቃኘት በእርስዎ ስልክ ላይ ያለውን የQR መቃኛ መተግበሪያ ወይም አንዳንድ የካሜራ መተግበሪያዎችን መጠቀም ይችላሉ።</translation>
 <translation id="4477015793815781985">Ctrl፣ Alt ወይም ⌘ ያካትቱ</translation>
 <translation id="4478664379124702289">አገ&amp;ናኝ አስቀምጥ እንደ…</translation>
+<translation id="4478777936860197922">ምንም የተቀመጡ የይለፍ ቃላት የሉም። <ph name="IDS_SHORT_PRODUCT_NAME" /> እርስዎ ሲያስቀምጧቸው የይለፍ ቃላትዎን መፈተሽ ይችላል።</translation>
 <translation id="4479424953165245642">የኪዮስክ መተግበሪያዎችን አቀናብር</translation>
 <translation id="4479639480957787382">ኢተርኔት</translation>
 <translation id="4479877282574735775">ምናባዊውን ማሽን በማዋቀር ላይ። ይሄ ጥቂት ደቂቃዎችን ሊወስደ ይችላል።</translation>
 <translation id="4480590691557335796">Chrome በእርስዎ ኮምፒውተር ላይ ጎጂ ሶፍትዌርን ማግኘት እና ማስወገድ ይችላል</translation>
 <translation id="4481530544597605423">ያልተጣመሩ መሣሪያዎች</translation>
+<translation id="4488107067273194838">ከውቅረት በኋላ የአሳሽ ስምረት አማራጮችን ይገምግሙ</translation>
 <translation id="4488502501195719518">ሁሉም ውሂብ ይጽዳ?</translation>
 <translation id="4495419450179050807">በዚህ ገጽ ላይ አታሳይ</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> በራስ-ሰር ታግዷል</translation>
@@ -2855,6 +2866,7 @@
 <translation id="4849517651082200438">አትጫን</translation>
 <translation id="4850669014075537160">ሽብለላ</translation>
 <translation id="4850886885716139402">አሳይ</translation>
+<translation id="485197095346966382">እርስዎ በተጠለፈ የይለፍ ቅቃል ሲገቡ <ph name="IDS_SHORT_PRODUCT_NAME" /> ያሳውቀዎታል</translation>
 <translation id="4853020600495124913">&amp;በአዲስ መስኮት ውስጥ ክፈት</translation>
 <translation id="4854317507773910281">የሚጸድቅ የወላጅ መለያ ይምረጡ</translation>
 <translation id="485480310608090163">ተጨማሪ ቅንብሮች እና ፈቃዶች</translation>
@@ -2873,6 +2885,7 @@
 <translation id="4871322859485617074">ፒን የማይሠሩ ቁምፊዎች ይዟል</translation>
 <translation id="4871370605780490696">ዕልባት ያክሉ</translation>
 <translation id="4871719318659334896">ቡድንን ዝጋ</translation>
+<translation id="4871852311166078968">ወደ ቡድን አክል</translation>
 <translation id="4873312501243535625">የሚዲያ ፋይል ፈታሽ</translation>
 <translation id="4876273079589074638">መሐንዲሶቻችን ይህን ስንክል እንዲመረምሩና እንዲጠግኑት ያግዟቸው። ከቻሉ የተከተሏቸውን ደረጃዎች በሙሉ በትክክል ይግለጹ። ምንም አይረባም የሚባል ዝርዝር የለም!</translation>
 <translation id="4876895919560854374">ማያ ገጹን ይከፍተዋል እና ይዘገዋል</translation>
@@ -2964,7 +2977,6 @@
 <translation id="4992473555164495036">የእርስዎ አስተዳዳሪ ሊገኙ የሚችሉትን የግቤት ዘዴዎች ገድቧቸዋል።</translation>
 <translation id="4994474651455208930">ጣቢያዎች ለፕሮቶኮሎች ነባሪ ከዋኞች እንዲሆኑ እንዲጠይቁ ፍቀድ</translation>
 <translation id="4994754230098574403">በማዋቀር ላይ</translation>
-<translation id="4996978546172906250">ያጋሩ በ</translation>
 <translation id="4997086284911172121">ምንም የበይነመረብ ግንኙነት የለም።</translation>
 <translation id="4997384734315285248">Plugin VMን ያራግፉ</translation>
 <translation id="4998430619171209993">አብራ</translation>
@@ -3064,7 +3076,6 @@
 <translation id="5135085122826131075">«Ok Google» ሲሉ ረዳትዎን ይድረሱ።</translation>
 <translation id="5135533361271311778">የዕልባት ንጥል መፍጠር አልተቻለም።</translation>
 <translation id="5137501176474113045">ይህን ንጥል ሰርዝ</translation>
-<translation id="5138982052046316113">የLinux ዲስክ መጠንን ቀይር</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />፣ <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> ፍለጋ</translation>
 <translation id="5139823398361067371">የደህንነት ቁልፍዎን ፒን ያስገቡ። ፒኑን የማያውቁት ከሆነ የደህንነት ቁልፉን ዳግም ማቀናበር አለብዎት።</translation>
 <translation id="5139955368427980650">&amp;ክፈት</translation>
@@ -3516,6 +3527,7 @@
 <translation id="5739235828260127894">ማረጋገጫን በመጠበቅ ላይ። <ph name="LINK_BEGIN" />የበለጠ ለመረዳት<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">በጣም ትልቅ</translation>
 <translation id="574209121243317957">ቅላፄ</translation>
+<translation id="5745136023067925867">የ<ph name="DEVICE_TYPE" /> ጠቃሚ ምክሮችን፣ ቅናሾችን እና ዝማኔዎችን ያግኙ፣ እና ግብረመልስ ያጋሩ።</translation>
 <translation id="5746169159649715125">እንደ PDF አስቀምጥ</translation>
 <translation id="5747552184818312860">ጊዜው አልፎበታል</translation>
 <translation id="5747785204778348146">ገንቢ - ያልተረጋጋ</translation>
@@ -3928,7 +3940,6 @@
 <translation id="6291953229176937411">በፈላጊ ውስጥ &amp;አሳይ</translation>
 <translation id="6295158916970320988">ሁሉም ጣቢያዎች</translation>
 <translation id="6295855836753816081">በማስቀመጥ ላይ...</translation>
-<translation id="629730747756840877">መለያ</translation>
 <translation id="6298962879096096191">የAndroid መተግበሪያዎችን ለመጫን Google Playን ይጠቀሙ</translation>
 <translation id="630065524203833229">ው&amp;ጣ</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> በራስ ሰር ሊዋቀር አልተቻለም። የላቀ አታሚ ዝርዝሮችን እባክዎ ይጥቀሱ። <ph name="LINK_BEGIN" />የበለጠ ለመረዳት<ph name="LINK_END" /></translation>
@@ -4334,7 +4345,6 @@
 <translation id="6865598234501509159">ገጽ በ<ph name="LANGUAGE" /> አይደለም</translation>
 <translation id="6865708901122695652">የWebRTC ክስተት ምዝግብ ማስታወሻዎች (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">የቀለም ሙቀት መጠን</translation>
-<translation id="6870888490422746447">የሚያጋሩትን መተግበሪያ ይምረጡ፦</translation>
 <translation id="6871644448911473373">OCSP ምላሽ ሰጪ፦ <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">ያስገቡት የይለፍ ቃል በአገልጋዩ ተቀባይነት አላገኘም።</translation>
 <translation id="6876155724392614295">ቢስክሌት</translation>
@@ -4427,6 +4437,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - የእንቅስቃሴ ምዝግብ ማስታወሻ</translation>
 <translation id="6997707937646349884">በእርስዎ መሣሪያዎች ላይ፦</translation>
 <translation id="6998793565256476099">መሣሪያን ለቪዲዮ ጉባዔ ያስመዝግቡ</translation>
+<translation id="6999956497249459195">አዲስ ቡድን</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> ተገናኝቷል ሆኖም ግን ውቅረትን ይፈልጋል</translation>
 <translation id="7000347579424117903">Ctrl፣ Alt፣ ወይም ፍለጋን ያካትቱ</translation>
 <translation id="7001036685275644873">የ Linux መተግበሪያዎችን እና ፋይሎችን በምትኬ ያስቀምጡ</translation>
@@ -4725,6 +4736,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">በእርስዎ <ph name="PHONE_NAME" /> ላይ ግንኙነት ያቀናብሩ</translation>
 <translation id="7401778920660465883">ይህን መልዕክት አሰናብት</translation>
+<translation id="7403642243184989645">ግብዓቶችን በማውረድ ላይ</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{የደህንነት ፍተሻ ከ1 ሰዓት በፊት ተካሂዷል}one{የደህንነት ፍተሻ ከ{NUM_HOURS} ሰዓቶች በፊት ተካሂዷል}other{የደህንነት ፍተሻ ከ{NUM_HOURS} ሰዓቶች በፊት ተካሂዷል}}</translation>
 <translation id="740624631517654988">ብቅ-ባይ ታግዷል</translation>
 <translation id="7407430846095439694">አስመጣ እና እሰር</translation>
@@ -4961,6 +4973,7 @@
 <translation id="7716781361494605745">የNetscape እውቅና ማረጋገጫ ባለስልጣን መመሪያ ዩአርኤል</translation>
 <translation id="7717014941119698257">በማውረድ ላይ፦ <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">ዝማኔዎች ካለ ተመልከት</translation>
+<translation id="7719070594859855691">የካሜራ መዳረሻ ይስጡ</translation>
 <translation id="7719367874908701697">ገጽ አጉላ</translation>
 <translation id="7721179060400456005">መስኮቶች ማሳያዎችን ለመሸፈን እንዲችሉ ይፍቀዱ</translation>
 <translation id="7722040605881499779">ለማዘመን የሚያስፈልገው፦ <ph name="NECESSARY_SPACE" /></translation>
@@ -4975,7 +4988,6 @@
 <translation id="7744047395460924128">የህትመት ታሪክዎን ይመልከቱ</translation>
 <translation id="7744192722284567281">በውሂብ ጥሰት ላይ ተገኝቷል</translation>
 <translation id="7750228210027921155">በሥዕል ውስጥ ሥዕል</translation>
-<translation id="7751229152614300329">የጥንቃቄ አሰሳ የተዘመነ ሲሆን እርስዎን ከጎጂ ጣቢያዎች እና ውርዶች ይጠብቀዎታል</translation>
 <translation id="7751260505918304024">ሁሉንም አሳይ</translation>
 <translation id="7754704193130578113">እያንዳንዱ ፋይል ከመውረዱ በፊት የት እንደሚቀመጥ ጠይቅ</translation>
 <translation id="7755287808199759310">የእርስዎ ወላጅ እገዳውን ሊያነሱልዎ ይችላሉ</translation>
@@ -5063,6 +5075,7 @@
     <ph name="BEGIN_BOLD" />ማስታወሻ፦<ph name="END_BOLD" />  ስርዓቱ በሂደቱ ጊዜ ዳግም ይነሳል።</translation>
 <translation id="7828731929332799387">ይህ በሦስተኛ ወገን ዓውደ አገባቦች ውስጥ የሚገኙ ሁሉንም ኩኪዎች እና የጣቢያ ውሂብ ይሰርዛል። መቀጠል ይፈልጋሉ?</translation>
 <translation id="7829298379596169484">የኦዲዮ ግብዓትን በመድረስ ላይ</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> የእርስዎን የይለፍ ቃላት መፈተሽ አይችልም። የበይነመረብ ግንኙነትዎን ለመፈተሽ ይሞክሩ።</translation>
 <translation id="7829877209233347340">አንድ ወላጅ የትምህርት ቤት መለያ ለማከል ፈቃድ እንዲሰጡ ይጠይቋቸው</translation>
 <translation id="7830594666202422257">ከLinux ጋር ተገናኝ</translation>
 <translation id="7831491651892296503">አውታረ መረብን ማዋቀር ላይ ስህተት</translation>
@@ -5290,6 +5303,7 @@
 <translation id="8107015733319732394">የGoogle Play መደብርን በእርስዎ <ph name="DEVICE_TYPE" /> ላይ በመጫን ላይ። ይሄ ጥቂት ደቂቃዎችን ሊወስድ ይችላል።</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{የሶስተኛ ወገን ኩኪዎች የሉም}=1{1 የሶስተኛ ወገን ኩኪ ታግዷል}one{# የሶስተኛ ወገን ኩኪዎች ታግደዋል}other{# የሶስተኛ ወገን ኩኪዎች ታግደዋል}}</translation>
 <translation id="810875025413331850">በአቅራቢያ ያሉ ምንም መሣሪያዎች አልተገኙም።</translation>
+<translation id="8114199541033039755">በጡባዊ ሁነታ ላይ ወደ ቤት ይዳስሱ፣ ይመለሱ እና መተግበሪያዎችን ይቀይሩ። ChromeVox ወይም ራስ-ሰር ጠቅታዎች ሲነቃ የሚበራል።</translation>
 <translation id="8114875720387900039">አግድም ክፈል</translation>
 <translation id="8116972784401310538">&amp;ዕልባት አቀናባሪ</translation>
 <translation id="8117620576188476503">ግንኙነቶችን፣ ዝማኔዎችን እና ቅንብሮችን በሁኔታ ትሪ ያቀናብሩ። በቁልፍ ሰሌዳ ወደዚህ ለመምጣት Alt + Shift + S ይጫኑ።</translation>
@@ -5408,6 +5422,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> የመዳፊት ጠቋሚዎን አሰናክሏል።</translation>
 <translation id="8264024885325823677">ይህ ቅንብር በአስተዳዳሪዎ የሚቀናበር ነው።</translation>
 <translation id="8264718194193514834">«<ph name="EXTENSION_NAME" />» ሙሉ ማያ ገጽን አስነስቷል።</translation>
+<translation id="826511437356419340">የአጠቃላይ እይታ ሁኔታ መስኮት ገብቷል። ለመዳሰስ በጣት ይጥረጉ፣ ወይም ቁልፍ ሰሌዳ የሚጠቀሙ ከሆነ tab ይጫኑ።</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />ይህ ስለዚህ መሣሪያ እና እንዴት ሥራ ላይ እንደሚውል (እንደ የባትሪ ደረጃ፣ የሥርዓት እና የመተግበሪያ እንቅስቃሴ እና ስህተቶች ያሉ) አጠቃላይ መረጃ ነው። ውሂቡ Androidን ለማሻሻል ጥቅም ላይ ይውላል፣ እና አንዳንድ የተዋሃደ መረጃ እንዲሁም የGoogle መተግበሪያዎችን እና እንደ የAndroid ገንቢዎች ያሉ አጋሮች መተግበሪያዎቻቸውን እና ምርቶቻቸውን እንዲያሻሽሉ ያግዟቸዋል።<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />ይህን ባህሪ ማጥፋት መሣሪያው እንደ የሥርዓት ዝማኔዎች እና ደኅንነት ላሉ አስፈላጊ አገልግሎቶች የሚያስፈልገውን መረጃ በመላክ ችሎታው ላይ ተጽዕኖ አያሳርፍም።<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />ይህን ባህሪ ከቅንብሮች &gt; የላቁ &gt; ወደ Google የአጠቃቀም እና ምርመራን ውሂብ በራስ ሰር ላክ ላይ ሆኖ ባለቤቱ ሊቆጣጠረው ይችላል።<ph name="END_PARAGRAPH3" />
@@ -5516,6 +5531,7 @@
 <translation id="8426713856918551002">በማንቃት ላይ</translation>
 <translation id="8427292751741042100">በማንኛውም አስተናጋጅ ላይ ተከትቷል</translation>
 <translation id="8428213095426709021">ቅንብሮች</translation>
+<translation id="8428271547607112339">የትምህርት ቤት መለያ አክል</translation>
 <translation id="8428628598981198790">የደህንነት ቅቁልፍዎ በዚህ ጣቢያ ላይ መጠቀም አይቻልም</translation>
 <translation id="84297032718407999">በ<ph name="LOGOUT_TIME_LEFT" /> ውስጥ ዘግተው እንዲወጡ ይደረጋሉ</translation>
 <translation id="8431190899827883166">መታ ማድረጎችን አሳይ</translation>
@@ -5579,6 +5595,7 @@
 <translation id="851263357009351303">ሁልጊዜ <ph name="HOST" /> ምስሎችን እዲያሳይ ፍቀድ</translation>
 <translation id="8513108775083588393">በራስ ሰር አሽከርክር</translation>
 <translation id="8514746246728959655">የተለየ የደህንነት ቁልፍ ይሞክሩ</translation>
+<translation id="851960115758509829">የእርስዎ መተግበሪያዎች፣ ቅንብሮች እና ሌላ የማበጀት ስራዎች በGoogle መለያዎ በተገቡባቸው መላ የChrome OS መሣሪያዎችዎ ላይ ይሰምራሉ።</translation>
 <translation id="8521475323816527629">በፍጥነት ወደ የእርስዎ መተግበሪያዎች ይሂዱ</translation>
 <translation id="8523493869875972733">ለውጦችን አስቀምጥ</translation>
 <translation id="8523849605371521713">በመመሪያ የታከለ</translation>
@@ -5860,11 +5877,13 @@
 <translation id="885701979325669005">ማከማቻ</translation>
 <translation id="8859057652521303089">ቋንቋዎትን ይምረጡ፦</translation>
 <translation id="8859174528519900719">ንዑስ ክፈፍ፦ <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">የወላጅ መለያ</translation>
 <translation id="8862003515646449717">ወደ ፈጣን አሳሽ ቀይር</translation>
 <translation id="8863753581171631212">አገናኝ በአዲስ <ph name="APP" /> ውስጥ ክፈት</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> ለ <ph name="APP_NAME" /> በማጋራት ላይ</translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> ከዚህ መሣሪያ ላይ ተወግዷል</translation>
 <translation id="8867228703146808825">የግንብ ዝርዝሮችን ወደ ቅንጥብ ሰሌዳ ይቅዱ</translation>
+<translation id="8868333925931032127">የማሳያ ሁነታን በመጀመር ላይ</translation>
 <translation id="8868626022555786497">በጥቅም ላይ</translation>
 <translation id="8870413625673593573">በቅርብ ጊዜ የተዘጉ</translation>
 <translation id="8871551568777368300">በአስተዳዳሪ የተሰካ</translation>
@@ -5943,6 +5962,7 @@
 <translation id="8966870118594285808">በድንገት ከዘጉት ትርን እንደገና ይክፈቱት</translation>
 <translation id="8967866634928501045">ለማሳየት Alt Shift A ይጫኑ</translation>
 <translation id="8968766641738584599">ካርድ አስቀምጥ</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> የእርስዎን የይለፍ ቃላት መፈተሽ አይችልም። ከ24 ሰዓቶች በኋላ እንደገና ይሞክሩ ወይም <ph name="BEGIN_LINK" />በGoogle መለያዎ ውስጥ የይለፍ ቃላትን ይፈትሹ<ph name="END_LINK" />።</translation>
 <translation id="89720367119469899">አምልጥ</translation>
 <translation id="8972513834460200407">ኬላው ከGoogle አገልጋዩች የሚመጡ ውርዶችን እያገደ አለመሆኑን ለማረጋገጥ እባክዎ የአውታረ መረብ አስተዳዳሪዎን ያግኙ።</translation>
 <translation id="8973557916016709913">የማጉላት ደረጃውን ያስወግዱ</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index bb3d8a2e..fee9552 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">الأجهزة المتوفِّرة</translation>
 <translation id="1042174272890264476">‏يأتي جهاز الكمبيوتر أيضًا مزودًا بمكتبة RLZ مضمنة للمنتج <ph name="SHORT_PRODUCT_NAME" />. تعيّن RLZ علامة غير فريدة وغير متعلقة بتحديد الشخصية من أجل قياس عمليات البحث ومعدل استخدام <ph name="SHORT_PRODUCT_NAME" /> الذي تؤثر فيه حملة ترويجية محددة. تظهر هذه التصنيفات أحيانًا في طلبات بحث Google في <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">هل تريد محو البيانات من هذه التطبيقات أيضًا؟</translation>
+<translation id="1045448422538531528">إضافة إلى مجموعة</translation>
 <translation id="1046635659603195359">‏يبدو أنه سبق لك إعداد ميزة Voice Match في "مساعد Google "على جهاز آخر. ويمكن استخدام هذه التسجيلات السابقة لإنشاء نموذج صوتي على هذا الجهاز. ويستغرق ذلك أقل من دقيقة.</translation>
 <translation id="104710386808485638">‏هل تريد إعادة تشغيل نظام التشغيل Linux؟</translation>
 <translation id="1047431265488717055">نسخ ن&amp;ص الرابط</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">حظر الدخول إلى الكاميرا دومًا</translation>
 <translation id="1082398631555931481">‏يريد <ph name="THIRD_PARTY_TOOL_NAME" /> إعادة إعدادات Chrome إلى الحالة التلقائية الأصلية. وسيعمل هذا على إعادة ضبط صفحتك الرئيسية وصفحة علامة التبويب الجديدة ومحرك البحث وسيعطّل إضافاتك ويلغي تثبيت كل علامات التبويب. كما سيزيل البيانات الأخرى المؤقتة والمخبأة، مثل ملفات تعريف الارتباط وبيانات الموقع والمحتوى.</translation>
+<translation id="1084096383128641877">لن تؤدي إزالة كلمة المرور هذه إلى حذف حسابك على <ph name="DOMAIN" />. يُرجى تغيير كلمة المرور أو حذف حسابك على <ph name="DOMAIN_LINK" /> لحمايته من الآخرين.</translation>
 <translation id="1084824384139382525">نسخ &amp;عنوان الرّابط</translation>
 <translation id="1085697365578766383">حدث خطأ أثناء بدء تشغيل الآلة الافتراضية. يُرجى إعادة المحاولة.</translation>
 <translation id="1090126737595388931">ليس هناك تطبيقات خلفية قيد التشغيل</translation>
@@ -83,7 +85,7 @@
 <translation id="1114202307280046356">معيّن</translation>
 <translation id="1114335938027186412">‏يحتوي الكمبيوتر على جهاز أمان الوحدة النمطية للنظام الأساسي الموثوق به (TPM)، والذي يستخدم لتنفيذ العديد من ميزات الأمان المهمة في نظام التشغيل Chrome. ويُمكنك الانتقال إلى مركز مساعدة Chromebook للتعرف على مزيد من المعلومات: https://support.google.com/chromebook/?p=tpm</translation>
 <translation id="1116639326869298217">تعذُّر إثبات هويتك</translation>
-<translation id="1116694919640316211">حول</translation>
+<translation id="1116694919640316211">لمحة عامة</translation>
 <translation id="1116779635164066733">تم فرض هذا الإعداد بواسطة الإضافة "<ph name="NAME" />".</translation>
 <translation id="1118738876271697201">تعذَّر على النظام تحديد طراز الجهاز أو رقمه التسلسلي.</translation>
 <translation id="1119447706177454957">خطأ داخلي</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">تم تفعيل ميزة "تأكيد السلامة" أمس.</translation>
 <translation id="1260451001046713751">السماح دائمًا بعرض النوافذ المنبثقة وعمليات إعادة التوجيه من الموقع <ph name="HOST" /></translation>
 <translation id="126156426083987769">حدثت مشكلة متعلِّقة بتراخيص الجهاز في الوضع التجريبي</translation>
+<translation id="1263490604593716556">تتم إدارة الحساب من خلال <ph name="FIRST_PARENT_EMAIL" /> و<ph name="SECOND_PARENT_EMAIL" />. لتسجيل الخروج من الحساب الأساسي على هذا الجهاز، يُرجى النقر على الوقت الظاهر على الشاشة. في القائمة التي تظهر، يُرجى النقر على "تسجيل الخروج".</translation>
 <translation id="126710816202626562">لغة الترجمة:</translation>
 <translation id="126768002343224824">16 ضعفًا</translation>
 <translation id="1272079795634619415">إيقاف</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">موقع ويب</translation>
 <translation id="15662109988763471">لا تتوفر الطابعة المختارة أو لم يتم تثبيتها بشكلٍ صحيح. يُرجى التحقق من الطابعة أو تجربة اختيار طابعة أخرى.</translation>
 <translation id="1567387640189251553">تم توصيل لوحة مفاتيح مختلفة منذ آخر إدخال لكلمة المرور، وقد يكون ذلك محاولةً لسرقة ضغطات المفاتيح.</translation>
-<translation id="1567750922576943685">يساعد التحقُّق من هويتك في حماية معلوماتك الشخصية</translation>
 <translation id="1567993339577891801">‏وحدة تحكم JavaScript</translation>
 <translation id="1568323446248056064">فتح إعدادات الجهاز للعرض</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (وضع الضيف)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">الفن</translation>
 <translation id="1697686431566694143">تعديل الملف</translation>
 <translation id="1698122934742150150">جلسة التصفح المتخفي الحالية فقط</translation>
-<translation id="1698650002254827833">يتعذّر تحميل قائمة التطبيقات. يُرجى إعادة المحاولة.</translation>
 <translation id="1700079447639026019">المواقع الإلكترونية التي لا يمكنها استخدام ملفات تعريف الارتباط</translation>
 <translation id="1701062906490865540">إزالة هذا الشخص</translation>
 <translation id="1703331064825191675">لا داعي للقلق مطلقًا بشأن كلمات المرور</translation>
@@ -671,7 +672,7 @@
 <translation id="1884013283844450420">الشبكة <ph name="NETWORK_INDEX" /> من <ph name="NETWORK_COUNT" />، الشبكة <ph name="NETWORK_NAME" />، الاتصال</translation>
 <translation id="1886996562706621347">السماح لمواقع الويب بأن تطلب أن تصبح معالجات تلقائية للبروتوكولات (مستحسن)</translation>
 <translation id="1887442540531652736">خطأ في تسجيل الدخول</translation>
-<translation id="1887597546629269384">‏يُرجى قول "Hey Google" مرة أخرى.</translation>
+<translation id="1887597546629269384">‏يُرجى قول "Ok Google" مرة أخرى.</translation>
 <translation id="1887850431809612466">مراجعة الأجهزة</translation>
 <translation id="1890674179660343635">‏&lt;span&gt;رقم التعريف: &lt;/span&gt;<ph name="EXTENSION_ID" /></translation>
 <translation id="189210018541388520">فتح في وضع ملء الشاشة</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">متابعة</translation>
 <translation id="2173302385160625112">يُرجى التحقُّق من اتصال الإنترنت</translation>
 <translation id="2173801458090845390">إضافة معرّف الطلبات إلى هذا الجهاز</translation>
+<translation id="2174948148799307353">تتم إدارة الحساب من خلال <ph name="PARENT_EMAIL" />. لتسجيل الخروج من الحساب الأساسي على هذا الجهاز، يُرجى النقر على الوقت الظاهر على الشاشة. في القائمة التي تظهر، يُرجى النقر على "تسجيل الخروج".</translation>
 <translation id="2175607476662778685">شريط التشغيل السريع</translation>
 <translation id="217576141146192373">تتعذّر إضافة طابعة. يُرجى التحقق من ضبط الطابعة والمحاولة مرة أخرى.</translation>
 <translation id="2177950615300672361">علامة تبويب التصفح المتخفي: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">ظل النص</translation>
 <translation id="2445081178310039857">دليل الجذر للإضافة مطلوب.</translation>
 <translation id="2445484935443597917">إنشاء ملف شخصي جديد</translation>
-<translation id="2446585455334014596">يريد <ph name="APP_NAME" /> إثبات هويتك</translation>
 <translation id="2448312741937722512">النوع</translation>
 <translation id="2450223707519584812">‏لن تتمكن من إضافة المستخدمين لأن مفاتيح واجهة برمجة تطبيقات Google مفقودة. راجع <ph name="DETAILS_URL" /> للحصول على تفاصيل.</translation>
 <translation id="2450849356604136918">ليس هناك أي عروض نشطة</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">انتقل إلى <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">هو متصفح ويب، سريع، وبسيط، وآمن تم إنشاؤه ليتوافق مع إمكانات الويب الحديثة.</translation>
 <translation id="2949289451367477459">‏يمكنك استخدام الموقع الجغرافي. ويمكنك السماح للتطبيقات والخدمات التي تحتوي على إذن تحديد الموقع الجغرافي باستخدام الموقع الجغرافي للجهاز. ويجوز لشركة Google جمع بيانات الموقع الجغرافي بشكلٍ دوري واستخدامها بدون الكشف عن هويتك للمساعدة على تحسين دقة تحديد المواقع الجغرافية والخدمات المستندة إليها. <ph name="BEGIN_LINK1" />مزيد من المعلومات<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">اشتراك</translation>
 <translation id="2956070239128776395">تم دمج القسم في المجموعة: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">عدم السماح لأي مواقع إلكترونية بتعديل الملفات والمجلدات على أجهزتك</translation>
 <translation id="2958721676848865875">تحذير حزمة الإضافة</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">الصورة الرمزية التلقائية الصفراء</translation>
 <translation id="3141318088920353606">جارٍ الاستماع…</translation>
 <translation id="3141917231319778873">الطلب المحدد غير مدعوم على "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">مجموعة جديدة</translation>
 <translation id="3143515551205905069">إلغاء المزامنة</translation>
 <translation id="3143754809889689516">التشغيل من البداية</translation>
 <translation id="3144647712221361880">فتح الرابط كـ</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">بيج</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (مستندة إلى الأجهزة)</translation>
 <translation id="3161522574479303604">كل اللغات</translation>
+<translation id="3162853326462195145">حساب المدرسة</translation>
 <translation id="3162899666601560689">يسمح هذا الإجراء للمواقع الإلكترونية باستخدام ملفات تعريف الارتباط لتحسين تجربة التصفُّح، مثل إبقائك مُسجِّلاً الدخول أو تذكُّر عناصر في سلة التسوق.</translation>
 <translation id="3163201441334626963">المنتج غير معروف <ph name="PRODUCT_ID" /> من المورّد‬ <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">مشاركة علامة التبويب هذه مع <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{تحديث الجهاز خلال يوم واحد}zero{تحديث الجهاز خلال # يوم}two{تحديث الجهاز خلال يومَين}few{تحديث الجهاز خلال # أيام}many{تحديث الجهاز خلال # يومًا}other{تحديث الجهاز خلال # يوم}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - خطأ في الشبكة</translation>
 <translation id="3248902735035392926">الحفاظ على الأمان من أهم أولوياتنا. يُرجى <ph name="BEGIN_LINK" />التحقُّق من الإضافات الآن<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;ليس جزءًا من الشهادة&gt;</translation>
 <translation id="3253225298092156258">غير متاح</translation>
 <translation id="3253448572569133955">حساب غير معروف</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">‏بالنقر على الزر "قبول ومتابعة"، فأنت توافق على المعالجة الموضّحة أعلاه لخدمات Google هذه.</translation>
 <translation id="3399432415385675819">سيتم إيقاف الإشعارات</translation>
 <translation id="3400390787768057815">‏<ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> هرتز) - متداخل</translation>
+<translation id="3402585168444815892">جارٍ التسجيل في "الوضع التجريبي"</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />، <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">لم يتم حفظ أي كلمات مرور لهذا الموقع</translation>
 <translation id="3405664148539009465">تخصيص الخطوط</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">‏هاتف Android</translation>
 <translation id="3470442499439619530">إزالة هذا المستخدم</translation>
 <translation id="3471876058939596279">‏لا يمكن استخدام منافذ USB من نوع C وHDMI لهذا الفيديو في الوقت نفسه. عليك استخدام منفذ فيديو مختلف.</translation>
+<translation id="3473241910002674503">يمكنك الانتقال إلى "مشغّل التطبيقات" والصفحة السابقة والتبديل بين التطبيقات باستخدام أزرار التنقل في وضع الجهاز اللوحي.</translation>
 <translation id="3473479545200714844">مكبّر الشاشة</translation>
 <translation id="3475843873335999118">عذرًا، لا يزال التعرُّف على بصمة الإصبع متعذّرًا. يُرجى إدخال كلمة المرور.</translation>
 <translation id="3476303763173086583">‏يمكنك إرسال بيانات الاستخدام والتشخيص. يمكنك المساعدة في تحسين تجربة نظام التشغيل Android على حسابك الفرعي من خلال إرسال بيانات التطبيق والجهاز والتشخيص تلقائيًا إلى Google. لن يتم استخدام ذلك لتعريف حسابك الفرعي وسيساعد في استقرار عمل النظام والتطبيقات، بالإضافة إلى التحسينات الأخرى. كما ستساعد بعض البيانات المجمّعة تطبيقات Google وشركائها، مثل مطوّري برامج نظام التشغيل Android. ويفرض المالك هذا <ph name="BEGIN_LINK1" />الإعداد<ph name="END_LINK1" />. قد يختار المالك إرسال بيانات الاستخدام والتشخيص لهذا الجهاز إلى Google. في حال تفعيل إعداد "النشاط الإضافي على الويب وفي التطبيقات" لحسابك الفرعي، قد يتم حفظ هذه البيانات في حسابك على Google. <ph name="BEGIN_LINK2" />مزيد من المعلومات<ph name="END_LINK2" /></translation>
@@ -2272,6 +2277,7 @@
 <translation id="3971764089670057203">بصمات الأصابع المُسجلة في مفتاح الأمان هذا</translation>
 <translation id="3973660817924297510">جارٍ التحقّق من كلمات المرور (<ph name="CHECKED_PASSWORDS" /> من <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">تعذّر الاتصال بخادم النطاق</translation>
+<translation id="3975884715086515476">يتعذّر على <ph name="IDS_SHORT_PRODUCT_NAME" /> التحقُّق من كلمات المرور. يُرجى إعادة المحاولة لاحقًا.</translation>
 <translation id="3976108569178263973">لا تتوفر أي طابعات.</translation>
 <translation id="397703832102027365">جارٍ الإنهاء...</translation>
 <translation id="3977886311744775419">لا يتم تنزيل التحديثات التلقائية على نوع الشبكة هذا، ولكن يمكنك التحقق من التحديثات يدويًا.</translation>
@@ -2335,6 +2341,7 @@
 <translation id="4068506536726151626">تحتوي هذه الصفحة على عناصر من المواقع التالية والتي تتتبع موقعك:</translation>
 <translation id="4068776064906523561">بصمات الإصبع المحفوظة</translation>
 <translation id="407173827865827707">عند النقر</translation>
+<translation id="4073520450811433493">مزامنة الإعدادات</translation>
 <translation id="4074900173531346617">شهادة توقيع البريد الإلكتروني</translation>
 <translation id="407520071244661467">تغيير الحجم</translation>
 <translation id="4075639477629295004">يتعذَر إرسال <ph name="FILE_NAME" />.</translation>
@@ -2571,6 +2578,7 @@
 <translation id="4421932782753506458">الانتفاش</translation>
 <translation id="4423376891418188461">استعادة الإعدادات</translation>
 <translation id="442397852638519243">يا <ph name="USER_NAME" />، يطلب منك مشرفك تغيير كلمة المرور.</translation>
+<translation id="4426209360861763174">يتعذّر على <ph name="IDS_SHORT_PRODUCT_NAME" /> التحقُّق من كلمات المرور. يُرجى إعادة المحاولة بعد 24 ساعة.</translation>
 <translation id="4429030830601238961">تنتهك هذه البيانات سياسات أمان مؤسستك ولا يمكن لصقها.</translation>
 <translation id="4430019312045809116">مستوى الصوت</translation>
 <translation id="4430369329743628066">تمت إضافة إشارة</translation>
@@ -2583,6 +2591,7 @@
 <translation id="4441124369922430666">هل ترغب في تشغيل هذا التطبيق تلقائيًا عند تشغيل الجهاز؟</translation>
 <translation id="4441147046941420429">للمواصلة، يُرجى إزالة مفتاح الأمان من جهازك، ثم إعادة إدخاله ولمسه.</translation>
 <translation id="444134486829715816">توسيع...</translation>
+<translation id="4442329324652245220">‏لا يستطيع <ph name="IDS_SHORT_PRODUCT_NAME" /> التحقّق من كلمات المرور إلا عند تسجيل الدخول باستخدام حسابك على Google.</translation>
 <translation id="4442424173763614572">تعذّر البحث في نظام أسماء النطاقات</translation>
 <translation id="4443536555189480885">&amp;تعليمات</translation>
 <translation id="4444304522807523469">‏الدخول إلى الماسحات الضوئية للمستند الملحق عبر جهاز USB أو على الشبكة المحلية</translation>
@@ -2609,11 +2618,13 @@
 <translation id="4476659815936224889">لمسح هذا الرمز، يمكنك استخدام تطبيق ماسح رمز الاستجابة السريعة على هاتفك أو بعض تطبيقات الكاميرا.</translation>
 <translation id="4477015793815781985">‏يرجى تضمين مفتاح Ctrl أو Alt أو ⌘.</translation>
 <translation id="4478664379124702289">حفظ الار&amp;تباط باسم...</translation>
+<translation id="4478777936860197922">ما مِن كلمات مرور محفوظة. لا يستطيع <ph name="IDS_SHORT_PRODUCT_NAME" /> التحقّق من كلمات المرور إلا عند حفظها.</translation>
 <translation id="4479424953165245642">‏إدارة تطبيقات Kiosk</translation>
 <translation id="4479639480957787382">إيثرنت</translation>
 <translation id="4479877282574735775">جارٍ ضبط الآلة الافتراضية. قد يستغرق ذلك بضع دقائق.</translation>
 <translation id="4480590691557335796">‏يمكن لـ Chrome العثور على البرامج الضارة على جهاز الكمبيوتر وإزالتها.</translation>
 <translation id="4481530544597605423">الأجهزة التي تم إلغاء إقرانها</translation>
+<translation id="4488107067273194838">مراجعة خيارات مزامنة المتصفّح بعد الإعداد</translation>
 <translation id="4488502501195719518">هل تريد محو جميع البيانات؟</translation>
 <translation id="4495419450179050807">عدم الظهور في هذه الصفحة</translation>
 <translation id="4496054781541092778">تم حظر إذن <ph name="PERMISSION" /> تلقائيًا.</translation>
@@ -2641,7 +2652,7 @@
 <translation id="452750746583162491">مراجعة البيانات المتزامنة</translation>
 <translation id="4530494379350999373">الأصل</translation>
 <translation id="4532646538815530781">تم السماح لموقع الويب هذا باستخدام مستشعرات الحركة.</translation>
-<translation id="4533846798469727141">‏الآن، يُرجى قول "Hey Google"</translation>
+<translation id="4533846798469727141">‏الآن، يُرجى قول "Ok Google"</translation>
 <translation id="4533985347672295764">وقت وحدة المعالجة المركزية</translation>
 <translation id="4534661889221639075">يُرجى إعادة المحاولة.</translation>
 <translation id="4535127706710932914">الملف الشخصي التلقائي</translation>
@@ -2855,6 +2866,7 @@
 <translation id="4849517651082200438">عدم التثبيت</translation>
 <translation id="4850669014075537160">التمرير</translation>
 <translation id="4850886885716139402">عرض</translation>
+<translation id="485197095346966382">في حال تسجيل الدخول باستخدام كلمة مرور محتمَل تعرّضها للاختراق، سيرسل <ph name="IDS_SHORT_PRODUCT_NAME" /> إشعارًا إليك.</translation>
 <translation id="4853020600495124913">فتح في &amp;نافذة جديدة</translation>
 <translation id="4854317507773910281">اختَر حساب أحد الوالدَين للحصول على موافقة.</translation>
 <translation id="485480310608090163">المزيد من الإعدادات والأذونات</translation>
@@ -2873,6 +2885,7 @@
 <translation id="4871322859485617074">يحتوي رقم التعريف الشخصي على أحرف غير صالحة</translation>
 <translation id="4871370605780490696">إضافة إشارة مرجعية</translation>
 <translation id="4871719318659334896">إغلاق المجموعة</translation>
+<translation id="4871852311166078968">إضافة إلى مجموعة</translation>
 <translation id="4873312501243535625">مدقق ملف الوسائط</translation>
 <translation id="4876273079589074638">ساعد مهندسينا في تحري هذا العطل وإصلاحه. واسرد الخطوات الدقيقة إذا كان ذلك ممكنًا. لا توجد تفاصيل صغيرة جدًا!</translation>
 <translation id="4876895919560854374">قفل الشاشة وإلغاء قفلها</translation>
@@ -2964,7 +2977,6 @@
 <translation id="4992473555164495036">لقد قيّد المشرف طرق الإدخال المتاحة.</translation>
 <translation id="4994474651455208930">السماح لمواقع الويب بأن تطلب أن تصبح معالجات تلقائية للبروتوكولات</translation>
 <translation id="4994754230098574403">الإعداد</translation>
-<translation id="4996978546172906250">المشاركة عن طريق</translation>
 <translation id="4997086284911172121">لا يتوفر اتصال بالإنترنت.</translation>
 <translation id="4997384734315285248">‏إلغاء تثبيت Plugin VM</translation>
 <translation id="4998430619171209993">مفعّل</translation>
@@ -3064,7 +3076,6 @@
 <translation id="5135085122826131075">‏الوصول إلى "مساعد Google" عند قول "Ok Google"</translation>
 <translation id="5135533361271311778">تعذر إنشاء عنصر إشارة.</translation>
 <translation id="5137501176474113045">حذف هذا العنصر</translation>
-<translation id="5138982052046316113">‏تغيير حجم قرص نظام التشغيل Linux</translation>
 <translation id="5139112070765735680">البحث عن <ph name="QUERY_NAME" /> في <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">يُرجى إدخال رقم التعريف الشخصي لمفتاح الأمان. في حال كنت لا تعرف رقم التعريف الشخصي، عليك إعادة ضبط مفتاح الأمان.</translation>
 <translation id="5139955368427980650">ف&amp;تح</translation>
@@ -3517,6 +3528,7 @@
 <translation id="5739235828260127894">في انتظار التحقُّق من صحة الاتصال. <ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">كبير جدًا</translation>
 <translation id="574209121243317957">درجة الصوت</translation>
+<translation id="5745136023067925867">يمكنك الحصول على آخر التحديثات والنصائح والعروض لجهاز <ph name="DEVICE_TYPE" /> ومشاركة التعليقات.</translation>
 <translation id="5746169159649715125">‏حفظ بتنسيق ملف PDF</translation>
 <translation id="5747552184818312860">تاريخ انتهاء الصلاحية</translation>
 <translation id="5747785204778348146">المطوّر - غير ثابت</translation>
@@ -3930,7 +3942,6 @@
 <translation id="6291953229176937411">إ&amp;ظهار في الباحث</translation>
 <translation id="6295158916970320988">جميع المواقع</translation>
 <translation id="6295855836753816081">جارٍ الحفظ...</translation>
-<translation id="629730747756840877">الحساب</translation>
 <translation id="6298962879096096191">‏استخدام Google Play لتثبيت تطبيقات Android</translation>
 <translation id="630065524203833229">إن&amp;هاء</translation>
 <translation id="6300718114348072351">تعذّر ضبط <ph name="PRINTER_NAME" /> تلقائيًا. يُرجى تحديد التفاصيل المتقدّمة للطابعة. <ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation>
@@ -4336,7 +4347,6 @@
 <translation id="6865598234501509159">الصفحة ليست باللغة <ph name="LANGUAGE" />.</translation>
 <translation id="6865708901122695652">‏سجلّات أحداث WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">درجة حرارة الألوان</translation>
-<translation id="6870888490422746447">اختيار تطبيق للمشاركة في:</translation>
 <translation id="6871644448911473373">‏مستجيب OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">رفض الخادم كلمة المرور التي أدخلتَها.</translation>
 <translation id="6876155724392614295">دراجة</translation>
@@ -4429,6 +4439,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - سجلّ الأنشطة</translation>
 <translation id="6997707937646349884">على أجهزتك:</translation>
 <translation id="6998793565256476099">تسجيل الجهاز لمؤتمر الفيديو</translation>
+<translation id="6999956497249459195">مجموعة جديدة</translation>
 <translation id="7000206553895739324">تم توصيل <ph name="PRINTER_NAME" /> ولكنها بحاجة إلى الضبط</translation>
 <translation id="7000347579424117903">‏تضمين مفتاحي Ctrl، أو Alt، أو مفتاح البحث</translation>
 <translation id="7001036685275644873">‏الاحتفاظ بنسخة احتياطية من تطبيقات وملفات Linux</translation>
@@ -4479,7 +4490,7 @@
 <translation id="7063957500469387217">‏إعداد الطابعات أو إدارتها في الطباعة السحابية من Google.</translation>
 <translation id="7064734931812204395">‏جارٍ إعداد حاوية نظام التشغيل Linux. قد تستغرق عملية الإعداد ما يصل إلى 30 دقيقة.</translation>
 <translation id="7065223852455347715">تم قفل هذا الجهاز في وضع يمنع التسجيل في المؤسسة.  إذا كنت ترغب في تسجيل الجهاز، ينبغي تنفيذ إجراءات استرداد الجهاز أولاً.</translation>
-<translation id="7065534935986314333">حول النظام</translation>
+<translation id="7065534935986314333">لمحة عامة عن النظام</translation>
 <translation id="706626672220389329">حدث خطأ في تحميل المشاركة. تم تحميل المشاركة المُحدّدة من قبل.</translation>
 <translation id="7066944511817949584">تعذّر الاتصال بـ "<ph name="DEVICE_NAME" />".</translation>
 <translation id="7067396782363924830">الألوان المحيطة</translation>
@@ -4727,6 +4738,7 @@
 <translation id="7400418766976504921">‏عنوان URL</translation>
 <translation id="7400839060291901923">إعداد الاتصال على جهاز <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">رفض هذه الرسالة</translation>
+<translation id="7403642243184989645">جارٍ تنزيل موارد</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{تم تفعيل ميزة "تأكيد السلامة" قبل ساعة واحدة.}zero{تم تفعيل ميزة "تأكيد السلامة" قبل {NUM_HOURS} ساعة.}two{تم تفعيل ميزة "تأكيد السلامة" قبل ساعتَين ({NUM_HOURS}).}few{تم تفعيل ميزة "تأكيد السلامة" قبل {NUM_HOURS} ساعات.}many{تم تفعيل ميزة "تأكيد السلامة" قبل {NUM_HOURS} ساعة.}other{تم تفعيل ميزة "تأكيد السلامة" قبل {NUM_HOURS} ساعة.}}</translation>
 <translation id="740624631517654988">تم منع النوافذ المنبثقة.</translation>
 <translation id="7407430846095439694">الاستيراد والربط</translation>
@@ -4963,6 +4975,7 @@
 <translation id="7716781361494605745">‏عنوان URL لسياسة المرجع المصدق لـ Netscape</translation>
 <translation id="7717014941119698257">تنزيل: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">البحث عن تحديثات</translation>
+<translation id="7719070594859855691">منح الإذن بالوصول إلى الكاميرا</translation>
 <translation id="7719367874908701697">تكبير/تصغير الصفحة</translation>
 <translation id="7721179060400456005">السماح للنوافذ بتوحيد العروض</translation>
 <translation id="7722040605881499779">المساحة اللازمة لإجراء التحديث: <ph name="NECESSARY_SPACE" /></translation>
@@ -4977,7 +4990,6 @@
 <translation id="7744047395460924128">الاطّلاع على سجلّ الطباعة</translation>
 <translation id="7744192722284567281">تم العثور عليها في عملية اختراق البيانات.</translation>
 <translation id="7750228210027921155">نافذة ضمن النافذة</translation>
-<translation id="7751229152614300329">تم تفعيل التصفّح الآمن لحمايتك من عمليات التنزيل والمواقع الإلكترونية الضارة.</translation>
 <translation id="7751260505918304024">عرض الكل</translation>
 <translation id="7754704193130578113">السؤال عن مكان حفظ الملفّات قبل التحميل</translation>
 <translation id="7755287808199759310">قد يلغي والداك الحظر لك</translation>
@@ -4996,7 +5008,7 @@
 <translation id="7770651108375708429">‏قطع الاتصال بشبكة Wi-Fi</translation>
 <translation id="7771452384635174008">تخطيط</translation>
 <translation id="7772032839648071052">تأكيد عبارة المرور</translation>
-<translation id="7772127298218883077">حول <ph name="PRODUCT_NAME" /></translation>
+<translation id="7772127298218883077">لمحة عامة عن <ph name="PRODUCT_NAME" /></translation>
 <translation id="7772773261844472235">‏التحقق من حالة جهاز Chromebook</translation>
 <translation id="7773726648746946405">مساحة تخزين الجلسة</translation>
 <translation id="7774365994322694683">طائر</translation>
@@ -5065,6 +5077,7 @@
     <ph name="BEGIN_BOLD" />ملاحظة:<ph name="END_BOLD" />  ستتم إعادة تشغيل النظام أثناء العملية.</translation>
 <translation id="7828731929332799387">سيؤدي هذا إلى حذف جميع ملفات تعريف الارتباط وبيانات الموقع الإلكتروني المتوفرة في سياقات تابعة لجهات خارجية. هل تريد المواصلة؟</translation>
 <translation id="7829298379596169484">جارٍ الوصول إلى إدخال الصوت</translation>
+<translation id="7829528495815477379">يتعذّر على <ph name="IDS_SHORT_PRODUCT_NAME" /> التحقُّق من كلمات المرور. يُرجى التحقّق من اتصال الإنترنت.</translation>
 <translation id="7829877209233347340">اطلب من أحد الوالدَين تسجيل الدخول لمنح إذن إضافة حساب المدرسة.</translation>
 <translation id="7830594666202422257">‏الربط بنظام التشغيل Linux</translation>
 <translation id="7831491651892296503">حدث خطأ أثناء تهيئة الشبكة</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">‏تثبيت متجر Google Play على <ph name="DEVICE_TYPE" />. قد يستغرق ذلك بضع دقائق.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{ليس هناك ملفات تعريف ارتباط تابعة لجهات خارجية}=1{تم حظر ملف تعريف ارتباط واحد تابع لجهات خارجية}two{تم حظر ملفَي تعريف ارتباط تابعَين لجهات خارجية}few{تم حظر # ملفات تعريف ارتباط تابعة لجهات خارجية}many{تم حظر # ملف تعريف ارتباط تابع لجهات خارجية}other{تم حظر # ملف تعريف ارتباط تابع لجهات خارجية}}</translation>
 <translation id="810875025413331850">لم يتم العثور على أجهزة مجاورة.</translation>
+<translation id="8114199541033039755">‏يمكنك الانتقال إلى "مشغّل التطبيقات" والصفحة السابقة والتبديل بين التطبيقات باستخدام أزرار التنقل في وضع الجهاز اللوحي. ويتم إظهاره عند تفعيل ChromeVox أو "النقرات التلقائية".</translation>
 <translation id="8114875720387900039">تقسيم أفقي</translation>
 <translation id="8116972784401310538">م&amp;دير الإشارات</translation>
 <translation id="8117620576188476503">‏يمكنك إدارة الاتصالات والتحديثات والإعدادات من خلال شريط الحالة. وللوصول إلى هنا من خلال لوحة المفاتيح، اضغط على Alt + Shift + S.</translation>
@@ -5406,6 +5420,7 @@
 <translation id="8263744495942430914">أوقف <ph name="FULLSCREEN_ORIGIN" /> مؤشر الماوس.</translation>
 <translation id="8264024885325823677">يتولى مشرفك إدارة هذا الإعداد.</translation>
 <translation id="8264718194193514834">شغّلت الإضافة <ph name="EXTENSION_NAME" /> وضع ملء الشاشة.</translation>
+<translation id="826511437356419340">‏تم الدخول إلى وضع "النظرة العامة على النافذة". مرّر سريعًا للتنقُّل أو اضغط على مفتاح التبويب (Tab) في حال كنت تستخدم لوحة المفاتيح.</translation>
 <translation id="8267961145111171918">‏<ph name="BEGIN_PARAGRAPH1" />هذه معلومات عامة حول هذا الجهاز وكيفية استخدامه (مثل مستوى طاقة البطارية والأخطاء التي حدثت بالإضافة إلى العمليات التي تمّت داخل النظام والتطبيقات). وسيتم استخدام البيانات في تحسين Android، كما تساعد بعض المعلومات المجمّعة تطبيقات Google وشركائها، مثل مطوّري برامج Android، لتحسين أداء تطبيقاتهم ومنتجاتهم.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />لن يؤثر إيقاف هذه الميزة في قدرة هذا الجهاز على إرسال المعلومات المطلوبة للحصول على خدمات أساسية، مثل تحديثات النظام والأمان.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />يمكن للمالك التحكُّم في هذه الميزة من "الإعدادات" &gt; "إعدادات متقدمة" &gt; إرسال بيانات التشخيص والاستخدام إلى Google تلقائيًا.<ph name="END_PARAGRAPH3" />
@@ -5514,6 +5529,7 @@
 <translation id="8426713856918551002">جارٍ التفعيل</translation>
 <translation id="8427292751741042100">مضمن في أي مضيف</translation>
 <translation id="8428213095426709021">الإعدادات</translation>
+<translation id="8428271547607112339">إضافة حساب المدرسة</translation>
 <translation id="8428628598981198790">لا يمكن استخدام مفتاح الأمان مع هذا الموقع الإلكتروني</translation>
 <translation id="84297032718407999">سيتم تسجيل خروجك خلال <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="8431190899827883166">عرض النقرات</translation>
@@ -5577,6 +5593,7 @@
 <translation id="851263357009351303">السماح للموقع <ph name="HOST" /> بعرض الصور دومًا</translation>
 <translation id="8513108775083588393">التدوير تلقائي</translation>
 <translation id="8514746246728959655">تجربة مفتاح أمان آخر</translation>
+<translation id="851960115758509829">‏ستتم مزامنة التطبيقات والإعدادات وعمليات التخصيص الأخرى على جميع الأجهزة التي تعمل بـ "نظام التشغيل Chrome" التي سجّلت الدخول عليها باستخدام حسابك على Google.</translation>
 <translation id="8521475323816527629">الوصول إلى تطبيقاتك بسرعة</translation>
 <translation id="8523493869875972733">الإبقاء على التغييرات</translation>
 <translation id="8523849605371521713">تمت الإضافة من قبل السياسة</translation>
@@ -5858,11 +5875,13 @@
 <translation id="885701979325669005">التخزين</translation>
 <translation id="8859057652521303089">حدد لغتك:</translation>
 <translation id="8859174528519900719">هيكل سفلي: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">حساب أحد الوالدَين</translation>
 <translation id="8862003515646449717">التبديل إلى متصفح سريع</translation>
 <translation id="8863753581171631212">فتح الرابط في نافذة جديدة في <ph name="APP" /></translation>
 <translation id="8864055848767439877">جارٍ مشاركة <ph name="TAB_NAME" /> مع <ph name="APP_NAME" />.</translation>
 <translation id="8864458770072227512">تمت إزالة <ph name="EMAIL" /> من هذا الجهاز.</translation>
 <translation id="8867228703146808825">نسخ تفاصيل الإصدار إلى الحافظة</translation>
+<translation id="8868333925931032127">جارٍ بدء "الوضع التجريبي"</translation>
 <translation id="8868626022555786497">قيد الاستخدام</translation>
 <translation id="8870413625673593573">العناصر المغلقة مؤخرًا</translation>
 <translation id="8871551568777368300">تم التثبيت من قبل المشرف</translation>
@@ -5941,6 +5960,7 @@
 <translation id="8966870118594285808">إعادة فتح علامة تبويب في حال إغلاقها عن طريق الخطأ</translation>
 <translation id="8967866634928501045">‏يُرجى الضغط على Alt+Shift+A للعرض.</translation>
 <translation id="8968766641738584599">حفظ البطاقة</translation>
+<translation id="8971800409073702505">‏يتعذّر على <ph name="IDS_SHORT_PRODUCT_NAME" /> التحقُّق من كلمات المرور. يُرجى إعادة المحاولة بعد 24 ساعة أو <ph name="BEGIN_LINK" />التحقُّق من كلمات المرور في حسابك على Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">خروج</translation>
 <translation id="8972513834460200407">‏يُرجى التحقق مع مشرف الشبكة للتأكد من عدم حظر الجدار الناري للتنزيلات من خوادم Google.</translation>
 <translation id="8973557916016709913">إزالة مستوى التكبير أو التصغير</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index f26b09891..824efe10 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">উপলব্ধ ডিভাইচসমূ্হ</translation>
 <translation id="1042174272890264476">আপোনাৰ কম্পিউটাৰৰ সৈতে <ph name="SHORT_PRODUCT_NAME" />ৰ RLZ লাইব্ৰেৰী অন্তনিৰ্মিত ভাৱে আছে। কোনো বিশেষ প্ৰচাৰ অভিযানত ব্যৱহাৰ হোৱা সন্ধান আৰু <ph name="SHORT_PRODUCT_NAME" />ৰ ব্যৱহাৰ জুখিবলৈ RLZএ কোনো অদ্বৈত নোহোৱা, ব্যক্তিগতভাৱে চিনাক্ত কৰিব নোৱাৰা টেগ দিয়ে। এই লেবেলসমূহ কেতিয়াবা <ph name="PRODUCT_NAME" />ৰ Google Searchত কৰা সন্ধানত প্ৰদর্শিত হয়।</translation>
 <translation id="1043818413152647937">লগতে এই এপ্‌সমূহৰ পৰা ডেটা মচিবনে?</translation>
+<translation id="1045448422538531528">গোটত যোগ দিয়ক</translation>
 <translation id="1046635659603195359">আপুনি কোনো অন্য ডিভাইচত আপোনাৰ Google Assistantৰ বাবে ইতিমধ্যে কণ্ঠস্বৰ মিলোৱা সুবিধাটো ছেট আপ কৰি থোৱা যেন লাগিছে। পূৰ্বৰ এই ৰেকর্ডিংবোৰ এই ডিভাইচটোত এটা কণ্ঠস্বৰৰ ম’ডেল বনাবলৈ ব্যৱহাৰ কৰিব পাৰি। এই কার্যৰ বাবে এক মিনিটতকৈও কম সময়ৰ প্ৰয়োজন হ’ব লাগে।</translation>
 <translation id="104710386808485638">Linux ৰিষ্টাৰ্ট কৰিবনে?</translation>
 <translation id="1047431265488717055">লিংক আৰু পা&amp;ঠ প্ৰতিলিপি কৰক</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">সদায় কেমেৰাৰ এক্সেছ অৱৰোধ কৰক</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" />এ আপোনাৰ Chromeৰ ছেটিংসমূহ সেইটোৰ প্ৰকৃত ডিফ'ল্টলৈ পুনৰুদ্ধাৰ কৰিব বিচাৰে। এইটোৱে আপোনাৰ গৃহপৃষ্ঠা, নতুন টেবযুক্ত পৃষ্ঠা আৰু সন্ধান ইঞ্জিন ৰিছেট কৰিব, আপোনাৰ এক্সটেনশ্বনবোৰ অক্ষম কৰিব আৰু সকলো টেব আনপিন কৰিব। এইটোৱে লগতে কুকি, সমল আৰু ছাইটৰ ডেটাৰ দৰে অন্য সাময়িক আৰু কেশ্ব ডেটা মচিব।</translation>
+<translation id="1084096383128641877">এই পাছৱর্ডটো আঁতৰোৱাৰ ফলত <ph name="DOMAIN" />ত থকা আপোনাৰ একাউণ্টটো মচা নাযায়। অন্য লোকসকলৰ পৰা আপোনাৰ একাউণ্টটো সুৰক্ষিত কৰিবলৈ আপোনাৰ পাছৱর্ড সলনি কৰক অথবা <ph name="DOMAIN_LINK" />ত আপোনাৰ একাউণ্টটো মচক।</translation>
 <translation id="1084824384139382525">লিংকৰ ঠি&amp;কনা প্ৰতিলিপি কৰক</translation>
 <translation id="1085697365578766383">ভাৰ্চুৱেল মেচিন আৰম্ভ কৰাত আসোঁৱাহ হৈছে৷ অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক।</translation>
 <translation id="1090126737595388931">নেপথ্যত কোনো এপ্ চলি থকা নাই</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">কালি সুৰক্ষা পৰীক্ষা চলোৱা হৈছে</translation>
 <translation id="1260451001046713751">পপ-আপ আৰু <ph name="HOST" />ৰ পৰা অহা ৰিডাইৰেক্টক সদায় অনুমতি দিয়ক</translation>
 <translation id="126156426083987769">ডেম’ ম’ড ডিভাইচ অনুজ্ঞাপত্ৰত কিবা সমস্যা হৈছে।</translation>
+<translation id="1263490604593716556"><ph name="FIRST_PARENT_EMAIL" /> আৰু <ph name="SECOND_PARENT_EMAIL" />এ একাউণ্ট পৰিচালনা কৰে। এই ডিভাইচটোৰ প্ৰাথমিক একাউণ্টটোৰ পৰা ছাইন আউট কৰিবলৈ আপোনাৰ স্ক্রীনত থকা সময়ত ক্লিক কৰক। তাত ওলোৱা মেনুখনৰ "ছাইন আউট কৰক"ত ক্লিক কৰক।</translation>
 <translation id="126710816202626562">অনুবাদৰ ভাষা:</translation>
 <translation id="126768002343224824">১৬x</translation>
 <translation id="1272079795634619415">বন্ধ কৰক</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">ৱেবছাইট</translation>
 <translation id="15662109988763471">বাছনি কৰা প্ৰিণ্টাৰটো উপলব্ধ নহয় বা সঠিককৈ ইনষ্টল কৰা হোৱা নাই। আপোনাৰ প্ৰিণ্টাৰটো পৰীক্ষা কৰক বা অন্য এটা প্ৰিণ্টাৰ বাছনি কৰি চাওক।</translation>
 <translation id="1567387640189251553">আপুনি শেষৰবাৰ পাছৱৰ্ড দিয়াৰ পিছত অন্য এখন কীব’ৰ্ড সংযোগ কৰা হৈছিল। ই হয়তো আপোনাৰ কীষ্ট্ৰ’কবোৰ চুৰ কৰাৰ চেষ্টা কৰি আছে।</translation>
-<translation id="1567750922576943685">আপোনাৰ পৰিচয় সত্যাপন কৰা কার্যয়ে আপোনাৰ ব্যক্তিগত তথ্য সুৰক্ষিত কৰাত সহায় কৰে</translation>
 <translation id="1567993339577891801">JavaScriptৰ কনছ’ল</translation>
 <translation id="1568323446248056064">ডিভাইচৰ ডিছপ্লে’ ছেটিংসমূহ খোলক</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (অতিথি)</translation>
@@ -516,7 +518,6 @@
 <translation id="1697150536837697295">কলা</translation>
 <translation id="1697686431566694143">ফাইল সম্পাদনা কৰক</translation>
 <translation id="1698122934742150150">কেৱল বর্তমানৰ ইনক’গনিট’ ছেশ্বন</translation>
-<translation id="1698650002254827833">এপৰ সূচীখন ল’ড কৰিব নোৱাৰি। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক।</translation>
 <translation id="1700079447639026019">কেতিয়াও কুকিসমূহ ব্যৱহাৰ কৰিব নোৱৰা ছাইটসমূহ</translation>
 <translation id="1701062906490865540">এই লোকজনক আঁতৰাওক</translation>
 <translation id="1703331064825191675">আপোনাৰ পাছৱৰ্ডসমূহক লৈ কেতিয়াও চিন্তিত নহ’ব</translation>
@@ -870,6 +871,7 @@
 <translation id="2172784515318616985">অব্যাহত ৰাখক</translation>
 <translation id="2173302385160625112">আপোনাৰ ইণ্টাৰনেট সংযোগ পৰীক্ষা কৰক</translation>
 <translation id="2173801458090845390">এই ডিভাইচত প্ৰয়োজনীয় ID যোগ কৰক</translation>
+<translation id="2174948148799307353"><ph name="PARENT_EMAIL" />এ একাউণ্ট পৰিচালনা কৰে। এই ডিভাইচটোৰ প্ৰাথমিক একাউণ্টটোৰ পৰা ছাইন আউট কৰিবলৈ আপোনাৰ স্ক্রীনত থকা সময়ত ক্লিক কৰক। তাত ওলোৱা মেনুখনৰ "ছাইন আউট কৰক"ত ক্লিক কৰক।</translation>
 <translation id="2175607476662778685">দ্ৰুত লঞ্চ বাৰ</translation>
 <translation id="217576141146192373">প্ৰিণ্টাৰটো যোগ কৰিব পৰা নগ’ল। অনুগ্ৰহ কৰি আপোনাৰ প্ৰিণ্টাৰটোৰ কনফিগাৰেশ্বন পৰীক্ষা কৰি পুনৰ চেষ্টা কৰক।</translation>
 <translation id="2177950615300672361">ইনক'গনিট' টেব: <ph name="TAB_NAME" /></translation>
@@ -1078,7 +1080,6 @@
 <translation id="2442916515643169563">পাঠৰ ছাঁ</translation>
 <translation id="2445081178310039857">এক্সটেনশ্বন ৰুট ডাইৰেক্টৰীৰ প্ৰয়োজন।</translation>
 <translation id="2445484935443597917">এটা নতুন প্ৰ’ফাইল সৃষ্টি কৰক</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" />এ আপোনাৰ পৰিচয় সত্যাপন কৰিব খোজে</translation>
 <translation id="2448312741937722512">প্রকাৰ</translation>
 <translation id="2450223707519584812">Google API চাবিসমূহ নথকাৰ বাবে আপুনি ব্যৱহাৰকাৰীক যোগ দিব নোৱাৰিব। সবিশেষৰ বাবে <ph name="DETAILS_URL" /> চাওক।</translation>
 <translation id="2450849356604136918">কোনো সক্ৰিয় ভিউ নাই</translation>
@@ -1476,6 +1477,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" />লৈ যাওক</translation>
 <translation id="29488703364906173">আধুনিক ৱেবৰ বাবে নির্মিত এক ক্ষিপ্ৰ, সৰল আৰু সুৰক্ষিত ৱেব ব্ৰাউজাৰ।</translation>
 <translation id="2949289451367477459">অৱস্থান ব্যৱহাৰ কৰক। অৱস্থানৰ অনুমতি থকা এপ্ আৰু সেৱাসমূহক এই ডিভাইচৰ অৱস্থান ব্যৱহাৰ কৰিবলৈ দিয়ক। Googleএ মাজে সময়ে অৱস্থানৰ তথ্য সংগ্ৰহ কৰিব পাৰে আৰু সেই ডেটা অৱস্থানৰ সঠিকতা উন্নত কৰিবলৈ আৰু অৱস্থান ভিত্তিক সেৱাসমূহৰ উৎকৰ্ষ সাধন কৰিবলৈ নামবিহীনভাৱে ব্যৱহাৰ কৰিব পাৰে। <ph name="BEGIN_LINK1" />অধিক জানক<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">মোক ছাইন আপ কৰাওক</translation>
 <translation id="2956070239128776395">শাখা গোটত অন্তর্ভুক্ত কৰা হৈছে: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">কোনো ছাইটকে আপোনাৰ ডিভাইচৰ ফাইল আৰু ফ’ল্ডাৰসমূহ সম্পাদনা কৰিবলৈ অনুমতি নিদিব</translation>
 <translation id="2958721676848865875">পেক এক্সটেনশ্বনৰ সতৰ্কবাণী</translation>
@@ -1600,6 +1602,7 @@
 <translation id="3139925690611372679">ডিফ’ল্ট হালধীয়া অৱতাৰ</translation>
 <translation id="3141318088920353606">শুনি আছে…</translation>
 <translation id="3141917231319778873">প্ৰদত্ত অনুৰোধটো ইয়াত সমৰ্থিত নহয়: "<ph name="DEVICE_NAME" />"।</translation>
+<translation id="3142562627629111859">নতুন গোট</translation>
 <translation id="3143515551205905069">ছিংক বাতিল কৰক</translation>
 <translation id="3143754809889689516">আৰম্ভণিৰ পৰা প্লে’ কৰক</translation>
 <translation id="3144647712221361880">লিংকটো এই হিচাপে খোলক</translation>
@@ -1624,6 +1627,7 @@
 <translation id="3159493096109238499">মুগা-চানেকীয়া</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (হাৰ্ডৱেৰ-সমৰ্থিত)</translation>
 <translation id="3161522574479303604">সকলো ভাষা</translation>
+<translation id="3162853326462195145">বিদ্যালয় একাউণ্ট</translation>
 <translation id="3162899666601560689">ছাইটসমূহে আপোনাৰ ব্ৰাউজিঙৰ অভিজ্ঞতা উন্নত কৰিবলৈ কুকিসমূহ ব্যৱহাৰ কৰিব পাৰে, যেনে, আপোনাক ছাইন ইন কৰি ৰাখিবলৈ অথবা আপোনাৰ শ্বপিং কার্টত থকা বস্তুবোৰ মনত ৰাখিবলৈ</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" />ৰ অজ্ঞাত প্ৰডাক্ট <ph name="PRODUCT_ID" /></translation>
 <translation id="3164329792803560526"><ph name="APP_NAME" />লৈ এই টেবটো শ্বেয়াৰ কৰি থকা হৈছে</translation>
@@ -1682,7 +1686,6 @@
 <translation id="3246107497225150582">{0,plural, =1{এদিনৰ ভিতৰত ডিভাইচটো আপডে’ট কৰক}one{# দিনৰ ভিতৰত ডিভাইচটো আপডে’ট কৰক}other{# দিনৰ ভিতৰত ডিভাইচটো আপডে’ট কৰক}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - নেটৱৰ্কৰ আসোঁৱাহ</translation>
 <translation id="3248902735035392926">সুৰক্ষা বিষয়টো গুৰুত্বপূৰ্ণ। <ph name="BEGIN_LINK" />এতিয়া আপোনাৰ এক্সটেনশ্বনসমূহ পৰীক্ষা কৰিবলৈ<ph name="END_LINK" /> কিছু সময় খৰচ কৰক</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;প্ৰমাণপত্ৰৰ অংশ নহয়&gt;</translation>
 <translation id="3253225298092156258">উপলব্ধ নহয়</translation>
 <translation id="3253448572569133955">অজ্ঞাত একাউণ্ট</translation>
@@ -1787,6 +1790,7 @@
 <translation id="3396800784455899911">“মই সন্মত আৰু অব্যাহত ৰাখক” বুটামত ক্লিক কৰি আপুনি ওপৰত বৰ্ণনা কৰাৰ এই Google সেৱাসমূহৰ প্ৰক্ৰিয়াত সন্মতি দিছে।</translation>
 <translation id="3399432415385675819">জাননী অক্ষম কৰা হ’ব</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> হাৰ্টজ) - একত্ৰিত</translation>
+<translation id="3402585168444815892">ডেম’ ম’ডত পঞ্জীয়ন কৰি থকা হৈছে</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">এই ছাইটটোৰ বাবে কোনো পাছৱৰ্ড ছেভ কৰি থোৱা নাই</translation>
 <translation id="3405664148539009465">ফ’ণ্ট কাষ্টমাইজ কৰক</translation>
@@ -1848,6 +1852,7 @@
 <translation id="3468999815377931311">Android ফ’ন</translation>
 <translation id="3470442499439619530">ব্যৱহাৰকাৰীক আঁতৰাওক</translation>
 <translation id="3471876058939596279">ভিডিঅ’ৰ বাবে HDMI আৰু ইউএছবি Type-C প’ৰ্টসমূহ একে সময়তে ব্যৱহাৰ কৰিব নোৱাৰি। বেলেগ এটা ভিডিঅ’ প’ৰ্ট ব্যৱহাৰ কৰক।</translation>
+<translation id="3473241910002674503">টেবলেট ম’ডত বুটামৰ জৰিয়তে গৃহপৃষ্ঠালৈ নেভিগে’ট কৰক, উভতি যাওক আৰু এপ্‌সমূহ সলনি কৰক।</translation>
 <translation id="3473479545200714844">স্ক্ৰীণ বিৱৰ্ধক</translation>
 <translation id="3475843873335999118">দুঃখিত, আপোনাৰ ফিংগাৰপ্ৰিণ্ট এতিয়াও চিনাক্ত কৰিব পৰা নাই। অনুগ্ৰহ কৰি আপোনাৰ পাছৱৰ্ড দিয়ক।</translation>
 <translation id="3476303763173086583">ব্যৱহাৰ আৰু ডায়গনষ্টিক ডেটা পঠিয়াওক। Googleলৈ স্বয়ংক্ৰিয়ভাৱে ডাইগনষ্টিক, ডিভাইচ আৰু এপ্ ব্যৱহাৰৰ ডেটা পঠিয়াই আপোনাৰ শিশুৰ Android ব্যৱহাৰৰ অভিজ্ঞতা উন্নত কৰক। এই ডেটা আপোনাৰ শিশুক চিনাক্ত কৰিবলৈ ব্যৱহাৰ কৰা নহয় আৰু ই ছিষ্টেম আৰু এপৰ স্থিৰতা আৰু অন্য সুবিধাসমূহ উন্নত কৰাত সহায় কৰিব। কিছুমান ডেটাৰ সমষ্টিয়ে লগতে Google এপ্ আৰু অংশীদাৰ, যেনে Androidৰ বিকাশকর্তাকো সহায় কৰিব। এই <ph name="BEGIN_LINK1" />ছেটিং<ph name="END_LINK1" />টো গৰাকীয়ে বলপূৰ্বকভাৱে সন্নিবিষ্ট কৰিছে। গৰাকীজনে Googleলৈ ডাইগন‘ষ্টিক আৰু ব্যৱহাৰৰ ডেটা পঠিয়াবলৈ সিন্ধান্ত ল’ব পাৰে। যদি আপোনাৰ শিশুৰ বাবে অতিৰিক্ত ৱেব আৰু এপৰ কার্যকলাপ অন কৰা হৈছে, তেন্তে এই ডেটা তেওঁলোকৰ Google একাউণ্টত ছেভ কৰা হ’ব পাৰে। <ph name="BEGIN_LINK2" />অধিক জানক<ph name="END_LINK2" /></translation>
@@ -2270,6 +2275,7 @@
 <translation id="3971764089670057203">এই সুৰক্ষা চাবিটোত থকা ফিংগাৰপ্ৰিণ্টসমূহ</translation>
 <translation id="3973660817924297510">পাছৱর্ডসমূহ পৰীক্ষা কৰি থকা হৈছে (<ph name="TOTAL_PASSWORDS" /> টাৰ ভিতৰত <ph name="CHECKED_PASSWORDS" /> টা)…</translation>
 <translation id="3975565978598857337">ক্ষেত্ৰ বিফল হোৱাৰ বাবে ছার্ভাৰৰ সৈতে যোগাযোগ কৰি থকা হৈছে</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" />এ আপোনাৰ পাছৱর্ডসমূহ পৰীক্ষা কৰিব নোৱাৰে। পাছত পুনৰ চেষ্টা কৰক।</translation>
 <translation id="3976108569178263973">উপলব্ধ কোনো প্ৰিণ্টাৰ নাই।</translation>
 <translation id="397703832102027365">সম্পূৰ্ণ কৰি থকা হৈছে...</translation>
 <translation id="3977886311744775419">এই প্ৰকাৰৰ নেটৱৰ্কত স্বয়ংক্ৰিয় আপডে’টসমূহ ডাউনল’ড নহয়, কিন্তু আপুনি আপডে’টসমূহ মেনুৱেলী বিচাৰিব পাৰে।</translation>
@@ -2332,6 +2338,7 @@
 <translation id="4068506536726151626">এই পৃষ্ঠাটোৱে নিম্নোক্ত ছাইটসমূহৰ কিছুমান উপাদান অন্তৰ্ভুক্ত কৰে যিবোৰে আপোনাৰ অৱস্থান ট্রেক কৰি আছে:</translation>
 <translation id="4068776064906523561">ছেভ কৰি থোৱা ফিংগাৰপ্ৰিণ্ট</translation>
 <translation id="407173827865827707">ক্লিক কৰিলে আৰম্ভ হয়</translation>
+<translation id="4073520450811433493">ছেটিংসমূহ ছিংক কৰা</translation>
 <translation id="4074900173531346617">ইমেইলত ছাইন ইন কৰা সম্পর্কীয় প্ৰমাণপত্ৰ</translation>
 <translation id="407520071244661467">স্কেল</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> কাষ্ট কৰিব পৰা নগ'ল।</translation>
@@ -2568,6 +2575,7 @@
 <translation id="4421932782753506458">নোমাল</translation>
 <translation id="4423376891418188461">ছেটিংসমূহ পুনঃস্থাপন কৰক</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, আপোনাৰ প্ৰশাসকে আপুনি নিজৰ পাছৱৰ্ডটো সলনি কৰাটো বিচাৰে।</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" />এ আপোনাৰ পাছৱর্ডসমূহ পৰীক্ষা কৰিব নোৱাৰে। ২৪ ঘণ্টাৰ পাছত পুনৰ চেষ্টা কৰক।</translation>
 <translation id="4429030830601238961">এই ডেটাখিনিয়ে আপোনাৰ প্ৰতিষ্ঠানৰ সুৰক্ষা নীতিসমূহ উলংঘা কৰে আৰু সেয়েহে এইখিনি পে’ষ্ট কৰিব নোৱাৰি।</translation>
 <translation id="4430019312045809116">ভলিউম</translation>
 <translation id="4430369329743628066">বুকমাৰ্ক যোগ কৰা হ’ল</translation>
@@ -2580,6 +2588,7 @@
 <translation id="4441124369922430666">আপুনি মেচিনটো অন হ’লে স্বয়ংক্ৰিয়ভাৱে এই এপৰ কার্যকলাপ আৰম্ভ হোৱাটো বিচাৰেনে?</translation>
 <translation id="4441147046941420429">অব্যাহত ৰাখিবলৈ আপোনাৰ ডিভাইচৰ পৰা আপোনাৰ সুৰক্ষা চাবিটো আঁতৰাওক, তাৰ পাছত সেইটো পুনৰ ভৰাই তাত স্পৰ্শ কৰক</translation>
 <translation id="444134486829715816">বিস্তাৰ কৰক...</translation>
+<translation id="4442329324652245220">আপুনি নিজৰ Google একাউণ্টটোৰ জৰিয়তে ছাইন ইন কৰিলে <ph name="IDS_SHORT_PRODUCT_NAME" />এ আপোনাৰ পাছৱর্ডসমূহ পৰীক্ষা কৰিব পাৰে</translation>
 <translation id="4442424173763614572">DNS বিচাৰিব পৰা নগ'ল</translation>
 <translation id="4443536555189480885">&amp;সহায়তা</translation>
 <translation id="4444304522807523469">ইউএছবি বা অন্য স্থানীয় নেটৱৰ্কৰ দ্বাৰা সংলগ্ন কৰা নথি স্কেনাৰৰ এক্সেছ</translation>
@@ -2606,11 +2615,13 @@
 <translation id="4476659815936224889">এই ক’ডটো স্কেন কৰিবলৈ আপুনি নিজৰ ফ’নটোত এটা কিউআৰ স্কেনাৰ এপ্‌ অথবা কোনো কেমেৰা এপ্‌ ব্যৱহাৰ কৰিব পাৰে।</translation>
 <translation id="4477015793815781985">Ctrl, Alt, বা ⌘ অন্তৰ্ভুক্ত হয়</translation>
 <translation id="4478664379124702289">এইবুলি লিং&amp;কটো ছেভ কৰক...</translation>
+<translation id="4478777936860197922">ছেভ কৰা কোনো পাছৱৰ্ড নাই। আপুনি নিজৰ পাছৱর্ডসমূহ ছেভ কৰিলে <ph name="IDS_SHORT_PRODUCT_NAME" />এ সেইবোৰ পৰীক্ষা কৰিব পাৰে।</translation>
 <translation id="4479424953165245642">কিঅ'স্ক এপ্লিকেশ্বন পৰিচালনা কৰক</translation>
 <translation id="4479639480957787382">ইথাৰনেট</translation>
 <translation id="4479877282574735775">ভাৰ্ছুৱেল মেচিনটো কনফিগাৰ কৰি থকা হৈছে। এই কামটোত কেইমিনিটমান সময় লাগিব পাৰে।</translation>
 <translation id="4480590691557335796">Chromeএ আপোনাৰ কম্পিউটাৰত ক্ষতিকাৰক ছফ্‌টৱেৰ বিচাৰি ইয়াক আঁতৰাব পাৰে</translation>
 <translation id="4481530544597605423">যোৰা বিচ্ছিন্ন কৰা ডিভাইচসমূহ</translation>
+<translation id="4488107067273194838">ছেটআপৰ পাছত ব্ৰাউজাৰ ছিংক কৰাৰ বিকল্পসমূহ পৰ্যালোচনা কৰক</translation>
 <translation id="4488502501195719518">সকলো ডেটা মচিবনে?</translation>
 <translation id="4495419450179050807">এই পৃষ্ঠাটোত নেদেখুৱাব</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> স্বয়ংক্ৰিয়ভাৱে অৱৰোধ কৰা হৈছে</translation>
@@ -2851,6 +2862,7 @@
 <translation id="4849517651082200438">ইনষ্টল নকৰিব</translation>
 <translation id="4850669014075537160">স্ক্ৰ’লিং</translation>
 <translation id="4850886885716139402">চাওক</translation>
+<translation id="485197095346966382">আপুনি কোনো হেক কৰা পাছৱৰ্ডৰ জৰিয়তে ছাইন ইন কৰিলে <ph name="IDS_SHORT_PRODUCT_NAME" />এ আপোনাক জাননী দিব</translation>
 <translation id="4853020600495124913">&amp;নতুন ৱিণ্ড'ত খোলক</translation>
 <translation id="4854317507773910281">অনুমোদনৰ বাবে অভিভাৱকৰ একাউণ্ট বাছনি কৰক</translation>
 <translation id="485480310608090163">অধিক ছেটিং আৰু অনুমতিসমূহ</translation>
@@ -2869,6 +2881,7 @@
 <translation id="4871322859485617074">পিনত অমান্য বৰ্ণ আছে</translation>
 <translation id="4871370605780490696">বুকমাৰ্ক যোগ কৰক</translation>
 <translation id="4871719318659334896">গোটটো বন্ধ কৰক</translation>
+<translation id="4871852311166078968">গোটত যোগ দিয়ক</translation>
 <translation id="4873312501243535625">মিডিয়া ফাইল পৰীক্ষক</translation>
 <translation id="4876273079589074638">আমাৰ অভিযন্তাই এই ক্ৰেশ্ব অনুসন্ধান আৰু সমাধান কৰাত সহায় কৰক। যদি আপুনি পাৰে সঠিক পদক্ষেপৰ সূচী প্ৰস্তুত কৰক। কোনো বিৱৰণ চুটি নহয়!</translation>
 <translation id="4876895919560854374">স্ক্ৰীণ লক আৰু আনলক কৰে</translation>
@@ -2960,7 +2973,6 @@
 <translation id="4992473555164495036">আপোনাৰ প্ৰশাসকে উপলব্ধ ইনপুটৰ পদ্ধতিসমূহ সীমিত কৰিছে৷</translation>
 <translation id="4994474651455208930">প্ৰ’ট’ক’লৰ বাবে ছাইটসমূহক ডিফ’ল্ট হেণ্ডলাৰ হ’বলৈ অনুমতি বিচাৰিবলৈ দিয়ক</translation>
 <translation id="4994754230098574403">ছেট আপ কৰি থকা হৈছে</translation>
-<translation id="4996978546172906250">ইয়াৰ জৰিয়তে শ্বেয়াৰ কৰক</translation>
 <translation id="4997086284911172121">ইণ্টাৰনেট সংযোগ নাই।</translation>
 <translation id="4997384734315285248">প্লাগইন VM আনইনষ্টল কৰক</translation>
 <translation id="4998430619171209993">অন আছে</translation>
@@ -3060,7 +3072,6 @@
 <translation id="5135085122826131075">"Ok Google" বুলি কৈ আপোনাৰ Assistant এক্সেছ কৰক।</translation>
 <translation id="5135533361271311778">বুকমাৰ্ক সৃষ্টি কৰিব পৰা নগ‘ল।</translation>
 <translation id="5137501176474113045">এই বস্তুটো মচক</translation>
-<translation id="5138982052046316113">Linux ডিস্কৰ আকাৰ সলনি কৰক</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> সন্ধান</translation>
 <translation id="5139823398361067371">আপোনাৰ সুৰক্ষা চাবিৰ পিনটো দিয়ক। আপুনি যদি পিনটো নাজানে, আপুনি সুৰক্ষা চাবিটো ৰিছেট কৰিব লাগিব।</translation>
 <translation id="5139955368427980650">&amp;খোলক</translation>
@@ -3511,6 +3522,7 @@
 <translation id="5739235828260127894">সত্যাপনৰ বাবে অপেক্ষা কৰি আছে। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">যথেষ্ট ডাঙৰ</translation>
 <translation id="574209121243317957">পিচ্চ</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" />ৰ বিষয়ে উপদেশ, অফাৰ আৰু আপডে’টসমূহ পাওক আৰু মতামত শ্বেয়াৰ কৰক</translation>
 <translation id="5746169159649715125">PDF হিচাপে ছেভ কৰক</translation>
 <translation id="5747552184818312860">এই সময়ত ম্যাদ উকলিব</translation>
 <translation id="5747785204778348146">বিকাশকৰ্তা - বিকাশ সম্পূৰ্ণ হোৱা নাই</translation>
@@ -3922,7 +3934,6 @@
 <translation id="6291953229176937411">&amp;Finderত দেখুৱাওক</translation>
 <translation id="6295158916970320988">সকলো ছাইট</translation>
 <translation id="6295855836753816081">ছেভ কৰি থকা হৈছে...</translation>
-<translation id="629730747756840877">একাউণ্ট</translation>
 <translation id="6298962879096096191">Androidৰ এপ্‌ ইনষ্টল কৰিবলৈ Google Play ব্যৱহাৰ কৰক</translation>
 <translation id="630065524203833229">প্ৰ&amp;স্থান কৰক</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" />ক স্বয়ংক্রিয়ভাৱে কনফিগাৰ কৰিব পৰা নগ’ল। অনুগ্ৰহ কৰি প্ৰিণ্টাৰৰ উচ্চখাপৰ সবিশেষ নিৰ্দিষ্ট কৰক। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation>
@@ -4325,7 +4336,6 @@
 <translation id="6865598234501509159">পৃষ্ঠাখন <ph name="LANGUAGE" />ত নাই</translation>
 <translation id="6865708901122695652">WebRTC অনুষ্ঠানৰ লগ (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">ৰঙৰ উষ্ণতা</translation>
-<translation id="6870888490422746447">শ্বেয়াৰ কৰাৰ মাধ্যম হিচাপে ব্যৱহাৰ কৰিবলৈ এপ্ বাছনি কৰক:</translation>
 <translation id="6871644448911473373">OCSP সঁহাৰিদাতা: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">আপুনি দিয়া পাছৱর্ডটো ছার্ভাৰে অগ্ৰাহ্য কৰিছে।</translation>
 <translation id="6876155724392614295">বাইক</translation>
@@ -4418,6 +4428,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - কাৰ্যকলাপৰ লগ</translation>
 <translation id="6997707937646349884">আপোনাৰ ডিভাইচসমূহত:</translation>
 <translation id="6998793565256476099">ডিভাইচটো ভিডি’অ কনফাৰেন্সিঙৰ বাবে পঞ্জীয়ন কৰক</translation>
+<translation id="6999956497249459195">নতুন গোট</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" />ক সংযোগ কৰা হৈছে কিন্তু কনফিগাৰেশ্বনৰ আৱশ্যক</translation>
 <translation id="7000347579424117903">Ctrl, Alt বা Search অন্তৰ্ভুক্ত কৰক</translation>
 <translation id="7001036685275644873">Linux এপ্‌ আৰু ফাইলসমূহ বেক আপ কৰি থকা হৈছে</translation>
@@ -4715,6 +4726,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">আপোনাৰ <ph name="PHONE_NAME" />ত সংযোগ ছেট আপ কৰক</translation>
 <translation id="7401778920660465883">এই বাৰ্তাটো বাতিল কৰক</translation>
+<translation id="7403642243184989645">উৎসসমূহ ডাউনল’ড কৰি থকা হৈছে</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{১ ঘণ্টা পূর্বে সুৰক্ষা পৰীক্ষা চলোৱা হৈছিল}one{{NUM_HOURS} ঘণ্টা পূর্বে সুৰক্ষা পৰীক্ষা চলোৱা হৈছিল}other{{NUM_HOURS} ঘণ্টা পূর্বে সুৰক্ষা পৰীক্ষা চলোৱা হৈছিল}}</translation>
 <translation id="740624631517654988">পপ-আপ অৱৰোধ কৰা হ’ল</translation>
 <translation id="7407430846095439694">আমদানি কৰক আৰু সংযুক্ত কৰক</translation>
@@ -4949,6 +4961,7 @@
 <translation id="7716781361494605745">Netscape প্ৰমাণীকৰণ কৰ্তৃপক্ষ নীতিৰ URL</translation>
 <translation id="7717014941119698257">ডাউনল’ড কৰি থকা হৈছে: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">আপডে’ট আছে নেকি চাওক</translation>
+<translation id="7719070594859855691">কেমেৰালৈ এক্সেছ দিয়ক</translation>
 <translation id="7719367874908701697">পৃষ্ঠাৰ জুম</translation>
 <translation id="7721179060400456005">ৱিণ্ড’ক ডিছপ্লে’ স্পেন কৰিবলৈ অনুমতি দিয়ক</translation>
 <translation id="7722040605881499779">আপডে’টৰ বাবে প্ৰয়োজনীয় খালী ঠাই: <ph name="NECESSARY_SPACE" /></translation>
@@ -4963,7 +4976,6 @@
 <translation id="7744047395460924128">আপুনি কৰা প্ৰিণ্টৰ ইতিহাস চাওক</translation>
 <translation id="7744192722284567281">ডাটা উলংঘন হোৱা দেখা গৈছিল</translation>
 <translation id="7750228210027921155">চিত্ৰৰ ভিতৰত চিত্ৰ</translation>
-<translation id="7751229152614300329">সুৰক্ষিত ব্ৰাউজিং আপ-টু-ডেট হৈ আছে আৰু আপোনাক ক্ষতিকাৰক ছাইট আৰু ডাউনল'ডসমূহৰ পৰা সুৰক্ষা প্ৰদান কৰি আছে</translation>
 <translation id="7751260505918304024">সকলো দেখুৱাওক</translation>
 <translation id="7754704193130578113">ডাউনল'ড কৰাৰ আগতে প্ৰতিটো ফাইল ক'ত ছেভ কৰা হ'ব সেয়া সোধক</translation>
 <translation id="7755287808199759310">আপোনাৰ অভিভাৱকে এই ছাইটটো আপোনাৰ বাবে অৱৰোধৰ পৰা আঁতৰাব পাৰে</translation>
@@ -5051,6 +5063,7 @@
     <ph name="BEGIN_BOLD" />টোকা:<ph name="END_BOLD" />  প্ৰক্ৰিয়াটো চলি থাকোতে ছিষ্টেমটো ৰিবুট হ‘ব।</translation>
 <translation id="7828731929332799387">এইটোৱে তৃতীয় পক্ষৰ প্ৰসংগত উপলব্ধ সকলো কুকি আৰু ছাইটৰ ডেটা মচিব। আপুনি অব্যাহত ৰাখিবলৈ বিচাৰেনে?</translation>
 <translation id="7829298379596169484">অডিঅ’ ইনপুট এক্সেছ কৰি আছে</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" />এ আপোনাৰ পাছৱর্ডসমূহ পৰীক্ষা কৰিব নোৱাৰে। আপোনাৰ ইণ্টাৰনেট সংযোগ পৰীক্ষা কৰি চাওক।</translation>
 <translation id="7829877209233347340">বিদ্যালয়ৰ এটা একাউণ্ট যোগ দিয়াৰ অনুমতি দিবলৈ এগৰাকী অভিভাৱকক ছাইন ইন কৰিবলৈ কওক</translation>
 <translation id="7830594666202422257">Linuxৰ সৈতে সংযোগ কৰক</translation>
 <translation id="7831491651892296503">নেটৱৰ্ক কনফিগাৰ কৰাত আসোঁৱাহ</translation>
@@ -5272,6 +5285,7 @@
 <translation id="8107015733319732394">আপোনাৰ <ph name="DEVICE_TYPE" />ত Google Play Store ইনষ্টল কৰি থকা হৈছে। ইয়াৰ বাবে কিছু সময়ৰ প্ৰয়োজন হ'ব পাৰে।</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{তৃতীয় পক্ষৰ কুকিসমূহ নাই}=1{১টা তৃতীয় পক্ষৰ কুকি অৱৰোধ কৰা হৈছে}one{#টা তৃতীয় পক্ষৰ কুকীসমূহ অৱৰোধ কৰা হৈছে}other{#টা তৃতীয় পক্ষৰ কুকীসমূহ অৱৰোধ কৰা হৈছে}}</translation>
 <translation id="810875025413331850">কোনো নিকটৱৰ্তী ডিভাইচ বিচাৰি পোৱা নগ’ল।</translation>
+<translation id="8114199541033039755">টেবলেট ম’ডত বুটামৰ জৰিয়তে গৃহপৃষ্ঠালৈ নেভিগে’ট কৰক, উভতি যাওক আৰু এপ্‌সমূহ সলনি কৰক। ChromeVox অথবা স্বয়ংক্ৰিয় ক্লিক সক্ষম কৰিলে অন হয়।</translation>
 <translation id="8114875720387900039">আনুভূমিকভাৱে বিভাজন কৰক</translation>
 <translation id="8116972784401310538">&amp;বুকমাৰ্ক পৰিচালক</translation>
 <translation id="8117620576188476503">ষ্টেটাছ ট্ৰে’ৰ সহায়ত সংযোগ, আপডে’ট আৰু ছেটিংসমূহ পৰিচালনা কৰক। কীব’ৰ্ডৰ সহায়ত ইয়ালৈ আহিবলৈ Alt + Shift + S টিপক।</translation>
@@ -5391,6 +5405,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" />এ আপোনাৰ মাউছৰ কাৰ্ছৰ অক্ষম কৰিছে।</translation>
 <translation id="8264024885325823677">এই ছেটিংটো আপোনাৰ প্ৰশাসকে পৰিচালনা কৰে।</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />"এ সম্পূৰ্ণ স্ক্রীণৰ ম’ডটো সক্রিয় কৰিলে।</translation>
+<translation id="826511437356419340">ৱিণ্ড’ ৰূপৰেখা ম‘ডত প্ৰৱেশ কৰা হৈছে। নেভিগে’ট কৰিবলৈ ছোৱাই কৰক অথবা কীব’ৰ্ড ব্যৱহাৰ কৰি আছে যদি টেব দবাওক।</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />এইখিনি হৈছে এই ডিভাইচটোৰ আৰু সেইটোৰ ব্যৱহাৰৰ বিষয়ে (যেনে- বেটাৰীৰ স্তৰ, ছিষ্টেম আৰু এপৰ কাৰ্যকলাপ আৰু তাত হোৱা আসোঁৱাহৰ) সাধাৰণ তথ্য। এই ডেটাখিনি Androidক অধিক ব্যৱহাৰোপোযোগী কৰিবলৈ ব্যৱহাৰ কৰা হ’ব আৰু কিছুমান একত্ৰিত তথ্যই Google এপ্‌ আৰু Android বিকাশকৰ্তাৰ দৰে অংশীদাৰকো তেওঁলোকৰ এপ্‌ আৰু প্ৰ’ডাক্টক অধিক ফলপ্ৰসূ কৰাত সহায় কৰিব।<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />এই সুবিধাটো বন্ধ কৰিলেও আপোনাৰ ডিভাইচটোৱে ছিষ্টেম আপডে’ট আৰু সুৰক্ষাৰ দৰে অত্যাৱশ্যকীয় সেৱাসমূহৰ বাবে দৰকাৰী তথ্য পঠিয়াওঁতে কোনো অসুবিধাৰ সৃষ্টি নকৰে।<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />গৰাকীজনে এই সুবিধাটো ছেটিং &gt; উন্নত ছেটিং &gt; Googleলৈ স্বয়ংক্রিয়ভাৱে ডাইগন‘ষ্টিক আৰু ব্যৱহাৰৰ ডেটা পঠিয়াওক<ph name="END_PARAGRAPH3" />
@@ -5498,6 +5513,7 @@
 <translation id="8426713856918551002">সক্ষম কৰি থকা হৈছে</translation>
 <translation id="8427292751741042100">যিকোনো হ’ষ্টত এম্বেড কৰি ৰখা</translation>
 <translation id="8428213095426709021">ছেটিংসমূহ</translation>
+<translation id="8428271547607112339">বিদ্যালয় একাউণ্ট যোগ দিয়ক</translation>
 <translation id="8428628598981198790">এই ছাইটত আপোনাৰ সুৰক্ষা সম্পর্কীয় চাবিটো ব্যৱহাৰ কৰিব নোৱাৰি</translation>
 <translation id="84297032718407999">আপুনি <ph name="LOGOUT_TIME_LEFT" />ত ছাইন আউট হ’ব</translation>
 <translation id="8431190899827883166">টেপসমূহ দেখুৱাওক</translation>
@@ -5561,6 +5577,7 @@
 <translation id="851263357009351303"><ph name="HOST" />ক সদায়েই প্ৰতিচ্ছবি দেখুৱাবলৈ অনুমতি দিয়ক</translation>
 <translation id="8513108775083588393">স্বয়ং-ঘূৰ্ণন</translation>
 <translation id="8514746246728959655">বেলেগ এটা সুৰক্ষা চাবি ব্যৱহাৰ কৰি চাওক</translation>
+<translation id="851960115758509829">আপোনাৰ Google একাউণ্টটোৰে ছাইন ইন কৰি ৰখা সকলো Chrome OS ডিভাইচত আপোনাৰ এপ্‌, ছেটিং আৰু অন্য কাষ্টমাইজেশ্বনসমূহ ছিংক হ’ব।</translation>
 <translation id="8521475323816527629">আপোনাৰ এপ্‌সমূহ ক্ষিপ্ৰভাৱে পাওক</translation>
 <translation id="8523493869875972733">সালসলনিসমূহ ৰাখক</translation>
 <translation id="8523849605371521713">নীতিয়ে যোগ দিয়া</translation>
@@ -5842,11 +5859,13 @@
 <translation id="885701979325669005">ষ্ট’ৰেজ</translation>
 <translation id="8859057652521303089">আপোনাৰ ভাষা বাছনি কৰক:</translation>
 <translation id="8859174528519900719">ছাবফ্ৰে’ম: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">অভিভাৱকৰ একাউণ্ট</translation>
 <translation id="8862003515646449717">কোনো দ্ৰুত ব্ৰাউজাৰ ব্যৱহাৰ কৰক</translation>
 <translation id="8863753581171631212">লিংক নতুন <ph name="APP" />ত খোলক</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" />ক <ph name="APP_NAME" />লৈ শ্বেয়াৰ কৰি থকা হৈছে</translation>
 <translation id="8864458770072227512"><ph name="EMAIL" />ক এই ডিভাইচটোৰ পৰা আঁতৰোৱা হৈছে</translation>
 <translation id="8867228703146808825">বিল্ডৰ সবিশেষ ক্লিপব’ৰ্ডলৈ প্ৰতিলিপি কৰক</translation>
+<translation id="8868333925931032127">ডেম’ ম’ড আৰম্ভ কৰি থকা হৈছে</translation>
 <translation id="8868626022555786497">ব্যৱহাৰ হৈ আছে</translation>
 <translation id="8870413625673593573">শেহতীয়াকৈ বন্ধ কৰা</translation>
 <translation id="8871551568777368300">প্ৰশাসকে পিন কৰি থৈছে</translation>
@@ -5925,6 +5944,7 @@
 <translation id="8966870118594285808">আপুনি দুৰ্ঘটনাবশতঃ কোনো টেব বন্ধ কৰিলে সেইটো পুনৰ খোলক</translation>
 <translation id="8967866634928501045">দেখুৱাবলৈ Alt Shift A টিপক</translation>
 <translation id="8968766641738584599">কার্ড ছেভ কৰক</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" />এ আপোনাৰ পাছৱর্ডসমূহ পৰীক্ষা কৰিব নোৱাৰে। ২৪ ঘণ্টাৰ পাছত পুনৰ চেষ্টা কৰক অথবা <ph name="BEGIN_LINK" />আপোনাৰ Google একাউণ্টত পাছৱর্ডসমূহ পৰীক্ষা কৰক<ph name="END_LINK" />।</translation>
 <translation id="89720367119469899">ESCAPE</translation>
 <translation id="8972513834460200407">ফায়াৰৱাল-এ যাতে Google ছাৰ্ভাৰৰ পৰা ডাউনল’ড অৱৰোধ কৰি থোৱা নাই সেয়া নিশ্চিত কৰিবলৈ আপোনাৰ নেটৱৰ্ক প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation>
 <translation id="8973557916016709913">জুমৰ স্তৰ আঁতৰাওক</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index 3f6d88c..76f45db 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Əlçatan cihazlar</translation>
 <translation id="1042174272890264476">Kompüteriniz həmçinin daxili <ph name="SHORT_PRODUCT_NAME" /> RLZ kitabxanası ilə gəlir. RLZ axtarışları və <ph name="SHORT_PRODUCT_NAME" /> istifadəsini ölçmək üçün identifikasiya edilə bilən teq ayırır. Bu etiketlər bəzən <ph name="PRODUCT_NAME" /> daxilində, Google Axtarış sorğularında görünür.</translation>
 <translation id="1043818413152647937">Həmçinin bu tətbiqlərdən data silinsin?</translation>
+<translation id="1045448422538531528">Qrupa əlavə edin</translation>
 <translation id="1046635659603195359">Artıq digər cihazda Google Assistent ilə Voice Match ayarlamısınız. Əvvəlki səsyazıları bu cihazda səs modeli yaratmaq üçün istifadə edilə bilər. Bu, bir dəqiqədən az vaxt ala bilər.</translation>
 <translation id="104710386808485638">Linux yenidən başladılsın?</translation>
 <translation id="1047431265488717055">Link Mətnini Kopyalayın</translation>
@@ -64,6 +65,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Kamera girişini həmişə blok edin</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> Chrome ayarlarını orijinal defolt ayarlarına sıfırlamaq istəyir. Bu əsas səhifənizi, yeni panel səhifəsi və axtarış sisteminizi sıfırlayacaq, artırmalarınızı deaktiv edəcək və bütün panelləri çıxaracaq. O, həmçinin, kuki, məzmun və sayt datası kimi müvəqqəti və keşlənmiş datanı siləcək.</translation>
+<translation id="1084096383128641877">Bu parolu sildikdə <ph name="DOMAIN" /> saytından hesabınız silinməyəcək. Hesabınızı digərlərindən qorumaq üçün parolunuzu dəyişin, ya da onu <ph name="DOMAIN_LINK" /> saytından silin.</translation>
 <translation id="1084824384139382525">Link ünvanını kopyalayın</translation>
 <translation id="1085697365578766383">Virtual cihaz işə düşmədi. Sonra yenidən cəhd edin.</translation>
 <translation id="1090126737595388931">Axra fonda tətbiq işləmir</translation>
@@ -198,6 +200,7 @@
 <translation id="1259152067760398571">Təhlükəsizlik yoxlanışı dünən icra olunub</translation>
 <translation id="1260451001046713751"><ph name="HOST" /> popap və yönləndirmələrinə daima icazə verin</translation>
 <translation id="126156426083987769">Demo rejiminin cihaz lisenziyalarında xəta baş verdi.</translation>
+<translation id="1263490604593716556">Bu hesab <ph name="FIRST_PARENT_EMAIL" /> və <ph name="SECOND_PARENT_EMAIL" /> tərəfindən idarə edilir. Bu cihazda əsas hesabdan çıxmaq üçün ekranınızdakı vaxta klikləyin. Görünən menyuda "Çıxış edin" seçiminə klikləyin.</translation>
 <translation id="126710816202626562">Tərcümə dili:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Dayandırın</translation>
@@ -415,7 +418,6 @@
 <translation id="1566049601598938765">Veb səhifə</translation>
 <translation id="15662109988763471">Seçilmiş printer əlçatan deyil və ya düzgün quraşdırılmayıb. Printerinizi yoxlayın və ya başqa printer seçin.</translation>
 <translation id="1567387640189251553">Son aktiv olduğunuz vaxtdan sonra fərqli klaviatura qoşulub. O düymələrinizi oğurlaya bilər.</translation>
-<translation id="1567750922576943685">Kimliyinizi doğrulamaq şəxsi datanızı qorumağa kömək edir</translation>
 <translation id="1567993339577891801">JavaScript Konsolu</translation>
 <translation id="1568323446248056064">Ekran cihaz ayarlarını açın</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Qonaq)</translation>
@@ -515,7 +517,6 @@
 <translation id="1697150536837697295">İncəsənət</translation>
 <translation id="1697686431566694143">Fayla düzəliş edin</translation>
 <translation id="1698122934742150150">Yalnız cari incognito sessiyası</translation>
-<translation id="1698650002254827833">Tətbiqlərin siyahısını yükləmək mümkün deyil. Yenidən cəhd edin.</translation>
 <translation id="1700079447639026019">Heç vaxt kukilərdən istifadə edə bilməyən saytlar</translation>
 <translation id="1701062906490865540">Bu şəxsi silin</translation>
 <translation id="1703331064825191675">Parollarınız barədə narahat olmağınıza ehtiyac qalmayacaq</translation>
@@ -869,6 +870,7 @@
 <translation id="2172784515318616985">Davam edin</translation>
 <translation id="2173302385160625112">İnternet bağlantısını yoxlayın</translation>
 <translation id="2173801458090845390">Bu cihaza sifariş ID-si əlavə edin</translation>
+<translation id="2174948148799307353">Bu hesab <ph name="PARENT_EMAIL" /> tərəfindən idarə edilir. Bu cihazda əsas hesabdan çıxmaq üçün ekranınızdakı vaxta klikləyin. Görünən menyuda "Çıxış edin" seçiminə klikləyin.</translation>
 <translation id="2175607476662778685">Sürətli başlatma paneli</translation>
 <translation id="217576141146192373">Printer əlavə etmək olmur. Printerin konfiqurasiyasını yoxlayın və yenidən cəhd edin.</translation>
 <translation id="2177950615300672361">İnkoqnito rejimi paneli: <ph name="TAB_NAME" /></translation>
@@ -1076,7 +1078,6 @@
 <translation id="2442916515643169563">Mətn kölgəsi</translation>
 <translation id="2445081178310039857">Daxili kök kataloq tələb olunur.</translation>
 <translation id="2445484935443597917">Yeni Profil Yaradın</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> şəxsiyyətinizi doğrulamaq istəyir</translation>
 <translation id="2448312741937722512">Növ</translation>
 <translation id="2450223707519584812">Google API açarları çatışmadığı üçün istifadəçiləri əlavə edə bilməyəcəksiniz. Ətraflı məlumat üçün <ph name="DETAILS_URL" /> baxın.</translation>
 <translation id="2450849356604136918">Aktiv baxış yoxdur</translation>
@@ -1474,6 +1475,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" /> səhifəsinə gedin</translation>
 <translation id="29488703364906173">Sürətli, sadə, güvənli brauzer. Çağdaş veb üçün hazırlanıb.</translation>
 <translation id="2949289451367477459">Məkandan istifadə edin. Tətbiq və xidmətlərə bu cihaz məkanından istifadə etməsi üçün məkan icazəsi verin. Google məkan dəqiqliyini və məkan əsaslı xidmətləri təkmilləşdirmək üçün anonim yolla məkan datasını vaxtaşırı əldə edə və ondan istifadə edə bilər. <ph name="BEGIN_LINK1" />Ətraflı Məlumat<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Məni qeydiyyatdan keçirin</translation>
 <translation id="2956070239128776395">Bölmə qrupun daxilindədir: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Saytların cihazınızdakı fayl və ya qovluqları redaktə etməsinə icazə verməyin</translation>
 <translation id="2958721676848865875">Paket Artırması Xəbərdarlığı</translation>
@@ -1598,6 +1600,7 @@
 <translation id="3139925690611372679">Defolt sarı avatar</translation>
 <translation id="3141318088920353606">Dinlənilir...</translation>
 <translation id="3141917231319778873">Göstərilmiş tələb bu cihazda dəstəklənmir: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Yeni Qrup</translation>
 <translation id="3143515551205905069">Sinxronizasiyanı ləğv edin</translation>
 <translation id="3143754809889689516">Başdan oxudun</translation>
 <translation id="3144647712221361880">Linki bu formada açın:</translation>
@@ -1622,6 +1625,7 @@
 <translation id="3159493096109238499">Bej</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (avadanlıqla yedəklənmiş)</translation>
 <translation id="3161522574479303604">Bütün dillər</translation>
+<translation id="3162853326462195145">Məktəb hesabı</translation>
 <translation id="3162899666601560689">Saytlar baxış təcrübənizi yaxşılaşdırmaq üçün, məsələn, sizi daxil olmuş vəziyyətdə saxlamaq və ya alış-veriş səbətinizdəki elementləri yadda saxlamaq üçün kukilərdən istifadə edə bilər</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> vendorundan naməlum <ph name="PRODUCT_ID" /> məhsulu</translation>
 <translation id="3164329792803560526">Bu tab <ph name="APP_NAME" /> ilə paylaşılır</translation>
@@ -1680,7 +1684,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Cihazı 1 gün ərzində güncəlləyin}other{Cihazı # gün ərzində güncəlləyin}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Şəbəkə xətası</translation>
 <translation id="3248902735035392926">Təhlükəsizlik məsələləri. İndi <ph name="BEGIN_LINK" />artırmaları yoxlayın<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Sertifikat Hissəsi Yoxdur&gt;</translation>
 <translation id="3253225298092156258">Əlçatan deyil</translation>
 <translation id="3253448572569133955">Naməlum hesab</translation>
@@ -1785,6 +1788,7 @@
 <translation id="3396800784455899911">"Qəbul edin və davam edin" düyməsinə klikləməklə bu Google xidmətləri üçün yuxarıda təsvir edilən proseslərə razılıq verirsiniz.</translation>
 <translation id="3399432415385675819">Bildirişlər deaktiv ediləcək</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hers) - növbəli</translation>
+<translation id="3402585168444815892">Demo Rejimində qeydiyyat</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Bu saytda heç bir parol yadda saxlanılmayıb</translation>
 <translation id="3405664148539009465">Şriftləri fərdiləşdirin</translation>
@@ -1846,6 +1850,7 @@
 <translation id="3468999815377931311">Android telefonu</translation>
 <translation id="3470442499439619530">Bu istifadəçini silin</translation>
 <translation id="3471876058939596279">HDMI və C növlü USB portları video üçün eyni vaxtda işlədilə bilməz. Fərqli video port istifadə edin.</translation>
+<translation id="3473241910002674503">Planşet rejimindəki düymələrlə əsas səhifəyə, geri keçin və tətbiqləri dəyişdirin.</translation>
 <translation id="3473479545200714844">Ekran böyüdücü</translation>
 <translation id="3475843873335999118">Barmaq iziniz hələ də tanınmır. Parol daxil edin.</translation>
 <translation id="3476303763173086583">İstifadə və diaqnostika datasını göndərin. Google'a diaqnostika, cihaz və tətbiq istifadə datasını avtomatik göndərməklə övladınızın Android təcrübəsini təkmilləşdirin. Bu, övladınızı müəyyən etmək üçün istifadə edilməyəcək, eyni zamanda, sistem və tətbiq sabitliyi və digər təkmilləşdirmələrə kömək edəcək. Ümumi data, həmçinin, Google tətbiqləri və Android developerləri kimi partnyorlara kömək edəcək. Bu <ph name="BEGIN_LINK1" />ayar<ph name="END_LINK1" /> sahibi tərəfindən tətbiq edilir. Sahibi bu cihaz üçün diaqnostika və istifadə datasını Google'a göndərməyi seçə bilər. Övladınız üçün əlavə Veb və Tətbiq Fəaliyyəti ayarı aktiv edilərsə, həmin data Google hesabında yadda saxlana bilər. <ph name="BEGIN_LINK2" />Ətraflı Məlumat<ph name="END_LINK2" /></translation>
@@ -2270,6 +2275,7 @@
 <translation id="3971764089670057203">Bu təhlükəsizlik açarında barmaq izləri</translation>
 <translation id="3973660817924297510">Parollar yoxlanır (<ph name="CHECKED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Sahə üçün serverin qoşulması alınmadı</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> parollarınızı yoxlaya bilmir. Sonra cəhd edin.</translation>
 <translation id="3976108569178263973">Əlçatan printer yoxdur.</translation>
 <translation id="397703832102027365">Yekunlaşır...</translation>
 <translation id="3977886311744775419">Avtomatik güncəlləmələr bu şəbəkə növündə endirilmir, lakin manual olaraq güncəlləmələri yoxlaya bilərsiniz.</translation>
@@ -2333,6 +2339,7 @@
 <translation id="4068506536726151626">Bu səhifə aşağıdakı saytlardan məkanınızı izləyən elementlərdən ibarətdir:</translation>
 <translation id="4068776064906523561">Yadda saxlanmış barmaq izləri</translation>
 <translation id="407173827865827707">Klikləyin</translation>
+<translation id="4073520450811433493">Ayarların sinxronizasiyası</translation>
 <translation id="4074900173531346617">E-poçt İmzalayıcı Sertifikatı</translation>
 <translation id="407520071244661467">Miqyas</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> faylını yayımlamaq alınmadı.</translation>
@@ -2567,6 +2574,7 @@
 <translation id="4421932782753506458">Tüklü</translation>
 <translation id="4423376891418188461">Ayarları Bərpa Edin</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, administrator parolu dəyişməyinizi tələb edir.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> parollarınızı yoxlaya bilmir. 24 saat sonra yenidən cəhd edin.</translation>
 <translation id="4429030830601238961">Bu datanın əlavə edilməsi təşkilatınızın təhlükəsizlik siyasətlərini pozduğu üçün mümkün deyil.</translation>
 <translation id="4430019312045809116">Həcm</translation>
 <translation id="4430369329743628066">Əlfəcin əlavə olundu</translation>
@@ -2579,6 +2587,7 @@
 <translation id="4441124369922430666">Cihaz aktivləşdirildikdə bu tətbiqin avtomatik açılmasını istəyirsiniz?</translation>
 <translation id="4441147046941420429">Davam etmək üçün təhlükəsizlik açarını cihazınızdan çıxarıb yenidən daxil edin və ona toxunun</translation>
 <translation id="444134486829715816">Genişləndirin...</translation>
+<translation id="4442329324652245220">Google Hesabınız ilə daxil olduqda <ph name="IDS_SHORT_PRODUCT_NAME" /> parollarınızı yoxlaya bilər.</translation>
 <translation id="4442424173763614572">DNS sistemi uğursuz oldu</translation>
 <translation id="4443536555189480885">Yardım</translation>
 <translation id="4444304522807523469">USB vasitəsilə qoşulmuş və ya lokal şəbəkədə olan sənəd skanerlərinə girin</translation>
@@ -2605,11 +2614,13 @@
 <translation id="4476659815936224889">Bu kodu skan etmək üçün telefonunuzdakı QR skaner tətbiqini və ya bəzi kamera tətbiqlərini istifadə edə bilərsiniz.</translation>
 <translation id="4477015793815781985">Ctrl, Alt və ya ⌘ daxil edin</translation>
 <translation id="4478664379124702289">Linki saxlama formatı:</translation>
+<translation id="4478777936860197922">Yadda saxlanmış parol yoxdur. Parollarınızı yadda saxladıqda <ph name="IDS_SHORT_PRODUCT_NAME" /> onları yoxlaya bilər.</translation>
 <translation id="4479424953165245642">Kiosk tətbiqlərini idarə edin</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Virtual cihaz konfiqurasiya edilir. Bir neçə dəqiqə çəkə bilər.</translation>
 <translation id="4480590691557335796">Chrome kompüterdə zərərli tətbiq tapa və onu silə bilər</translation>
 <translation id="4481530544597605423">Ayrılmış cihazlar</translation>
+<translation id="4488107067273194838">Ayarlamadan sonra brauzerin sinxronlaşdırma seçimlərini nəzərdən keçirin</translation>
 <translation id="4488502501195719518">Bütün data silinsin?</translation>
 <translation id="4495419450179050807">Bu səhifədə göstərməyin</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> avtomatik bloklanıb</translation>
@@ -2851,6 +2862,7 @@
 <translation id="4849517651082200438">Quraşdırmayın</translation>
 <translation id="4850669014075537160">Sürüşmə</translation>
 <translation id="4850886885716139402">Görünüş</translation>
+<translation id="485197095346966382">Oğurlanmış parol ilə daxil olduqda <ph name="IDS_SHORT_PRODUCT_NAME" /> sizə bildiriş göndərəcək</translation>
 <translation id="4853020600495124913">Yeni pəncərədə açın</translation>
 <translation id="4854317507773910281">Təsdiq üçün valideyn hesabı seçin</translation>
 <translation id="485480310608090163">Daha çox ayar və icazələr</translation>
@@ -2869,6 +2881,7 @@
 <translation id="4871322859485617074">PIN yanlış simvollardan ibarətdir</translation>
 <translation id="4871370605780490696">Əlfəcin əlavə edin</translation>
 <translation id="4871719318659334896">Qrupu bağlayın</translation>
+<translation id="4871852311166078968">Qrupa əlavə edin</translation>
 <translation id="4873312501243535625">Media Fayl Yoxlayıcı</translation>
 <translation id="4876273079589074638">Bu xətanın araşdırılması və aradan qaldırılması üçün mühəndislərimizə yardım edin. Bunu edə bilərsinizsə, dəqiq mərhələləri qeyd edin. Heç bir xırdalığı gözdən qaçırmayın!</translation>
 <translation id="4876895919560854374">Ekranı kiliddəyin və kiliddən çıxarın</translation>
@@ -2960,7 +2973,6 @@
 <translation id="4992473555164495036">Administrator əlçatan giriş üsullarını məhdudlaşdırdı.</translation>
 <translation id="4994474651455208930">Saytlara defolt protokol icraçıları olmağa icazə verin</translation>
 <translation id="4994754230098574403">Ayarlanır</translation>
-<translation id="4996978546172906250">Paylaşma vasitəsi:</translation>
 <translation id="4997086284911172121">İnternet bağlantısı yoxdur.</translation>
 <translation id="4997384734315285248">Plugin VM'in quraşdırmasını ləğv edin</translation>
 <translation id="4998430619171209993">Aktiv</translation>
@@ -3060,7 +3072,6 @@
 <translation id="5135085122826131075">"Ok Google" dedikdə Assistentinizə daxil olun.</translation>
 <translation id="5135533361271311778">Əlfəcin elementini yaratmaq alınmadı.</translation>
 <translation id="5137501176474113045">Bu elementi silin</translation>
-<translation id="5138982052046316113">Linux Diskin ölçüsünü dəyişin</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> Axtarış</translation>
 <translation id="5139823398361067371">Təhlükəsizlik açarı üçün PIN daxil edin. PIN-i bilmirsinizsə, təhlükəsizlik açarını sıfırlamalısınız.</translation>
 <translation id="5139955368427980650">Açın</translation>
@@ -3512,6 +3523,7 @@
 <translation id="5739235828260127894">Doğrulama gözlənilir. <ph name="LINK_BEGIN" />Ətraflı məlumat.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Çox böyük</translation>
 <translation id="574209121243317957">Pitç</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" /> məsləhətləri, təklifləri və güncəlləmələrini əldə edin və rəy paylaşın</translation>
 <translation id="5746169159649715125">PDF olaraq saxlayın</translation>
 <translation id="5747552184818312860">Vaxtı bitir</translation>
 <translation id="5747785204778348146">Developer - qeyri-stabil</translation>
@@ -3922,7 +3934,6 @@
 <translation id="6291953229176937411">&amp;Axtarıcıda göstərin</translation>
 <translation id="6295158916970320988">Bütün saytlar</translation>
 <translation id="6295855836753816081">Yadda saxlanılır...</translation>
-<translation id="629730747756840877">Hesab</translation>
 <translation id="6298962879096096191">Android tətbiqlərini quraşdırmaq üçün Google Play istifadə edin</translation>
 <translation id="630065524203833229">Çıxış</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> avtomatik konfiqurasiya edilə bilmədi. Qabaqcıl printer məlumatlarını təyin edin. <ph name="LINK_BEGIN" />Ətraflı məlumat<ph name="LINK_END" /></translation>
@@ -4328,7 +4339,6 @@
 <translation id="6865598234501509159">Səhifə <ph name="LANGUAGE" /> dilində deyil</translation>
 <translation id="6865708901122695652">WebRTC tədbir girişləri (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Rəng temperaturu</translation>
-<translation id="6870888490422746447">Paylaşmaq üçün tətbiq seçin:</translation>
 <translation id="6871644448911473373">OCSP Cavablayıcı: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Daxil etdiyiniz parol server tərəfindən rədd edildi.</translation>
 <translation id="6876155724392614295">Velosiped</translation>
@@ -4421,6 +4431,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Fəaliyyət Qeydi</translation>
 <translation id="6997707937646349884">Cihazlarınızda:</translation>
 <translation id="6998793565256476099">Video görüş üçün cihazı qeydiyyatdan keçirin</translation>
+<translation id="6999956497249459195">Yeni qrup</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> qoşuludur, lakin konfiqurasiya lazımdır</translation>
 <translation id="7000347579424117903">Ctrl, Alt və ya Search daxil edin</translation>
 <translation id="7001036685275644873">Linux tətbiq və faylları yedəklənir</translation>
@@ -4719,6 +4730,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923"><ph name="PHONE_NAME" /> telefonunda bağlantı ayarlayın</translation>
 <translation id="7401778920660465883">Bu mesajı kənarlaşdırın</translation>
+<translation id="7403642243184989645">Resurslar endirilir</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Təhlükəsizlik yoxlanışı 1 saat əvvəl icra olunub}other{Təhlükəsizlik yoxlanışı {NUM_HOURS} saat əvvəl icra olunub}}</translation>
 <translation id="740624631517654988">Popap bloklandı</translation>
 <translation id="7407430846095439694">İmport edin və qoşun</translation>
@@ -4955,6 +4967,7 @@
 <translation id="7716781361494605745">Netscape Certification Authority Policy URL</translation>
 <translation id="7717014941119698257">Endirmə: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Güncəlləmələri yoxlayın</translation>
+<translation id="7719070594859855691">Kameraya giriş icazəsi verin</translation>
 <translation id="7719367874908701697">Səhifə yaxınlaşdırması</translation>
 <translation id="7721179060400456005">Pəncərələrin ekranı örtməsinə icazə verin</translation>
 <translation id="7722040605881499779">Güncəlləmə lazımdır: <ph name="NECESSARY_SPACE" /></translation>
@@ -4969,7 +4982,6 @@
 <translation id="7744047395460924128">Çap tarixçənizi görün</translation>
 <translation id="7744192722284567281">Verilənlərin təhlükəsizliyinin pozulması halı aşkarlanıb</translation>
 <translation id="7750228210027921155">Şəkil içində şəkil</translation>
-<translation id="7751229152614300329">Təhlükəsiz Baxış yenilənib və sizi zərərli saytlardan və endirmələrdən qoruyur</translation>
 <translation id="7751260505918304024">Hamısını göstərin</translation>
 <translation id="7754704193130578113">Endirmədən öncə faylın saxlanacağı yeri soruşun</translation>
 <translation id="7755287808199759310">Valideyniniz kilidi aça bilər</translation>
@@ -5057,6 +5069,7 @@
     <ph name="BEGIN_BOLD" />Qeyd:<ph name="END_BOLD" />  Əməliyyat zamanı sistem yenidən işə başlayacaq.</translation>
 <translation id="7828731929332799387">Bu zaman üçüncü tərəf kontekstlərində əlçatan olan bütün kuki və sayt datası silinəcək. Davam etmək istəyirsiniz?</translation>
 <translation id="7829298379596169484">Audio daxiletmə əldə olunur</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> parollarınızı yoxlaya bilmir. İnternet bağlantınızı yoxlayın.</translation>
 <translation id="7829877209233347340">Məktəb hesabı əlavə etmək icazəsi verməsi üçün valideyndən daxil olmasını istəyin</translation>
 <translation id="7830594666202422257">Linux'a qoşulun</translation>
 <translation id="7831491651892296503">Şəbəkə konfiqurasiya xətası</translation>
@@ -5278,6 +5291,7 @@
 <translation id="8107015733319732394"><ph name="DEVICE_TYPE" /> cihazında Google Play Mağazası quraşdırılır. Bu proses bir neçə dəqiqə vaxt ala bilər.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Üçüncü tərəf kuki yoxdur}=1{1 üçüncü tərəf kuki bloklanıb}other{# üçüncü tərəf kuki bloklanıb}}</translation>
 <translation id="810875025413331850">Yaxınlıqda heç bir cihaz tapılmadı.</translation>
+<translation id="8114199541033039755">Planşet rejimindəki düymələrlə əsas səhifəyə, geri keçin və tətbiqləri dəyişdirin. ChromeVox və ya Avtomatik klik aktiv olduğu zaman aktiv edilir.</translation>
 <translation id="8114875720387900039">Horizontal bölün</translation>
 <translation id="8116972784401310538">&amp;Əlfəcin meneceri</translation>
 <translation id="8117620576188476503">Status paneli ilə bağlantılar, yeniliklər və ayarları idarə edin. Klaviatura ilə daxil olmaq üçün Alt + Shift + S düymələrinə basın.</translation>
@@ -5396,6 +5410,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> maus kursorunuzu deaktiv etdi.</translation>
 <translation id="8264024885325823677">Bu ayar inzibatçınız tərəfindən idarə edilir.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" tam ekranı təhrik etdi.</translation>
+<translation id="826511437356419340">Pəncərə icmalı rejiminə daxil olundu. Naviqasiya üçün sürüşdürün və ya klaviatura istifadə edirsinizsə tabı basın.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Bu, həmin cihaz və ondan istifadə (məs., batareya səviyyəsi, sistem və tətbiq fəaliyyəti və xətalar) haqqında ümumi məlumatlardır. Bu datadan Android'in təkmilləşdirilməsi üçün istifadə ediləcək və bəzi toplu məlumatlar da Google tətbiqləri və Android tərtibatçıları kimi partnyotlara tətbiq və məhsullarını təkmilləşdirməkdə kömək edəcək.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Bu funksiyanın deaktiv edilməsi cihazın sistem güncəlləmələri və güvənlik kimi vacib xidmətlər üçün tələb edilən məlumatları göndərməsinə təsir etməyəcək.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Sahibi bu funksiyanı Ayarlar &gt; Qabaqcıl &gt; Diaqnostikanı və istifadə datasını avtomatik olaraq Google'a göndərin bölməsindən idarə edə bilər.<ph name="END_PARAGRAPH3" />
@@ -5504,6 +5519,7 @@
 <translation id="8426713856918551002">Aktivləşir</translation>
 <translation id="8427292751741042100">hər hansı hosta yerləşdirilmiş</translation>
 <translation id="8428213095426709021">Ayarlar</translation>
+<translation id="8428271547607112339">Məktəb hesabı əlavə edin</translation>
 <translation id="8428628598981198790">Təhlükəsizlik açarından bu saytda istifadə edə bilməzsiniz</translation>
 <translation id="84297032718407999"><ph name="LOGOUT_TIME_LEFT" /> ərzində çıxış edəcəksiniz</translation>
 <translation id="8431190899827883166">Tabları göstərin</translation>
@@ -5567,6 +5583,7 @@
 <translation id="851263357009351303"><ph name="HOST" /> şəkilləri göstərməyə hər zaman icazə verin</translation>
 <translation id="8513108775083588393">Avtodönüş</translation>
 <translation id="8514746246728959655">Başqa təhlükəsizlik açarından istifadə edin</translation>
+<translation id="851960115758509829">Tətbiqlər, ayarlar və digər fərdi elementlər Google Hesabınız ilə daxil olduğunuz bütün Chrome ƏS cihazlarında sinxronlaşdırılacaq.</translation>
 <translation id="8521475323816527629">Tətbiqlərə daha sürətlə daxil olun</translation>
 <translation id="8523493869875972733">Dəyişiklikləri Saxlayın</translation>
 <translation id="8523849605371521713">Siyasət tərəfindən əlavə edilib</translation>
@@ -5846,11 +5863,13 @@
 <translation id="885701979325669005">Yaddaş</translation>
 <translation id="8859057652521303089">Dil seçin:</translation>
 <translation id="8859174528519900719">Alt çərçivə: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Valideyn hesabı</translation>
 <translation id="8862003515646449717">Sürətli brauzerə keçin</translation>
 <translation id="8863753581171631212">Linki yeni <ph name="APP" /> tətbiqində açın</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> <ph name="APP_NAME" /> ilə paylaşılır</translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> bu cihazdan silindi</translation>
 <translation id="8867228703146808825">Versiya təfərrüatlarını mübadilə buferinə kopyalayın</translation>
+<translation id="8868333925931032127">Demo Rejimi başladılır</translation>
 <translation id="8868626022555786497">İstifadə edilir</translation>
 <translation id="8870413625673593573">Son Qapadılan</translation>
 <translation id="8871551568777368300">Administrator tərəfindən nişanlanıb</translation>
@@ -5929,6 +5948,7 @@
 <translation id="8966870118594285808">Tab səhvən bağlanarsa, yenidən açın</translation>
 <translation id="8967866634928501045">Göstərmək üçün Alt Shift A düymələrinə basın</translation>
 <translation id="8968766641738584599">Kartı yadda saxlayın</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> parollarınızı yoxlaya bilmir. 24 saat sonra yenidən cəhd edin və ya <ph name="BEGIN_LINK" />Google Hesabınızda parolları yoxlayın<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Çıxın</translation>
 <translation id="8972513834460200407">Şəbəkə administratorunuz ilə yoxlayaraq əmin olun ki, brandmauer Google serverlərindən olan endirmələri blok etmir.</translation>
 <translation id="8973557916016709913">Miqyas səviyyəsini silin</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index ed3e1d6..2212d12 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Даступныя прылады</translation>
 <translation id="1042174272890264476">Ваш камп'ютар пастаўляецца з убудаванай бібліятэкай RLZ для <ph name="SHORT_PRODUCT_NAME" />. RLZ прызначае неўнікальны цэтлік, які не дазваляе ідэнтыфікаваць асобу, для ацэнкі пошукавых запытаў і статыстыкі выкарыстання <ph name="SHORT_PRODUCT_NAME" />, якія з'яўляюцца вынікам пэўных рэкламных кампаній. Гэтыя меткі часам з'яўляюцца ў пошукавых запытах у Google у прадукце <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Таксама выдаліць даныя з гэтых праграм?</translation>
+<translation id="1045448422538531528">Дадаць да групы</translation>
 <translation id="1046635659603195359">Здаецца, вы ўжо наладзілі функцыю Voice Match у Памочніку Google на іншай прыладзе. Зробленыя запісы можна выкарыстоўваць для стварэння галасавой мадэлі на гэтай прыладзе. Гэта зойме менш за хвіліну.</translation>
 <translation id="104710386808485638">Перазапусціць Linux?</translation>
 <translation id="1047431265488717055">Скапіраваць &amp;тэкст спасылкі</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Заўсёды блакіраваць доступ да камеры</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> спрабуе аднавіць налады Chrome да стандартных значэнняў. Будуць скінуты налады галоўнай старонкі, старонкі новай укладкі і пошукавай сістэмы, а таксама выключаны пашырэнні і адмацаваны ўсе ўкладкі. Таксама будуць выдалены ўсе часовыя і кэшаваныя даныя, такія як файлы cookie, даныя сайтаў і змесціва.</translation>
+<translation id="1084096383128641877">Пры выдаленні гэтага пароля ўліковы запіс на сайце <ph name="DOMAIN" /> не выдаліцца. Каб абараніць свой уліковы запіс (на <ph name="DOMAIN_LINK" />), выдаліце яго або змяніце пароль.</translation>
 <translation id="1084824384139382525">Капіраваць &amp;адрас спасылкі</translation>
 <translation id="1085697365578766383">Памылка падчас запуску віртуальнай машыны. Паўтарыце спробу.</translation>
 <translation id="1090126737595388931">Няма праграм, якія працуюць у фонавым рэжыме</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Праверка бяспекі выконвалася ўчора</translation>
 <translation id="1260451001046713751">Заўсёды дазваляць выплыўныя вокны і перанакіраванні ад <ph name="HOST" /></translation>
 <translation id="126156426083987769">Праблема з ліцэнзіямі прылад у дэманстрацыйным рэжыме.</translation>
+<translation id="1263490604593716556">Уліковым запісам кіруюць <ph name="FIRST_PARENT_EMAIL" /> і <ph name="SECOND_PARENT_EMAIL" />. Каб выйсці з асноўнага ўліковага запісу на гэтай прыладзе, націсніце час на экране. У меню, якое з'явіцца, націсніце "Выйсці".</translation>
 <translation id="126710816202626562">Мова перакладу:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Спыніць</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Вэб-сайт</translation>
 <translation id="15662109988763471">Выбраны прынтар недаступны або ўсталяваны няправільна. Праверце прынтар або выберыце іншы.</translation>
 <translation id="1567387640189251553">З моманту апошняга ўводу пароля да прылады была падключана іншая клавіятура. Клавіятура можа спрабаваць адсочваць і перадаваць націсканні клавіш.</translation>
-<translation id="1567750922576943685">Спраўджанне асобы дапамагае абараніць асабістую інфармацыю</translation>
 <translation id="1567993339577891801">Кансоль JavaScript</translation>
 <translation id="1568323446248056064">Адкрыць налады дысплэя</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Госць)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Мастацтва</translation>
 <translation id="1697686431566694143">Змяніць файл</translation>
 <translation id="1698122934742150150">Толькі бягучы сеанс інкогніта</translation>
-<translation id="1698650002254827833">Не ўдалося загрузіць спіс праграм. Паўтарыце спробу.</translation>
 <translation id="1700079447639026019">Сайты, якім забаронена выкарыстоўваць файлы cookie</translation>
 <translation id="1701062906490865540">Выдаліць гэтага карыстальніка</translation>
 <translation id="1703331064825191675">Паролі больш не наробяць клопату</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Працягнуць</translation>
 <translation id="2173302385160625112">Праверце падключэнне да інтэрнэту</translation>
 <translation id="2173801458090845390">Дадаць ідэнтыфікатар заяўкі для гэтай прылады</translation>
+<translation id="2174948148799307353">Уліковым запісам кіруе <ph name="PARENT_EMAIL" />. Каб выйсці з асноўнага ўліковага запісу на гэтай прыладзе, націсніце час на экране. У меню, якое з'явіцца, націсніце "Выйсці".</translation>
 <translation id="2175607476662778685">Палоска хуткага запуску</translation>
 <translation id="217576141146192373">Не ўдалося дадаць прынтар. Праверце параметры канфігурацыі прынтара і паўтарыце спробу.</translation>
 <translation id="2177950615300672361">Укладка інкогніта: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Цень ад тэксту</translation>
 <translation id="2445081178310039857">Патрабуецца каранёвы каталог пашырэння.</translation>
 <translation id="2445484935443597917">Стварыць новы профіль</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> запытвае спраўджанне вашай асобы</translation>
 <translation id="2448312741937722512">Тып</translation>
 <translation id="2450223707519584812">Вы не зможаце дадаваць карыстальнікаў, бо адсутнічаюць ключы Google API. Даведацца больш: <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Няма актыўных праглядаў</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Перайсці на старонку "<ph name="PAGE_TITLE" />"</translation>
 <translation id="29488703364906173">Хуткі, просты і бяспечны вэб-браўзер, створаны для сучаснага інтэрнэту.</translation>
 <translation id="2949289451367477459">Выкарыстоўваць месцазнаходжанне. Дазвольце праграмам і службам з дазволам на вызначэнне месцазнаходжання карыстацца гэтымі данымі. Google можа збіраць такія даныя і ананімна выкарыстоўваць іх для паляпшэння дакладнасці вызначэння месцазнаходжання і працы службаў на яго падставе. <ph name="BEGIN_LINK1" />Даведацца больш<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Падпісацца</translation>
 <translation id="2956070239128776395">Раздзел уложаны ў групу: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Не дазваляць сайтам змяняць файлы ці папкі на прыладзе</translation>
 <translation id="2958721676848865875">Папярэджанне аб пакаванні пашырэння</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Стандартны жоўты аватар</translation>
 <translation id="3141318088920353606">Гаварыце...</translation>
 <translation id="3141917231319778873">Дадзены запыт не падтрымліваецца на прыладзе "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Новая група</translation>
 <translation id="3143515551205905069">Скасаваць сінхранізацыю</translation>
 <translation id="3143754809889689516">Прайграць з пачатку</translation>
 <translation id="3144647712221361880">Адкрыць спасылку як</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Бэжавы</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (апаратна забяспечаны)</translation>
 <translation id="3161522574479303604">Усе мовы</translation>
+<translation id="3162853326462195145">Навучальны ўліковы запіс</translation>
 <translation id="3162899666601560689">Сайты могуць выкарыстоўваць файлы cookie для паляпшэння сваёй функцыянальнасці – напрыклад, для захавання інфармацыі пра тое, што вы ўвайшлі ва ўліковы запіс, або каб запамінаць тавары ў кошыку</translation>
 <translation id="3163201441334626963">Невядомы прадукт <ph name="PRODUCT_ID" /> ад пастаўшчыка <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Укладка абагульваецца з <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Перазапусціце прыладу на працягу дня}one{Перазапусціце прыладу на працягу # дня}few{Перазапусціце прыладу на працягу # дзён}many{Перазапусціце прыладу на працягу # дзён}other{Перазапусціце прыладу на працягу # дня}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – памылка сеткі</translation>
 <translation id="3248902735035392926">Бяспека мае значэнне. Удзяліце некаторы час і <ph name="BEGIN_LINK" />праверце пашырэнні<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Не з'яўляецца часткай сертыфіката&gt;</translation>
 <translation id="3253225298092156258">Недаступна</translation>
 <translation id="3253448572569133955">Невядомы ўліковы запіс</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Націскаючы на кнопку "Прыняць і працягнуць", вы згаджаецеся з апісанымі вышэй умовамі гэтых сэрвісаў Google.</translation>
 <translation id="3399432415385675819">Апавяшчэнні будуць выключаны</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Гц) – празрадковая разгортка</translation>
+<translation id="3402585168444815892">Рэгістрацыя ў дэманстрацыйным рэжыме</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Для гэтага сайта няма захаваных пароляў</translation>
 <translation id="3405664148539009465">Наладзіць шрыфты</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Тэлефон Android</translation>
 <translation id="3470442499439619530">Выдаліць карыстальніка</translation>
 <translation id="3471876058939596279">Парты HDMI і USB Type-C не могуць выкарыстоўвацца для відэа адначасова. Паспрабуйце іншы відэапорт.</translation>
+<translation id="3473241910002674503">Пераход на Панэль запуску, вяртанне назад і пераключэнне праграм кнопкамі ў планшэтным рэжыме.</translation>
 <translation id="3473479545200714844">Экранная лупа</translation>
 <translation id="3475843873335999118">Адбітак пальца распазнаць не ўдалося. Увядзіце пароль.</translation>
 <translation id="3476303763173086583">Адпраўка даных пра выкарыстанне і дыягностыку. Дапамажыце палепшыць функцыянальнасць прылады Android для дзіцяці шляхам аўтаматычнай адпраўкі даных пра дыягностыку, выкарыстанне прылады і праграм у Google. Яны не будуць выкарыстаны для ідэнтыфікацыі асобы дзіцяці, але дапамогуць у паляпшэнні стабільнасці сістэмы і праграм і для іншых удасканаленняў. Некаторыя згрупаваныя даныя таксама будуць карысныя для праграм і партнёраў Google, напрыклад распрацоўшчыкаў Android. Гэта <ph name="BEGIN_LINK1" />налада<ph name="END_LINK1" /> ўключана ўладальнікам. Уладальнік можа ўключыць адпраўку даных пра выкарыстанне і дыягностыку гэтай прылады ў Google. Калі для вашага дзіцяці ўключана налада дадатковай гісторыі дзеянняў у інтэрнэце і праграмах, то адпаведныя даныя могуць захоўвацца ў яго Уліковым запісе Google. <ph name="BEGIN_LINK2" />Даведацца больш<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Лічбавыя адбіткі на гэтым ключы бяспекі</translation>
 <translation id="3973660817924297510">Праверка пароляў (<ph name="CHECKED_PASSWORDS" /> з <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Памылка сувязі з серверам па ўказанай вобласці</translation>
+<translation id="3975884715086515476">Браўзеру <ph name="IDS_SHORT_PRODUCT_NAME" /> не ўдаецца праверыць паролі. Паўтарыце спробу пазней.</translation>
 <translation id="3976108569178263973">Няма даступных прынтараў.</translation>
 <translation id="397703832102027365">Завяршэнне...</translation>
 <translation id="3977886311744775419">Сетка гэтага тыпу не падтрымлівае спампоўку аўтаматычных абнаўленняў, але вы можаце праверыць наяўнасць абнаўленняў уручную.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">На старонцы ёсць элементы наступных сайтаў, якія збіраюць інфармацыю аб вашым месцазнаходжанні:</translation>
 <translation id="4068776064906523561">Захаваныя адбіткі пальцаў</translation>
 <translation id="407173827865827707">Па націсканні</translation>
+<translation id="4073520450811433493">Сінхранізацыя налад</translation>
 <translation id="4074900173531346617">Сертыфікат для падпісвання электроннай пошты</translation>
 <translation id="407520071244661467">Маштаб</translation>
 <translation id="4075639477629295004">Не ўдаецца трансліраваць файл "<ph name="FILE_NAME" />".</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Пушок</translation>
 <translation id="4423376891418188461">Аднавіць налады</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, ваш адміністратар патрабуе, каб вы змянілі пароль.</translation>
+<translation id="4426209360861763174">Браўзеру <ph name="IDS_SHORT_PRODUCT_NAME" /> не ўдаецца праверыць паролі. Паўтарыце спробу праз 24 гадзіны.</translation>
 <translation id="4429030830601238961">Гэтыя даныя парушаюць палітыку бяспекі вашай арганізацыі і таму не могуць быць устаўлены.</translation>
 <translation id="4430019312045809116">Гучнасць</translation>
 <translation id="4430369329743628066">Дададзена закладка</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Ці запускаць аўтаматычна гэту праграму пры ўключэнні прылады?</translation>
 <translation id="4441147046941420429">Каб працягнуць, дастаньце ключ бяспекі з прылады, затым зноў устаўце і дакраніцеся да яго</translation>
 <translation id="444134486829715816">Разгарнуць...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> зможа праверыць паролі толькі пасля таго, як вы ўвойдзеце ва Уліковы запіс Google</translation>
 <translation id="4442424173763614572">Не ўдалося выканаць пошук DNS</translation>
 <translation id="4443536555189480885">&amp;Даведка</translation>
 <translation id="4444304522807523469">Доступ для сканераў дакументаў, падключаных праз USB або па лакальнай сетцы</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Гэты код можна адсканіраваць з дапамогай праграмы сканіравання QR-кодаў на тэлефоне або некаторых праграм для камеры.</translation>
 <translation id="4477015793815781985">Дадайце Ctrl, Alt або клавішу ⌘</translation>
 <translation id="4478664379124702289">Захаваць &amp;спасылку як...</translation>
+<translation id="4478777936860197922">Няма захаваных пароляў. <ph name="IDS_SHORT_PRODUCT_NAME" /> можа правяраць толькі захаваныя паролі.</translation>
 <translation id="4479424953165245642">Кіраванне праграмамі-кіёскамі</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Ідзе наладжванне віртуальнай машыны. Гэта можа заняць некалькі хвілін.</translation>
 <translation id="4480590691557335796">Chrome можа знаходзіць небяспечнае праграмнае забеспячэнне на вашым камп'ютары і выдаляць яго</translation>
 <translation id="4481530544597605423">Разлучаныя прылады</translation>
+<translation id="4488107067273194838">Праверыць параметры сінхранізацыі браўзера пасля наладкі</translation>
 <translation id="4488502501195719518">Выдаліць усе даныя?</translation>
 <translation id="4495419450179050807">Не паказваць на гэтай старонцы</translation>
 <translation id="4496054781541092778">аўтаматычная блакіроўка (<ph name="PERMISSION" />)</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Не ўсталёўваць</translation>
 <translation id="4850669014075537160">Прагортка</translation>
 <translation id="4850886885716139402">Праглядзець</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> адправіць вам апавяшчэнне, калі вы ўвойдзеце ва ўліковы запіс, выкарыстаўшы раскрыты пароль</translation>
 <translation id="4853020600495124913">Адкрыць у &amp;новым акне</translation>
 <translation id="4854317507773910281">Для ўхвалення выберыце бацькоўскі ўліковы запіс</translation>
 <translation id="485480310608090163">Іншыя налады і дазволы</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN-код змяшчае недапушчальныя сімвалы</translation>
 <translation id="4871370605780490696">Дадаць закладку</translation>
 <translation id="4871719318659334896">Закрыць групу</translation>
+<translation id="4871852311166078968">Дадаць да групы</translation>
 <translation id="4873312501243535625">Праверка мультымедыйных файлаў</translation>
 <translation id="4876273079589074638">Дапамажыце нашым інжынерам вывучыць і выправіць гэты збой. Калі можаце, пералічыце дакладныя крокі. Любыя дэталі – карысныя!</translation>
 <translation id="4876895919560854374">Блакіроўка і разблакіроўка экрана</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Ваш адміністратар абмежаваў даступныя метады ўводу.</translation>
 <translation id="4994474651455208930">Дазволіць сайтам запытваць права быць стандартнымі апрацоўшчыкамі пратаколаў</translation>
 <translation id="4994754230098574403">Ідзе наладжванне</translation>
-<translation id="4996978546172906250">Абагуліць праз</translation>
 <translation id="4997086284911172121">Няма падключэння да інтэрнэту.</translation>
 <translation id="4997384734315285248">Выдаліць Plugin VM</translation>
 <translation id="4998430619171209993">Уключана</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Звяртацца да Памочніка, вымавіўшы "Ok Google".</translation>
 <translation id="5135533361271311778">Не ўдалося стварыць элемент закладкі.</translation>
 <translation id="5137501176474113045">Выдаліць гэты элемент</translation>
-<translation id="5138982052046316113">Змяненне памеру дыска Linux</translation>
 <translation id="5139112070765735680">Пошук па запыце "<ph name="QUERY_NAME" />" на сайце <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Увядзіце PIN-код для ключа бяспекі. Калі вы не ведаеце PIN-код, спатрэбіцца скінуць налады ключа бяспекі.</translation>
 <translation id="5139955368427980650">&amp;Адкрыць</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Чаканне спраўджання. <ph name="LINK_BEGIN" />Даведацца больш<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Вельмі вялікі</translation>
 <translation id="574209121243317957">Вышыня голасу</translation>
+<translation id="5745136023067925867">Давайце водгукі, атрымлівайце прапановы, навіны і парады па прыладах <ph name="DEVICE_TYPE" /></translation>
 <translation id="5746169159649715125">Захаваць як PDF</translation>
 <translation id="5747552184818312860">Тэрмін дзеяння:</translation>
 <translation id="5747785204778348146">Распрацоўшчык – нестабільны параметр</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Паказаць у акне Finder</translation>
 <translation id="6295158916970320988">Усе сайты</translation>
 <translation id="6295855836753816081">Ідзе захаванне...</translation>
-<translation id="629730747756840877">Уліковы запіс</translation>
 <translation id="6298962879096096191">Для ўсталявання праграм Android выкарыстоўвайце Google Play</translation>
 <translation id="630065524203833229">В&amp;ыйсці</translation>
 <translation id="6300718114348072351">Не ўдалося аўтаматычна наладзіць <ph name="PRINTER_NAME" />. Укажыце пашыраныя звесткі пра прынтар. <ph name="LINK_BEGIN" />Даведацца больш<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Мова старонкі – не <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Журналы падзей WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Тэмпература колеру</translation>
-<translation id="6870888490422746447">Выберыце, з якой праграмай абагуліць:</translation>
 <translation id="6871644448911473373">Адказчык OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Уведзены пароль адхілены серверам.</translation>
 <translation id="6876155724392614295">Веласіпед</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – журнал актыўнасці</translation>
 <translation id="6997707937646349884">На прыладах:</translation>
 <translation id="6998793565256476099">Зарэгістраваць прыладу для відэаканферэнцый</translation>
+<translation id="6999956497249459195">Новая група</translation>
 <translation id="7000206553895739324">Прынтар "<ph name="PRINTER_NAME" />" падключаны, але яго трэба наладзіць</translation>
 <translation id="7000347579424117903">Дадайце Ctrl, Alt або клавішу "Пошук"</translation>
 <translation id="7001036685275644873">Рэзервовае капіраванне файлаў і праграм Linux</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL-адрас</translation>
 <translation id="7400839060291901923">Наладзьце падключэнне на прыладзе <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Адхіліць гэта паведамленне</translation>
+<translation id="7403642243184989645">Спампоўванне рэсурсаў</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Праверка бяспекі выконвалася гадзіну таму}one{Праверка бяспекі выконвалася {NUM_HOURS} гадзіну таму}few{Праверка бяспекі выконвалася {NUM_HOURS} гадзіны таму}many{Праверка бяспекі выконвалася {NUM_HOURS} гадзін таму}other{Праверка бяспекі выконвалася {NUM_HOURS} гадзіны таму}}</translation>
 <translation id="740624631517654988">Усплывальнае акно заблакіравана</translation>
 <translation id="7407430846095439694">Імпартаваць і звязаць</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">URL-адрас палітыкі для цэнтра сертыфікацыі Netscape</translation>
 <translation id="7717014941119698257">Ідзе спампоўка: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Праверыць наяўнасць абнаўленняў</translation>
+<translation id="7719070594859855691">Даць доступ да камеры</translation>
 <translation id="7719367874908701697">Маштаб старонкі</translation>
 <translation id="7721179060400456005">Дазволіць вокнам пашырацца на некалькі дысплэяў</translation>
 <translation id="7722040605881499779">Для пераносу неабходна <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Праглядзець вашу гісторыю друку</translation>
 <translation id="7744192722284567281">Раскрыты пры ўцечцы даных</translation>
 <translation id="7750228210027921155">Відарыс у відарысе</translation>
-<translation id="7751229152614300329">"Бяспечны прагляд" абноўлены і абараняе вас ад шкодных сайтаў і спамповак</translation>
 <translation id="7751260505918304024">Паказаць усе</translation>
 <translation id="7754704193130578113">Прапаноўваць перад спампоўваннем выбраць месца для захавання файла</translation>
 <translation id="7755287808199759310">Разблакіраваць сайт для вас можа адзін з бацькоў</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Заўвага:<ph name="END_BOLD" />  пасля запуску гэтага працэсу сістэма перазагрузіцца.</translation>
 <translation id="7828731929332799387">Будуць выдалены ўсе файлы cookie і даныя сайтаў, даступныя ў старонніх кантэкстах. Працягнуць?</translation>
 <translation id="7829298379596169484">Выкарыстоўваецца доступ да аўдыяўваходу</translation>
+<translation id="7829528495815477379">Браўзеру <ph name="IDS_SHORT_PRODUCT_NAME" /> не ўдаецца праверыць паролі. Паспрабуйце праверыць падключэнне да інтэрнэту.</translation>
 <translation id="7829877209233347340">Папрасіце кагосьці з бацькоў увайсці і дазволіць дадаць навучальны ўліковы запіс</translation>
 <translation id="7830594666202422257">Падключыць да Linux</translation>
 <translation id="7831491651892296503">Памылка наладжвання сеткі</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">Ідзе ўсталяванне Крамы Google Play на <ph name="DEVICE_TYPE" />. Гэта можа заняць некалькі хвілін.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Няма старонніх файлаў cookie}=1{1 старонні файл cookie заблакіраваны}one{# старонні файл cookie заблакіраваны}few{# староннія файлы cookie заблакіраваны}many{# старонніх файлаў cookie заблакіраваны}other{# старонняга файла cookie заблакіраваны}}</translation>
 <translation id="810875025413331850">Прылад паблізу не знойдзена.</translation>
+<translation id="8114199541033039755">Пераход на Панэль запуску, вяртанне назад і пераключэнне праграм кнопкамі ў планшэтным рэжыме. Налада ўключаецца, калі ўключаны ChromeVox або аўтаматычныя націсканні.</translation>
 <translation id="8114875720387900039">Падзяліць гарызантальна</translation>
 <translation id="8116972784401310538">&amp;Менеджар закладак</translation>
 <translation id="8117620576188476503">Кіруйце падключэннямі, абнаўленнямі і наладамі ў панэлі стану. Каб адкрыць яе з клавіятуры, націсніце Alt + Shift + S.</translation>
@@ -5406,6 +5420,7 @@
 <translation id="8263744495942430914">Сайт <ph name="FULLSCREEN_ORIGIN" /> выключыў курсор мышы.</translation>
 <translation id="8264024885325823677">Гэта налада знаходзіцца пад кіраваннем адміністратара.</translation>
 <translation id="8264718194193514834">Пашырэнне "<ph name="EXTENSION_NAME" />" уключыла поўнаэкранны рэжым.</translation>
+<translation id="826511437356419340">Уключаны рэжым агляду вокнаў. Для перамяшчэння правядзіце пальцам па экране або націсніце Tab на клавіятуры.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Гэта агульная інфармацыя пра вашу прыладу і яе выкарыстанне (напрыклад, пра ўзровень зараду акумулятара, дзеянні ў сістэме і праграмах, памылкі). Даныя будуць выкарыстоўвацца для ўдасканалення сістэмы Android, а пэўная згрупаваная інфармацыя дапаможа ўдасканаліць праграмы Google і будзе карыснай для партнёраў кампаніі, напрыклад для распрацоўшчыкаў Android, у паляпшэнні праграм і прадуктаў.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Калі вы выключыце гэту функцыю, прылада ўсё роўна будзе адпраўляць даныя, неабходныя для працы асноўных сэрвісаў, такіх як абнаўленне сістэмы і бяспека прылады.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Уладальнік можа кіраваць гэтай функцыяй у меню "Налады &gt; Дадатковыя функцыі &gt; Аўтаматычна адпраўляць у Google даныя па дыягностыцы і выкарыстанні".<ph name="END_PARAGRAPH3" />
@@ -5514,6 +5529,7 @@
 <translation id="8426713856918551002">Уключэнне</translation>
 <translation id="8427292751741042100">убудаваны на любым хосце</translation>
 <translation id="8428213095426709021">Налады</translation>
+<translation id="8428271547607112339">Дадаць навучальны ўліковы запіс</translation>
 <translation id="8428628598981198790">Ваш ключ бяспекі на гэтым сайце выкарыстаць нельга</translation>
 <translation id="84297032718407999">Выхад будзе выкананы праз <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Паказ дотыкаў</translation>
@@ -5577,6 +5593,7 @@
 <translation id="851263357009351303">Заўсёды дазваляць відарысы на сайце <ph name="HOST" /></translation>
 <translation id="8513108775083588393">Аўтапаварот</translation>
 <translation id="8514746246728959655">Паспрабуйце іншы ключ бяспекі</translation>
+<translation id="851960115758509829">Праграмы, налады і іншыя параметры будуць сінхранізавацца на ўсіх прыладах Chrome OS, з якіх вы ўвайшлі ва Уліковы запіс Google.</translation>
 <translation id="8521475323816527629">Хуткі доступ да праграм</translation>
 <translation id="8523493869875972733">Захаваць змяненні</translation>
 <translation id="8523849605371521713">Дададзена палітыкай</translation>
@@ -5858,11 +5875,13 @@
 <translation id="885701979325669005">Сховішча</translation>
 <translation id="8859057652521303089">Выберыце мову:</translation>
 <translation id="8859174528519900719">Субфрэйм: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Бацькоўскі ўліковы запіс</translation>
 <translation id="8862003515646449717">Пераключыцца на хуткі браўзер</translation>
 <translation id="8863753581171631212">Адкрыць спасылку ў новым акне праграмы <ph name="APP" /></translation>
 <translation id="8864055848767439877">Укладка "<ph name="TAB_NAME" />" абагульваецца з <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Уліковы запіс <ph name="EMAIL" /> выдалены з гэтай прылады</translation>
 <translation id="8867228703146808825">Скапіраваць звесткі пра зборку ў буфер абмену</translation>
+<translation id="8868333925931032127">Запускаецца дэманстрацыйны рэжым</translation>
 <translation id="8868626022555786497">Выкарыстоўваецца</translation>
 <translation id="8870413625673593573">Нядаўна закрытыя</translation>
 <translation id="8871551568777368300">Замацавана адміністратарам</translation>
@@ -5941,6 +5960,7 @@
 <translation id="8966870118594285808">Калі вы выпадкова закрылі ўкладку, адкрыйце яе зноў</translation>
 <translation id="8967866634928501045">Націсніце "Al+ Shift+A", каб паказаць</translation>
 <translation id="8968766641738584599">Захаваць картку</translation>
+<translation id="8971800409073702505">Браўзеру <ph name="IDS_SHORT_PRODUCT_NAME" /> не ўдаецца праверыць паролі. Паўтарыце спробу праз 24 гадзіны або <ph name="BEGIN_LINK" />праверце паролі ва Уліковым запісе Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Даведайцеся ў адміністратара сеткі, ці не блакіруе брандмаўэр спампоўкі з сервераў Google.</translation>
 <translation id="8973557916016709913">Выдаліць узровень маштабу дысплэя</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index c5f09f5..6983f5d 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Налични устройства</translation>
 <translation id="1042174272890264476">Компютърът ви също се предлага с библиотеката RLZ на <ph name="SHORT_PRODUCT_NAME" />, която е вградена. Тя задава неуникален и непозволяващ лично идентифициране маркер за измерване на търсенията и използването на <ph name="SHORT_PRODUCT_NAME" />, стимулирани от определена промоционална кампания. Тези етикети понякога се показват в заявките за търсене с Google в <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Да се изчистят ли данните от следните приложения?</translation>
+<translation id="1045448422538531528">Добавяне към група</translation>
 <translation id="1046635659603195359">Изглежда, че вече сте настроили Voice Match за Google Асистент на друго устройство. Предишните записи могат да се използват за създаване на гласов модел на това устройство. Процесът следва да отнеме по-малко от минута.</translation>
 <translation id="104710386808485638">Искате ли да рестартирате Linux?</translation>
 <translation id="1047431265488717055">Копиране на тек&amp;ста на връзката</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Достъпът до камерата да се блокира винаги</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> иска да възстанови настройките ви на Chrome към първоначалните им стандартни стойности. Това ще нулира началната ви страница, новия раздел в браузъра и търсещата машина, ще деактивира разширенията ви и ще освободи всички раздели. Също така ще се изчистят други временни и кеширани данни, като „бисквитки“, съдържание и информация за сайтове.</translation>
+<translation id="1084096383128641877">Премахването на тази парола няма да изтрие профила ви в(ъв) <ph name="DOMAIN" />. За да го защитите от други хора, променете паролата си или изтрийте профила си в(ъв) <ph name="DOMAIN_LINK" />.</translation>
 <translation id="1084824384139382525">Копиране на адреса на вр&amp;ъзката</translation>
 <translation id="1085697365578766383">Грешка при стартирането на виртуалната машина. Моля, опитайте отново.</translation>
 <translation id="1090126737595388931">Не се изпълняват приложения на заден план</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Проверката на безопасността бе изпълнена вчера</translation>
 <translation id="1260451001046713751">Разрешаване винаги на изскачащите прозорци и пренасочванията от <ph name="HOST" /></translation>
 <translation id="126156426083987769">Възникна проблем с лицензите за демонстрационен режим на устройството.</translation>
+<translation id="1263490604593716556">Профилът се управлява от <ph name="FIRST_PARENT_EMAIL" /> и <ph name="SECOND_PARENT_EMAIL" />. За да излезете от основния профил на това устройство, кликнете върху часа на екрана. В менюто, което се показва, кликнете върху „Изход“.</translation>
 <translation id="126710816202626562">Език за превод:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Стоп</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">Уебсайт</translation>
 <translation id="15662109988763471">Избраният принтер не е налице или не е инсталиран правилно. Проверете го или изберете друг.</translation>
 <translation id="1567387640189251553">Свързана е различна клавиатура, откакто последно въведохте паролата си. Тя може да се опитва да записва кои клавиши натискате.</translation>
-<translation id="1567750922576943685">Потвърждаването на самоличността ви спомага за защитата на личната ви информация</translation>
 <translation id="1567993339577891801">Конзола на JavaScript</translation>
 <translation id="1568323446248056064">Отваряне на настройките за дисплея</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (гост)</translation>
@@ -516,7 +518,6 @@
 <translation id="1697150536837697295">Изкуство</translation>
 <translation id="1697686431566694143">Редактиране на файла</translation>
 <translation id="1698122934742150150">Само за текущата сесия в режим „инкогнито“</translation>
-<translation id="1698650002254827833">Списъкът с приложения не може да бъде зареден. Моля, опитайте отново.</translation>
 <translation id="1700079447639026019">Сайтове, които никога не могат да използват „бисквитки“</translation>
 <translation id="1701062906490865540">Премахване на този човек</translation>
 <translation id="1703331064825191675">Никога повече не се тревожете за паролите си</translation>
@@ -870,6 +871,7 @@
 <translation id="2172784515318616985">Напред</translation>
 <translation id="2173302385160625112">Проверете връзката си с интернет</translation>
 <translation id="2173801458090845390">Добавяне на идентификационен номер на заявка към това устройство</translation>
+<translation id="2174948148799307353">Профилът се управлява от <ph name="PARENT_EMAIL" />. За да излезете от основния профил на това устройство, кликнете върху часа на екрана. В менюто, което се показва, кликнете върху „Изход“.</translation>
 <translation id="2175607476662778685">Лента за бързо стартиране</translation>
 <translation id="217576141146192373">Принтерът не може да бъде добавен. Моля, проверете конфигурацията му и опитайте отново.</translation>
 <translation id="2177950615300672361">Раздел в режим „инкогнито“: <ph name="TAB_NAME" /></translation>
@@ -1078,7 +1080,6 @@
 <translation id="2442916515643169563">Сянка на текста</translation>
 <translation id="2445081178310039857">Необходима е основна директория на разширението.</translation>
 <translation id="2445484935443597917">Създаване на нов потребителски профил</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> иска да потвърди самоличността ви</translation>
 <translation id="2448312741937722512">Тип</translation>
 <translation id="2450223707519584812">Няма да можете да добавяте потребители, тъй като липсват ключове за приложните програмни интерфейси (API) на Google. За подробности вижте <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Няма активни изгледи</translation>
@@ -1476,6 +1477,7 @@
 <translation id="2948300991547862301">Към „<ph name="PAGE_TITLE" />“</translation>
 <translation id="29488703364906173">Бърз, опростен и сигурен уеб браузър, създаден за модерната мрежа.</translation>
 <translation id="2949289451367477459">Използване на местоположението. Позволете на приложенията и услугите да ползват местоположението на това устройство, ако имат съответното разрешение за достъп. Google може периодично да събира данни за местоположението и да ги използва по анонимен начин с цел подобряване на точността му и базиращите се на него услуги. <ph name="BEGIN_LINK1" />Научете повече<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Регистрирайте ме</translation>
 <translation id="2956070239128776395">В група е вложена секция: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Забраняване на сайтовете да редактират файлове или папки на устройството ви</translation>
 <translation id="2958721676848865875">Предупреждение за пакетиране на разширението</translation>
@@ -1600,6 +1602,7 @@
 <translation id="3139925690611372679">Стандартен жълт аватар</translation>
 <translation id="3141318088920353606">Слушаме ви...</translation>
 <translation id="3141917231319778873">Дадената заявка не се поддържа за: <ph name="DEVICE_NAME" />.</translation>
+<translation id="3142562627629111859">Нова група</translation>
 <translation id="3143515551205905069">Анулиране на синхронизирането</translation>
 <translation id="3143754809889689516">Възпроизвеждане от началото</translation>
 <translation id="3144647712221361880">Отваряне на връзката като</translation>
@@ -1624,6 +1627,7 @@
 <translation id="3159493096109238499">бежово</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (с хардуерно съхраняване)</translation>
 <translation id="3161522574479303604">Всички езици</translation>
+<translation id="3162853326462195145">Училищен профил</translation>
 <translation id="3162899666601560689">Сайтовете могат да използват „бисквитки“ с цел по-добро сърфиране, например за да оставате в профила си или за да запомнят артикулите в пазарската ви кошница</translation>
 <translation id="3163201441334626963">Неизвестен продукт <ph name="PRODUCT_ID" /> от доставчик <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Този раздел се споделя с(ъс) <ph name="APP_NAME" /></translation>
@@ -1682,7 +1686,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Актуализирайте устройството в рамките на 1 ден}other{Актуализирайте устройството в рамките на # дни}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – грешка в мрежата</translation>
 <translation id="3248902735035392926">Безопасността е от първостепенна важност. Отделете малко време и <ph name="BEGIN_LINK" />проверете разширенията си сега<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Не е част от сертификата&gt;</translation>
 <translation id="3253225298092156258">Няма достъп</translation>
 <translation id="3253448572569133955">Неизвестен профил</translation>
@@ -1787,6 +1790,7 @@
 <translation id="3396800784455899911">С кликването си върху бутона „Приемам и продължавам“ приемате описаното по-горе обработване за тези услуги на Google.</translation>
 <translation id="3399432415385675819">Известията ще бъдат деактивирани</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> херца) – презредова развивка</translation>
+<translation id="3402585168444815892">Регистриране за демонстрационния режим</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Няма запазени пароли за този сайт</translation>
 <translation id="3405664148539009465">Персонализиране на шрифтовете</translation>
@@ -1848,6 +1852,7 @@
 <translation id="3468999815377931311">Телефон с Android</translation>
 <translation id="3470442499439619530">Премахване на този потребител</translation>
 <translation id="3471876058939596279">HDMI и USB Type-C портовете не могат едновременно да се използват за видео. Използвайте друг порт за видео.</translation>
+<translation id="3473241910002674503">Преминавайте към началния екран, връщайте се и превключвайте между приложенията чрез бутони, когато сте в режим на таблет.</translation>
 <translation id="3473479545200714844">Екранна лупа</translation>
 <translation id="3475843873335999118">За съжаление, отпечатъкът ви е все още неразпознат. Моля, въведете паролата си.</translation>
 <translation id="3476303763173086583">Изпращане на данни за употребата и диагностиката. Помогнете за подобряването на работата на детето ви с Android, като автоматично изпращате до Google диагностична информация и данни за употребата на устройството и приложенията. Тази информация няма да се използва за идентифициране на детето ви, а ще послужи за подобряване на стабилността на системата и приложенията и др. Някои обобщени данни също така ще подпомогнат приложенията и партньорите на Google, напр. програмистите за Android. Тази <ph name="BEGIN_LINK1" />настройка<ph name="END_LINK1" /> е наложена от собственика. Той може да избере до Google да се изпращат диагностична информация и данни за употребата на това устройство. Ако настройката „Допълнителна активност в мрежата и приложенията“ е включена за детето ви, тези данни може да се запазват в профила му в Google. <ph name="BEGIN_LINK2" />Научете повече<ph name="END_LINK2" /></translation>
@@ -2274,6 +2279,7 @@
 <translation id="3971764089670057203">Отпечатъци, регистрирани на този ключ за сигурност</translation>
 <translation id="3973660817924297510">Паролите се проверяват (<ph name="CHECKED_PASSWORDS" /> от <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Свързването със сървъра за областта не бе успешно</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може да провери паролите ви. Опитайте отново по-късно.</translation>
 <translation id="3976108569178263973">Няма принтери.</translation>
 <translation id="397703832102027365">Довършва се...</translation>
 <translation id="3977886311744775419">Автоматичните актуализации не се изтеглят при този тип мрежа, но можете ръчно да проверявате за актуализации.</translation>
@@ -2337,6 +2343,7 @@
 <translation id="4068506536726151626">Тази страница съдържа елементи от следните сайтове, които проследяват местоположението ви:</translation>
 <translation id="4068776064906523561">Запазени отпечатъци</translation>
 <translation id="407173827865827707">При кликване</translation>
+<translation id="4073520450811433493">Синхронизиране на настройките</translation>
 <translation id="4074900173531346617">Сертификат за подписване на имейли</translation>
 <translation id="407520071244661467">Мащаб</translation>
 <translation id="4075639477629295004">Предаването на „<ph name="FILE_NAME" />“ не е възможно.</translation>
@@ -2573,6 +2580,7 @@
 <translation id="4421932782753506458">Пухчо</translation>
 <translation id="4423376891418188461">Възстановяване на настройките</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, администраторът ви изисква да промените паролата си.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може да провери паролите ви. Опитайте отново след 24 часа.</translation>
 <translation id="4429030830601238961">Тези данни нарушават правилата за сигурност на организацията ви и не могат да бъдат поставени.</translation>
 <translation id="4430019312045809116">Звук</translation>
 <translation id="4430369329743628066">Отметката бе добавена</translation>
@@ -2585,6 +2593,7 @@
 <translation id="4441124369922430666">Искате ли това приложение да стартира автоматично при включването на компютъра?</translation>
 <translation id="4441147046941420429">За да продължите, премахнете ключа за сигурност от устройството си, след което го поставете отново и го докоснете</translation>
 <translation id="444134486829715816">Разгъване...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> може да проверява паролите ви, когато влизате с профила си в Google</translation>
 <translation id="4442424173763614572">Търсенето в DNS не бе успешно</translation>
 <translation id="4443536555189480885">&amp;Помощ</translation>
 <translation id="4444304522807523469">Достъп до скенери на документи, свързани чрез USB или с локалната мрежа</translation>
@@ -2611,11 +2620,13 @@
 <translation id="4476659815936224889">За да сканирате този код, можете да използвате приложение за сканиране на QR кодове на телефона си или някои приложения за камера.</translation>
 <translation id="4477015793815781985">Добавете Ctrl, Alt или ⌘</translation>
 <translation id="4478664379124702289">Запазване на вр&amp;ъзката като...</translation>
+<translation id="4478777936860197922">Няма запазени пароли. <ph name="IDS_SHORT_PRODUCT_NAME" /> може да проверява паролите ви, когато ги запазите.</translation>
 <translation id="4479424953165245642">Управление на павилионните приложения</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Виртуалната машина се конфигурира. Това може да отнеме няколко минути.</translation>
 <translation id="4480590691557335796">Chrome може да намери опасния софтуер на компютъра ви и да го премахне</translation>
 <translation id="4481530544597605423">Несдвоени устройства</translation>
+<translation id="4488107067273194838">Преглед на опциите за синхронизиране на браузъра след настройването</translation>
 <translation id="4488502501195719518">Да се изчистят ли всички данни?</translation>
 <translation id="4495419450179050807">Да не се показва на тази страница</translation>
 <translation id="4496054781541092778">„<ph name="PERMISSION" />“ е блокирано автоматично</translation>
@@ -2857,6 +2868,7 @@
 <translation id="4849517651082200438">Да не се инсталира</translation>
 <translation id="4850669014075537160">Превъртане</translation>
 <translation id="4850886885716139402">Изглед</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> ще ви уведоми, когато влизате в профил с компрометирана парола</translation>
 <translation id="4853020600495124913">Отваряне в &amp;нов прозорец</translation>
 <translation id="4854317507773910281">Изберете профил на родител за одобрение</translation>
 <translation id="485480310608090163">Още настройки и разрешения</translation>
@@ -2875,6 +2887,7 @@
 <translation id="4871322859485617074">ПИН кодът съдържа невалидни знаци</translation>
 <translation id="4871370605780490696">Добавяне на отметка</translation>
 <translation id="4871719318659334896">Затваряне на групата</translation>
+<translation id="4871852311166078968">Добавяне към група</translation>
 <translation id="4873312501243535625">Проверка на медийни файлове</translation>
 <translation id="4876273079589074638">Помогнете на инженерите ни да открият и отстранят причината за този срив. Ако е възможно, посочете точните стъпки. Всяка подробност е важна!</translation>
 <translation id="4876895919560854374">Заключване и отключване на екрана</translation>
@@ -2966,7 +2979,6 @@
 <translation id="4992473555164495036">Администраторът ви е ограничил наличните методи на въвеждане.</translation>
 <translation id="4994474651455208930">Разрешаване на питания от сайтове дали да са манипулаторите по подразбиране за протоколите</translation>
 <translation id="4994754230098574403">Настройва се</translation>
-<translation id="4996978546172906250">Споделяне чрез</translation>
 <translation id="4997086284911172121">Няма връзка с интернет.</translation>
 <translation id="4997384734315285248">Деинсталиране на Plugin VM</translation>
 <translation id="4998430619171209993">Включено</translation>
@@ -3066,7 +3078,6 @@
 <translation id="5135085122826131075">Кажете „Ok Google“ за достъп до Асистент.</translation>
 <translation id="5135533361271311778">Елементът за отметки не можа да се създаде.</translation>
 <translation id="5137501176474113045">Изтриване на този елемент</translation>
-<translation id="5138982052046316113">Преоразмеряване на диска на Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, търсене с(ъс) <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Въведете ПИН кода за ключа си за сигурност. Ако не го знаете, трябва да нулирате ключа за сигурност.</translation>
 <translation id="5139955368427980650">&amp;Отваряне</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Чака се потвърждение. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Много голям</translation>
 <translation id="574209121243317957">Височина</translation>
+<translation id="5745136023067925867">Получавайте съвети, оферти и актуализации за <ph name="DEVICE_TYPE" /> и споделяйте отзиви</translation>
 <translation id="5746169159649715125">Запазване като PDF файл</translation>
 <translation id="5747552184818312860">Изтича на</translation>
 <translation id="5747785204778348146">За програмисти – нестабилен</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Показване във Finder</translation>
 <translation id="6295158916970320988">Всички сайтове</translation>
 <translation id="6295855836753816081">Запазва се...</translation>
-<translation id="629730747756840877">Профил</translation>
 <translation id="6298962879096096191">Използване на Google Play за инсталиране на приложения за Android</translation>
 <translation id="630065524203833229">Из&amp;ход</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> не се конфигурира автоматично. Моля, посочете разширени подробности за принтера. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Страницата не е на <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Регистрационни файлове за събития с WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Цветна температура</translation>
-<translation id="6870888490422746447">Изберете приложение, с което да споделите:</translation>
 <translation id="6871644448911473373">OCSP респондер: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Въведената от вас парола бе отхвърлена от сървъра.</translation>
 <translation id="6876155724392614295">Колело</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – регистрационен файл за активността</translation>
 <translation id="6997707937646349884">На устройствата си:</translation>
 <translation id="6998793565256476099">Регистриране на устройството за видеоконференции</translation>
+<translation id="6999956497249459195">Нова група</translation>
 <translation id="7000206553895739324">Принтерът <ph name="PRINTER_NAME" /> е свързан, но трябва да се конфигурира</translation>
 <translation id="7000347579424117903">Използвайте Ctrl, Alt или клавиша „търсене“</translation>
 <translation id="7001036685275644873">Създава се резервно копие на приложенията и файловете за Linux</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL адрес</translation>
 <translation id="7400839060291901923">Настройте връзката на телефона си <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Отхвърляне на това съобщение</translation>
+<translation id="7403642243184989645">Ресурсите се изтеглят</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Проверката на безопасността бе изпълнена преди 1 час}other{Проверката на безопасността бе изпълнена преди {NUM_HOURS} часа}}</translation>
 <translation id="740624631517654988">Блокиран бе изскачащ прозорец</translation>
 <translation id="7407430846095439694">Импортиране и свързване</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">URL адрес с правилата на сертифициращия орган на Netscape</translation>
 <translation id="7717014941119698257">Изтегля се: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Проверка за актуализации</translation>
+<translation id="7719070594859855691">Предоставяне на достъп до камерата</translation>
 <translation id="7719367874908701697">Промяна на мащаба на страницата</translation>
 <translation id="7721179060400456005">Разрешаване на прозорците да се простират на няколко екрана</translation>
 <translation id="7722040605881499779">Необходимо място за актуализацията: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Преглеждане на историята ви на отпечатване</translation>
 <translation id="7744192722284567281">Разкрита при нарушение на сигурността на данните</translation>
 <translation id="7750228210027921155">Картина в картината</translation>
-<translation id="7751229152614300329">Функцията „Безопасно сърфиране“ е актуална и ви предпазва от злонамерени сайтове и изтегляния</translation>
 <translation id="7751260505918304024">Показване на всички</translation>
 <translation id="7754704193130578113">Извеждане на запитване къде да бъде запазен всеки файл преди изтеглянето му</translation>
 <translation id="7755287808199759310">Родителят ви може да го отблокира за вас</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Забележка:<ph name="END_BOLD" />  Системата ще се рестартира по време на процеса.</translation>
 <translation id="7828731929332799387">Така ще бъдат изтрити всички „бисквитки“ и данни за сайтове, налични в контексти на трети страни. Искате ли да продължите?</translation>
 <translation id="7829298379596169484">Осъществява се достъп до аудиовхода</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може да провери паролите ви. Проверете връзката си с интернет.</translation>
 <translation id="7829877209233347340">Поискайте от родител да влезе в профила си, за да разреши добавянето на училищен профил</translation>
 <translation id="7830594666202422257">Свързване с Linux</translation>
 <translation id="7831491651892296503">Грешка при конфигурирането на мрежата</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Google Play Магазин се инсталира на устройството ви <ph name="DEVICE_TYPE" />. Това може да отнеме няколко минути.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Няма „бисквитки“ на трети страни}=1{Блокирана е 1 „бисквитка“ на трета страна}other{Блокирани са # „бисквитки“ на трети страни}}</translation>
 <translation id="810875025413331850">Няма намерени устройства в близост.</translation>
+<translation id="8114199541033039755">Преминавайте към началния екран, връщайте се и превключвайте между приложенията чрез бутони, когато сте в режим на таблет. Включва се, когато са активирани ChromeVox или автоматичните кликвания.</translation>
 <translation id="8114875720387900039">Хоризонтално разделяне</translation>
 <translation id="8116972784401310538">&amp;Диспечер на отметките</translation>
 <translation id="8117620576188476503">Управлявайте връзките, актуализациите и настройките от лентата на състоянието. За да я отворите от клавиатурата, натиснете Alt + Shift + S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> деактивира курсора на мишката ви.</translation>
 <translation id="8264024885325823677">Тази настройка се управлява от администратора ви.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> задейства цял екран.</translation>
+<translation id="826511437356419340">Влязохте в режим на общ преглед на прозорците. Навигирайте с прекарване на пръст или натиснете клавиша Tab, ако използвате клавиатура.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Това е обща информация за устройството и употребата му (например за нивото на батерията, активността на системата и приложенията, както и за грешките). Тези данни ще се използват за подобряването на Android, а част от обобщената информация ще помогне и на приложенията и партньорите ни, например програмисти под Android, да усъвършенстват приложенията и продуктите си.<ph name="END_PARAGRAPH1" />
 <ph name="BEGIN_PARAGRAPH2" />Изключването на тази функция няма да засегне възможността на устройството да изпраща информацията, необходима за получаването на основни услуги, като системни актуализации и подобрения в сигурността.<ph name="END_PARAGRAPH2" />
 <ph name="BEGIN_PARAGRAPH3" />Собственикът може да контролира тази функция от „Настройки“ &gt; „Разширени“ &gt; „Автоматично изпращане до Google на данни за диагностиката и употребата“.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Активира се</translation>
 <translation id="8427292751741042100">вградена в който и да е хост</translation>
 <translation id="8428213095426709021">Настройки</translation>
+<translation id="8428271547607112339">Нов училищен профил</translation>
 <translation id="8428628598981198790">Ключът ви за сигурност не може да се използва с този сайт</translation>
 <translation id="84297032718407999">Ще излезете от профила си след <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Показване на докосванията</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Да се разреши на <ph name="HOST" /> винаги да показва изображения</translation>
 <translation id="8513108775083588393">Автоматична ориентация</translation>
 <translation id="8514746246728959655">Опитайте с друг ключ за сигурност</translation>
+<translation id="851960115758509829">Приложенията, настройките и персонализациите ви ще се синхронизират с всички устройства с Chrome OS, на които сте влезли с профила си в Google.</translation>
 <translation id="8521475323816527629">Бърз достъп до приложенията ви</translation>
 <translation id="8523493869875972733">Запазване на промените</translation>
 <translation id="8523849605371521713">Добавено от правило</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Хранилище</translation>
 <translation id="8859057652521303089">Изберете своя език:</translation>
 <translation id="8859174528519900719">Подрамка: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Профил на родител</translation>
 <translation id="8862003515646449717">Преминете към бърз браузър</translation>
 <translation id="8863753581171631212">Отваряне на връзката в нов прозорец на <ph name="APP" /></translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> се споделя с(ъс) <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Профилът <ph name="EMAIL" /> бе премахнат от това устройство</translation>
 <translation id="8867228703146808825">Копиране на подробностите за компилацията в буферната памет</translation>
+<translation id="8868333925931032127">Демонстрационният режим се стартира</translation>
 <translation id="8868626022555786497">Използвано място</translation>
 <translation id="8870413625673593573">Наскоро затворени</translation>
 <translation id="8871551568777368300">Фиксирано от администратора</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Повторно отваряне на раздел, ако случайно сте го затворили</translation>
 <translation id="8967866634928501045">За показване натиснете Alt Shift A</translation>
 <translation id="8968766641738584599">Запазване на картата</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може да провери паролите ви. Опитайте отново след 24 часа или <ph name="BEGIN_LINK" />ги проверете в профила си в Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Моля, обърнете се към системния си администратор, за да се уверите, че защитната стена не блокира изтеглянията от сървърите на Google.</translation>
 <translation id="8973557916016709913">Премахване на мащаба</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 22fbcd39..e14e374 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -417,7 +417,6 @@
 <translation id="1566049601598938765">ওয়েবসাইট</translation>
 <translation id="15662109988763471">বেছে নেওয়া প্রিন্টারটি উপলভ্য নয় অথবা সেটি ঠিকভাবে ইনস্টল করা নেই। আপনার প্রিন্টার পরীক্ষা করুন অথবা অন্য একটি প্রিন্টার বেছে নিন।</translation>
 <translation id="1567387640189251553">আপনি যখন শেষবার পাসওয়ার্ডটি লিখেছিলেন তার পরে অন্য একটি কীবোর্ডে কানেক্ট করা হয়েছিল। এটি আপনার পাসওয়ার্ড চুরি করার চেষ্টা করতে পারে।</translation>
-<translation id="1567750922576943685">আপনার পরিচয় যাচাই করলে তা আপনার ব্যক্তিগত তথ্য রক্ষা করতে সহায়তা করে</translation>
 <translation id="1567993339577891801">JavaScript কনসোল</translation>
 <translation id="1568323446248056064">প্রদর্শন ডিভাইস সেটিংস খুলুন</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (অতিথি)</translation>
@@ -519,7 +518,6 @@
 <translation id="1697150536837697295">শিল্পকলা</translation>
 <translation id="1697686431566694143">ফাইল এডিট করতে পারবে</translation>
 <translation id="1698122934742150150">শুধুমাত্র বর্তমান ছদ্মবেশী সেশন</translation>
-<translation id="1698650002254827833">সেই সমস্ত অ্যাপের তালিকা যা লোড করা যাবে না। আবার চেষ্টা করুন।</translation>
 <translation id="1700079447639026019">এমন সাইট যা কখনও কুকি ব্যবহার করে না</translation>
 <translation id="1701062906490865540">এই ব্যক্তিকে সরান</translation>
 <translation id="1703331064825191675">আপনার পাসওয়ার্ড সম্পর্কে কখনও চিন্তা করবেন না</translation>
@@ -1079,7 +1077,6 @@
 <translation id="2442916515643169563">টেক্সট শ্যাডো</translation>
 <translation id="2445081178310039857">এক্সটেনশন রুট ডিরেক্টরি প্রয়োজন৷</translation>
 <translation id="2445484935443597917">একটি নতুন প্রোফাইল তৈরি করুন</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> আপনার পরিচয় যাচাই করতে চায়</translation>
 <translation id="2448312741937722512">প্রকার</translation>
 <translation id="2450223707519584812">Google এপিআই কীগুলি না থাকার কারণে আপনি ব্যবহারকারীদেরকে যোগ করতে পারবেন না। বিস্তারিত জানার জন্য <ph name="DETAILS_URL" /> দেখুন।</translation>
 <translation id="2450849356604136918">কোনও সক্রিয় ভিউ নেই</translation>
@@ -1683,7 +1680,6 @@
 <translation id="3246107497225150582">{0,plural, =1{এক দিনের মধ্যে ডিভাইস আপডেট করুন}one{# দিনের মধ্যে ডিভাইস আপডেট করুন}other{# দিনের মধ্যে ডিভাইস আপডেট করুন}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - নেটওয়ার্ক ত্রুটি</translation>
 <translation id="3248902735035392926">নিরাপত্তা বজায় রাখা গুরুত্বপূর্ণ। একটু সময় নিয়ে <ph name="BEGIN_LINK" />এখনই আপনার এক্সটেনশন চেক করুন<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;শংসাপত্রের অংশ নয়&gt;</translation>
 <translation id="3253225298092156258">উপলভ্য নয়</translation>
 <translation id="3253448572569133955">অপরিচিত অ্যাকাউন্ট</translation>
@@ -2964,7 +2960,6 @@
 <translation id="4992473555164495036">আপনার অ্যাডমিনিস্ট্রেটর উপলভ্য ইনপুট পদ্ধতিগুলি সীমাবদ্ধ করেছেন।</translation>
 <translation id="4994474651455208930">সাইটগুলিকে প্রোটোকলের জন্য ডিফল্ট হ্যান্ডলার হওয়ার জন্য জিজ্ঞাসা করার অনুমতি দেয়</translation>
 <translation id="4994754230098574403">সেট-আপ করা হচ্ছে</translation>
-<translation id="4996978546172906250">এর মাধ্যমে শেয়ার করুন</translation>
 <translation id="4997086284911172121">কোনও ইন্টারনেট সংযোগ নেই।</translation>
 <translation id="4997384734315285248">Plugin VM আনইনস্টল করুন</translation>
 <translation id="4998430619171209993">চালু করা আছে</translation>
@@ -3064,7 +3059,6 @@
 <translation id="5135085122826131075">"হ্যালো Google" বলে আপনার Assistant-কে অ্যাক্সেস করুন।</translation>
 <translation id="5135533361271311778">বুকমার্ক আইটেম তৈরী করা যায়নি৷</translation>
 <translation id="5137501176474113045">এই আইটেমটি মুছে দিন</translation>
-<translation id="5138982052046316113">Linux ডিস্ক রিসাইজ করুন</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> সার্চ</translation>
 <translation id="5139823398361067371">আপনার 'নিরাপত্তা কী'-এর পিন লিখুন। পিন না জানা থাকলে, আপনাকে নিরাপত্তা কী রিসেট করতে হবে।</translation>
 <translation id="5139955368427980650">&amp;খুলুন</translation>
@@ -3930,7 +3924,6 @@
 <translation id="6291953229176937411">ফাইন্ডারে &amp;দেখান</translation>
 <translation id="6295158916970320988">সমস্ত সাইট</translation>
 <translation id="6295855836753816081">সংরক্ষণ করা হচ্ছে...</translation>
-<translation id="629730747756840877">অ্যাকাউন্ট</translation>
 <translation id="6298962879096096191">Android অ্যাপ ইনস্টল করতে Google Play ব্যবহার করুন</translation>
 <translation id="630065524203833229">ব&amp;ন্ধ</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> অটোমেটিক কনফিগার করা যাচ্ছে না। প্রিন্টারের উন্নত বিবরণ উল্লেখ করুন। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation>
@@ -4336,7 +4329,6 @@
 <translation id="6865598234501509159">পৃষ্ঠাটি <ph name="LANGUAGE" /> ভাষায় নেই</translation>
 <translation id="6865708901122695652">WebRTC ইভেন্ট লগ (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">রঙের তাপমাত্রা</translation>
-<translation id="6870888490422746447">যে অ্যাপ্লিকেশানে শেয়ার করবেন সেটি বেছে নিন:</translation>
 <translation id="6871644448911473373">OCSP প্রতিক্রিয়াকারী: <ph name="LOCATION" /> </translation>
 <translation id="6872781471649843364">আপনার দেওয়া পাসওয়ার্ডটি সার্ভার থেকে প্রত্যাখ্যান করা হয়েছে।</translation>
 <translation id="6876155724392614295">সাইকেল</translation>
@@ -4977,7 +4969,6 @@
 <translation id="7744047395460924128">আপনার প্রিন্ট করার ইতিহাস দেখুন</translation>
 <translation id="7744192722284567281">ডেটার নিরাপত্তা লঙ্ঘন দেখা গেছে</translation>
 <translation id="7750228210027921155">ছবির-মধ্যে-ছবি</translation>
-<translation id="7751229152614300329">Safe Browsing আপ টু ডেট আছে এবং আপনাকে ক্ষতিকারক সাইট এবং ডাউনলোড থেকে রক্ষা করছে</translation>
 <translation id="7751260505918304024">সকল দেখান</translation>
 <translation id="7754704193130578113">প্রতিটি ফাইল ডাউনলোড করার আগে তা কোথায় সংরক্ষণ করতে হবে জিজ্ঞাসা করুন</translation>
 <translation id="7755287808199759310">আপনার পিতামাতা এটি আপনার জন্য অবরোধ মুক্ত করতে পারবেন</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 9631040..9eb9f2b 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dostupni uređaji</translation>
 <translation id="1042174272890264476">Vaš računar također ima ugrađenu RLZ biblioteku proizvoda <ph name="SHORT_PRODUCT_NAME" />. RLZ dodjeljuje nejedinstvenu oznaku koja ne može poslužiti za ličnu identifikaciju za mjerenje pretraživanja i korištenje proizvoda <ph name="SHORT_PRODUCT_NAME" /> do kojeg je došlo putem određene promotivne kampanje. Te oznake se nekada pojavljuju u upitima Google Pretraživanja u proizvodu <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Obrisati i podatke iz ovih aplikacija?</translation>
+<translation id="1045448422538531528">Dodajte u grupu</translation>
 <translation id="1046635659603195359">Izgleda da ste već postavili Voice Match s Google Asistentom na drugom uređaju. Ti prethodni snimci se mogu iskoristiti za izradu modela glasa na ovom uređaju. To ne bi trebalo trajati duže od jedne minute.</translation>
 <translation id="104710386808485638">Ponovno pokrenuti Linux?</translation>
 <translation id="1047431265488717055">Kopiraj tekst linka</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Uvijek blokiraj pristup kameri</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> želi vratiti vaše postavke iz Chromea na njihove zadane vrijednosti. Ovo će poništiti vašu početnu stranicu, stranicu nove kartice i pretraživač, onemogućiti ekstenzije i otkačiti sve kartice. Ovaj alat će također obrisati ostale privremene podatke i keš memoriju, kao i sadržaj i podatke web lokacija.</translation>
+<translation id="1084096383128641877">Ako uklonite ovu lozinku, neće se izbrisati račun na domeni <ph name="DOMAIN" />. Promijenite lozinku ili izbrišite račun na domeni <ph name="DOMAIN_LINK" /> da ga zaštitite od drugih.</translation>
 <translation id="1084824384139382525">Kopiraj adr&amp;esu linka</translation>
 <translation id="1085697365578766383">Greška pri pokretanju virtuelne mašine. Pokušajte ponovo.</translation>
 <translation id="1090126737595388931">Nema aplikacija koje rade u pozadini</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Sigurnosna provjera je izvršena jučer</translation>
 <translation id="1260451001046713751">Uvijek dozvoli skočne prozore i preusmjeravanja s hosta <ph name="HOST" /></translation>
 <translation id="126156426083987769">Pojavio se problem s licencama uređaja za demo način.</translation>
+<translation id="1263490604593716556">Računom upravljaju <ph name="FIRST_PARENT_EMAIL" /> i <ph name="SECOND_PARENT_EMAIL" />. Da se odjavite s primarnog računa na ovom uređaju, kliknite na vrijeme na ekranu. U meniju koji se prikaže, kliknite na "Odjava".</translation>
 <translation id="126710816202626562">Jezik prijevoda:</translation>
 <translation id="126768002343224824">16 x</translation>
 <translation id="1272079795634619415">Zaustavi</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Web lokacija</translation>
 <translation id="15662109988763471">Odabrani štampač nije dostupan ili nije ispravno instaliran. Provjerite štampač ili odaberite drugi.</translation>
 <translation id="1567387640189251553">Druga tastatura je bila povezana kada ste posljednji put unijeli lozinku Možda neko pokušava ukrasti vaše otkucaje na tastaturi.</translation>
-<translation id="1567750922576943685">Potvrđivanjem identiteta podržavate zaštitu svojih informacija.</translation>
 <translation id="1567993339577891801">Konzola za JavaScript</translation>
 <translation id="1568323446248056064">Otvori postavke uređaja za ekran</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (gost)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Umjetnost</translation>
 <translation id="1697686431566694143">Uredi fajl</translation>
 <translation id="1698122934742150150">Samo trenutačna anonimna sesija</translation>
-<translation id="1698650002254827833">Ovaj spisak aplikacija se ne može učitati. Pokušajte ponovo.</translation>
 <translation id="1700079447639026019">Web lokacije koje nikada ne koriste kolačiće</translation>
 <translation id="1701062906490865540">Ukloni ovu osobu</translation>
 <translation id="1703331064825191675">Nemojte nikada brinuti zbog svojih lozinki</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Nastavi</translation>
 <translation id="2173302385160625112">Provjerite internetsku vezu</translation>
 <translation id="2173801458090845390">Dodaj zahtjev za ID na ovaj uređaj</translation>
+<translation id="2174948148799307353">Računom upravlja <ph name="PARENT_EMAIL" />. Da se odjavite s primarnog računa na ovom uređaju, kliknite na vrijeme na ekranu. U meniju koji se prikaže, kliknite na "Odjava".</translation>
 <translation id="2175607476662778685">Traka za brzo pokretanje</translation>
 <translation id="217576141146192373">Dodavanje štampača nije uspjelo. Provjerite konfiguraciju štampača i pokušajte ponovo.</translation>
 <translation id="2177950615300672361">Anonimna kartica: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Sjenka teksta</translation>
 <translation id="2445081178310039857">Potreban je korijenski direktorij ekstenzije.</translation>
 <translation id="2445484935443597917">Izradi novi profil</translation>
-<translation id="2446585455334014596">Aplikacija <ph name="APP_NAME" /> želi potvrditi vaš identitet</translation>
 <translation id="2448312741937722512">Vrsta</translation>
 <translation id="2450223707519584812">Nećete moći dodati korisnike jer nedostaju ključevi Google API-ja. Za više detalja pogledajte <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Nema aktivnih pregleda</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Idite do lokacije <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Brz, jednostavan i siguran preglednik, napravljen za moderni web.</translation>
 <translation id="2949289451367477459">Koristite lokaciju. Dozvolite aplikacijama i uslugama s odobrenjem za lokaciju da koriste lokacije ovog uređaja. Google s vremena na vrijeme može prikupljati podatke o lokaciji i anonimno koristiti te podatke s ciljem poboljšavanja preciznosti lokacije i usluga koje se zasnivaju na lokaciji. <ph name="BEGIN_LINK1" />Saznajte više<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Registriraj me</translation>
 <translation id="2956070239128776395">Odjeljak je ugniježđen u grupi: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Nemoj dozvoliti nijednoj web lokaciji da uređuje fajlove ili foldere na mom uređaju</translation>
 <translation id="2958721676848865875">Upozorenje na ekstenziju paketa</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Zadani žuti avatar</translation>
 <translation id="3141318088920353606">Slušanje…</translation>
 <translation id="3141917231319778873">Dati zahtjev ne podržava: "<ph name="DEVICE_NAME" />"</translation>
+<translation id="3142562627629111859">Nova grupa</translation>
 <translation id="3143515551205905069">Otkaži sinhronizaciju</translation>
 <translation id="3143754809889689516">Reproduciraj od početka</translation>
 <translation id="3144647712221361880">Otvori link kao</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Bež</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (podržano hardverom)</translation>
 <translation id="3161522574479303604">Svi jezici</translation>
+<translation id="3162853326462195145">Školski račun</translation>
 <translation id="3162899666601560689">Web lokacije mogu koristiti kolačiće da poboljšaju vaše iskustvo pregledanja, naprimjer, da ostanete prijavljeni ili da stavke u korpi za kupovinu ostanu sačuvane</translation>
 <translation id="3163201441334626963">Nepoznati proizvod <ph name="PRODUCT_ID" /> dobavljača <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Dijeljenje kartice s aplikacijom <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Ažurirajte uređaj u roku od jednog dana}one{Ažurirajte uređaj u roku od # dana}few{Ažurirajte uređaj u roku od # dana}other{Ažurirajte uređaj u roku od # dana}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – greška na mreži</translation>
 <translation id="3248902735035392926">Sigurnost je važna. Odvojite malo vremena da <ph name="BEGIN_LINK" />sada provjerite ekstenzije<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Nije dio potvrde&gt;</translation>
 <translation id="3253225298092156258">Nije dostupno</translation>
 <translation id="3253448572569133955">Nepoznat račun</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Klikom na gumb "Prihvati i nastavi" prihvaćate prethodno opisanu obradu za ove Googleove usluge.</translation>
 <translation id="3399432415385675819">Obavještenja će biti onemogućena</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> herca) – skeniranje s preplitanjem</translation>
+<translation id="3402585168444815892">Prijavljivanje u demo način rada</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Lozinke nisu sačuvane za ovu web lokaciju</translation>
 <translation id="3405664148539009465">Prilagodi fontove</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android telefon</translation>
 <translation id="3470442499439619530">Uklanjanje tog korisnika</translation>
 <translation id="3471876058939596279">Za videozapise nije moguće istovremeno koristiti priključak HDMI i USB tip C. Koristite drugi priključak za videozapis.</translation>
+<translation id="3473241910002674503">Navigiranje na početnu stranicu, nazad i prebacivanje između aplikacija pomoću dugmadi u načinu rada za tablet.</translation>
 <translation id="3473479545200714844">Povećalo ekrana</translation>
 <translation id="3475843873335999118">Još uvijek ne možemo prepoznati vaše otiske prsta. Unesite lozinku.</translation>
 <translation id="3476303763173086583">Šaljite podatke o korištenju i dijagnostici. Poboljšajte iskustvo korištenja Androida svog djeteta automatskim slanjem podataka o dijagnostici, uređaju i korištenju aplikacija Googleu. Ovo se neće koristiti za identifikaciju vašeg djeteta, a pomoći će stabilnosti sistema i aplikacija, kao i drugim poboljšanjima. Neki zbirni podaci će također pomoći Googleovim aplikacijama i partnerima, kao što su Android programeri. Ovu <ph name="BEGIN_LINK1" />postavku<ph name="END_LINK1" /> je nametnuo vlasnik. Vlasnik može odlučiti da šalje podatke o dijagnostici i korištenju ovog uređaja u Google. Ako je za vaše dijete uključena postavka dodatna Aktivnost na webu i u aplikacijama, ovi podaci se mogu pohranjivati na njegov Google račun. <ph name="BEGIN_LINK2" />Saznajte više<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Otisci prsta na ovom sigurnosnom ključu</translation>
 <translation id="3973660817924297510">Provjeravanje lozinki (<ph name="CHECKED_PASSWORDS" /> od <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Povezivanje servera za okruženje nije uspjelo</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne može provjeravati vaše lozinke. Pokušajte ponovo kasnije.</translation>
 <translation id="3976108569178263973">Nema dostupnih štampača.</translation>
 <translation id="397703832102027365">Završavanje...</translation>
 <translation id="3977886311744775419">Automatska ažuriranja se ne preuzimaju na ovoj vrsti mreže, ali možete ručno provjeriti ima li ažuriranja.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Ova stranica sadrži elemente sa sljedećih stranica koje prate vašu lokaciju:</translation>
 <translation id="4068776064906523561">Sačuvani otisci prstiju</translation>
 <translation id="407173827865827707">Na klik</translation>
+<translation id="4073520450811433493">Sinhronizacija postavki</translation>
 <translation id="4074900173531346617">Potvrda potpisnika e-pošte</translation>
 <translation id="407520071244661467">Razmjer</translation>
 <translation id="4075639477629295004">Nije moguće emitirati <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Fluffy</translation>
 <translation id="4423376891418188461">Vrati postavke</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, vaš administrator traži da promijenite svoju lozinku.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne može provjeravati vaše lozinke. Pokušajte ponovo za 24 sata.</translation>
 <translation id="4429030830601238961">Ovi podaci krše sigurnosna pravila vaše organizacije te ih nije moguće zalijepiti.</translation>
 <translation id="4430019312045809116">Jačina zvuka</translation>
 <translation id="4430369329743628066">Oznaka je dodana</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Želite li automatski pokrenuti ovu aplikaciju prilikom uključivanja uređaja?</translation>
 <translation id="4441147046941420429">Da nastavite, uklonite sigurnosni ključ iz uređaja, a zatim ga ponovo umetnite i dodirnite</translation>
 <translation id="444134486829715816">Proširi...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> može provjeravati vaše lozinke kada se prijavite pomoću Google računa</translation>
 <translation id="4442424173763614572">Traženje DNS-a nije uspjelo</translation>
 <translation id="4443536555189480885">&amp;Pomoć</translation>
 <translation id="4444304522807523469">Pristupi skenerima dokumenata spojenim putem USB-a ili lokalne mreže</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Da skenirate ovaj kôd, možete koristiti aplikaciju za skeniranje QR kodova na telefonu ili neke aplikacije s kamerom.</translation>
 <translation id="4477015793815781985">Uključite Ctrl, Alt, ili ⌘</translation>
 <translation id="4478664379124702289">Sačuvaj lin&amp;k kao...</translation>
+<translation id="4478777936860197922">Nema sačuvanih lozinki. <ph name="IDS_SHORT_PRODUCT_NAME" /> može provjeravati vaše lozinke kada ih sačuvate.</translation>
 <translation id="4479424953165245642">Upravljaj aplikacijama za kiosk</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Konfiguriranje virtualne mašine. Ovo može potrajati nekoliko minuta.</translation>
 <translation id="4480590691557335796">Chrome može pronaći štetni softver na vašem računaru i ukloniti ga.</translation>
 <translation id="4481530544597605423">Uređaj čije je uparivanje okončano</translation>
+<translation id="4488107067273194838">Pregledajte opcije sinhronizacije preglednika nakon postavljanja</translation>
 <translation id="4488502501195719518">Obrisati sve podatke?</translation>
 <translation id="4495419450179050807">Ne prikazuj na ovoj stranici</translation>
 <translation id="4496054781541092778">je automatski blokirao/la <ph name="PERMISSION" /></translation>
@@ -2671,7 +2682,7 @@
 <translation id="4558426062282641716">Zatraženo je odobrenje za automatsko pokretanje</translation>
 <translation id="4559617833001311418">Ova web lokacija pristupa vašim senzorima pokreta ili svjetla.</translation>
 <translation id="4561893854334016293">Nema nedavno promijenjenih odobrenja</translation>
-<translation id="4562155214028662640">Dodaj otisak prsta</translation>
+<translation id="4562155214028662640">Dodajte otisak prsta</translation>
 <translation id="4562494484721939086">Nema usluge</translation>
 <translation id="4563880231729913339">3. prst</translation>
 <translation id="4565377596337484307">Sakrij lozinku</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Ne instaliraj</translation>
 <translation id="4850669014075537160">Klizanje</translation>
 <translation id="4850886885716139402">Prikaz</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> će vas obavijestiti kada se prijavite s ugroženom lozinkom</translation>
 <translation id="4853020600495124913">Otvori u &amp;novom prozoru</translation>
 <translation id="4854317507773910281">Odaberi roditeljski račun za odobrenje</translation>
 <translation id="485480310608090163">Više postavki i odobrenja</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN sadrži nevažeće znakove</translation>
 <translation id="4871370605780490696">Dodavanje oznake</translation>
 <translation id="4871719318659334896">Zatvori grupu</translation>
+<translation id="4871852311166078968">Dodajte u grupu</translation>
 <translation id="4873312501243535625">Provjera medijskih fajlova</translation>
 <translation id="4876273079589074638">Pomozite našim inženjerima da istraže i poprave pad aplikacije. Navedite tačne korake, ako možete. Nijedan detalj nije nebitan!</translation>
 <translation id="4876895919560854374">Zaključati i otključati ekran</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Vaš administrator je ograničio dostupne načine unosa.</translation>
 <translation id="4994474651455208930">Dozvoli web lokacijama da pitaju mogu li postati zadani obrađivači protokola</translation>
 <translation id="4994754230098574403">Postavljanje</translation>
-<translation id="4996978546172906250">Dijeljenje koristeći</translation>
 <translation id="4997086284911172121">Nema internetske veze.</translation>
 <translation id="4997384734315285248">Deinstalirajte Plugin VM</translation>
 <translation id="4998430619171209993">Uključeno</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Pristupite Asistentu izgovaranjem "Ok Google"</translation>
 <translation id="5135533361271311778">Oznaka nije kreirana.</translation>
 <translation id="5137501176474113045">Izbriši ovu stavku</translation>
-<translation id="5138982052046316113">Promjena veličine Linux diska</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> pretraživanje</translation>
 <translation id="5139823398361067371">Unesite PIN za sigurnosni ključ. Ako ne znate PIN, morat ćete ponovo postaviti sigurnosni ključ.</translation>
 <translation id="5139955368427980650">&amp;Otvori</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Čeka se potvrda. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Vrlo velik</translation>
 <translation id="574209121243317957">Visina</translation>
+<translation id="5745136023067925867">Primajte savjete, ponude i ažuriranja za uređaj <ph name="DEVICE_TYPE" /> i dijelite povratne informacije</translation>
 <translation id="5746169159649715125">Sačuvaj kao PDF</translation>
 <translation id="5747552184818312860">Ističe</translation>
 <translation id="5747785204778348146">Programer - nestabilno</translation>
@@ -3725,7 +3737,7 @@
 <translation id="6023643151125006053">Ovaj uređaj (SN: <ph name="SERIAL_NUMBER" />) je zaključao administrator domene <ph name="SAML_DOMAIN" />.</translation>
 <translation id="6025215716629925253">Stanje steka</translation>
 <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB uređaj je povezan</translation>
-<translation id="6028117231645531007">Dodaj otisak prsta</translation>
+<translation id="6028117231645531007">Dodajte otisak prsta</translation>
 <translation id="6029587122245504742">Najsporije</translation>
 <translation id="6029594605736587274">je blokirao/la <ph name="PERMISSION" /></translation>
 <translation id="6032715498678347852">Da ekstenziji omogućite pristup ovoj web lokaciji, kliknite na nju.</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Prikaži u Tražiocu</translation>
 <translation id="6295158916970320988">Sve web-lokacije</translation>
 <translation id="6295855836753816081">Pohranjivanje…</translation>
-<translation id="629730747756840877">Račun</translation>
 <translation id="6298962879096096191">Korištenje Google Playa za instaliranje Android aplikacija</translation>
 <translation id="630065524203833229">I&amp;zađi</translation>
 <translation id="6300718114348072351">Automatsko konfiguriranje štampača <ph name="PRINTER_NAME" /> nije uspjelo. Navedite napredne detalje za štampač. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Jezik stranice nije <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Zapisi događaja WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura boje</translation>
-<translation id="6870888490422746447">Odaberite aplikaciju za dijeljenje:</translation>
 <translation id="6871644448911473373">OCSP odzivni server: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Server je odbio lozinku koju ste unijeli.</translation>
 <translation id="6876155724392614295">Bicikl</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – zapisnik aktivnosti</translation>
 <translation id="6997707937646349884">Na vašim uređajima:</translation>
 <translation id="6998793565256476099">Prijavi uređaj za video konferencije</translation>
+<translation id="6999956497249459195">Nova grupa</translation>
 <translation id="7000206553895739324">Štampač <ph name="PRINTER_NAME" /> je povezan, ali ga treba konfigurirati</translation>
 <translation id="7000347579424117903">Uključite Ctrl, Alt ili tipku za pretraživanje</translation>
 <translation id="7001036685275644873">Izrada sigurnosne kopije Linux aplikacija i fajlova</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Postavite vezu na uređaju <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Odbaci ovu poruku</translation>
+<translation id="7403642243184989645">Preuzimanje resursa</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Sigurnosna provjera je izvršena prije 1 sat}one{Sigurnosna provjera je izvršena prije {NUM_HOURS} sat}few{Sigurnosna provjera je izvršena prije {NUM_HOURS} sata}other{Sigurnosna provjera je izvršena prije {NUM_HOURS} sati}}</translation>
 <translation id="740624631517654988">Skočni prozor je blokiran</translation>
 <translation id="7407430846095439694">Uvezi i poveži</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">URL za pravila tijela za izdavanje Netscape potvrda</translation>
 <translation id="7717014941119698257">Preuzimanje: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Provjerite ima li ažuriranja</translation>
+<translation id="7719070594859855691">Dozvolite pristup kameri</translation>
 <translation id="7719367874908701697">Zumiranje stranice</translation>
 <translation id="7721179060400456005">Dozvoli prozorima da prelaze preko ekrana</translation>
 <translation id="7722040605881499779">Potrebno za ažuriranje: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Prikaz historije štampanja</translation>
 <translation id="7744192722284567281">Pronađeno u narušavanju podataka</translation>
 <translation id="7750228210027921155">Slika u slici</translation>
-<translation id="7751229152614300329">Sigurno pregledanje je ažurirano i štiti vas od štetnih web lokacija i preuzimanja</translation>
 <translation id="7751260505918304024">Prikaži sve</translation>
 <translation id="7754704193130578113">Pitaj gdje spremiti svaku datoteku prije preuzimanja</translation>
 <translation id="7755287808199759310">Roditelj može deblokirati tu web lokaciju</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Napomena:<ph name="END_BOLD" />  Sistem će se ponovo pokrenuti za vrijeme ovog postupka.</translation>
 <translation id="7828731929332799387">Ovim će se obrisati svi kolačići i podaci o web lokacijama koji su dostupni u kontekstima treće strane. Želite li nastaviti?</translation>
 <translation id="7829298379596169484">Pristupanje audioulazu</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne može provjeravati vaše lozinke. Predlažemo da provjerite internetsku vezu.</translation>
 <translation id="7829877209233347340">Pitaj roditelja da se prijavi kako bi dodijelio odobrenje za dodavanje školskog računa</translation>
 <translation id="7830594666202422257">Poveži na Linux</translation>
 <translation id="7831491651892296503">Greška prilikom konfiguriranja mreže</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Instaliranje Google Play trgovine na vašem uređaju <ph name="DEVICE_TYPE" />. To može potrajati nekoliko minuta.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Nema kolačića treće strane}=1{Blokiran je 1 kolačić treće strane}one{Blokiran je # kolačić treće strane}few{Blokirana su # kolačića treće strane}other{Blokirano je # kolačića treće strane}}</translation>
 <translation id="810875025413331850">Nije pronađen nijedan uređaj u blizini.</translation>
+<translation id="8114199541033039755">Navigiranje na početnu stranicu, nazad i prebacivanje između aplikacija pomoću dugmadi u načinu rada za tablet. Uključeno kada je omogućen ChromeVox ili Automatski klikovi.</translation>
 <translation id="8114875720387900039">Podjela po horizontali</translation>
 <translation id="8116972784401310538">&amp;Upravitelj oznaka</translation>
 <translation id="8117620576188476503">Upravljajte vezama, ažuriranjima i postavkama iz statusne trake. Da dođete ovdje koristeći tastaturu, pritisnite Alt + Shift + S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914">Web lokacija <ph name="FULLSCREEN_ORIGIN" /> je onemogućila vaš kursor miša.</translation>
 <translation id="8264024885325823677">Ovom postavkom upravlja vaš administrator.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" je aktivirala cijeli ekran.</translation>
+<translation id="826511437356419340">Ušli ste u način rada pregleda prozora. Prevucite da navigirate ili pritisnite tipku tab ako koristite tastaturu.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ovo su opće informacije o ovom uređaju i načinu na koji se koristi (kao što je nivo napunjenosti baterije, aktivnosti sistema i aplikacija te greške). Ovi podaci će se koristiti za poboljšanje Androida, a neki zbirni podaci će također pomoći Google aplikacijama i partnerima, kao što su Android programeri, da poboljšaju svoje aplikacije i proizvode.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Isključivanjem ove funkcije uređaj će i dalje moći slati informacije potrebne za ključne usluge kao što su ažuriranja sistema i sigurnost.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Vlasnik može upravljati ovom funkcijom iz menija Postavke &gt; Napredno &gt; Automatsko slanje dijagnostičkih podataka i podataka o korištenju Googleu.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Omogućavanje</translation>
 <translation id="8427292751741042100">ugrađeno na bilo kojem host računaru</translation>
 <translation id="8428213095426709021">Postavke</translation>
+<translation id="8428271547607112339">Dodaj školski račun</translation>
 <translation id="8428628598981198790">Sigurnosni ključ se ne može koristiti s ovom web lokacijom</translation>
 <translation id="84297032718407999">Bit ćete odjavljeni za <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Prikaži dodire</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Uvijek dozvoli da <ph name="HOST" /> prikazuje slike</translation>
 <translation id="8513108775083588393">Automatsko rotiranje</translation>
 <translation id="8514746246728959655">Probajte drugi sigurnosni ključ</translation>
+<translation id="851960115758509829">Vaše aplikacije, postavke i druga prilagođavanja će se sinhronizirati na svim Chrome OS uređajima na kojima ste prijavljeni putem svog Google računa.</translation>
 <translation id="8521475323816527629">Dođite brzo do svojih aplikacija</translation>
 <translation id="8523493869875972733">Zadrži izmjene</translation>
 <translation id="8523849605371521713">Dodano pravilom</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Pohrana</translation>
 <translation id="8859057652521303089">Odaberite svoj jezik:</translation>
 <translation id="8859174528519900719">Podokvir: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Roditeljski račun</translation>
 <translation id="8862003515646449717">Prebacite se na brži preglednik</translation>
 <translation id="8863753581171631212">Otvori link u novoj aplikaciji <ph name="APP" /></translation>
 <translation id="8864055848767439877">Dijeljenje kartice <ph name="TAB_NAME" /> s aplikacijom <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Adresa <ph name="EMAIL" /> je uklonjena iz ovog uređaja</translation>
 <translation id="8867228703146808825">Kopirajte detalje o verziji u međumemoriju</translation>
+<translation id="8868333925931032127">Pokretanje demo načina rada</translation>
 <translation id="8868626022555786497">U upotrebi</translation>
 <translation id="8870413625673593573">Nedavno zatvoreno</translation>
 <translation id="8871551568777368300">Zakačio administrator</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Ponovo otvorite karticu ako ste je slučajno zatvorili</translation>
 <translation id="8967866634928501045">Pritisnite Alt Shift A za prikaz</translation>
 <translation id="8968766641738584599">Sačuvaj karticu</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne može provjeravati vaše lozinke. Pokušajte ponovo za 24 sata ili <ph name="BEGIN_LINK" />provjerite lozinke na Google računu<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Provjerite s administratorom mreže da budete sigurni da zaštitni zid ne blokira preuzimanja s Google servera.</translation>
 <translation id="8973557916016709913">Uklonite nivo zumiranja</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 665b896..fadfbf4 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dispositius disponibles</translation>
 <translation id="1042174272890264476">L'ordinador també incorpora la biblioteca RLZ de <ph name="SHORT_PRODUCT_NAME" />. La biblioteca RLZ assigna una etiqueta no única i sense identificació personal per mesurar les cerques i l'ús de <ph name="SHORT_PRODUCT_NAME" /> derivats d'una campanya promocional concreta. De vegades, aquestes etiquetes apareixen a les consultes de la Cerca de Google a <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">També vols esborrar les dades d'aquestes aplicacions?</translation>
+<translation id="1045448422538531528">Afegeix al grup</translation>
 <translation id="1046635659603195359">Sembla que ja has configurat Voice Match amb l'Assistent de Google en un altre dispositiu. Aquestes gravacions anteriors es poden utilitzar per crear un model de veu en aquest dispositiu. Aquest procés hauria de tardar menys d'un minut.</translation>
 <translation id="104710386808485638">Vols reiniciar Linux?</translation>
 <translation id="1047431265488717055">Copia el te&amp;xt de l'enllaç</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Bloqueja sempre l'accés a la càmera</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> vol restaurar la configuració de Chrome i aplicar-hi els valors predeterminats originals. Es restablirà la pàgina d'inici, la pàgina Pestanya nova i el motor de cerca, es desactivaran les extensions i s'anul·larà la fixació de totes les pestanyes. També s'esborraran altres dades temporals i emmagatzemades a la memòria cau, com ara galetes i dades de contingut i de llocs.</translation>
+<translation id="1084096383128641877">Encara que suprimeixis aquesta contrasenya, el teu compte de <ph name="DOMAIN" /> no se suprimirà. Canvia la contrasenya o suprimeix el teu compte de <ph name="DOMAIN_LINK" /> per protegir-lo dels altres.</translation>
 <translation id="1084824384139382525">Copia l'adr&amp;eça de l'enllaç</translation>
 <translation id="1085697365578766383">S'ha produït un error en iniciar la màquina virtual. Torna-ho a provar.</translation>
 <translation id="1090126737595388931">No hi cap aplicació en execució en segon pla</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Es va executar una comprovació de seguretat ahir</translation>
 <translation id="1260451001046713751">Permet sempre les finestres emergents i les redireccions iniciades per <ph name="HOST" /></translation>
 <translation id="126156426083987769">S'ha produït un problema amb les llicències del mode de demostració del dispositiu.</translation>
+<translation id="1263490604593716556">Aquest compte el gestionen <ph name="FIRST_PARENT_EMAIL" /> i <ph name="SECOND_PARENT_EMAIL" />. Per tancar la sessió del compte principal en aquest dispositiu, fes clic a l'hora de la pantalla. Al menú que es mostra, fes clic a Tanca la sessió.</translation>
 <translation id="126710816202626562">Idioma de traducció:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Atura</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Lloc web</translation>
 <translation id="15662109988763471">La impressora seleccionada no està disponible o no s'ha instal·lat correctament. Comprova-la o prova de seleccionar-ne una altra.</translation>
 <translation id="1567387640189251553">S'ha connectat un altre teclat des de la darrera vegada que vas introduir la contrasenya. Pot ser que estigui provant de robar-te les combinacions de tecles.</translation>
-<translation id="1567750922576943685">Verificar la teva identitat t'ajuda a protegir la informació personal</translation>
 <translation id="1567993339577891801">Consola de JavaScript</translation>
 <translation id="1568323446248056064">Obre la configuració de la pantalla</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (convidat)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Art</translation>
 <translation id="1697686431566694143">Edita el fitxer</translation>
 <translation id="1698122934742150150">Només la sessió d'incògnit actual</translation>
-<translation id="1698650002254827833">La llista d'aplicacions no es pot carregar. Torna-ho a provar.</translation>
 <translation id="1700079447639026019">Llocs web que mai no poden fer servir galetes</translation>
 <translation id="1701062906490865540">Suprimeix aquesta persona</translation>
 <translation id="1703331064825191675">No et preocupis mai per les teves contrasenyes</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Continua</translation>
 <translation id="2173302385160625112">Comprova la connexió a Internet</translation>
 <translation id="2173801458090845390">Afegeix l'identificador de sol·licitud a aquest dispositiu</translation>
+<translation id="2174948148799307353">Aquest compte el gestiona <ph name="PARENT_EMAIL" />. Per tancar la sessió del compte principal en aquest dispositiu, fes clic a l'hora de la pantalla. Al menú que es mostra, fes clic a Tanca la sessió.</translation>
 <translation id="2175607476662778685">Barra d'inici ràpid</translation>
 <translation id="217576141146192373">No es pot afegir la impressora. Comprova'n la configuració i torna-ho a provar.</translation>
 <translation id="2177950615300672361">Pestanya d'incògnit: <ph name="TAB_NAME" /></translation>
@@ -1080,7 +1082,6 @@
 <translation id="2442916515643169563">Ombra del text</translation>
 <translation id="2445081178310039857">El directori arrel de l'extensió és obligatori.</translation>
 <translation id="2445484935443597917">Crea un perfil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> vol verificar la teva identitat</translation>
 <translation id="2448312741937722512">Tipus</translation>
 <translation id="2450223707519584812">No podreu afegir usuaris perquè falten les claus de l'API de Google. Consulteu <ph name="DETAILS_URL" /> per obtenir-ne més informació.</translation>
 <translation id="2450849356604136918">No hi ha cap visualització activa</translation>
@@ -1478,6 +1479,7 @@
 <translation id="2948300991547862301">Ves a <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Un navegador web ràpid, senzill i segur dissenyat per al web modern.</translation>
 <translation id="2949289451367477459">Utilitza la ubicació. Permet que les aplicacions i els serveis amb permís d'ubicació utilitzin la ubicació del dispositiu. Google pot recollir dades d'ubicació periòdicament i utilitzar-les de manera anònima per millorar la precisió de la ubicació i els serveis basats en la ubicació. <ph name="BEGIN_LINK1" />Més informació<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Vull registrar-me</translation>
 <translation id="2956070239128776395">Secció imbricada en grup: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">No permetis que cap lloc web editi els fitxers o les carpetes del dispositiu</translation>
 <translation id="2958721676848865875">Advertiment de l'empaquetatge d'extensió</translation>
@@ -1602,6 +1604,7 @@
 <translation id="3139925690611372679">Avatar groc predeterminat</translation>
 <translation id="3141318088920353606">S'està escoltant...</translation>
 <translation id="3141917231319778873"><ph name="DEVICE_NAME" /> no admet la sol·licitud enviada.</translation>
+<translation id="3142562627629111859">Grup nou</translation>
 <translation id="3143515551205905069">Cancel·la la sincronització</translation>
 <translation id="3143754809889689516">Reprodueix des del principi</translation>
 <translation id="3144647712221361880">Obre l'enllaç com a</translation>
@@ -1624,6 +1627,7 @@
 <translation id="3159493096109238499">Beix</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (emmagatzemat en maquinari)</translation>
 <translation id="3161522574479303604">Tots els idiomes</translation>
+<translation id="3162853326462195145">Compte de centre educatiu</translation>
 <translation id="3162899666601560689">Els llocs web poden fer servir galetes per millorar la teva experiència de navegació, per exemple, per mantenir la teva sessió iniciada o per recordar els elements que tens al carretó de la compra</translation>
 <translation id="3163201441334626963">Producte desconegut <ph name="PRODUCT_ID" /> del proveïdor <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">S'està compartint aquesta pestanya amb <ph name="APP_NAME" /></translation>
@@ -1682,7 +1686,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Actualitza el dispositiu en 1 dia}other{Actualitza el dispositiu en # dies}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" />: error de la xarxa</translation>
 <translation id="3248902735035392926">La seguretat és important. Dedica ara un moment a <ph name="BEGIN_LINK" />consultar les extensions<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;No forma part del certificat&gt;</translation>
 <translation id="3253225298092156258">No disponible</translation>
 <translation id="3253448572569133955">Compte desconegut</translation>
@@ -1787,6 +1790,7 @@
 <translation id="3396800784455899911">En fer clic al botó Accepta i continua, acceptes el processament descrit anteriorment per a aquests serveis de Google.</translation>
 <translation id="3399432415385675819">Les notificacions es desactivaran</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertzs): entrellaçat</translation>
+<translation id="3402585168444815892">S'està fent la inscripció al mode de demostració</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">No hi ha cap contrasenya desada per a aquest lloc web</translation>
 <translation id="3405664148539009465">Personalitza els tipus de lletra</translation>
@@ -1848,6 +1852,7 @@
 <translation id="3468999815377931311">Telèfon Android</translation>
 <translation id="3470442499439619530">Suprimeix aquest usuari</translation>
 <translation id="3471876058939596279">Els ports HDMI i USB tipus C no es poden utilitzar per a vídeo simultàniament. Utilitza un altre port de vídeo.</translation>
+<translation id="3473241910002674503">Navega fins a la pàgina d'inici, ves enrere i canvia d'aplicació amb els botons en mode de tauleta.</translation>
 <translation id="3473479545200714844">Lupa</translation>
 <translation id="3475843873335999118">No es reconeix la teva empremta digital. Escriu la contrasenya.</translation>
 <translation id="3476303763173086583">Envia dades d'ús i de diagnòstic. Ajuda a millorar l'experiència a Android del teu fill enviant automàticament a Google dades de diagnòstic, del dispositiu i d'ús d'aplicacions. Aquestes dades no es faran servir per identificar el teu fill i ajudaran a millorar l'estabilitat del sistema i de les aplicacions, entre altres característiques. Una part de les dades agregades també serà útil per a les aplicacions i per als partners de Google, com ara els desenvolupadors d'Android. El propietari ha aplicat aquesta <ph name="BEGIN_LINK1" />opció de configuració<ph name="END_LINK1" />. És possible que el propietari decideixi enviar a Google dades de diagnòstic i d'ús sobre aquest dispositiu. Si l'opció Activitat al web i en aplicacions addicional està activada per al teu fill, és possible que aquestes dades es desin al seu Compte de Google. <ph name="BEGIN_LINK2" />Més informació<ph name="END_LINK2" /></translation>
@@ -2272,6 +2277,7 @@
 <translation id="3971764089670057203">Empremtes digitals d'aquesta clau de seguretat</translation>
 <translation id="3973660817924297510">S'estan comprovant les contrasenyes (<ph name="CHECKED_PASSWORDS" /> de <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">No s'ha pogut contactar amb el servidor del domini</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> no pot comprovar les teves contrasenyes. Torna-ho a provar més tard.</translation>
 <translation id="3976108569178263973">No hi ha cap impressora disponible.</translation>
 <translation id="397703832102027365">S'està finalitzant...</translation>
 <translation id="3977886311744775419">Les actualitzacions automàtiques no es baixen en aquest tipus de xarxa, però pots comprovar manualment si hi ha actualitzacions.</translation>
@@ -2335,6 +2341,7 @@
 <translation id="4068506536726151626">Aquesta pàgina conté elements dels llocs següents que fan un seguiment de la teva ubicació:</translation>
 <translation id="4068776064906523561">Empremtes digitals desades</translation>
 <translation id="407173827865827707">En fer clic</translation>
+<translation id="4073520450811433493">Sincronització de la configuració</translation>
 <translation id="4074900173531346617">Certificat del signant del correu electrònic</translation>
 <translation id="407520071244661467">Canvia l'escala</translation>
 <translation id="4075639477629295004">No es pot emetre <ph name="FILE_NAME" /></translation>
@@ -2571,6 +2578,7 @@
 <translation id="4421932782753506458">Gatet</translation>
 <translation id="4423376891418188461">Restaura la configuració</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, l'administrador necessita que canviïs la contrasenya.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> no pot comprovar les teves contrasenyes. Torna-ho a provar al cap de 24 hores.</translation>
 <translation id="4429030830601238961">Aquestes dades infringeixen les polítiques de seguretat de la teva organització i no es poden enganxar.</translation>
 <translation id="4430019312045809116">Volum</translation>
 <translation id="4430369329743628066">S'ha afegit a les adreces d'interès</translation>
@@ -2583,6 +2591,7 @@
 <translation id="4441124369922430666">Voleu que aquesta aplicació s'iniciï automàticament en engegar l'ordinador?</translation>
 <translation id="4441147046941420429">Per continuar, suprimeix la clau de seguretat del dispositiu; tot seguit, torna a inserir-la i toca-la</translation>
 <translation id="444134486829715816">Amplia...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> pot comprovar les teves contrasenyes quan inicies la sessió amb el Compte de Google</translation>
 <translation id="4442424173763614572">La cerca de DNS ha fallat</translation>
 <translation id="4443536555189480885">&amp;Ajuda</translation>
 <translation id="4444304522807523469">Accedir als escàners del document adjunts mitjançant USB o a la xarxa local</translation>
@@ -2609,11 +2618,13 @@
 <translation id="4476659815936224889">Per escanejar aquest codi, pots fer servir una aplicació d'escaneig QR al telèfon o algunes aplicacions de la càmera.</translation>
 <translation id="4477015793815781985">Inclou la tecla Ctrl, Alt o ⌘</translation>
 <translation id="4478664379124702289">Anomena i desa &amp;l'enllaç...</translation>
+<translation id="4478777936860197922">No hi ha cap contrasenya desada. <ph name="IDS_SHORT_PRODUCT_NAME" /> pot comprovar les teves contrasenyes quan les deses.</translation>
 <translation id="4479424953165245642">Gestiona les aplicacions de quiosc</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">S'està configurant la màquina virtual. Aquest procés pot tardar uns quants minuts.</translation>
 <translation id="4480590691557335796">Chrome pot cercar programari nociu a l'ordinador i suprimir-lo</translation>
 <translation id="4481530544597605423">Dispositius desvinculats</translation>
+<translation id="4488107067273194838">Revisa les opcions de sincronització del navegador després de la configuració</translation>
 <translation id="4488502501195719518">Vols esborrar totes les dades?</translation>
 <translation id="4495419450179050807">No la mostris en aquesta pàgina</translation>
 <translation id="4496054781541092778">s'ha bloquejat automàticament <ph name="PERMISSION" /></translation>
@@ -2855,6 +2866,7 @@
 <translation id="4849517651082200438">No instal·lis</translation>
 <translation id="4850669014075537160">Desplaçament</translation>
 <translation id="4850886885716139402">Mostra</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> t'enviarà una notificació quan iniciïs la sessió amb una contrasenya en perill</translation>
 <translation id="4853020600495124913">Obre en una &amp;finestra nova</translation>
 <translation id="4854317507773910281">Tria un compte parental per a l'aprovació</translation>
 <translation id="485480310608090163">Més opcions de configuració i permisos</translation>
@@ -2873,6 +2885,7 @@
 <translation id="4871322859485617074">El PIN conté caràcters que no són vàlids</translation>
 <translation id="4871370605780490696">Afegeix una adreça d'interès</translation>
 <translation id="4871719318659334896">Tanca el grup</translation>
+<translation id="4871852311166078968">Afegeix al grup</translation>
 <translation id="4873312501243535625">Comprovador de fitxers multimèdia</translation>
 <translation id="4876273079589074638">Ajuda els nostres enginyers a investigar i resoldre aquest error. Si pots, enumera els passos amb exactitud. Cap detall no és sobrer!</translation>
 <translation id="4876895919560854374">Bloqueja i desbloqueja la pantalla</translation>
@@ -2964,7 +2977,6 @@
 <translation id="4992473555164495036">L'administrador ha limitat els mètodes d'entrada disponibles.</translation>
 <translation id="4994474651455208930">Permet que els llocs sol·licitin convertir-se en gestors predeterminats de protocols</translation>
 <translation id="4994754230098574403">S'està configurant</translation>
-<translation id="4996978546172906250">Comparteix mitjançant</translation>
 <translation id="4997086284911172121">No hi ha connexió a Internet.</translation>
 <translation id="4997384734315285248">Desinstal·la Plugin VM</translation>
 <translation id="4998430619171209993">Activat</translation>
@@ -3064,7 +3076,6 @@
 <translation id="5135085122826131075">Accedeix a l'Assistent quan diguis "Ok Google".</translation>
 <translation id="5135533361271311778">No s'ha pogut crear l'element d'adreça d'interès.</translation>
 <translation id="5137501176474113045">Suprimeix aquest element</translation>
-<translation id="5138982052046316113">Canvia la mida del disc de Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />; cerca-ho a <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Introdueix el PIN de la clau de seguretat. Si no el saps, hauràs de restablir la clau.</translation>
 <translation id="5139955368427980650">&amp;Obre</translation>
@@ -3518,6 +3529,7 @@
 <translation id="5739235828260127894">S'està esperant la verificació. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Molt gran</translation>
 <translation id="574209121243317957">To</translation>
+<translation id="5745136023067925867">Obtén consells, ofertes i informació sobre <ph name="DEVICE_TYPE" />, i comparteix suggeriments</translation>
 <translation id="5746169159649715125">Desa com a PDF</translation>
 <translation id="5747552184818312860">Caduca el dia</translation>
 <translation id="5747785204778348146">Desenvolupador: inestable</translation>
@@ -3930,7 +3942,6 @@
 <translation id="6291953229176937411">&amp;Mostra a Finder</translation>
 <translation id="6295158916970320988">Tots els llocs web</translation>
 <translation id="6295855836753816081">S'està desant…</translation>
-<translation id="629730747756840877">Compte</translation>
 <translation id="6298962879096096191">Utilitza Google Play per instal·lar aplicacions per a Android</translation>
 <translation id="630065524203833229">S&amp;urt</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> no s'ha pogut configurar automàticament. Especifica els detalls avançats de la impressora. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation>
@@ -4336,7 +4347,6 @@
 <translation id="6865598234501509159">La pàgina no està en <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Registres d'esdeveniments de WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura de color</translation>
-<translation id="6870888490422746447">Tria una aplicació per compartir a:</translation>
 <translation id="6871644448911473373">Resposta OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">El servidor ha rebutjat la contrasenya que has introduït.</translation>
 <translation id="6876155724392614295">Bicicleta</translation>
@@ -4429,6 +4439,7 @@
 <translation id="6997642619627518301">Registre d'activitat a <ph name="NAME_PH" /></translation>
 <translation id="6997707937646349884">Als teus dispositius:</translation>
 <translation id="6998793565256476099">Inscriu el dispositiu per a la videoconferència</translation>
+<translation id="6999956497249459195">Grup nou</translation>
 <translation id="7000206553895739324">La impressora <ph name="PRINTER_NAME" /> està connectada però s'ha de configurar</translation>
 <translation id="7000347579424117903">Inclou la tecla Ctrl, Alt o Cerca</translation>
 <translation id="7001036685275644873">S'està creant la còpia de seguretat dels fitxers i de les aplicacions de Linux</translation>
@@ -4727,6 +4738,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Configura la connexió al telèfon <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Omet aquest missatge</translation>
+<translation id="7403642243184989645">S'estan baixant els recursos</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{S'ha executat una comprovació de seguretat fa 1 hora}other{S'ha executat una comprovació de seguretat fa {NUM_HOURS} hores}}</translation>
 <translation id="740624631517654988">Finestra emergent bloquejada</translation>
 <translation id="7407430846095439694">Importa i vincula</translation>
@@ -4963,6 +4975,7 @@
 <translation id="7716781361494605745">URL de norma d'entitat emissora de certificats de Netscape</translation>
 <translation id="7717014941119698257">S'està baixant: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Cerca actualitzacions</translation>
+<translation id="7719070594859855691">Dona accés a la càmera</translation>
 <translation id="7719367874908701697">Zoom de la pàgina</translation>
 <translation id="7721179060400456005">Permet que les finestres ocupin diverses pantalles</translation>
 <translation id="7722040605881499779">Espai necessari per fer l'actualització: <ph name="NECESSARY_SPACE" /></translation>
@@ -4977,7 +4990,6 @@
 <translation id="7744047395460924128">Veure l'historial d'impressions</translation>
 <translation id="7744192722284567281">S'ha trobat en una violació de les dades</translation>
 <translation id="7750228210027921155">Pantalla en pantalla</translation>
-<translation id="7751229152614300329">Navegació segura està actualitzada i et protegeix contra els llocs web i les baixades perjudicials</translation>
 <translation id="7751260505918304024">Mostra-ho tot</translation>
 <translation id="7754704193130578113">Pregunta on es desarà cada fitxer abans de baixar-lo</translation>
 <translation id="7755287808199759310">El teu pare o la teva mare et poden desbloquejar el lloc</translation>
@@ -5065,6 +5077,7 @@
     <ph name="BEGIN_BOLD" />Nota<ph name="END_BOLD" />: el sistema es reiniciarà durant el procés.</translation>
 <translation id="7828731929332799387">Se suprimiran totes les galetes i les dades de llocs web disponibles en contexts de tercers. Vols continuar?</translation>
 <translation id="7829298379596169484">S'està accedint a l'entrada d'àudio</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> no pot comprovar les teves contrasenyes. Comprova la connexió a Internet.</translation>
 <translation id="7829877209233347340">Demana als pares que iniciïn la sessió per atorgar-te permís per afegir un compte de centre educatiu.</translation>
 <translation id="7830594666202422257">Connecta a Linux</translation>
 <translation id="7831491651892296503">S'ha produït un error en configurar la xarxa</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">S'està instal·lant Google Play Store al teu dispositiu <ph name="DEVICE_TYPE" />. Aquest procés pot tardar uns quants minuts.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{No hi ha cap galeta de tercers}=1{Hi ha 1 galeta de tercers bloquejada}other{Hi ha # galetes de tercers bloquejades}}</translation>
 <translation id="810875025413331850">No s'ha trobat cap dispositiu a prop.</translation>
+<translation id="8114199541033039755">Navega fins a la pàgina d'inici, ves enrere i canvia d'aplicació amb els botons en mode de tauleta. Aquesta opció s'activa quan ChromeVox o Clics automàtics estan activats.</translation>
 <translation id="8114875720387900039">Divisió horitzontal</translation>
 <translation id="8116972784401310538">&amp;Gestor d'adreces d'interès</translation>
 <translation id="8117620576188476503">Gestiona les connexions, actualitzacions i configuracions des de la safata d'estat. Per accedir-hi amb el teclat, prem Alt+Maj+S.</translation>
@@ -5405,6 +5419,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ha desactivat el cursor del ratolí.</translation>
 <translation id="8264024885325823677">El teu administrador gestiona aquesta opció de configuració.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ha activat la pantalla completa.</translation>
+<translation id="826511437356419340">S'ha entrat al mode de visió general de la finestra. Llisca per navegar o prem el tabulador si utilitzes un teclat.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Es tracta d'informació general sobre aquest dispositiu i sobre com es fa servir, com ara els errors, el nivell de bateria i l'activitat al sistema i en aplicacions. Les dades s'utilitzaran per millorar Android i part de la informació agregada també ajudarà les aplicacions i els partners de Google, com ara desenvolupadors d'Android, a millorar les seves aplicacions i els seus productes.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Si aquesta funció es desactiva, no afectarà la capacitat del dispositiu d'enviar la informació necessària per rebre serveis bàsics, com ara seguretat i actualitzacions del sistema.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />El propietari pot controlar aquesta funció des de Configuració &gt; Configuració avançada &gt; Envia automàticament dades de diagnòstic i d'ús a Google.<ph name="END_PARAGRAPH3" />
@@ -5514,6 +5529,7 @@
 <translation id="8426713856918551002">S'està activant</translation>
 <translation id="8427292751741042100">inserida en qualsevol amfitrió</translation>
 <translation id="8428213095426709021">Configuració</translation>
+<translation id="8428271547607112339">Afegeix un compte de centre educatiu</translation>
 <translation id="8428628598981198790">La clau de seguretat no es pot fer servir en aquest lloc web</translation>
 <translation id="84297032718407999">Es tancarà la sessió d'aquí a <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Mostra els tocs</translation>
@@ -5577,6 +5593,7 @@
 <translation id="851263357009351303">Permet sempre que <ph name="HOST" /> mostri imatges</translation>
 <translation id="8513108775083588393">Rotació automàtica</translation>
 <translation id="8514746246728959655">Prova una altra clau de seguretat</translation>
+<translation id="851960115758509829">Les teves aplicacions, opcions de configuració i altres personalitzacions se sincronitzaran amb tots els dispositius Chrome OS en què hagis iniciat la sessió amb el teu Compte de Google.</translation>
 <translation id="8521475323816527629">Accedeix a les teves aplicacions ràpidament</translation>
 <translation id="8523493869875972733">Mantén els canvis</translation>
 <translation id="8523849605371521713">Afegida per la política</translation>
@@ -5858,11 +5875,13 @@
 <translation id="885701979325669005">Emmagatzematge</translation>
 <translation id="8859057652521303089">Seleccioneu el vostre idioma:</translation>
 <translation id="8859174528519900719">Submarc: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Compte parental</translation>
 <translation id="8862003515646449717">Canvia a un navegador ràpid</translation>
 <translation id="8863753581171631212">Obre l'enllaç en una finestra nova de l'aplicació <ph name="APP" /></translation>
 <translation id="8864055848767439877">S'està compartint <ph name="TAB_NAME" /> amb <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> s'ha suprimit d'aquest dispositiu</translation>
 <translation id="8867228703146808825">Copia els detalls de la compilació al porta-retalls</translation>
+<translation id="8868333925931032127">S'està iniciant el mode de demostració</translation>
 <translation id="8868626022555786497">En ús</translation>
 <translation id="8870413625673593573">Tancades recentment</translation>
 <translation id="8871551568777368300">Configuració fixada per l'administrador</translation>
@@ -5941,6 +5960,7 @@
 <translation id="8966870118594285808">Torna a obrir una pestanya si l'has tancat per error</translation>
 <translation id="8967866634928501045">Prem Alt+Maj+A perquè es mostri</translation>
 <translation id="8968766641738584599">Desa la targeta</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> no pot comprovar les teves contrasenyes. Torna-ho a provar al cap de 24 hores o <ph name="BEGIN_LINK" />comprova les contrasenyes al teu Compte de Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Consulteu amb l'administrador de xarxa per assegurar-vos que el tallafoc no estigui bloquejant les baixades dels servidors de Google.</translation>
 <translation id="8973557916016709913">Suprimeix el nivell de zoom</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 44d763a..48f1528 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dostupná zařízení</translation>
 <translation id="1042174272890264476">Počítač je dodáván s integrovanou knihovnou RLZ prohlížeče <ph name="SHORT_PRODUCT_NAME" />. RLZ přiřadí značku, která slouží k vyhodnocení vyhledávání a využití prohlížečů <ph name="SHORT_PRODUCT_NAME" />, které pocházejí z konkrétní propagační kampaně. Tato značka není jedinečná a neumožňuje osobní identifikaci. Tyto značky jsou někdy v prohlížeči <ph name="PRODUCT_NAME" /> uváděny v dotazech ve Vyhledávání Google.</translation>
 <translation id="1043818413152647937">Vymazat data také z těchto aplikací?</translation>
+<translation id="1045448422538531528">Přidat do skupiny</translation>
 <translation id="1046635659603195359">Funkci rozpoznání hlasu Voice Match jste u Asistenta Google už zřejmě nastavili v jiném zařízení. Dřívější nahrávky lze použít k vytvoření hlasového modelu v tomto zařízení. Mělo by to trvat méně než minutu.</translation>
 <translation id="104710386808485638">Restartovat Linux?</translation>
 <translation id="1047431265488717055">Kopírovat te&amp;xt odkazu</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Vždy blokovat přístup ke kameře</translation>
 <translation id="1082398631555931481">Nástroj <ph name="THIRD_PARTY_TOOL_NAME" /> chce obnovit vaše nastavení Chromu na výchozí hodnoty. Bude resetována vaše domovská stránka, stránka Nová karta a vyhledávač, budou deaktivována rozšíření a uvolněny všechny karty. Budou také vymazána další dočasná data a data uložená v mezipaměti, například soubory cookie, obsah a data webů.</translation>
+<translation id="1084096383128641877">Odstraněním tohoto hesla nesmažete svůj účet na <ph name="DOMAIN" />. Pokud chcete ochránit svá data, změňte své heslo nebo smažte účet na <ph name="DOMAIN_LINK" />.</translation>
 <translation id="1084824384139382525">Kopírovat a&amp;dresu odkazu</translation>
 <translation id="1085697365578766383">Při spouštění virtuálního počítače došlo k chybě. Zkuste to znovu.</translation>
 <translation id="1090126737595388931">Na pozadí nejsou spuštěny žádné aplikace</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Bezpečnostní kontrola proběhla včera</translation>
 <translation id="1260451001046713751">Vždy povolovat vyskakovací okna a přesměrování z webu <ph name="HOST" /></translation>
 <translation id="126156426083987769">Došlo k problému s licencemi pro zařízení v ukázkovém režimu.</translation>
+<translation id="1263490604593716556">Tento účet spravují <ph name="FIRST_PARENT_EMAIL" /> a <ph name="SECOND_PARENT_EMAIL" />. Chcete-li se v tomto zařízení odhlásit od primárního účtu, klikněte na čas na obrazovce. V nabídce, která se zobrazí, klikněte na Odhlásit se.</translation>
 <translation id="126710816202626562">Jazyk překladu:</translation>
 <translation id="126768002343224824">16×</translation>
 <translation id="1272079795634619415">Zastavit</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Web</translation>
 <translation id="15662109988763471">Zvolená tiskárna není k dispozici nebo není správně nainstalovaná. Zkontrolujte tiskárnu nebo vyberte jinou.</translation>
 <translation id="1567387640189251553">Od minulého zadání hesla byla připojena jiná klávesnice. Je možné, že se pokouší odcizit vaše stisknutí kláves.</translation>
-<translation id="1567750922576943685">Ověření vaší identity pomáhá ochránit vaše osobní údaje</translation>
 <translation id="1567993339577891801">Konzole JavaScriptu</translation>
 <translation id="1568323446248056064">Otevřít nastavení displeje</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (host)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Umění</translation>
 <translation id="1697686431566694143">Upravit soubor</translation>
 <translation id="1698122934742150150">Pouze aktuální anonymní návštěvy</translation>
-<translation id="1698650002254827833">Seznam aplikací nelze načíst. Zkuste to znovu.</translation>
 <translation id="1700079447639026019">Weby, které nikdy nemohou používat soubory cookie</translation>
 <translation id="1701062906490865540">Odebrat tohoto uživatele</translation>
 <translation id="1703331064825191675">Nedělejte si starosti s hesly</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Pokračovat</translation>
 <translation id="2173302385160625112">Zkontrolujte připojení k internetu.</translation>
 <translation id="2173801458090845390">Přidat do tohoto zařízení ID požadavku</translation>
+<translation id="2174948148799307353">Tento účet spravuje <ph name="PARENT_EMAIL" />. Chcete-li se v tomto zařízení odhlásit od primárního účtu, klikněte na čas na obrazovce. V nabídce, která se zobrazí, klikněte na Odhlásit se.</translation>
 <translation id="2175607476662778685">panel Snadné spuštění</translation>
 <translation id="217576141146192373">Tiskárnu nelze přidat. Zkontrolujte konfiguraci tiskárny a zkuste to znovu.</translation>
 <translation id="2177950615300672361">Anonymní karta: <ph name="TAB_NAME" /></translation>
@@ -1080,7 +1082,6 @@
 <translation id="2442916515643169563">Stín textu</translation>
 <translation id="2445081178310039857">Je vyžadován kořenový adresář rozšíření.</translation>
 <translation id="2445484935443597917">Vytvořit nový profil</translation>
-<translation id="2446585455334014596">Web <ph name="APP_NAME" /> chce ověřit vaši identitu</translation>
 <translation id="2448312741937722512">Typ</translation>
 <translation id="2450223707519584812">Uživatele nebudete moci přidávat, protože chybí klíče rozhraní Google API. Podrobnosti naleznete na adrese <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Žádná aktivní zobrazení</translation>
@@ -1478,6 +1479,7 @@
 <translation id="2948300991547862301">Přejít na stránku <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Rychlý, jednoduchý a bezpečný webový prohlížeč vytvořený pro moderní web</translation>
 <translation id="2949289451367477459">Používat polohu. Povolte aplikacím a službám s oprávněním pro přístup k poloze využívat polohu tohoto zařízení. Google může pravidelně shromažďovat údaje o poloze a anonymně je používat ke zlepšování přesnosti polohy a služeb založených na poloze. <ph name="BEGIN_LINK1" />Další informace<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Zaregistrovat se</translation>
 <translation id="2956070239128776395">Sekce vnořená ve skupině: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Nepovolovat žádným webům upravovat soubory nebo složky v zařízení</translation>
 <translation id="2958721676848865875">Upozornění na zabalení rozšíření</translation>
@@ -1602,6 +1604,7 @@
 <translation id="3139925690611372679">Výchozí žlutý avatar</translation>
 <translation id="3141318088920353606">Poslouchám…</translation>
 <translation id="3141917231319778873">Zadaný požadavek v zařízení <ph name="DEVICE_NAME" /> není podporován.</translation>
+<translation id="3142562627629111859">Nová skupina</translation>
 <translation id="3143515551205905069">Zrušit synchronizaci</translation>
 <translation id="3143754809889689516">Přehrát od začátku</translation>
 <translation id="3144647712221361880">Otevřít odkaz jako</translation>
@@ -1626,6 +1629,7 @@
 <translation id="3159493096109238499">Bledě béžová</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardwarový)</translation>
 <translation id="3161522574479303604">Všechny jazyky</translation>
+<translation id="3162853326462195145">Školní účet</translation>
 <translation id="3162899666601560689">Weby mohou používat soubory cookie ke zlepšování prostředí při prohlížení, například si pomocí nich mohou pamatovat vaše přihlášení a položky v nákupním košíku</translation>
 <translation id="3163201441334626963">Neznámý produkt <ph name="PRODUCT_ID" /> od dodavatele <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Tato karta je sdílena s aplikací <ph name="APP_NAME" /></translation>
@@ -1684,7 +1688,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Do jednoho dne zařízení aktualizujte}few{Do # dní zařízení aktualizujte}many{Do # dní zařízení aktualizujte}other{Do # dní zařízení aktualizujte}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – chyba sítě</translation>
 <translation id="3248902735035392926">Bezpečnost je důležitá. Věnujte chvíli <ph name="BEGIN_LINK" />kontrole svých rozšíření<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Není součástí certifikátu&gt;</translation>
 <translation id="3253225298092156258">Nedostupné</translation>
 <translation id="3253448572569133955">Neznámý účet</translation>
@@ -1789,6 +1792,7 @@
 <translation id="3396800784455899911">Kliknutím na tlačítko Přijmout a pokračovat vyjadřujete souhlas se zpracováním popsaným výše pro tyto služby Google.</translation>
 <translation id="3399432415385675819">Oznámení budou zakázána</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz) – prokládané</translation>
+<translation id="3402585168444815892">Registrace v ukázkovém režimu</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Pro tento web nejsou uložena žádná hesla</translation>
 <translation id="3405664148539009465">Personalizovat písma</translation>
@@ -1850,6 +1854,7 @@
 <translation id="3468999815377931311">Telefon Android</translation>
 <translation id="3470442499439619530">Odebrat tohoto uživatele</translation>
 <translation id="3471876058939596279">Pro video nelze používat zároveň konektor HDMI i USB Type-C. Použijte pro video jiný konektor.</translation>
+<translation id="3473241910002674503">Umožňuje přejít na domovskou stránku či zpět a přepínat aplikace pomocí tlačítek v režimu tabletu.</translation>
 <translation id="3473479545200714844">Lupa obrazovky</translation>
 <translation id="3475843873335999118">Otisk prstu stále nebyl rozpoznán. Zadejte prosím heslo.</translation>
 <translation id="3476303763173086583">Odesílat údaje o využití a diagnostice. Pomozte prostředí Android svého dítěte zlepšit tím, že necháte do Googlu automaticky odesílat diagnostické údaje a údaje o využití zařízení a aplikací. Tyto údaje nebudou používány ke zjištění totožnosti dítěte a pomohou nám se zvyšováním stability systému a aplikací a dalšími vylepšeními. Některá souhrnná data budou moci využít také naši partneři, např. vývojáři aplikací pro Android. Toto nastavení je <ph name="BEGIN_LINK1" />vyžadováno<ph name="END_LINK1" /> vlastníkem. Vlastník může zvolit, že se diagnostické údaje a údaje o využití z tohoto zařízení mají odesílat do Googlu. Pokud má dítě zapnuté dodatečné nastavení Aktivita na webu a v aplikacích, mohou se tato data ukládat do jeho účtu Google. <ph name="BEGIN_LINK2" />Další informace<ph name="END_LINK2" /></translation>
@@ -2273,6 +2278,7 @@
 <translation id="3971764089670057203">Otisky prstů na tomto bezpečnostním klíči</translation>
 <translation id="3973660817924297510">Probíhá kontrola hesel (<ph name="CHECKED_PASSWORDS" /> z <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Kontaktování serveru pro sféru se nezdařilo</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> nemůže zkontrolovat vaše hesla. Zkuste to později.</translation>
 <translation id="3976108569178263973">Nejsou k dispozici žádné tiskárny.</translation>
 <translation id="397703832102027365">Dokončování...</translation>
 <translation id="3977886311744775419">Automatické aktualizace se v tomto typu sítě nestahují, ale můžete aktualizace vyhledat ručně.</translation>
@@ -2336,6 +2342,7 @@
 <translation id="4068506536726151626">Tato stránka obsahuje prvky z následujících webů, které sledují vaši polohu:</translation>
 <translation id="4068776064906523561">Uložené otisky prstu</translation>
 <translation id="407173827865827707">Při kliknutí</translation>
+<translation id="4073520450811433493">Synchronizace nastavení</translation>
 <translation id="4074900173531346617">Certifikát autora podpisu e-mailu</translation>
 <translation id="407520071244661467">Měřítko</translation>
 <translation id="4075639477629295004">Soubor <ph name="FILE_NAME" /> nelze odeslat.</translation>
@@ -2572,6 +2579,7 @@
 <translation id="4421932782753506458">Kotě</translation>
 <translation id="4423376891418188461">Obnovit nastavení</translation>
 <translation id="442397852638519243">Zpráva pro uživatele <ph name="USER_NAME" />: váš administrátor vyžaduje, abyste si změnili heslo.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> nemůže zkontrolovat vaše hesla. Zkuste to znovu za 24 hodin.</translation>
 <translation id="4429030830601238961">Tato data porušují bezpečnostní zásady organizace a nelze je vložit.</translation>
 <translation id="4430019312045809116">Hlasitost</translation>
 <translation id="4430369329743628066">Byla přidána záložka</translation>
@@ -2584,6 +2592,7 @@
 <translation id="4441124369922430666">Chcete tuto aplikaci automaticky spustit, když se zařízení zapne?</translation>
 <translation id="4441147046941420429">Chcete-li pokračovat, vyjměte ze zařízení bezpečnostní klíč a poté ho znovu vložte a dotkněte se ho</translation>
 <translation id="444134486829715816">Rozbalit...</translation>
+<translation id="4442329324652245220">Když se přihlásíte k účtu Google, může vám <ph name="IDS_SHORT_PRODUCT_NAME" /> kontrolovat hesla</translation>
 <translation id="4442424173763614572">Nepodařilo se nalézt server DNS.</translation>
 <translation id="4443536555189480885">&amp;Nápověda</translation>
 <translation id="4444304522807523469">Přístup ke skenerům dokumentů připojeným přes USB nebo v místní síti</translation>
@@ -2610,11 +2619,13 @@
 <translation id="4476659815936224889">K naskenování tohoto kódu můžete použít aplikaci na skenování QR kódů na telefonu nebo některé aplikace pro fotografování.</translation>
 <translation id="4477015793815781985">Zahrňte klávesu Ctrl, Alt, nebo ⌘</translation>
 <translation id="4478664379124702289">Uložit od&amp;kaz jako...</translation>
+<translation id="4478777936860197922">Nemáte žádná uložená hesla. <ph name="IDS_SHORT_PRODUCT_NAME" /> může hesla zkontrolovat, pouze když si je uložíte.</translation>
 <translation id="4479424953165245642">Spravovat aplikace pro režim veřejného terminálu</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Probíhá konfigurace virtuálního počítače. Může to trvat několik minut.</translation>
 <translation id="4480590691557335796">Chrome na vašem počítači může vyhledat škodlivý software a odstranit jej</translation>
 <translation id="4481530544597605423">Nespárovaná zařízení</translation>
+<translation id="4488107067273194838">Po nastavení zkontrolovat možnosti synchronizace prohlížeče</translation>
 <translation id="4488502501195719518">Vymazat všechna data?</translation>
 <translation id="4495419450179050807">Nezobrazovat na této stránce</translation>
 <translation id="4496054781541092778">oprávnění <ph name="PERMISSION" /> automaticky zablokováno</translation>
@@ -2856,6 +2867,7 @@
 <translation id="4849517651082200438">Neinstalovat</translation>
 <translation id="4850669014075537160">Posouvání</translation>
 <translation id="4850886885716139402">Zobrazit</translation>
+<translation id="485197095346966382">Pokud se přihlásíte pomocí prolomeného hesla, <ph name="IDS_SHORT_PRODUCT_NAME" /> vám to oznámí</translation>
 <translation id="4853020600495124913">Otevřít v &amp;novém okně</translation>
 <translation id="4854317507773910281">Vyber účet rodiče, který to schválí</translation>
 <translation id="485480310608090163">Další nastavení a oprávnění</translation>
@@ -2874,6 +2886,7 @@
 <translation id="4871322859485617074">PIN obsahuje neplatné znaky</translation>
 <translation id="4871370605780490696">Přidat záložku</translation>
 <translation id="4871719318659334896">Zavřít skupinu</translation>
+<translation id="4871852311166078968">Přidat do skupiny</translation>
 <translation id="4873312501243535625">Nástroj na kontrolu mediálních souborů</translation>
 <translation id="4876273079589074638">Pomozte našim technikům prozkoumat toto selhání a odstranit jeho příčiny. Je-li to možné, přesně popište jednotlivé kroky. Důležité mohou být i nejmenší podrobnosti.</translation>
 <translation id="4876895919560854374">Uzamknutí a odemknutí obrazovky</translation>
@@ -2965,7 +2978,6 @@
 <translation id="4992473555164495036">Administrátor omezil dostupné metody zadávání.</translation>
 <translation id="4994474651455208930">Povolit dotazy stránek, zda je chcete použít jako výchozí obslužný nástroj protokolů</translation>
 <translation id="4994754230098574403">Nastavování</translation>
-<translation id="4996978546172906250">Sdílet prostřednictvím</translation>
 <translation id="4997086284911172121">Nejste připojeni k internetu.</translation>
 <translation id="4997384734315285248">Odinstalovat Plugin VM</translation>
 <translation id="4998430619171209993">Zapnuto</translation>
@@ -3065,7 +3077,6 @@
 <translation id="5135085122826131075">Aktivovat Asistenta, když řeknete „Ok Google“</translation>
 <translation id="5135533361271311778">Záložku nelze vytvořit.</translation>
 <translation id="5137501176474113045">Smazat tuto položku</translation>
-<translation id="5138982052046316113">Změna velikosti disku Linuxu</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, vyhledávání <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Zadejte PIN bezpečnostního klíče. Pokud PIN neznáte, budete bezpečnostní klíč muset resetovat.</translation>
 <translation id="5139955368427980650">Otevřít</translation>
@@ -3517,6 +3528,7 @@
 <translation id="5739235828260127894">Čeká na ověření. <ph name="LINK_BEGIN" />Další informace<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Velmi velké</translation>
 <translation id="574209121243317957">Výška</translation>
+<translation id="5745136023067925867">Nechte si zasílat tipy, nabídky a aktuality týkající se zařízení <ph name="DEVICE_TYPE" /> a poskytujte nám zpětnou vazbu</translation>
 <translation id="5746169159649715125">Uložit jako PDF</translation>
 <translation id="5747552184818312860">Konec platnosti</translation>
 <translation id="5747785204778348146">Pro vývojáře – nestabilní</translation>
@@ -3929,7 +3941,6 @@
 <translation id="6291953229176937411">Zobrazit ve &amp;službě Finder</translation>
 <translation id="6295158916970320988">Všechny weby</translation>
 <translation id="6295855836753816081">Ukládání...</translation>
-<translation id="629730747756840877">Účet</translation>
 <translation id="6298962879096096191">Používat Google Play k instalaci aplikací pro Android</translation>
 <translation id="630065524203833229">Konec</translation>
 <translation id="6300718114348072351">Tiskárnu <ph name="PRINTER_NAME" /> se nepodařilo nakonfigurovat automaticky. Zadejte rozšířené podrobnosti o tiskárně. <ph name="LINK_BEGIN" />Další informace<ph name="LINK_END" /></translation>
@@ -4335,7 +4346,6 @@
 <translation id="6865598234501509159">Stránka není v jazyce <ph name="LANGUAGE" />?</translation>
 <translation id="6865708901122695652">Protokoly událostí WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Teplota barev</translation>
-<translation id="6870888490422746447">Vyberte aplikaci, se kterou obsah chcete sdílet:</translation>
 <translation id="6871644448911473373">Odpovídač OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Zadané heslo bylo serverem odmítnuto.</translation>
 <translation id="6876155724392614295">Kolo</translation>
@@ -4428,6 +4438,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – protokol aktivit</translation>
 <translation id="6997707937646349884">Ve vašich zařízeních:</translation>
 <translation id="6998793565256476099">Zaregistrovat zařízení pro videohovory</translation>
+<translation id="6999956497249459195">Nová skupina</translation>
 <translation id="7000206553895739324">Tiskárna <ph name="PRINTER_NAME" /> je připojená, ale je potřeba ji nakonfigurovat</translation>
 <translation id="7000347579424117903">Zahrňte klávesu Ctrl, Alt, nebo Hledat</translation>
 <translation id="7001036685275644873">Zálohování aplikací a souborů systému Linux</translation>
@@ -4726,6 +4737,7 @@
 <translation id="7400418766976504921">Adresa URL</translation>
 <translation id="7400839060291901923">Nastavte připojení na zařízení <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Zavřít tuto zprávu</translation>
+<translation id="7403642243184989645">Stahování zdrojů</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Bezpečnostní kontrola proběhla před hodinou}few{Bezpečnostní kontrola proběhla před {NUM_HOURS} hodinami}many{Bezpečnostní kontrola proběhla před {NUM_HOURS} hodiny}other{Bezpečnostní kontrola proběhla před {NUM_HOURS} hodinami}}</translation>
 <translation id="740624631517654988">Zablokováno vyskakovací okno</translation>
 <translation id="7407430846095439694">Importovat a svázat</translation>
@@ -4962,6 +4974,7 @@
 <translation id="7716781361494605745">Adresa URL zásad certifikační autority Netscape</translation>
 <translation id="7717014941119698257">Stahování: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Kontrola dostupnosti aktualizací</translation>
+<translation id="7719070594859855691">Povolit přístup ke kameře</translation>
 <translation id="7719367874908701697">Přiblížení/oddálení stránky</translation>
 <translation id="7721179060400456005">Povolit rozložení oken na více obrazovek</translation>
 <translation id="7722040605881499779">Místo potřebné pro aktualizaci: <ph name="NECESSARY_SPACE" /></translation>
@@ -4976,7 +4989,6 @@
 <translation id="7744047395460924128">Zobrazení historie tisku</translation>
 <translation id="7744192722284567281">Nalezeno v porušení zabezpečení údajů</translation>
 <translation id="7750228210027921155">Obraz v obraze</translation>
-<translation id="7751229152614300329">Bezpečné prohlížení je aktuální a chrání vás před škodlivými weby a soubory ke stažení</translation>
 <translation id="7751260505918304024">Zobrazit vše</translation>
 <translation id="7754704193130578113">Před stažením se vždy zeptat na místo uložení každého souboru</translation>
 <translation id="7755287808199759310">Rodič ti jej může odblokovat.</translation>
@@ -5064,6 +5076,7 @@
 <ph name="BEGIN_BOLD" />Poznámka:<ph name="END_BOLD" /> Systém se během tohoto procesu restartuje.</translation>
 <translation id="7828731929332799387">Tímto vymažete všechny soubory cookie a data webu dostupná v kontextech třetích stran. Chcete pokračovat?</translation>
 <translation id="7829298379596169484">Přístup ke zvukovému vstupu</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> nemůže zkontrolovat vaše hesla. Zkuste zkontrolovat připojení k internetu.</translation>
 <translation id="7829877209233347340">Požádej rodiče, aby se přihlásil a udělil oprávnění k přidání školního účtu</translation>
 <translation id="7830594666202422257">Připojit k Linuxu</translation>
 <translation id="7831491651892296503">Chyba při konfiguraci sítě</translation>
@@ -5286,6 +5299,7 @@
 <translation id="8107015733319732394">Instalace Obchodu Google Play do zařízení <ph name="DEVICE_TYPE" />. Tato operace může několik minut trvat.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Žádné soubory cookie třetích stran}=1{1 soubor cookie třetí strany je blokován}few{# soubory cookie třetích stran jsou blokovány}many{# souboru cookie třetích stran je blokováno}other{# souborů cookie třetích stran je blokováno}}</translation>
 <translation id="810875025413331850">V okolí nebyla nalezena žádná zařízení.</translation>
+<translation id="8114199541033039755">Umožňuje přejít na domovskou stránku či zpět a přepínat aplikace pomocí tlačítek v režimu tabletu. Když je aktivovaná funkce ChromeVox či Automatická kliknutí, je tato možnost zapnutá.</translation>
 <translation id="8114875720387900039">Vodorovně rozdělit</translation>
 <translation id="8116972784401310538">&amp;Správce záložek</translation>
 <translation id="8117620576188476503">Na stavovém panelu můžete spravovat připojení, aktualizace a nastavení. Chcete-li se sem dostat pomocí klávesnice, stiskněte Alt + Shift + S.</translation>
@@ -5404,6 +5418,7 @@
 <translation id="8263744495942430914">Stránka <ph name="FULLSCREEN_ORIGIN" /> deaktivovala váš ukazatel myši.</translation>
 <translation id="8264024885325823677">Toto nastavení spravuje administrátor.</translation>
 <translation id="8264718194193514834">Rozšíření <ph name="EXTENSION_NAME" /> spustilo režim celé obrazovky.</translation>
+<translation id="826511437356419340">Byl aktivován režim přehledu oken. Můžete mezi nimi přecházet přejetím prstem nebo tabulátorem.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Toto jsou obecné informace o tomto zařízení a způsobu jeho používání (např. stav baterie, aktivita systému a aplikací a chyby). Data budou využívána k vylepšování systému Android a některé souhrnné informace pomohou s vylepšením aplikací a služeb také našim partnerům, například vývojářům aplikací pro Android.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Vypnutí této funkce nemá vliv na schopnost zařízení odesílat informace, které jsou potřeba pro základní služby, jako jsou aktualizace systému a zabezpečení.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Vlastník tuto funkci může ovládat pomocí možnosti Nastavení &gt; Rozšířená nastavení &gt; Automaticky do Googlu odesílat diagnostické údaje a údaje o využití.<ph name="END_PARAGRAPH3" />
@@ -5512,6 +5527,7 @@
 <translation id="8426713856918551002">Aktivování</translation>
 <translation id="8427292751741042100">vloženo na libovolném webu</translation>
 <translation id="8428213095426709021">Nastavení</translation>
+<translation id="8428271547607112339">Přidat školní účet</translation>
 <translation id="8428628598981198790">Váš bezpečnostní klíč na tomto webu nelze použít</translation>
 <translation id="84297032718407999">Za <ph name="LOGOUT_TIME_LEFT" /> budete odhlášeni</translation>
 <translation id="8431190899827883166">Zobrazovat klepnutí</translation>
@@ -5575,6 +5591,7 @@
 <translation id="851263357009351303">Vždy povolovat zobrazování obrázků z webu <ph name="HOST" /></translation>
 <translation id="8513108775083588393">Automatické otáčení</translation>
 <translation id="8514746246728959655">Zkuste jiný bezpečnostní klíč</translation>
+<translation id="851960115758509829">Vaše aplikace, nastavení a další přizpůsobení se budou synchronizovat do všech zařízení se systémem Chrome OS, na kterých jste přihlášeni pomocí svého účtu Google.</translation>
 <translation id="8521475323816527629">Dostaňte se rychle k aplikacím</translation>
 <translation id="8523493869875972733">Uchovat změny</translation>
 <translation id="8523849605371521713">Přidáno zásadou</translation>
@@ -5856,11 +5873,13 @@
 <translation id="885701979325669005">Úložiště</translation>
 <translation id="8859057652521303089">Vyberte jazyk:</translation>
 <translation id="8859174528519900719">Podrámec: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Účet rodiče</translation>
 <translation id="8862003515646449717">Přejděte na rychlý prohlížeč</translation>
 <translation id="8863753581171631212">Otevřít odkaz v novém okně aplikace <ph name="APP" /></translation>
 <translation id="8864055848767439877">Sdílení karty <ph name="TAB_NAME" /> s aplikací <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Účet <ph name="EMAIL" /> byl z tohoto zařízení odstraněn</translation>
 <translation id="8867228703146808825">Zkopírovat podrobnosti sestavení do schránky</translation>
+<translation id="8868333925931032127">Spouštění ukázkového režimu</translation>
 <translation id="8868626022555786497">Používáno</translation>
 <translation id="8870413625673593573">Nedávno zavřené</translation>
 <translation id="8871551568777368300">Připnuto administrátorem</translation>
@@ -5939,6 +5958,7 @@
 <translation id="8966870118594285808">Pokud jste nějakou kartu zavřeli omylem, můžete ji znovu otevřít</translation>
 <translation id="8967866634928501045">Zobrazíte stisknutím Alt + Shift + A</translation>
 <translation id="8968766641738584599">Uložit kartu</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> nemůže zkontrolovat vaše hesla. Zkuste to znovu zítra, případně <ph name="BEGIN_LINK" />hesla zkontrolujte v účtu Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escapovat</translation>
 <translation id="8972513834460200407">Obraťte se na svého správce sítě a ověřte, že stahování ze serverů Google neblokuje firewall.</translation>
 <translation id="8973557916016709913">Odstranit úroveň přiblížení</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 9a21ee94..4fbe2aca 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Tilgængelige enheder</translation>
 <translation id="1042174272890264476">Computeren leveres også med <ph name="SHORT_PRODUCT_NAME" />s RLZ-samling indbygget. RLZ tildeler et ikke-unikt, ikke-personligt identificerbart tag til at måle søgninger og <ph name="SHORT_PRODUCT_NAME" />-brug, der er drevet af en bestemt kampagne. Disse etiketter vises nogle gange i Googles søgeforespørgsler i <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Vil du også rydde dataene fra disse apps?</translation>
+<translation id="1045448422538531528">Føj til gruppe</translation>
 <translation id="1046635659603195359">Det ser ud til, at du allerede har konfigureret Voice Match med Google-assistenten på en anden enhed. Disse tidligere optagelser kan bruges til at oprette en stemmemodel på denne enhed. Dette bør tage mindre end et minut.</translation>
 <translation id="104710386808485638">Vil du genstarte Linux?</translation>
 <translation id="1047431265488717055">Kopiér linkte&amp;kst</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Bloker altid kameraadgang</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> vil gendanne dine Chrome-indstillinger til den oprindelige standardkonfiguration. Dette vil nulstille din startside, siden Ny fane og din søgemaskine, deaktivere dine udvidelser og frigøre alle faner. Dette rydder også andre midlertidige og cachelagrede data, som f.eks. cookies, indhold og websitedata.</translation>
+<translation id="1084096383128641877">Fjernelse af denne adgangskode sletter ikke din konto på <ph name="DOMAIN" />. Skift din adgangskode, eller slet din konto på <ph name="DOMAIN_LINK" /> for at beskytte den mod andre.</translation>
 <translation id="1084824384139382525">Kopier linkadr&amp;esse</translation>
 <translation id="1085697365578766383">Der opstod en fejl ved opstarten af den virtuelle maskine. Prøv igen.</translation>
 <translation id="1090126737595388931">Ingen apps kører i baggrunden</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Sikkerhedstjekket blev udført i går</translation>
 <translation id="1260451001046713751">Tillad altid pop op-vinduer og omdirigeringer fra <ph name="HOST" /></translation>
 <translation id="126156426083987769">Der opstod et problem med enhedslicenser i demotilstand.</translation>
+<translation id="1263490604593716556">Kontoen administreres af <ph name="FIRST_PARENT_EMAIL" /> og <ph name="SECOND_PARENT_EMAIL" />. Klik på klokkeslættet på din skærm for at logge ud af den primære konto på denne enhed. Klik derefter på "Log ud" i den menu, der vises.</translation>
 <translation id="126710816202626562">Sprog, der skal oversættes til:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Stop</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Website</translation>
 <translation id="15662109988763471">Den valgte printer er ikke tilgængelig eller ikke installeret korrekt. Tjek din printer, eller vælg en anden printer.</translation>
 <translation id="1567387640189251553">Der er tilsluttet et andet tastatur, siden du sidst indtastede din adgangskode. Det forsøger muligvis at stjæle dine indtastninger.</translation>
-<translation id="1567750922576943685">Bekræftelse af din identitet hjælper med at beskytte dine personlige oplysninger</translation>
 <translation id="1567993339577891801">JavaScript-konsol</translation>
 <translation id="1568323446248056064">Åbn enhedens skærmindstillinger</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (gæst)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Art</translation>
 <translation id="1697686431566694143">Rediger fil</translation>
 <translation id="1698122934742150150">Kun for den aktuelle inkognitosession</translation>
-<translation id="1698650002254827833">Listen med apps kunne ikke indlæses. Prøv igen.</translation>
 <translation id="1700079447639026019">Websites, der aldrig kan anvende cookies</translation>
 <translation id="1701062906490865540">Fjern denne person</translation>
 <translation id="1703331064825191675">Glem aldrig dine adgangskoder igen</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Fortsæt</translation>
 <translation id="2173302385160625112">Tjek din internetforbindelse</translation>
 <translation id="2173801458090845390">Føj rekvisitions-id til denne enhed</translation>
+<translation id="2174948148799307353">Kontoen administreres af <ph name="PARENT_EMAIL" />. Klik på klokkeslættet på din skærm for at logge ud af den primære konto på denne enhed. Klik derefter på "Log ud" i den menu, der vises.</translation>
 <translation id="2175607476662778685">Hurtig start</translation>
 <translation id="217576141146192373">Printeren kunne ikke tilføjes. Tjek din printers konfiguration, og prøv igen.</translation>
 <translation id="2177950615300672361">Inkognitofane: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Tekstskygge</translation>
 <translation id="2445081178310039857">Udvidelsens rodmappe er påkrævet.</translation>
 <translation id="2445484935443597917">Opret en ny profil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> vil bekræfte din identitet</translation>
 <translation id="2448312741937722512">Type</translation>
 <translation id="2450223707519584812">Du vil ikke kunne tilføje brugere, da der mangler Google API-nøgler. Se <ph name="DETAILS_URL" /> for at få flere oplysninger.</translation>
 <translation id="2450849356604136918">Ingen aktive visninger</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Gå til <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">En hurtig, enkel og sikker webbrowser, der er udviklet til det moderne internet.</translation>
 <translation id="2949289451367477459">Brug placering. Tillad, at apps og tjenester med placeringstilladelse kan bruge enhedens placering. Google kan med jævne mellemrum indsamle placeringsdata og bruge oplysningerne anonymt til at gøre placeringen mere nøjagtig og forbedre placeringsbaserede tjenester. <ph name="BEGIN_LINK1" />Få flere oplysninger<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Tilmeld mig</translation>
 <translation id="2956070239128776395">Sektionen er indlejret i en gruppe: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Tillad ikke, at websites redigerer filer eller mapper på din enhed</translation>
 <translation id="2958721676848865875">Advarsel om pakkeudvidelse</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Gul standardavatar</translation>
 <translation id="3141318088920353606">Lytter...</translation>
 <translation id="3141917231319778873">Den angivne anmodning understøttes ikke på: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Ny gruppe</translation>
 <translation id="3143515551205905069">Annuller synkronisering</translation>
 <translation id="3143754809889689516">Afspil fra begyndelsen</translation>
 <translation id="3144647712221361880">Åbn linket som</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardwarebaserede)</translation>
 <translation id="3161522574479303604">Alle sprog</translation>
+<translation id="3162853326462195145">Skolekonto</translation>
 <translation id="3162899666601560689">Websites kan bruge cookies til at forbedre din browseroplevelse ved f.eks. at sørge for, at du forbliver logget ind, eller ved at huske varerne i din kurv</translation>
 <translation id="3163201441334626963">Ukendt produkt, <ph name="PRODUCT_ID" />, fra leverandøren <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Denne fane deles med <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Genstart enheden inden for en dag}one{Genstart enheden inden for # dag}other{Genstart enheden inden for # dage}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – netværksfejl</translation>
 <translation id="3248902735035392926">Sikkerhed er vigtigt. Brug et øjeblik på at <ph name="BEGIN_LINK" />tjekke dine udvidelser<ph name="END_LINK" /> nu</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Ikke en del af certifikatet&gt;</translation>
 <translation id="3253225298092156258">Ikke tilgængeligt</translation>
 <translation id="3253448572569133955">Ukendt konto</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Når du klikker på knappen "Acceptér og fortsæt", accepterer du den behandling, der er beskrevet ovenfor, for disse Google-tjenester.</translation>
 <translation id="3399432415385675819">Notifikationer deaktiveres</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" />x<ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz) – sammenflettet</translation>
+<translation id="3402585168444815892">Tilmelder dig i demotilstand</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Der er ikke gemt nogen adgangskoder til dette website</translation>
 <translation id="3405664148539009465">Tilpas skriftstørrelser</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android-telefon</translation>
 <translation id="3470442499439619530">Fjern denne bruger</translation>
 <translation id="3471876058939596279">Portene til HDMI og USB-C kan ikke bruges til video på samme tid. Brug en anden videoport.</translation>
+<translation id="3473241910002674503">Gå til startsiden, gå tilbage, og skift mellem apps ved hjælp af knapperne i tablettilstand.</translation>
 <translation id="3473479545200714844">Skærmforstørrer</translation>
 <translation id="3475843873335999118">Dit fingeraftryk genkendes stadig ikke. Angiv din adgangskode.</translation>
 <translation id="3476303763173086583">Send brugs- og diagnosticeringsdata. Hjælp med at forbedre dit barns Android-oplevelse ved automatisk at sende diagnosticerings- og enhedsdata samt data om brug af apps til Google. Disse data bruges ikke til at identificere dit barn. De bruges kun til forbedring af bl.a. systemets og appens stabilitet. Visse samlede data hjælper også Google-apps og -partnere, f.eks. Android-udviklere. Denne <ph name="BEGIN_LINK1" />indstilling<ph name="END_LINK1" /> håndhæves af ejeren. Ejeren kan vælge at sende diagnosticerings- og brugsdata for denne enhed til Google. Hvis indstillingen til yderligere web- og appaktivitet er aktiveret for dit barn, gemmes disse data muligvis på barnets Google-konto. <ph name="BEGIN_LINK2" />Få flere oplysninger<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Fingeraftryk på denne sikkerhedsnøgle</translation>
 <translation id="3973660817924297510">Tjekker adgangskoder (<ph name="CHECKED_PASSWORDS" /> af <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Det var ikke muligt at kontakte serveren for domænet</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan ikke tjekke dine adgangskoder. Prøv igen senere.</translation>
 <translation id="3976108569178263973">Der er ingen tilgængelige printere.</translation>
 <translation id="397703832102027365">Afslutter...</translation>
 <translation id="3977886311744775419">Automatiske opdateringer downloades ikke på denne netværkstype, men du kan kigge efter opdateringer manuelt.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Denne side indeholder elementer fra følgende websites, som sporer din placering:</translation>
 <translation id="4068776064906523561">Gemte fingeraftryk</translation>
 <translation id="407173827865827707">Ved klik</translation>
+<translation id="4073520450811433493">Synkronisering af indstillinger</translation>
 <translation id="4074900173531346617">Certifikat til e-mailunderskriver</translation>
 <translation id="407520071244661467">Skaler</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> kunne ikke castes.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Pjuske</translation>
 <translation id="4423376891418188461">Gendan indstillinger</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, din administrator kræver, at du ændrer din adgangskode.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan ikke tjekke dine adgangskoder. Prøv igen efter 24 timer.</translation>
 <translation id="4429030830601238961">Disse data overtræder din organisations sikkerhedspolitikker og kan ikke sættes ind.</translation>
 <translation id="4430019312045809116">Lydstyrke</translation>
 <translation id="4430369329743628066">Bogmærket er tilføjet</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Skal denne app startes automatisk, når du tænder computeren?</translation>
 <translation id="4441147046941420429">Hvis du vil fortsætte, skal du fjerne sikkerhedsnøglen fra din enhed og derefter sætte den i igen og trykke på den</translation>
 <translation id="444134486829715816">Udvid...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan tjekke dine adgangskoder, når du er logget ind med din Google-konto</translation>
 <translation id="4442424173763614572">DNS-opslag mislykkedes</translation>
 <translation id="4443536555189480885">&amp;Hjælp</translation>
 <translation id="4444304522807523469">Få adgang til dokumentscannere, der er forbundet via USB eller det lokale netværk</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Du kan scanne denne kode ved at bruge en app til scanning af QR-koder på din telefon eller visse kameraapps.</translation>
 <translation id="4477015793815781985">Medtag Ctrl, Alt eller ⌘</translation>
 <translation id="4478664379124702289">Gem lin&amp;k som...</translation>
+<translation id="4478777936860197922">Der er ingen gemte adgangskoder. <ph name="IDS_SHORT_PRODUCT_NAME" /> kan tjekke dine adgangskoder, når du gemmer dem.</translation>
 <translation id="4479424953165245642">Administrer kioskapplikationer</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Konfigurerer den virtuelle maskine. Dette kan tage et par minutter.</translation>
 <translation id="4480590691557335796">Chrome kan finde og fjerne skadelig software på din computer</translation>
 <translation id="4481530544597605423">Ikke-parrede enheder</translation>
+<translation id="4488107067273194838">Gennemgå valgmulighederne for synkronisering af browseren efter konfigurationen</translation>
 <translation id="4488502501195719518">Vil du rydde alle data?</translation>
 <translation id="4495419450179050807">Vis ikke på denne side</translation>
 <translation id="4496054781541092778">blokerede automatisk <ph name="PERMISSION" /></translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Installer ikke</translation>
 <translation id="4850669014075537160">Rulning</translation>
 <translation id="4850886885716139402">Vis</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> giver dig besked, når du logger ind med en kompromitteret adgangskode</translation>
 <translation id="4853020600495124913">Åbn i &amp;nyt vindue</translation>
 <translation id="4854317507773910281">Vælg en forældrekonto, der skal godkende</translation>
 <translation id="485480310608090163">Flere indstillinger og tilladelser</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">Pinkoden indeholder ugyldige tegn</translation>
 <translation id="4871370605780490696">Tilføj bogmærke</translation>
 <translation id="4871719318659334896">Luk gruppe</translation>
+<translation id="4871852311166078968">Føj til gruppe</translation>
 <translation id="4873312501243535625">Mediefilkontrol</translation>
 <translation id="4876273079589074638">Hjælp vores softwareudviklere med at undersøge og løse dette nedbrud. Angiv så vidt muligt præcist, hvad du gjorde. Alle detaljer er vigtige.</translation>
 <translation id="4876895919560854374">Låse skærmen/låse skærmen op</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Din administrator har begrænset de tilgængelige indtastningsmetoder.</translation>
 <translation id="4994474651455208930">Tillad, at websites beder om at håndtere protokoller som standard</translation>
 <translation id="4994754230098574403">Konfigurerer</translation>
-<translation id="4996978546172906250">Del via</translation>
 <translation id="4997086284911172121">Der er ingen internetforbindelse.</translation>
 <translation id="4997384734315285248">Afinstaller Plugin VM</translation>
 <translation id="4998430619171209993">Til</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Få adgang til din Google-assistent, når du siger "Ok Google".</translation>
 <translation id="5135533361271311778">Bogmærkeelementet blev ikke oprettet.</translation>
 <translation id="5137501176474113045">Slet dette element</translation>
-<translation id="5138982052046316113">Juster størrelsen på Linux-disken</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> Søgning</translation>
 <translation id="5139823398361067371">Angiv pinkoden til din sikkerhedsnøgle. Hvis du ikke kender pinkoden, skal du nulstille sikkerhedsnøglen.</translation>
 <translation id="5139955368427980650">&amp;Åbn</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Venter på bekræftelse. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Meget stor</translation>
 <translation id="574209121243317957">Toneleje</translation>
+<translation id="5745136023067925867">Få tips, tilbud og opdateringer i forbindelse med <ph name="DEVICE_TYPE" />, og del feedback</translation>
 <translation id="5746169159649715125">Gem som PDF</translation>
 <translation id="5747552184818312860">Udløber</translation>
 <translation id="5747785204778348146">Udvikler – ustabil</translation>
@@ -3932,7 +3944,6 @@
 <translation id="6291953229176937411">&amp;Vis i Finder</translation>
 <translation id="6295158916970320988">Alle websites</translation>
 <translation id="6295855836753816081">Gemmer...</translation>
-<translation id="629730747756840877">Konto</translation>
 <translation id="6298962879096096191">Brug Google Play til at installere Android-apps</translation>
 <translation id="630065524203833229">Af&amp;slut</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> kunne ikke konfigureres automatisk. Angiv avancerede indstillinger for printeren. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation>
@@ -4338,7 +4349,6 @@
 <translation id="6865598234501509159">Siden findes ikke på <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC-hændelseslogfiler (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Farvetemperatur</translation>
-<translation id="6870888490422746447">Vælg en app, du vil dele med:</translation>
 <translation id="6871644448911473373">OCSP-responder: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Den angivne adgangskode blev afvist af serveren.</translation>
 <translation id="6876155724392614295">Cykel</translation>
@@ -4431,6 +4441,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – Aktivitetshistorik</translation>
 <translation id="6997707937646349884">På dine enheder:</translation>
 <translation id="6998793565256476099">Meld enheden til videokonference</translation>
+<translation id="6999956497249459195">Ny gruppe</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> har forbindelse, men skal konfigureres</translation>
 <translation id="7000347579424117903">Skal indeholde Ctrl, Alt eller søgetasten</translation>
 <translation id="7001036685275644873">Sikkerhedskopierer Linux-apps og -filer</translation>
@@ -4729,6 +4740,7 @@
 <translation id="7400418766976504921">Webadresse</translation>
 <translation id="7400839060291901923">Konfigurer en forbindelse på din <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Luk denne meddelelse</translation>
+<translation id="7403642243184989645">Downloader ressourcer</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Sikkerhedstjekket blev udført for 1 time siden}one{Sikkerhedstjekket blev udført for {NUM_HOURS} time siden}other{Sikkerhedstjekket blev udført for {NUM_HOURS} timer siden}}</translation>
 <translation id="740624631517654988">Pop op-vindue blokeret</translation>
 <translation id="7407430846095439694">Importér, og tilknyt</translation>
@@ -4965,6 +4977,7 @@
 <translation id="7716781361494605745">Webadresse for Netscapes politik til certifikatautoritet</translation>
 <translation id="7717014941119698257">Downloader: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Søg efter opdateringer</translation>
+<translation id="7719070594859855691">Giv adgang til kameraet</translation>
 <translation id="7719367874908701697">Sidezoom</translation>
 <translation id="7721179060400456005">Tillad, at vinduer kan dække flere skærme</translation>
 <translation id="7722040605881499779">Opdateringen kræver: <ph name="NECESSARY_SPACE" /></translation>
@@ -4979,7 +4992,6 @@
 <translation id="7744047395460924128">Se din udskrivningshistorik</translation>
 <translation id="7744192722284567281">Blev fundet i et brud på datasikkerheden</translation>
 <translation id="7750228210027921155">Integreret billede</translation>
-<translation id="7751229152614300329">Beskyttet browsing er opdateret og beskytter dig mod skadelige websites og downloads</translation>
 <translation id="7751260505918304024">Vis alle</translation>
 <translation id="7754704193130578113">Spørg, hvor hver enkelt fil skal gemmes, inden download begynder</translation>
 <translation id="7755287808199759310">Din forælder kan fjerne blokeringen for dig</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Bemærk!<ph name="END_BOLD" />  Systemet genstarter under processen.</translation>
 <translation id="7828731929332799387">Dette sletter alle cookies og websitedata, der er tilgængelig i tredjepartssammenhænge. Vil du fortsætte?</translation>
 <translation id="7829298379596169484">Åbner lydinput</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan ikke tjekke dine adgangskoder. Prøv at tjekke din internetforbindelse.</translation>
 <translation id="7829877209233347340">Bed din forælder om at logge ind og give tilladelse til, at skolekontoen tilføjes</translation>
 <translation id="7830594666202422257">Opret forbindelse til Linux</translation>
 <translation id="7831491651892296503">Der opstod en fejl under konfigurationen af netværket</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Google Play Butik installeres på din <ph name="DEVICE_TYPE" />. Det kan tage nogle minutter.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Ingen tredjepartscookies}=1{1 tredjepartscookie er blokeret}one{# tredjepartscookie er blokeret}other{# tredjepartscookies er blokeret}}</translation>
 <translation id="810875025413331850">Der blev ikke fundet nogen enheder i nærheden.</translation>
+<translation id="8114199541033039755">Gå til startsiden, gå tilbage, og skift mellem apps ved hjælp af knapperne i tablettilstand. Aktiveret, når ChromeVox eller automatiske klik er aktiveret.</translation>
 <translation id="8114875720387900039">Opdel vandret</translation>
 <translation id="8116972784401310538">&amp;Bogmærkeadministrator</translation>
 <translation id="8117620576188476503">Administrer forbindelser, opdateringer og indstillinger med statusbakken. Du kan også bruge tastaturet ved at trykke på Alt+Shift+S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> har deaktiveret din musemarkør.</translation>
 <translation id="8264024885325823677">Denne indstilling administreres af din administrator.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> har aktiveret fuld skærm.</translation>
+<translation id="826511437356419340">Tilstanden for vinduesoversigt blev åbnet. Stryg for at navigere, eller tryk på Tab-tasten, hvis du bruger et tastatur.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Dette er generelle oplysninger om din enhed og brugen af den (f.eks. batteriniveau, system- og appaktivitet og fejl). Dataene bruges til at forbedre Android, og visse samlede oplysninger kan også hjælpe Google-apps og -partnere som f.eks. Android-udviklere med at forbedre deres apps og produkter.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Hvis denne funktion deaktiveres, påvirker det ikke enhedens evne til at sende de oplysninger, den har brug for i forbindelse med vigtige tjenester som f.eks. systemopdateringer og sikkerhedsfunktioner.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />TEjeren kan styre funktionen under Indstillinger &gt; Avanceret &gt; Send automatisk diagnostik og brugsdata til Google.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Aktiverer</translation>
 <translation id="8427292751741042100">indlejret på hvilken som helst host</translation>
 <translation id="8428213095426709021">Indstillinger</translation>
+<translation id="8428271547607112339">Tilføj skolekonto</translation>
 <translation id="8428628598981198790">Din sikkerhedsnøgle kan ikke bruges på dette website</translation>
 <translation id="84297032718407999">Du logges ud om <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Vis tryk</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Tillad altid, at <ph name="HOST" /> viser billeder</translation>
 <translation id="8513108775083588393">Roter automatisk</translation>
 <translation id="8514746246728959655">Prøv med en anden sikkerhedsnøgle</translation>
+<translation id="851960115758509829">Dine apps, indstillinger og andre tilpasninger synkroniseres på alle Chrome OS-enheder, hvor du er logget ind med din Google-konto.</translation>
 <translation id="8521475323816527629">Gå hurtigt til dine apps</translation>
 <translation id="8523493869875972733">Behold ændringerne</translation>
 <translation id="8523849605371521713">Tilføjet af politik</translation>
@@ -5860,11 +5877,13 @@
 <translation id="885701979325669005">Lagerplads</translation>
 <translation id="8859057652521303089">Vælg dit sprog:</translation>
 <translation id="8859174528519900719">Underramme: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Forældrekonto</translation>
 <translation id="8862003515646449717">Skift til en hurtig browser</translation>
 <translation id="8863753581171631212">Åbn linket i et nyt <ph name="APP" />-vindue</translation>
 <translation id="8864055848767439877">Deler <ph name="TAB_NAME" /> med <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> blev fjernet fra denne enhed</translation>
 <translation id="8867228703146808825">Kopiér buildoplysninger til udklipsholder</translation>
+<translation id="8868333925931032127">Starter demotilstand</translation>
 <translation id="8868626022555786497">I brug</translation>
 <translation id="8870413625673593573">Senest lukkede</translation>
 <translation id="8871551568777368300">Fastgjort af administratoren</translation>
@@ -5943,6 +5962,7 @@
 <translation id="8966870118594285808">Åbn en fane igen, hvis du lukkede den ved et uheld</translation>
 <translation id="8967866634928501045">Tryk på Alt+Shift+A for at vise</translation>
 <translation id="8968766641738584599">Gem kort</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan ikke tjekke dine adgangskoder. Prøv igen efter 24 timer, eller <ph name="BEGIN_LINK" />tjek adgangskoder på din Google-konto<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Kontakt din netværksadministrator for at sikre, at firewallen ikke blokerer downloads fra Google-servere.</translation>
 <translation id="8973557916016709913">Fjern zoomniveau</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 6bc1f00..72bda9a 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -414,7 +414,6 @@
 <translation id="1566049601598938765">Website</translation>
 <translation id="15662109988763471">Der ausgewählte Drucker ist entweder nicht verfügbar oder nicht ordnungsgemäß installiert. Überprüfen Sie den Drucker oder wählen Sie einen anderen Drucker aus.</translation>
 <translation id="1567387640189251553">Seit der letzten Eingabe Ihres Passwortes wurde eine andere Tastatur angeschlossen. Möglicherweise versucht jemand, darüber Ihre Tastatureingaben zu erfassen.</translation>
-<translation id="1567750922576943685">Wenn Ihre Identität überprüft werden kann, hilft dies, Ihre personenbezogenen Daten zu schützen</translation>
 <translation id="1567993339577891801">JavaScript-Konsole</translation>
 <translation id="1568323446248056064">Einstellungen für Anzeigegerät öffnen</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Gast)</translation>
@@ -516,7 +515,6 @@
 <translation id="1697150536837697295">Kunst</translation>
 <translation id="1697686431566694143">Datei bearbeiten</translation>
 <translation id="1698122934742150150">Nur aktuelle Inkognitositzung</translation>
-<translation id="1698650002254827833">Die App-Liste kann nicht geladen werden. Bitte versuchen Sie es noch einmal.</translation>
 <translation id="1700079447639026019">Websites, die nie Cookies verwenden dürfen</translation>
 <translation id="1701062906490865540">Diese Person entfernen</translation>
 <translation id="1703331064825191675">Sie müssen sich keine Sorgen mehr um Ihre Passwörter machen</translation>
@@ -1077,7 +1075,6 @@
 <translation id="2442916515643169563">Textschatten</translation>
 <translation id="2445081178310039857">Stammverzeichnis der Erweiterung ist erforderlich.</translation>
 <translation id="2445484935443597917">Neues Profil erstellen</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> möchte Ihre Identität überprüfen</translation>
 <translation id="2448312741937722512">Art</translation>
 <translation id="2450223707519584812">Sie können keine Nutzer hinzufügen, da Google API-Schlüssel fehlen. Weitere Informationen erhalten Sie unter <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Keine aktiven Ansichten</translation>
@@ -1681,7 +1678,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Gerät innerhalb eines Tages neu starten}other{Gerät innerhalb von # Tagen neu starten}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – Netzwerkfehler</translation>
 <translation id="3248902735035392926">Sicherheit ist wichtig. Nehmen Sie sich einen Moment Zeit, um Ihre <ph name="BEGIN_LINK" />Erweiterungen zu prüfen<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Gehört nicht zum Zertifikat&gt;</translation>
 <translation id="3253225298092156258">Nicht verfügbar</translation>
 <translation id="3253448572569133955">Unbekanntes Konto</translation>
@@ -2224,7 +2220,7 @@
 <translation id="3927787410750478258">Dieses Gerät (<ph name="DEVICE_TYPE" />) wird von <ph name="DOMAIN" /> verwaltet.</translation>
 <translation id="3927932062596804919">Ablehnen</translation>
 <translation id="3928570707778085600">Änderungen an "<ph name="FILE_OR_FOLDER_NAME" />" speichern?</translation>
-<translation id="3929426037718431833">Diese Erweiterungen können Daten dieser Website aufrufen und ändern.</translation>
+<translation id="3929426037718431833">Diese Erweiterungen können Daten dieser Website abrufen und verändern.</translation>
 <translation id="3930155420525972941">Gruppe in ein neues Fenster verschieben</translation>
 <translation id="3930737994424905957">Suche nach Geräten läuft</translation>
 <translation id="3930968231047618417">Hintergrundfarbe</translation>
@@ -2317,7 +2313,7 @@
 <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Seite verlassen}other{Seiten verlassen}}</translation>
 <translation id="4044612648082411741">Sie müssen Ihr Zertifikatspasswort eingeben</translation>
 <translation id="404493185430269859">Standardsuchmaschine</translation>
-<translation id="4046013316139505482">Diese Erweiterungen müssen Daten dieser Website nicht aufrufen und ändern.</translation>
+<translation id="4046013316139505482">Diese Erweiterungen funktionieren, ohne Daten dieser Website abzurufen oder zu verändern.</translation>
 <translation id="4046123991198612571">Nächster Titel</translation>
 <translation id="4047726037116394521">Zur Startseite</translation>
 <translation id="4050225813016893843">Authentifizierungsmethode</translation>
@@ -2963,7 +2959,6 @@
 <translation id="4992473555164495036">Ihr Administrator hat die verfügbaren Eingabemethoden eingeschränkt.</translation>
 <translation id="4994474651455208930">Registrierung von Websites als Standard-Handler für Protokolle zulassen</translation>
 <translation id="4994754230098574403">Wird eingerichtet</translation>
-<translation id="4996978546172906250">Teilen über</translation>
 <translation id="4997086284911172121">Keine Internetverbindung.</translation>
 <translation id="4997384734315285248">Plugin VM deinstallieren</translation>
 <translation id="4998430619171209993">An</translation>
@@ -3063,7 +3058,6 @@
 <translation id="5135085122826131075">Mit "Ok Google" können Sie auf Ihren Assistant zugreifen.</translation>
 <translation id="5135533361271311778">Lesezeichenelement konnte nicht erstellt werden.</translation>
 <translation id="5137501176474113045">Diesen Eintrag löschen</translation>
-<translation id="5138982052046316113">Größe des Linux-Laufwerks anpassen</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" />-Suche</translation>
 <translation id="5139823398361067371">Geben Sie die PIN für Ihren Sicherheitsschlüssel ein. Falls Sie sie nicht kennen, müssen Sie den Sicherheitsschlüssel zurücksetzen.</translation>
 <translation id="5139955368427980650">Ö&amp;ffnen</translation>
@@ -3927,7 +3921,6 @@
 <translation id="6291953229176937411">Im Finder &amp;zeigen</translation>
 <translation id="6295158916970320988">Alle Websites</translation>
 <translation id="6295855836753816081">Wird gespeichert...</translation>
-<translation id="629730747756840877">Konto</translation>
 <translation id="6298962879096096191">Google Play verwenden, um Android-Apps zu installieren</translation>
 <translation id="630065524203833229">&amp;Beenden</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> konnte nicht automatisch konfiguriert werden. Bitte legen Sie erweiterte Einstellungen für den Drucker fest. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation>
@@ -4333,7 +4326,6 @@
 <translation id="6865598234501509159">Diese Seite ist nicht auf <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC-Ereignisprotokolle (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Farbtemperatur</translation>
-<translation id="6870888490422746447">App wählen, um sie zu teilen über:</translation>
 <translation id="6871644448911473373">OCSP-Antwortdienst: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Das eingegebene Passwort wurde vom Server zurückgewiesen.</translation>
 <translation id="6876155724392614295">Fahrrad</translation>
@@ -4974,7 +4966,6 @@
 <translation id="7744047395460924128">Druckverlauf anzeigen</translation>
 <translation id="7744192722284567281">Bei Datenpanne entdeckt</translation>
 <translation id="7750228210027921155">Bild-in-Bild</translation>
-<translation id="7751229152614300329">Safe Browsing ist auf dem neuesten Stand und schützt Sie gegen schädliche Websites und Downloads</translation>
 <translation id="7751260505918304024">Alle anzeigen</translation>
 <translation id="7754704193130578113">Vor dem Download von Dateien nach dem Speicherort fragen</translation>
 <translation id="7755287808199759310">Deine Eltern können die Blockierung aufheben</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index 39d73dda..32e2bbb2 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Διαθέσιμες συσκευές</translation>
 <translation id="1042174272890264476">Ο υπολογιστής σας κυκλοφορεί και με ενσωματωμένη τη βιβλιοθήκη RLZ του <ph name="SHORT_PRODUCT_NAME" />. Το RLZ εκχωρεί μια μη μοναδική ετικέτα μη προσωπικής ταυτοποίησης για τη μέτρηση των αναζητήσεων και της χρήσης του <ph name="SHORT_PRODUCT_NAME" /> που προκύπτει από μια συγκεκριμένη καμπάνια προώθησης. Αυτές οι ετικέτες εμφανίζονται μερικές φορές σε ερωτήματα στην Αναζήτηση Google στο <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Διαγραφή δεδομένων από αυτές τις εφαρμογές επίσης;</translation>
+<translation id="1045448422538531528">Προσθήκη στην ομάδα</translation>
 <translation id="1046635659603195359">Φαίνεται πως έχετε ήδη ρυθμίσει το Voice Match με τον Βοηθό σας Google σε κάποια άλλη συσκευή. Αυτές οι προηγούμενες ηχογραφήσεις μπορούν να χρησιμοποιηθούν για τη δημιουργία ενός φωνητικού μοντέλου σε αυτήν τη συσκευή. Η διαδικασία αναμένεται να διαρκέσει λιγότερο από ένα λεπτό.</translation>
 <translation id="104710386808485638">Επανεκκίνηση του Linux;</translation>
 <translation id="1047431265488717055">Αντιγραφή κε&amp;ιμένου συνδέσμου</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Να μην επιτρέπεται ποτέ η πρόσβαση στην κάμερα</translation>
 <translation id="1082398631555931481">Το <ph name="THIRD_PARTY_TOOL_NAME" /> θέλει να επαναφέρει τις ρυθμίσεις του Chrome στις αρχικές προεπιλογές. Αυτό θα επαναφέρει την αρχική σελίδα σας, τη σελίδα νέας καρτέλας και τη μηχανή αναζήτησης, θα απενεργοποιήσει τις επεκτάσεις σας και θα ξεκαρφιτσώσει όλες τις καρτέλες. Επίσης, θα εκκαθαρίσει προσωρινά δεδομένα και τα δεδομένα που αποθηκεύτηκαν στην προσωρινή μνήμη, όπως cookie, περιεχόμενο και δεδομένα ιστοτόπων.</translation>
+<translation id="1084096383128641877">Η κατάργηση αυτού του κωδικού πρόσβασης δεν θα διαγράψει τον λογαριασμό σας σε <ph name="DOMAIN" />. Αλλάξτε τον κωδικό πρόσβασης ή διαγράψτε τον λογαριασμό σας σε <ph name="DOMAIN_LINK" /> για να τον διατηρήσετε ασφαλή.</translation>
 <translation id="1084824384139382525">Αντιγραφή διεύθυνσης &amp;συνδέσμου</translation>
 <translation id="1085697365578766383">Σφάλμα έναρξης του εικονικού μηχανήματος. Προσπαθήστε ξανά.</translation>
 <translation id="1090126737595388931">Δεν εκτελούνται εφαρμογές φόντου</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Ο έλεγχος ασφαλείας εκτελέστηκε χθες.</translation>
 <translation id="1260451001046713751">Να εμφανίζονται πάντα αναδυόμενα παράθυρα από <ph name="HOST" /></translation>
 <translation id="126156426083987769">Παρουσιάστηκε ένα πρόβλημα με τις άδειες των συσκευών λειτουργίας επίδειξης.</translation>
+<translation id="1263490604593716556">Η διαχείριση του λογαριασμού γίνεται από <ph name="FIRST_PARENT_EMAIL" /> και <ph name="SECOND_PARENT_EMAIL" />. Για να αποσυνδεθείτε από τον κύριο λογαριασμό σε αυτήν τη συσκευή, κάντε κλικ στην ώρα που εμφανίζεται στην οθόνη. Στο μενού που θα εμφανιστεί, κάντε κλικ στην επιλογή Αποσύνδεση.</translation>
 <translation id="126710816202626562">Γλώσσα μετάφρασης:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Διακοπή</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Ιστότοπος</translation>
 <translation id="15662109988763471">Ο επιλεγμένος εκτυπωτής δεν είναι διαθέσιμος ή δεν έχει εγκατασταθεί σωστά. Ελέγξτε τον εκτυπωτή σας ή δοκιμάστε να επιλέξετε άλλον εκτυπωτή.</translation>
 <translation id="1567387640189251553">Συνδέθηκε διαφορετικό πληκτρολόγιο από την τελευταία φορά που εισαγάγατε τον κωδικό πρόσβασής σας. Μπορεί να επιχειρεί να υποκλέψει τα πατήματα πλήκτρων σας.</translation>
-<translation id="1567750922576943685">Η επαλήθευση της ταυτότητάς σας συμβάλλει στην προστασία των προσωπικών στοιχείων σας</translation>
 <translation id="1567993339577891801">Κονσόλα JavaScript</translation>
 <translation id="1568323446248056064">Άνοιγμα των ρυθμίσεων οθόνης της συσκευής</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Επισκέπτης)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Art</translation>
 <translation id="1697686431566694143">Επεξεργασία αρχείου</translation>
 <translation id="1698122934742150150">Μόνο για την τρέχουσα περίοδο λειτουργίας σε κατάσταση ανώνυμης περιήγησης</translation>
-<translation id="1698650002254827833">Δεν είναι δυνατή η φόρτωση της λίστας εφαρμογών. Δοκιμάστε ξανά.</translation>
 <translation id="1700079447639026019">Ιστότοποι που δεν μπορούν να χρησιμοποιούν ποτέ cookie</translation>
 <translation id="1701062906490865540">Κατάργηση αυτού του ατόμου</translation>
 <translation id="1703331064825191675">Δεν χρειάζεται να ανησυχείτε πλέον για τους κωδικούς πρόσβασής σας</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Συνέχεια</translation>
 <translation id="2173302385160625112">Ελέγξτε τη σύνδεσή σας στο διαδίκτυο</translation>
 <translation id="2173801458090845390">Προσθήκη αναγνωριστικού επίταξης σε αυτήν τη συσκευή</translation>
+<translation id="2174948148799307353">Η διαχείριση του λογαριασμού γίνεται από τον χρήστη <ph name="PARENT_EMAIL" /> Για να αποσυνδεθείτε από τον κύριο λογαριασμό σε αυτήν τη συσκευή, κάντε κλικ στην ώρα που εμφανίζεται στην οθόνη. Στο μενού που θα εμφανιστεί, κάντε κλικ στην επιλογή Αποσύνδεση.</translation>
 <translation id="2175607476662778685">Γραμμή γρήγορης εκκίνησης</translation>
 <translation id="217576141146192373">Δεν είναι δυνατή η προσθήκη εκτυπωτή. Ελέγξτε τη διαμόρφωση του εκτυπωτή σας και δοκιμάστε ξανά.</translation>
 <translation id="2177950615300672361">Καρτέλα ανώνυμης περιήγησης: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Σκίαση κειμένου</translation>
 <translation id="2445081178310039857">Απαιτείται ο κατάλογος ρίζας επέκτασης.</translation>
 <translation id="2445484935443597917">Δημιουργία νέου προφίλ</translation>
-<translation id="2446585455334014596">Η εφαρμογή <ph name="APP_NAME" /> θέλει να επαληθεύσει την ταυτότητά σας</translation>
 <translation id="2448312741937722512">Τύπος</translation>
 <translation id="2450223707519584812">Δεν θα μπορείτε να προσθέσετε χρήστες, επειδή απουσιάζουν τα κλειδιά του Google API. Για λεπτομέρειες, ανατρέξτε στη διεύθυνση <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Δεν υπάρχουν ενεργές προβολές</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Μετάβαση στη σελίδα <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Ένα γρήγορο, απλό και ασφαλές πρόγραμμα περιήγησης ιστού, το οποίο δημιουργήθηκε για τον σύγχρονο ιστό.</translation>
 <translation id="2949289451367477459">Χρήση της τοποθεσίας. Επιτρέψτε στις εφαρμογές και στις υπηρεσίες που έχουν άδεια χρήσης τοποθεσίας να χρησιμοποιούν την τοποθεσία αυτής της συσκευής. Η Google μπορεί να συλλέγει περιοδικά δεδομένα τοποθεσίας και να τα χρησιμοποιεί ανώνυμα, προκειμένου να βελτιώσει την ακρίβεια της τοποθεσίας και των υπηρεσιών που βασίζονται στην τοποθεσία. <ph name="BEGIN_LINK1" />Μάθετε περισσότερα<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Επιθυμώ να εγγραφώ</translation>
 <translation id="2956070239128776395">Η ενότητα είναι ενσωματωμένη στην ομάδα: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Να μην επιτρέπεται σε κανέναν ιστότοπο να επεξεργάζεται αρχεία ή φακέλους στη συσκευή σας</translation>
 <translation id="2958721676848865875">Προειδοποίηση στοίβαξης επέκτασης</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Προεπιλεγμένο κίτρινο avatar</translation>
 <translation id="3141318088920353606">Ακρόαση…</translation>
 <translation id="3141917231319778873">Το συγκεκριμένο αίτημα δεν υποστηρίζεται στη συσκευή: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Νέα ομάδα</translation>
 <translation id="3143515551205905069">Ακύρωση συγχρονισμού</translation>
 <translation id="3143754809889689516">Αναπαραγωγή από την αρχή</translation>
 <translation id="3144647712221361880">Άνοιγμα συνδέσμου ως</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Μπεζ</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (βασιζόμενο σε υλικό)</translation>
 <translation id="3161522574479303604">Όλες οι γλώσσες</translation>
+<translation id="3162853326462195145">Σχολικός λογαριασμός</translation>
 <translation id="3162899666601560689">Οι ιστότοποι μπορούν να χρησιμοποιούν cookie για να βελτιώσουν την εμπειρία περιήγησής σας, για παράδειγμα, για να παραμείνετε συνδεδεμένοι ή να διατηρηθούν τα προϊόντα στο καλάθι αγορών σας.</translation>
 <translation id="3163201441334626963">Άγνωστο προϊόν <ph name="PRODUCT_ID" /> από τον πάροχο υπηρεσιών <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Κοινοποίηση αυτής της καρτέλας σε <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Ενημέρωση συσκευής εντός μίας ημέρας}other{Ενημέρωση συσκευής εντός # ημερών}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Σφάλμα δικτύου</translation>
 <translation id="3248902735035392926">Η ασφάλεια μετράει. Αφιερώστε ένα λεπτό για να <ph name="BEGIN_LINK" />ελέγξετε τις επεκτάσεις σας τώρα<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Δεν είναι μέρος πιστοποιητικού&gt;</translation>
 <translation id="3253225298092156258">Μη διαθέσιμο</translation>
 <translation id="3253448572569133955">Άγνωστος λογαριασμός</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Εάν κάνετε κλικ στο κουμπί "Αποδοχή και συνέχεια", αποδέχεστε την επεξεργασία που περιγράφεται παραπάνω για αυτές τις υπηρεσίες Google.</translation>
 <translation id="3399432415385675819">Οι ειδοποιήσεις θα απενεργοποιηθούν</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - περιπλεγμένη</translation>
+<translation id="3402585168444815892">Εγγραφή στη λειτουργία επίδειξης</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Δεν υπάρχουν αποθηκευμένοι κωδικοί πρόσβασης για αυτόν τον ιστότοπο</translation>
 <translation id="3405664148539009465">Προσαρμογή γραμματοσειρών</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Τηλέφωνο Android</translation>
 <translation id="3470442499439619530">Κατάργηση αυτού του χρήστη</translation>
 <translation id="3471876058939596279">Οι θύρες HDMI και USB τύπου C δεν μπορούν να χρησιμοποιηθούν ταυτόχρονα για βίντεο. Χρησιμοποιήστε μια διαφορετική θύρα βίντεο.</translation>
+<translation id="3473241910002674503">Πλοήγηση στην αρχική οθόνη, μετάβαση πίσω και εναλλαγή εφαρμογών με τα κουμπιά σε λειτουργία tablet.</translation>
 <translation id="3473479545200714844">Μεγεθυντής οθόνης</translation>
 <translation id="3475843873335999118">Δυστυχώς, το δακτυλικό σας αποτύπωμα εξακολουθεί να μην αναγνωρίζεται. Πληκτρολογήστε τον κωδικό πρόσβασής σας.</translation>
 <translation id="3476303763173086583">Αποστολή δεδομένων χρήσης και διαγνωστικών. Συμβάλλετε στη βελτίωση της εμπειρίας Android του παιδιού σας με την αυτόματη αποστολή διαγνωστικών δεδομένων και δεδομένων συσκευής και χρήσης εφαρμογών στην Google. Αυτά τα δεδομένα δεν θα χρησιμοποιηθούν για την ταυτοποίηση του παιδιού σας και θα βοηθήσουν με τη σταθερότητα του συστήματος και των εφαρμογών και την παροχή άλλων βελτιώσεων. Ορισμένα συγκεντρωτικά δεδομένα θα βοηθήσουν επίσης τις εφαρμογές και τους συνεργάτες της Google, όπως τους προγραμματιστές Android. Αυτή η <ph name="BEGIN_LINK1" />ρύθμιση<ph name="END_LINK1" /> επιβάλλεται από τον κάτοχο. Ο κάτοχος μπορεί να επιλέξει να στέλνει διαγνωστικά δεδομένα και δεδομένα χρήσης για αυτήν τη συσκευή στην Google. Εάν είναι ενεργή η ρύθμιση της πρόσθετης Δραστηριότητας ιστού και εφαρμογών για το παιδί σας, αυτά τα δεδομένα μπορεί να αποθηκευτούν στον Λογαριασμό του Google. <ph name="BEGIN_LINK2" />Μάθετε περισσότερα<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Δακτυλικά αποτυπώματα σε αυτό το κλειδί ασφαλείας</translation>
 <translation id="3973660817924297510">Γίνεται έλεγχος κωδικών πρόσβασης (<ph name="CHECKED_PASSWORDS" /> από <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Η επικοινωνία με τον διακομιστή για realm απέτυχε</translation>
+<translation id="3975884715086515476">Το <ph name="IDS_SHORT_PRODUCT_NAME" /> δεν μπορεί να ελέγξει τους κωδικούς πρόσβασής σας. Δοκιμάστε αργότερα.</translation>
 <translation id="3976108569178263973">Δεν υπάρχουν διαθέσιμοι εκτυπωτές.</translation>
 <translation id="397703832102027365">Ολοκλήρωση…</translation>
 <translation id="3977886311744775419">Δεν πραγματοποιείται λήψη αυτόματων ενημερώσεων σε αυτόν τον τύπο δικτύου, αλλά μπορείτε να ελέγξετε για ενημερώσεις με μη αυτόματο τρόπο.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Η σελίδα περιέχει στοιχεία από τους ακόλουθους ιστότοπους που παρακολουθούν τη θέση σας:</translation>
 <translation id="4068776064906523561">Αποθηκευμένα δακτυλικά αποτυπώματα</translation>
 <translation id="407173827865827707">Όταν κάνετε κλικ</translation>
+<translation id="4073520450811433493">Συγχρονισμός ρυθμίσεων</translation>
 <translation id="4074900173531346617">Πιστοποιητικό υπηρεσίας υπογραφής ηλεκτρονικού ταχυδρομείου</translation>
 <translation id="407520071244661467">Κλίμακα</translation>
 <translation id="4075639477629295004">Δεν είναι δυνατή η μετάδοση του αρχείου <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Χνουδωτός</translation>
 <translation id="4423376891418188461">Επαναφορά ρυθμίσεων</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, ο διαχειριστής σας απαιτεί να αλλάξετε τον κωδικό πρόσβασης.</translation>
+<translation id="4426209360861763174">Το <ph name="IDS_SHORT_PRODUCT_NAME" /> δεν μπορεί να ελέγξει τους κωδικούς πρόσβασής σας. Δοκιμάστε ξανά σε 24 ώρες.</translation>
 <translation id="4429030830601238961">Αυτά τα δεδομένα παραβαίνουν τις πολιτικές ασφάλειας του οργανισμού σας και η επικόλλησή τους δεν είναι δυνατή.</translation>
 <translation id="4430019312045809116">Ένταση</translation>
 <translation id="4430369329743628066">Προστέθηκε σελιδοδείκτης</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Θέλετε να ξεκινά αυτόματα αυτή η εφαρμογή όταν η συσκευή τίθεται σε λειτουργία;</translation>
 <translation id="4441147046941420429">Για να συνεχίσετε, αφαιρέστε το κλειδί ασφαλείας από τη συσκευή σας, τοποθετήστε το ξανά και αγγίξτε το</translation>
 <translation id="444134486829715816">Ανάπτυξη...</translation>
+<translation id="4442329324652245220">Το <ph name="IDS_SHORT_PRODUCT_NAME" /> μπορεί να ελέγξει τους κωδικούς πρόσβασής σας όταν συνδέεστε με τον Λογαριασμό σας Google.</translation>
 <translation id="4442424173763614572">Η αναζήτηση DNS απέτυχε</translation>
 <translation id="4443536555189480885">&amp;Βοήθεια</translation>
 <translation id="4444304522807523469">Πρόσβαση στους σαρωτές εγγράφων που προσαρτώνται μέσω USB ή σε κάποιο τοπικό δίκτυο</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Για να σαρώσετε αυτόν τον κωδικό, μπορείτε να χρησιμοποιήσετε μια εφαρμογή σαρωτή QR στο τηλέφωνό σας ή ορισμένες εφαρμογές κάμερας.</translation>
 <translation id="4477015793815781985">Συμπεριλάβετε το Ctrl, το Alt ή το ⌘</translation>
 <translation id="4478664379124702289">Αποθήκευση Συν&amp;δέσμου Ως...</translation>
+<translation id="4478777936860197922">Δεν υπάρχουν αποθηκευμένοι κωδικοί πρόσβασης. Το <ph name="IDS_SHORT_PRODUCT_NAME" /> μπορεί να ελέγξει τους κωδικούς πρόσβασής σας όταν τους αποθηκεύσετε.</translation>
 <translation id="4479424953165245642">Διαχειριστείτε τις εφαρμογές kiosk</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Διαμόρφωση της εικονικής μηχανής. Ενδέχεται να χρειαστούν μερικά λεπτά.</translation>
 <translation id="4480590691557335796">Το Chrome μπορεί να εντοπίσει και να καταργήσει επιβλαβές λογισμικό από τον υπολογιστή σας</translation>
 <translation id="4481530544597605423">Συσκευές στις οποίες διακόπηκε η σύζευξη</translation>
+<translation id="4488107067273194838">Έλεγχος επιλογών συγχρονισμού προγράμματος περιήγησης μετά τη ρύθμιση</translation>
 <translation id="4488502501195719518">Διαγραφή όλων των δεδομένων;</translation>
 <translation id="4495419450179050807">Να μην γίνεται εμφάνιση σε αυτήν τη σελίδα</translation>
 <translation id="4496054781541092778">απέκλεισε αυτόματα την άδεια <ph name="PERMISSION" /></translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Να μην γίνει εγκατάσταση</translation>
 <translation id="4850669014075537160">Κύλιση</translation>
 <translation id="4850886885716139402">Προβολή</translation>
+<translation id="485197095346966382">Το <ph name="IDS_SHORT_PRODUCT_NAME" /> θα σας ειδοποιήσει όταν συνδεθείτε με έναν παραβιασμένο κωδικό πρόσβαση.</translation>
 <translation id="4853020600495124913">Άνοιγμα σε &amp;νέο παράθυρο</translation>
 <translation id="4854317507773910281">Επιλογή λογαριασμού γονέα για έγκριση</translation>
 <translation id="485480310608090163">Περισσότερες ρυθμίσεις και άδειες</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">Το PIN περιέχει μη έγκυρους χαρακτήρες</translation>
 <translation id="4871370605780490696">Προσθήκη σελιδοδείκτη</translation>
 <translation id="4871719318659334896">Κλείσιμο ομάδας</translation>
+<translation id="4871852311166078968">Προσθήκη στην ομάδα</translation>
 <translation id="4873312501243535625">Εργαλείο ελέγχου αρχείων πολυμέσων</translation>
 <translation id="4876273079589074638">Βοηθήστε τους τεχνικούς μας να ερευνήσουν και να διορθώσουν αυτό το σφάλμα. Παραθέστε με ακρίβεια τα βήματα που ακολουθήσατε, αν αυτό είναι δυνατόν. Όλες οι λεπτομέρειες είναι σημαντικές!</translation>
 <translation id="4876895919560854374">Κλείδωμα και ξεκλείδωμα της οθόνης</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Ο διαχειριστής σας περιόρισε τις διαθέσιμες μεθόδους εισαγωγής.</translation>
 <translation id="4994474651455208930">Να επιτρέπεται σε ιστότοπους να ζητούν να γίνονται προεπιλεγμένα προγράμματα χειρισμού για πρωτόκολλα</translation>
 <translation id="4994754230098574403">Γίνεται ρύθμιση</translation>
-<translation id="4996978546172906250">Μοιραστείτε μέσω</translation>
 <translation id="4997086284911172121">Δεν υπάρχει σύνδεση στο διαδίκτυο.</translation>
 <translation id="4997384734315285248">Απεγκατάσταση Plugin VM</translation>
 <translation id="4998430619171209993">Ενεργό</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Αποκτήστε πρόσβαση στον Βοηθό σας όταν λέτε Ok Google.</translation>
 <translation id="5135533361271311778">Δεν ήταν δυνατή η δημιουργία αντικειμένου σελιδοδείκτη.</translation>
 <translation id="5137501176474113045">Διαγραφή αυτού του στοιχείο</translation>
-<translation id="5138982052046316113">Αλλαγή μεγέθους δίσκου Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, Αναζήτηση <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Εισαγάγετε το PIN για το κλειδί ασφαλείας σας. Εάν δεν γνωρίζετε το PIN, θα χρειαστεί να επαναφέρετε το κλειδί ασφαλείας σας.</translation>
 <translation id="5139955368427980650">Άν&amp;οιγμα</translation>
@@ -3520,6 +3531,7 @@
 <translation id="5739235828260127894">Αναμονή για επαλήθευση. <ph name="LINK_BEGIN" />Μάθετε περισσότερα<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Πολύ μεγάλο</translation>
 <translation id="574209121243317957">Τόνος</translation>
+<translation id="5745136023067925867">Λάβετε συμβουλές, προσφορές και ενημερώσεις και μοιραστείτε τα σχόλιά σας σχετικά με τη συσκευή <ph name="DEVICE_TYPE" />.</translation>
 <translation id="5746169159649715125">Αποθήκευση ως PDF</translation>
 <translation id="5747552184818312860">Λήγει</translation>
 <translation id="5747785204778348146">Προγραμματιστής - ασταθές</translation>
@@ -3932,7 +3944,6 @@
 <translation id="6291953229176937411">&amp;Εμφάνιση στο Finder</translation>
 <translation id="6295158916970320988">Όλοι οι ιστότοποι</translation>
 <translation id="6295855836753816081">Αποθήκευση…</translation>
-<translation id="629730747756840877">Λογαριασμός</translation>
 <translation id="6298962879096096191">Χρησιμοποιήστε το Google Play για την εγκατάσταση εφαρμογών Android</translation>
 <translation id="630065524203833229">Έ&amp;ξοδος</translation>
 <translation id="6300718114348072351">Δεν ήταν δυνατή η αυτόματη διαμόρφωση του <ph name="PRINTER_NAME" />. Ορίστε σύνθετες λεπτομέρειες εκτυπωτή. <ph name="LINK_BEGIN" />Μάθετε περισσότερα<ph name="LINK_END" /></translation>
@@ -4338,7 +4349,6 @@
 <translation id="6865598234501509159">Η σελίδα δεν είναι στα <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Αρχεία καταγραφής συμβάντων WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Θερμοκρασία χρώματος</translation>
-<translation id="6870888490422746447">Επιλέξτε μια εφαρμογή για κοινοποίηση:</translation>
 <translation id="6871644448911473373">Απόκριση OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Ο κωδικός πρόσβασης που εισαγάγατε απορρίφθηκε από τον διακομιστή.</translation>
 <translation id="6876155724392614295">Ποδήλατο</translation>
@@ -4431,6 +4441,7 @@
 <translation id="6997642619627518301">Αρχείο καταγραφής δραστηριοτήτων - <ph name="NAME_PH" /></translation>
 <translation id="6997707937646349884">Στις συσκευές σας:</translation>
 <translation id="6998793565256476099">Εγγραφή συσκευής για συνεδρίαση με βίντεο</translation>
+<translation id="6999956497249459195">Νέα ομάδα</translation>
 <translation id="7000206553895739324">Ο εκτυπωτής <ph name="PRINTER_NAME" /> συνδέθηκε αλλά χρειάζεται διαμόρφωση</translation>
 <translation id="7000347579424117903">Συμπερίληψη Ctrl, Alt ή πλήκτρου Αναζήτησης</translation>
 <translation id="7001036685275644873">Δημιουργία αντιγράφων ασφαλείας εφαρμογών και αρχείων Linux</translation>
@@ -4729,6 +4740,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Ρυθμίστε τη σύνδεση στο τηλέφωνό σας <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Παράβλεψη αυτού του μηνύματος</translation>
+<translation id="7403642243184989645">Λήψη πόρων</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Ο έλεγχος ασφαλείας εκτελέστηκε πριν από 1 ώρα.}other{Ο έλεγχος ασφαλείας εκτελέστηκε πριν από {NUM_HOURS} ώρες.}}</translation>
 <translation id="740624631517654988">Αποκλείστηκε αναδυόμενο παράθυρο</translation>
 <translation id="7407430846095439694">Εισαγωγή και δέσμευση</translation>
@@ -4965,6 +4977,7 @@
 <translation id="7716781361494605745">URL πολιτικής αρχής πιστοποίησης του Netscape</translation>
 <translation id="7717014941119698257">Λήψη: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Έλεγχος για ενημερώσεις</translation>
+<translation id="7719070594859855691">Παραχώρηση πρόσβασης στην κάμερα</translation>
 <translation id="7719367874908701697">Εστίαση σελίδας</translation>
 <translation id="7721179060400456005">Να επιτρέπεται να εκτείνονται τα παράθυρα σε οθόνες</translation>
 <translation id="7722040605881499779">Απαιτείται για την ενημέρωση: <ph name="NECESSARY_SPACE" /></translation>
@@ -4979,7 +4992,6 @@
 <translation id="7744047395460924128">Δείτε το ιστορικό εκτυπώσεών σας</translation>
 <translation id="7744192722284567281">Βρέθηκε σε παραβίαση δεδομένων</translation>
 <translation id="7750228210027921155">Picture in picture</translation>
-<translation id="7751229152614300329">Η Ασφαλής περιήγηση έχει ενημερωθεί και σας προστατεύει από επιβλαβής ιστοτόπους και λήψεις</translation>
 <translation id="7751260505918304024">Προβολή όλων</translation>
 <translation id="7754704193130578113">Εμφάνιση ερώτησης για τη θέση αποθήκευσης κάθε αρχείου πριν από τη λήψη</translation>
 <translation id="7755287808199759310">Ο γονέας σας μπορεί να καταργήσει τον αποκλεισμό του για εσάς</translation>
@@ -5067,6 +5079,7 @@
     <ph name="BEGIN_BOLD" />Σημείωση:<ph name="END_BOLD" />  Θα γίνει επανεκκίνηση του συστήματος κατά τη διάρκεια της διαδικασίας.</translation>
 <translation id="7828731929332799387">Με αυτή την ενέργεια θα διαγραφούν όλα τα cookie και τα δεδομένα ιστοτόπων που διατίθενται σε περιβάλλοντα τρίτου μέρους. Θέλετε να συνεχίσετε;</translation>
 <translation id="7829298379596169484">Πρόσβαση στην είσοδο ήχου</translation>
+<translation id="7829528495815477379">Το <ph name="IDS_SHORT_PRODUCT_NAME" /> δεν μπορεί να ελέγξει τους κωδικούς πρόσβασής σας. Δοκιμάστε να ελέγξετε τη σύνδεσή σας στο διαδίκτυο.</translation>
 <translation id="7829877209233347340">Ζήτα από έναν γονέα να συνδεθεί για να εκχωρήσει δικαίωμα προσθήκης ενός λογαριασμού σχολείου.</translation>
 <translation id="7830594666202422257">Σύνδεση σε Linux</translation>
 <translation id="7831491651892296503">Σφάλμα κατά τη διαμόρφωση του δικτύου</translation>
@@ -5289,6 +5302,7 @@
 <translation id="8107015733319732394">Εγκατάσταση του Google Play Store στη συσκευή σας <ph name="DEVICE_TYPE" />. Αυτό μπορεί να διαρκέσει μερικά λεπτά.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Δεν υπάρχουν cookie τρίτου μέρους}=1{Αποκλείστηκε 1 cookie τρίτου μέρους}other{Αποκλείστηκαν # cookie τρίτου μέρους}}</translation>
 <translation id="810875025413331850">Δεν βρέθηκαν κοντινές συσκευές.</translation>
+<translation id="8114199541033039755">Πλοήγηση στην αρχική οθόνη, μετάβαση πίσω και εναλλαγή εφαρμογών με τα κουμπιά σε λειτουργία tablet. Ενεργοποιημένο όταν έχει ενεργοποιηθεί το ChromeVox ή τα αυτόματα κλικ.</translation>
 <translation id="8114875720387900039">Οριζόντιος διαχωρισμός</translation>
 <translation id="8116972784401310538">&amp;Διαχείριση σελιδοδεικτών</translation>
 <translation id="8117620576188476503">Διαχειριστείτε συνδέσεις, ενημερώσεις και ρυθμίσεις από την περιοχή κατάστασης. Για να μεταβείτε εδώ από το πληκτρολόγιο, πατήστε Alt + Shift + S.</translation>
@@ -5408,6 +5422,7 @@
 <translation id="8263744495942430914">Το <ph name="FULLSCREEN_ORIGIN" /> έχει απενεργοποιήσει τον δείκτη του ποντικιού σας.</translation>
 <translation id="8264024885325823677">Η διαχείριση αυτής της ρύθμισης πραγματοποιείται από τον διαχειριστή σας.</translation>
 <translation id="8264718194193514834">Η επέκταση "<ph name="EXTENSION_NAME" />" ενεργοποίησε τη λειτουργία πλήρους οθόνης.</translation>
+<translation id="826511437356419340">Έχει ενεργοποιηθεί η λειτουργία επισκόπησης παραθύρου. Σύρετε για πλοήγηση ή πατήστε το πλήκτρο tab εάν χρησιμοποιείτε το πληκτρολόγιο.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Αυτές είναι γενικές πληροφορίες σχετικά με αυτήν τη συσκευή και τον τρόπο με τον οποίο χρησιμοποιείται (όπως είναι το επίπεδο της μπαταρίας, η δραστηριότητα συστήματος και εφαρμογών και τα σφάλματα). Τα δεδομένα θα χρησιμοποιηθούν για τη βελτίωση του Android και ορισμένες συγκεντρωτικές πληροφορίες θα βοηθήσουν τις εφαρμογές και τους συνεργάτες της Google, όπως οι προγραμματιστές Android, να βελτιώσουν τις εφαρμογές και τα προϊόντα τους.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Η απενεργοποίηση αυτής της λειτουργίας δεν επηρεάζει τη δυνατότητα αυτής της συσκευής να στέλνει τις απαραίτητες πληροφορίες για σημαντικές υπηρεσίες, όπως είναι οι ενημερώσεις συστήματος και η ασφάλεια.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Ο κάτοχος μπορεί να ελέγχει αυτήν τη λειτουργία από τις Ρυθμίσεις &gt; Σύνθετες &gt; Αυτόματη αποστολή δεδομένων διαγνωστικών στοιχείων και χρήσης στην Google.<ph name="END_PARAGRAPH3" />
@@ -5516,6 +5531,7 @@
 <translation id="8426713856918551002">Γίνεται ενεργοποίηση</translation>
 <translation id="8427292751741042100">ενσωματωμένο σε οποιονδήποτε κεντρικό υπολογιστή</translation>
 <translation id="8428213095426709021">Ρυθμίσεις</translation>
+<translation id="8428271547607112339">Προσθήκη σχολικού λογαριασμού</translation>
 <translation id="8428628598981198790">Το κλειδί ασφαλείας σας δεν μπορεί να χρησιμοποιηθεί με αυτόν τον ιστότοπο.</translation>
 <translation id="84297032718407999">Θα αποσυνδεθείτε σε <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Εμφάνιση πατημάτων</translation>
@@ -5579,6 +5595,7 @@
 <translation id="851263357009351303">Να επιτρέπεται πάντα στο <ph name="HOST" /> η εμφάνιση εικόνων</translation>
 <translation id="8513108775083588393">Αυτόματη περιστροφή</translation>
 <translation id="8514746246728959655">Δοκιμάστε ένα άλλο κλειδί ασφαλείας</translation>
+<translation id="851960115758509829">Οι εφαρμογές, οι ρυθμίσεις και άλλες προσαρμογές σας θα συγχρονίζονται σε όλες τις συσκευές Chrome OS που έχουν συνδεθεί με τον Λογαριασμό σας Google.</translation>
 <translation id="8521475323816527629">Γρήγορη μετάβαση στις εφαρμογές</translation>
 <translation id="8523493869875972733">Διατήρηση αλλαγών</translation>
 <translation id="8523849605371521713">Προστέθηκε από την πολιτική</translation>
@@ -5858,11 +5875,13 @@
 <translation id="885701979325669005">Αποθήκευση</translation>
 <translation id="8859057652521303089">Επιλέξτε τη γλώσσα σας:</translation>
 <translation id="8859174528519900719">Υποπλαίσιο: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Λογαριασμός γονέα</translation>
 <translation id="8862003515646449717">Εναλλαγή σε ένα γρήγορο πρόγραμμα περιήγησης</translation>
 <translation id="8863753581171631212">Άνοιγμα συνδέσμου σε νέο παράθυρο <ph name="APP" /></translation>
 <translation id="8864055848767439877">Κοινοποίηση <ph name="TAB_NAME" /> στην εφαρμογή <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Το <ph name="EMAIL" /> καταργήθηκε από τη συσκευή</translation>
 <translation id="8867228703146808825">Αντιγραφή λεπτομερειών έκδοσης στο πρόχειρο</translation>
+<translation id="8868333925931032127">Έναρξη λειτουργίας επίδειξης</translation>
 <translation id="8868626022555786497">Σε χρήση</translation>
 <translation id="8870413625673593573">Έκλεισαν πρόσφατα</translation>
 <translation id="8871551568777368300">Καρφιτσώθηκε από το διαχειριστή</translation>
@@ -5941,6 +5960,7 @@
 <translation id="8966870118594285808">Ανοίξτε ξανά μια καρτέλα εάν την κλείσατε τυχαία</translation>
 <translation id="8967866634928501045">Πατήστε τα πλήκτρα Alt, Shift και A για εμφάνιση</translation>
 <translation id="8968766641738584599">Αποθήκευση κάρτας</translation>
+<translation id="8971800409073702505">Το <ph name="IDS_SHORT_PRODUCT_NAME" /> δεν μπορεί να ελέγξει τους κωδικούς πρόσβασής σας. Δοκιμάστε ξανά μετά από 24 ώρες ή <ph name="BEGIN_LINK" />ελέγξτε τους κωδικούς πρόσβασης στον Λογαριασμό σας Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Πραγματοποιήστε έλεγχο με το διαχειριστή του δικτύου σας, για να βεβαιωθείτε ότι το τείχος προστασίας δεν αποκλείει λήψεις από τους διακομιστές της Google.</translation>
 <translation id="8973557916016709913">Κατάργηση επιπέδου εστίασης</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 3c88b526..2014d36 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Available devices</translation>
 <translation id="1042174272890264476">Your computer also comes with <ph name="SHORT_PRODUCT_NAME" />'s RLZ library built in. RLZ assigns a non-unique, non-personally identifiable tag to measure the searches and <ph name="SHORT_PRODUCT_NAME" /> usage driven by a particular promotional campaign. These labels sometimes appear in Google Search queries in <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Also clear data from these apps?</translation>
+<translation id="1045448422538531528">Add to group</translation>
 <translation id="1046635659603195359">It looks like you've already set up Voice Match with your Google Assistant on another device.These previous recordings can be used to make a voice model on this device. This should take less than a minute.</translation>
 <translation id="104710386808485638">Restart Linux?</translation>
 <translation id="1047431265488717055">Copy Link Te&amp;xt</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Always block camera access</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> wants to restore your Chrome settings to their original defaults. This will reset your homepage, new tab page and search engine, disable your extensions and unpin all tabs. It will also clear other temporary and cached data, such as cookies, content and site data.</translation>
+<translation id="1084096383128641877">Removing this password will not delete your account on <ph name="DOMAIN" />. Change your password or delete your account on <ph name="DOMAIN_LINK" /> to keep it safe from others.</translation>
 <translation id="1084824384139382525">Copy link addr&amp;ess</translation>
 <translation id="1085697365578766383">Error starting the virtual machine. Please try again.</translation>
 <translation id="1090126737595388931">No Background Apps Running</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Safety check ran yesterday</translation>
 <translation id="1260451001046713751">Always allow pop-ups and redirects from <ph name="HOST" /></translation>
 <translation id="126156426083987769">A problem with demo mode device licences occurred.</translation>
+<translation id="1263490604593716556">Account managed by <ph name="FIRST_PARENT_EMAIL" /> and <ph name="SECOND_PARENT_EMAIL" />. To sign out of the primary account on this device, click the time on your screen. In the menu that appears, click 'Sign out'.</translation>
 <translation id="126710816202626562">Translation language:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Stop</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Website</translation>
 <translation id="15662109988763471">The selected printer is not available or not installed correctly. Check your printer or try selecting another printer.</translation>
 <translation id="1567387640189251553">A different keyboard has been connected since you last entered your password. It may be attempting to steal your keystrokes.</translation>
-<translation id="1567750922576943685">Verifying your identity helps protect your personal information</translation>
 <translation id="1567993339577891801">JavaScript Console</translation>
 <translation id="1568323446248056064">Open display device settings</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Guest)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Art</translation>
 <translation id="1697686431566694143">Edit file</translation>
 <translation id="1698122934742150150">Current incognito session only</translation>
-<translation id="1698650002254827833">The list of apps cannot be loaded. Please retry.</translation>
 <translation id="1700079447639026019">Sites that can never use cookies</translation>
 <translation id="1701062906490865540">Remove this person</translation>
 <translation id="1703331064825191675">Never worry about your passwords</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Continue</translation>
 <translation id="2173302385160625112">Check your Internet connection</translation>
 <translation id="2173801458090845390">Add requisition ID to this device</translation>
+<translation id="2174948148799307353">Account managed by <ph name="PARENT_EMAIL" />. To sign out of the primary account on this device, click the time on your screen. In the menu that appears, click 'Sign out'.</translation>
 <translation id="2175607476662778685">Quick launch bar</translation>
 <translation id="217576141146192373">Unable to add printer. Please check your printer's configuration and try again.</translation>
 <translation id="2177950615300672361">Incognito Tab: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Text shadow</translation>
 <translation id="2445081178310039857">Extension root directory is required.</translation>
 <translation id="2445484935443597917">Create a New Profile</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> wants to verify your identity</translation>
 <translation id="2448312741937722512">Types</translation>
 <translation id="2450223707519584812">You will not be able to add users because Google API keys are missing. See <ph name="DETAILS_URL" /> for details.</translation>
 <translation id="2450849356604136918">No active views</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Go to <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">A fast, simple and secure web browser, built for the modern web.</translation>
 <translation id="2949289451367477459">Use location. Allow apps and services with location permission to use this device’s location. Google may collect location data periodically and use this data in an anonymous way to improve location accuracy and location-based services. <ph name="BEGIN_LINK1" />Learn More<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Sign me up</translation>
 <translation id="2956070239128776395">Section nested in group: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Do not allow any sites to edit files or folders on your device</translation>
 <translation id="2958721676848865875">Pack extension warning</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Default yellow avatar</translation>
 <translation id="3141318088920353606">Listening...</translation>
 <translation id="3141917231319778873">The given request is not supported to: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">New Group</translation>
 <translation id="3143515551205905069">Cancel sync</translation>
 <translation id="3143754809889689516">Play from the beginning</translation>
 <translation id="3144647712221361880">Open link as</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardware-backed)</translation>
 <translation id="3161522574479303604">All languages</translation>
+<translation id="3162853326462195145">School account</translation>
 <translation id="3162899666601560689">Sites can use cookies to improve your browsing experience, for example to keep you signed in or to remember items in your shopping basket</translation>
 <translation id="3163201441334626963">Unknown product <ph name="PRODUCT_ID" /> from vendor <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Sharing this tab to <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Update device within a day}other{Update device within # days}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – Network error</translation>
 <translation id="3248902735035392926">Safety matters. Take a moment and <ph name="BEGIN_LINK" />check your extensions now<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Not Part Of Certificate&gt;</translation>
 <translation id="3253225298092156258">Not available</translation>
 <translation id="3253448572569133955">Unknown account</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">By clicking the 'Accept and continue' button, you agree to the processing described above for these Google services.</translation>
 <translation id="3399432415385675819">Notifications will be disabled</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) – interlaced</translation>
+<translation id="3402585168444815892">Enrolling in demo mode</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">No passwords saved for this site</translation>
 <translation id="3405664148539009465">Customise fonts</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android phone</translation>
 <translation id="3470442499439619530">Remove This User</translation>
 <translation id="3471876058939596279">HDMI and USB Type-C ports can't be used for video at the same time. Use a different video port.</translation>
+<translation id="3473241910002674503">Navigate home or back and switch apps with buttons in tablet mode.</translation>
 <translation id="3473479545200714844">Screen magnifier</translation>
 <translation id="3475843873335999118">Sorry, your fingerprint is still not recognised. Please enter your password.</translation>
 <translation id="3476303763173086583">Send usage and diagnostic data. Help improve your child's Android experience by automatically sending diagnostic, device and app usage data to Google. This won't be used to identify your child, and will help system and app stability and other improvements. Some aggregate data will also help Google apps and partners, such as Android developers. This <ph name="BEGIN_LINK1" />setting<ph name="END_LINK1" /> is enforced by the owner. The owner may choose to send diagnostic and usage data for this device to Google. If additional Web &amp; App Activity setting is turned on for your child, this data may be saved to their Google Account. <ph name="BEGIN_LINK2" />Find out more<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Fingerprints on this security key</translation>
 <translation id="3973660817924297510">Checking passwords (<ph name="CHECKED_PASSWORDS" /> of <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Contacting server for realm failed</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> can't check your passwords. Try again later.</translation>
 <translation id="3976108569178263973">There are no available printers.</translation>
 <translation id="397703832102027365">Finalising...</translation>
 <translation id="3977886311744775419">Automatic updates don't download on this network type, but you can check for updates manually.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">This page contains elements from the following sites that are tracking your location:</translation>
 <translation id="4068776064906523561">Saved fingerprints</translation>
 <translation id="407173827865827707">On click</translation>
+<translation id="4073520450811433493">Settings sync</translation>
 <translation id="4074900173531346617">Email Signer Certificate</translation>
 <translation id="407520071244661467">Scale</translation>
 <translation id="4075639477629295004">Unable to cast <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Fluffy</translation>
 <translation id="4423376891418188461">Restore Settings</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, your administrator requires you to change your password.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> can't check your passwords. Try again after 24 hours.</translation>
 <translation id="4429030830601238961">This data violates your organisation's security policies and can't be pasted.</translation>
 <translation id="4430019312045809116">volume</translation>
 <translation id="4430369329743628066">Bookmark added</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Do you want to automatically start this app when the machine turns on?</translation>
 <translation id="4441147046941420429">To continue, remove your security key from your device, then reinsert and touch it</translation>
 <translation id="444134486829715816">Expand...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> can check your passwords when you sign in with your Google Account</translation>
 <translation id="4442424173763614572">DNS lookup failed</translation>
 <translation id="4443536555189480885">&amp;Help</translation>
 <translation id="4444304522807523469">Access document scanners attached via USB or on the local network</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">To scan this code, you can use a QR scanner app on your phone, or some camera apps.</translation>
 <translation id="4477015793815781985">Include Ctrl, Alt or ⌘</translation>
 <translation id="4478664379124702289">Save Lin&amp;k As...</translation>
+<translation id="4478777936860197922">No saved passwords. <ph name="IDS_SHORT_PRODUCT_NAME" /> can check your passwords when you save them.</translation>
 <translation id="4479424953165245642">Manage kiosk applications</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Configuring the virtual machine. This may take a few minutes.</translation>
 <translation id="4480590691557335796">Chrome can find harmful software on your computer and remove it</translation>
 <translation id="4481530544597605423">Unpaired devices</translation>
+<translation id="4488107067273194838">Review browser sync options following setup</translation>
 <translation id="4488502501195719518">Clear all data?</translation>
 <translation id="4495419450179050807">Don't show on this page</translation>
 <translation id="4496054781541092778">automatically blocked <ph name="PERMISSION" /></translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Don't Install</translation>
 <translation id="4850669014075537160">Scrolling</translation>
 <translation id="4850886885716139402">View</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> will notify you when you sign in with a compromised password</translation>
 <translation id="4853020600495124913">Open in &amp;new window</translation>
 <translation id="4854317507773910281">Choose parent account for approval</translation>
 <translation id="485480310608090163">More settings and permissions</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN contains invalid characters</translation>
 <translation id="4871370605780490696">Add bookmark</translation>
 <translation id="4871719318659334896">Close group</translation>
+<translation id="4871852311166078968">Add to Group</translation>
 <translation id="4873312501243535625">Media File Checker</translation>
 <translation id="4876273079589074638">Help our engineers investigate and fix this crash. List exact steps if you can. No detail is too small!</translation>
 <translation id="4876895919560854374">Lock and unlock the screen</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Your administrator has limited the available input methods.</translation>
 <translation id="4994474651455208930">Allow sites to ask to become default handlers for protocols</translation>
 <translation id="4994754230098574403">Setting up</translation>
-<translation id="4996978546172906250">Share via</translation>
 <translation id="4997086284911172121">No Internet connection.</translation>
 <translation id="4997384734315285248">Uninstall Plugin VM</translation>
 <translation id="4998430619171209993">On</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Access your Assistant when you say "Ok Google".</translation>
 <translation id="5135533361271311778">Could not create bookmark item.</translation>
 <translation id="5137501176474113045">Delete this item</translation>
-<translation id="5138982052046316113">Resize Linux disk</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> search</translation>
 <translation id="5139823398361067371">Enter the PIN for your security key. If you don’t know the PIN, you’ll need to reset the security key.</translation>
 <translation id="5139955368427980650">&amp;Open</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Waiting for verification. <ph name="LINK_BEGIN" />Find out more<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Very large</translation>
 <translation id="574209121243317957">Pitch</translation>
+<translation id="5745136023067925867">Get <ph name="DEVICE_TYPE" /> tips, offers and updates, and share feedback</translation>
 <translation id="5746169159649715125">Save as PDF</translation>
 <translation id="5747552184818312860">Expires</translation>
 <translation id="5747785204778348146">Developer - unstable</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Show in Finder</translation>
 <translation id="6295158916970320988">All sites</translation>
 <translation id="6295855836753816081">Saving...</translation>
-<translation id="629730747756840877">Account</translation>
 <translation id="6298962879096096191">Use Google Play to install Android apps</translation>
 <translation id="630065524203833229">E&amp;xit</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> could not be configured automatically. Please specify advanced printer details. <ph name="LINK_BEGIN" />Learn more<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Page Is not in <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC event logs (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Colour temperature</translation>
-<translation id="6870888490422746447">Choose an app to share to:</translation>
 <translation id="6871644448911473373">OCSP Responder: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">The password that you entered was rejected by the server.</translation>
 <translation id="6876155724392614295">Cycle</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – Activity Log</translation>
 <translation id="6997707937646349884">On your devices:</translation>
 <translation id="6998793565256476099">Enrol device for video conferencing</translation>
+<translation id="6999956497249459195">New group</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> is connected but needs configuration</translation>
 <translation id="7000347579424117903">Include Ctrl, Alt or Search</translation>
 <translation id="7001036685275644873">Backing up Linux apps &amp; files</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Set up connection on your <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Dismiss this message</translation>
+<translation id="7403642243184989645">Downloading resources</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Safety check ran 1 hour ago}other{Safety check ran {NUM_HOURS} hours ago}}</translation>
 <translation id="740624631517654988">Pop-up blocked</translation>
 <translation id="7407430846095439694">Import and Bind</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">Netscape Certification Authority Policy URL</translation>
 <translation id="7717014941119698257">Downloading: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Check for updates</translation>
+<translation id="7719070594859855691">Give access to camera</translation>
 <translation id="7719367874908701697">Page zoom</translation>
 <translation id="7721179060400456005">Allow windows to span displays</translation>
 <translation id="7722040605881499779">Needed to update: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">See your printing history</translation>
 <translation id="7744192722284567281">Found in data breach</translation>
 <translation id="7750228210027921155">Picture-in-picture</translation>
-<translation id="7751229152614300329">Safe Browsing is up to date and protecting you from harmful sites and downloads</translation>
 <translation id="7751260505918304024">Show all</translation>
 <translation id="7754704193130578113">Ask where to save each file before downloading</translation>
 <translation id="7755287808199759310">Your parent can unblock it for you</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Note:<ph name="END_BOLD" /> The system will reboot during the process.</translation>
 <translation id="7828731929332799387">This will delete all cookies and site data available in third-party contexts. Do you want to continue?</translation>
 <translation id="7829298379596169484">Accessing audio input</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> can't check your passwords. Try checking your Internet connection.</translation>
 <translation id="7829877209233347340">Ask a parent to sign in to grant permission to add a school account</translation>
 <translation id="7830594666202422257">Connect to Linux</translation>
 <translation id="7831491651892296503">Error configuring network</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Installing the Google Play Store on your <ph name="DEVICE_TYPE" />. This could take a few minutes.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{No third-party cookies}=1{1 third-party cookie is blocked}other{# third-party cookies are blocked}}</translation>
 <translation id="810875025413331850">No nearby devices found.</translation>
+<translation id="8114199541033039755">Navigate home or back and switch apps with buttons in tablet mode. Turned on when ChromeVox or automatic clicks is enabled.</translation>
 <translation id="8114875720387900039">Split horizontal</translation>
 <translation id="8116972784401310538">&amp;Bookmark manager</translation>
 <translation id="8117620576188476503">Manage connections, updates and settings with the status tray. To get here by keyboard, press Alt + Shift + S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> has disabled your mouse cursor.</translation>
 <translation id="8264024885325823677">This setting is managed by your administrator.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" triggered full screen.</translation>
+<translation id="826511437356419340">Entered window overview mode. Swipe to navigate, or press tab if using a keyboard.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />This is general information about this device and how it's used (such as battery level, system and app activity and errors). The data will be used to improve Android, and some aggregated information will also help Google apps and partners, such as Android developers, make their apps and products better.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Turning off this feature doesn't affect this device's ability to send the information needed for essential services such as system updates and security.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />The owner can control this feature from Settings &gt; Advanced &gt; Automatically send diagnostic and usage data to Google.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Enabling</translation>
 <translation id="8427292751741042100">embedded on any host</translation>
 <translation id="8428213095426709021">Settings</translation>
+<translation id="8428271547607112339">Add school account</translation>
 <translation id="8428628598981198790">Your security key can't be used with this site</translation>
 <translation id="84297032718407999">You'll be signed out in <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Show taps</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Always allow <ph name="HOST" /> to show images</translation>
 <translation id="8513108775083588393">Auto-rotate</translation>
 <translation id="8514746246728959655">Try a different security key</translation>
+<translation id="851960115758509829">Your apps, settings and other customisations will sync across all Chrome OS devices signed in with your Google Account.</translation>
 <translation id="8521475323816527629">Get to your apps fast</translation>
 <translation id="8523493869875972733">Keep Changes</translation>
 <translation id="8523849605371521713">Added by policy</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Storage</translation>
 <translation id="8859057652521303089">Select your language:</translation>
 <translation id="8859174528519900719">Subframe: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Parent account</translation>
 <translation id="8862003515646449717">Switch to a fast browser</translation>
 <translation id="8863753581171631212">Open link in new <ph name="APP" /></translation>
 <translation id="8864055848767439877">Sharing <ph name="TAB_NAME" /> to <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> was removed from this device</translation>
 <translation id="8867228703146808825">Copy build details to clipboard</translation>
+<translation id="8868333925931032127">Starting demo mode</translation>
 <translation id="8868626022555786497">In use</translation>
 <translation id="8870413625673593573">Recently Closed</translation>
 <translation id="8871551568777368300">Pinned by administrator</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Reopen a tab if you accidentally closed it</translation>
 <translation id="8967866634928501045">Press Alt Shift A to show</translation>
 <translation id="8968766641738584599">Save card</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> can't check your passwords. Try again after 24 hours or <ph name="BEGIN_LINK" />check passwords in your Google Account<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Please check with your network administrator to make sure that the firewall is not blocking downloads from Google servers.</translation>
 <translation id="8973557916016709913">Remove zoom level</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 177ebccc..cdad63f 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dispositivos disponibles</translation>
 <translation id="1042174272890264476">Tu computadora también tiene la biblioteca RLZ de <ph name="SHORT_PRODUCT_NAME" /> incorporada. RLZ asigna una etiqueta identificable, no exclusiva y no personal para medir las búsquedas y el uso de <ph name="SHORT_PRODUCT_NAME" /> impulsados por una determinada campaña de promoción. Estas etiquetas aparecen a veces en las consultas de la Búsqueda de Google en <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">¿También quieres borrar los datos de estas apps?</translation>
+<translation id="1045448422538531528">Agregar al grupo</translation>
 <translation id="1046635659603195359">Al parecer, ya configuraste Voice Match con tu Asistente de Google en otro dispositivo. Las grabaciones anteriores pueden usarse para crear un modelo de voz en este dispositivo. El proceso debería tomar menos de un minuto.</translation>
 <translation id="104710386808485638">¿Quieres reiniciar Linux?</translation>
 <translation id="1047431265488717055">Copiar texto del vínculo</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Bloquear siempre el acceso a la cámara</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> quiere restaurar la configuración de Chrome a los valores predeterminados originales. Esta acción restablecerá la página principal, la página Nueva pestaña y el motor de búsqueda, inhabilitará las extensiones y no se fijará ninguna pestaña. También se borrarán otros datos temporales y almacenados en la caché, como las cookies y los datos de contenido y de sitios.</translation>
+<translation id="1084096383128641877">Si quitas esta contraseña, no se borrará tu cuenta de <ph name="DOMAIN" />. Cambia la contraseña o quita la cuenta de <ph name="DOMAIN_LINK" /> para protegerla.</translation>
 <translation id="1084824384139382525">Copiar dir&amp;ección de enlace</translation>
 <translation id="1085697365578766383">Se produjo un error al iniciar la máquina virtual. Vuelve a intentarlo.</translation>
 <translation id="1090126737595388931">No se ejecutan aplicaciones de fondo</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">La verificación de seguridad se ejecutó ayer</translation>
 <translation id="1260451001046713751">Siempre permitir ventanas emergentes y redireccionamientos de <ph name="HOST" /></translation>
 <translation id="126156426083987769">Hubo un problema con las licencias del dispositivo en el modo de demostración.</translation>
+<translation id="1263490604593716556">Cuenta administrada por <ph name="FIRST_PARENT_EMAIL" /> y <ph name="SECOND_PARENT_EMAIL" />. Para salir de la cuenta principal en este dispositivo, haz clic en la hora que se encuentra en la pantalla. En el menú que aparece, haz clic en "Salir".</translation>
 <translation id="126710816202626562">Idioma de traducción:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Interrumpir</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">Sitio web</translation>
 <translation id="15662109988763471">La impresora seleccionada no está disponible o no se instaló correctamente. Revisa tu impresora o selecciona otra.</translation>
 <translation id="1567387640189251553">Se conectó otro teclado desde la última vez que ingresaste tu contraseña. Es posible que alguien esté intentando determinar qué teclas presionaste.</translation>
-<translation id="1567750922576943685">Para proteger tu información personal, verifica tu identidad</translation>
 <translation id="1567993339577891801">Consola de JavaScript</translation>
 <translation id="1568323446248056064">Abrir configuración de pantalla</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (invitado)</translation>
@@ -516,7 +518,6 @@
 <translation id="1697150536837697295">Arte</translation>
 <translation id="1697686431566694143">Editar archivo</translation>
 <translation id="1698122934742150150">Solo para la sesión en modo incógnito actual</translation>
-<translation id="1698650002254827833">No se puede cargar la lista de apps. Vuelve a intentarlo.</translation>
 <translation id="1700079447639026019">Sitios que nunca pueden usar cookies</translation>
 <translation id="1701062906490865540">Eliminar a esta persona</translation>
 <translation id="1703331064825191675">Ya no tendrás que preocuparte por tus contraseñas</translation>
@@ -870,6 +871,7 @@
 <translation id="2172784515318616985">Continuar</translation>
 <translation id="2173302385160625112">Comprueba tu conexión a Internet</translation>
 <translation id="2173801458090845390">Agregar la ID de la solicitud a este dispositivo</translation>
+<translation id="2174948148799307353">Cuenta administrada por <ph name="PARENT_EMAIL" />. Para salir de la cuenta principal en este dispositivo, haz clic en la hora que se encuentra en la pantalla. En el menú que aparece, haz clic en "Salir".</translation>
 <translation id="2175607476662778685">Barra de inicio rápido</translation>
 <translation id="217576141146192373">No se puede agregar la impresora. Revisa la configuración de la impresora y vuelve a intentarlo.</translation>
 <translation id="2177950615300672361">Pestaña de incógnito: <ph name="TAB_NAME" /></translation>
@@ -1078,7 +1080,6 @@
 <translation id="2442916515643169563">Sombra del texto</translation>
 <translation id="2445081178310039857">Se requiere un directorio de raíz de la extensión.</translation>
 <translation id="2445484935443597917">Crear un perfil nuevo</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> quiere verificar tu identidad</translation>
 <translation id="2448312741937722512">Tipo</translation>
 <translation id="2450223707519584812">No podrás agregar usuarios porque faltan las claves de la API de Google. Consulta <ph name="DETAILS_URL" /> para obtener más detalles.</translation>
 <translation id="2450849356604136918">No hay vistas activas</translation>
@@ -1476,6 +1477,7 @@
 <translation id="2948300991547862301">Ir a <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Un navegador web rápido, seguro y fácil de usar creado para la Web moderna</translation>
 <translation id="2949289451367477459">Usa la ubicación. Permite que las apps y los servicios con permiso de ubicación usen la ubicación de este dispositivo. Es posible que Google recopile datos de ubicación anónimos periódicamente y los use para mejorar la precisión de la ubicación y los servicios basados en esta. <ph name="BEGIN_LINK1" />Más información<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Registrarme</translation>
 <translation id="2956070239128776395">Se anidó la sección en el grupo: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">No permitir que ningún sitio edite archivos o carpetas de tu dispositivo</translation>
 <translation id="2958721676848865875">Advertencia sobre el empaquetado de extensiones</translation>
@@ -1600,6 +1602,7 @@
 <translation id="3139925690611372679">Avatar amarillo predeterminado</translation>
 <translation id="3141318088920353606">Escuchando…</translation>
 <translation id="3141917231319778873">La solicitud dada no es compatible con: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Grupo nuevo</translation>
 <translation id="3143515551205905069">Cancelar sincronización</translation>
 <translation id="3143754809889689516">Reproducir desde el principio</translation>
 <translation id="3144647712221361880">Abrir vínculo como</translation>
@@ -1624,6 +1627,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (copia de seguridad en hardware)</translation>
 <translation id="3161522574479303604">Todos los idiomas</translation>
+<translation id="3162853326462195145">Cuenta de una institución educativa</translation>
 <translation id="3162899666601560689">Los sitios pueden usar cookies para mejorar la experiencia de navegación, por ejemplo, para mantener el acceso a ellos o recordar elementos del carrito de compras.</translation>
 <translation id="3163201441334626963">Producto desconocido <ph name="PRODUCT_ID" /> del proveedor <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Compartiendo esta pestaña en <ph name="APP_NAME" /></translation>
@@ -1682,7 +1686,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Actualiza el dispositivo en el transcurso de 1 día}other{Actualiza el dispositivo en el transcurso de # días}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" />: Error de red</translation>
 <translation id="3248902735035392926">La seguridad es importante. Ahora, tómate un momento para <ph name="BEGIN_LINK" />revisar tus extensiones<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;No forma parte de un certificado&gt;</translation>
 <translation id="3253225298092156258">No disponible</translation>
 <translation id="3253448572569133955">Cuenta desconocida</translation>
@@ -1787,6 +1790,7 @@
 <translation id="3396800784455899911">Al hacer clic en el botón "Aceptar y continuar", confirmas el procesamiento descrito anteriormente para estos servicios de Google.</translation>
 <translation id="3399432415385675819">Se inhabilitarán las notificaciones</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - entrelazado</translation>
+<translation id="3402585168444815892">Inscripción al modo de demostración</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">No se guardó ninguna contraseña para este sitio</translation>
 <translation id="3405664148539009465">Personalizar fuentes</translation>
@@ -1848,6 +1852,7 @@
 <translation id="3468999815377931311">Teléfono Android</translation>
 <translation id="3470442499439619530">Eliminar este usuario</translation>
 <translation id="3471876058939596279">No se pueden usar los puertos HDMI y USB tipo C al mismo tiempo para transmitir video. Usa otro puerto de video.</translation>
+<translation id="3473241910002674503">Con los botones del modo tablet, puedes navegar hacia la pantalla de inicio, regresar y cambiar de apps.</translation>
 <translation id="3473479545200714844">Lupa</translation>
 <translation id="3475843873335999118">No se puede reconocer tu huella digital. Ingresa tu contraseña.</translation>
 <translation id="3476303763173086583">Envía datos de uso y diagnóstico. Para ayudar a mejorar la experiencia de Android de tu hijo, envía a Google datos de diagnóstico y uso de dispositivos y apps de forma automática. Esta información no se usará para identificar a tu hijo y ayudará a lograr la estabilidad de las apps y el sistema, entre otras mejoras. Algunos datos agregados también ayudarán a las apps y los socios de Google, como los desarrolladores de Android. El propietario controla esta <ph name="BEGIN_LINK1" />configuración<ph name="END_LINK1" />. Es posible que el propietario decida enviar a Google datos de uso y diagnóstico de este dispositivo. Si habilitaste la "Actividad de web y de aplicaciones adicional" en la Cuenta de Google de tu hijo, es posible que se almacenen estos datos en esa cuenta. <ph name="BEGIN_LINK2" />Más información<ph name="END_LINK2" /></translation>
@@ -2272,6 +2277,7 @@
 <translation id="3971764089670057203">Huellas digitales en esta llave de seguridad</translation>
 <translation id="3973660817924297510">Verificando contraseñas (<ph name="CHECKED_PASSWORDS" /> de <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Comunicándose con el servidor debido a un error en el dominio</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> no puede revisar las contraseñas. Inténtalo más tarde.</translation>
 <translation id="3976108569178263973">No hay impresoras disponibles.</translation>
 <translation id="397703832102027365">Finalizando...</translation>
 <translation id="3977886311744775419">Las actualizaciones automáticas no se descargan en este tipo de red, pero puedes buscar actualizaciones de forma manual.</translation>
@@ -2335,6 +2341,7 @@
 <translation id="4068506536726151626">Esta página contiene elementos de los siguientes sitios que están rastreando tu ubicación:</translation>
 <translation id="4068776064906523561">Huellas digitales guardadas</translation>
 <translation id="407173827865827707">Al hacer clic</translation>
+<translation id="4073520450811433493">Sincronizar la configuración</translation>
 <translation id="4074900173531346617">Enviar por correo electrónico el certificado del firmante</translation>
 <translation id="407520071244661467">Escala</translation>
 <translation id="4075639477629295004">No se puede transmitir <ph name="FILE_NAME" />.</translation>
@@ -2571,6 +2578,7 @@
 <translation id="4421932782753506458">Peludito</translation>
 <translation id="4423376891418188461">Restaurar configuración</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, tu administrador te solicita que cambies la contraseña.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> no puede revisar las contraseñas. Vuelve a intentarlo después de 24 horas.</translation>
 <translation id="4429030830601238961">No se pueden pegar estos datos porque infringen las políticas de seguridad de tu organización.</translation>
 <translation id="4430019312045809116">Volumen</translation>
 <translation id="4430369329743628066">Se agregó el marcador</translation>
@@ -2583,6 +2591,7 @@
 <translation id="4441124369922430666">¿Quieres que esta aplicación se inicie de forma automática cuando se encienda el equipo?</translation>
 <translation id="4441147046941420429">Para continuar, quita la llave de seguridad del dispositivo y, luego, vuelve a colocarla y tócala</translation>
 <translation id="444134486829715816">Mostrar...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> puede revisar las contraseñas solo cuando accedes con tu Cuenta de Google</translation>
 <translation id="4442424173763614572">Error al buscar DNS</translation>
 <translation id="4443536555189480885">&amp;Ayuda</translation>
 <translation id="4444304522807523469">Acceder a los escáneres de documentos conectados vía USB o en la red local</translation>
@@ -2609,11 +2618,13 @@
 <translation id="4476659815936224889">Para escanear este código, puedes usar una app de lectura de código QR en tu teléfono o algunas apps de cámara.</translation>
 <translation id="4477015793815781985">Incluye Ctrl, Alt o ⌘</translation>
 <translation id="4478664379124702289">Guardar vín&amp;culo como...</translation>
+<translation id="4478777936860197922">No hay contraseñas guardadas. <ph name="IDS_SHORT_PRODUCT_NAME" /> puede revisar las contraseñas cuando las guardas.</translation>
 <translation id="4479424953165245642">Administrar las aplicaciones del kiosco</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Se está configurando la máquina virtual. Es posible que este proceso demore unos minutos.</translation>
 <translation id="4480590691557335796">Chrome puede buscar software dañino en tu computadora y quitarlo</translation>
 <translation id="4481530544597605423">Dispositivos no sincronizados</translation>
+<translation id="4488107067273194838">Revisar las opciones de sincronización del navegador después de la configuración</translation>
 <translation id="4488502501195719518">¿Borrar todos los datos?</translation>
 <translation id="4495419450179050807">No mostrar en esta página</translation>
 <translation id="4496054781541092778">se bloqueó automáticamente <ph name="PERMISSION" /></translation>
@@ -2855,6 +2866,7 @@
 <translation id="4849517651082200438">No instalar</translation>
 <translation id="4850669014075537160">Desplazamiento</translation>
 <translation id="4850886885716139402">Ver</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> te notificará cuando accedas con una contraseña hackeada</translation>
 <translation id="4853020600495124913">Abrir en una ventana &amp;nueva</translation>
 <translation id="4854317507773910281">Elige la cuenta parental para la aprobación</translation>
 <translation id="485480310608090163">Más opciones de configuración y permisos</translation>
@@ -2873,6 +2885,7 @@
 <translation id="4871322859485617074">El PIN contiene caracteres no válidos</translation>
 <translation id="4871370605780490696">Agregar marcador</translation>
 <translation id="4871719318659334896">Cerrar grupo</translation>
+<translation id="4871852311166078968">Agregar al grupo</translation>
 <translation id="4873312501243535625">Comprobador de archivos multimedia</translation>
 <translation id="4876273079589074638">¡Ayuda a que nuestros ingenieros investiguen y solucionen este fallo! Enumera los pasos exactos si es posible. No omitas ningún detalle.</translation>
 <translation id="4876895919560854374">Bloquear y desbloquear la pantalla</translation>
@@ -2964,7 +2977,6 @@
 <translation id="4992473555164495036">Tu administrador limitó los métodos de entrada disponibles.</translation>
 <translation id="4994474651455208930">Permitir que los sitios web soliciten convertirse en controladores predeterminados de protocolos</translation>
 <translation id="4994754230098574403">Configurando</translation>
-<translation id="4996978546172906250">Compartir mediante</translation>
 <translation id="4997086284911172121">No hay conexión a Internet.</translation>
 <translation id="4997384734315285248">Desinstalar Plugin VM</translation>
 <translation id="4998430619171209993">Sí</translation>
@@ -3064,7 +3076,6 @@
 <translation id="5135085122826131075">Di "Ok Google" para acceder al Asistente.</translation>
 <translation id="5135533361271311778">No se pudo crear el elemento de marcador.</translation>
 <translation id="5137501176474113045">Borrar este elemento</translation>
-<translation id="5138982052046316113">Cambiar el tamaño del disco de Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, búsqueda de <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Ingresa el PIN para tu llave de seguridad. Si no lo conoces, restablece la llave.</translation>
 <translation id="5139955368427980650">&amp;Abrir</translation>
@@ -3516,6 +3527,7 @@
 <translation id="5739235828260127894">La verificación está pendiente. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Muy grande</translation>
 <translation id="574209121243317957">Tono</translation>
+<translation id="5745136023067925867">Obtén sugerencias, ofertas y actualizaciones de <ph name="DEVICE_TYPE" />, y comparte tus comentarios</translation>
 <translation id="5746169159649715125">Guardar como PDF</translation>
 <translation id="5747552184818312860">Caduca</translation>
 <translation id="5747785204778348146">Programador: versión inestable</translation>
@@ -3928,7 +3940,6 @@
 <translation id="6291953229176937411">Mo&amp;strar en Buscador</translation>
 <translation id="6295158916970320988">Todos los sitios</translation>
 <translation id="6295855836753816081">Guardando…</translation>
-<translation id="629730747756840877">Cuenta</translation>
 <translation id="6298962879096096191">Usar Google Play para instalar apps de Android</translation>
 <translation id="630065524203833229">&amp;Salir</translation>
 <translation id="6300718114348072351">No se pudo configurar <ph name="PRINTER_NAME" /> automáticamente. Especifica los detalles avanzados de la impresora. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
@@ -4334,7 +4345,6 @@
 <translation id="6865598234501509159">La página no está en <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Registros de acontecimientos de WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura de color</translation>
-<translation id="6870888490422746447">Elegir una app para compartir contenido:</translation>
 <translation id="6871644448911473373">Respondedor de OCSP:<ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">El servidor rechazó la contraseña que ingresaste.</translation>
 <translation id="6876155724392614295">Bicicleta</translation>
@@ -4427,6 +4437,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" />: Registro de actividad</translation>
 <translation id="6997707937646349884">En tus dispositivos:</translation>
 <translation id="6998793565256476099">Inscribe el dispositivo para realizar videoconferencias</translation>
+<translation id="6999956497249459195">Grupo nuevo</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> está conectada, pero debe configurarse</translation>
 <translation id="7000347579424117903">Incluir Ctrl, Alt o el botón de búsqueda</translation>
 <translation id="7001036685275644873">Creando la copia de seguridad de los archivos y las apps de Linux</translation>
@@ -4725,6 +4736,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Configurar la conexión en tu <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Descartar este mensaje</translation>
+<translation id="7403642243184989645">Descarga de recursos</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{La verificación de seguridad se ejecutó hace 1 hora}other{La verificación de seguridad se ejecutó hace {NUM_HOURS} horas}}</translation>
 <translation id="740624631517654988">Ventana emergente (pop-up) bloqueada</translation>
 <translation id="7407430846095439694">Importar y vincular</translation>
@@ -4961,6 +4973,7 @@
 <translation id="7716781361494605745">URL de directivas de la autoridad de certificación de Netscape</translation>
 <translation id="7717014941119698257">Descargando: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Comprobar actualizaciones</translation>
+<translation id="7719070594859855691">Darle acceso a la cámara</translation>
 <translation id="7719367874908701697">Zoom de página</translation>
 <translation id="7721179060400456005">Permitir que las ventanas abarquen las pantallas</translation>
 <translation id="7722040605881499779">Espacio necesario para la actualización: <ph name="NECESSARY_SPACE" /></translation>
@@ -4975,7 +4988,6 @@
 <translation id="7744047395460924128">Ver tu historial de impresión</translation>
 <translation id="7744192722284567281">Se encontró en una violación de la seguridad de los datos</translation>
 <translation id="7750228210027921155">Pantalla en pantalla</translation>
-<translation id="7751229152614300329">La Navegación segura está actualizada y te protege contra descargas y sitios dañinos</translation>
 <translation id="7751260505918304024">Mostrar todo</translation>
 <translation id="7754704193130578113">Preguntar ubicación antes de descargar</translation>
 <translation id="7755287808199759310">Uno de tus padres puede desbloquearlo por ti</translation>
@@ -5063,6 +5075,7 @@
     <ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> El sistema se reiniciará durante el proceso.</translation>
 <translation id="7828731929332799387">Esta acción borrará todas las cookies y datos de sitios disponibles en contextos de terceros. ¿Quieres continuar?</translation>
 <translation id="7829298379596169484">Accediendo a la entrada de audio</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> no puede revisar las contraseñas. Revisa la conexión a Internet.</translation>
 <translation id="7829877209233347340">Pídele a tu padre o madre que acceda a su cuenta a fin de otorgarte permiso para agregar la cuenta de una institución educativa</translation>
 <translation id="7830594666202422257">Conectar a Linux</translation>
 <translation id="7831491651892296503">Se produjo un error cuando se configuraba la red</translation>
@@ -5285,6 +5298,7 @@
 <translation id="8107015733319732394">Se está instalando Google Play Store en tu <ph name="DEVICE_TYPE" />. Esta acción puede tardar unos minutos.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{No hay cookies de terceros}=1{Se bloqueó 1 cookie de terceros}other{Se bloquearon # cookies de terceros}}</translation>
 <translation id="810875025413331850">No se encontraron dispositivos cercanos.</translation>
+<translation id="8114199541033039755">Con los botones del modo tablet, puedes navegar hacia la pantalla de inicio, regresar y cambiar de apps. Se activan cuando están habilitados ChromeVox o Clics automáticos.</translation>
 <translation id="8114875720387900039">División horizontal</translation>
 <translation id="8116972784401310538">&amp;Administrador de favoritos</translation>
 <translation id="8117620576188476503">Administra las conexiones, actualizaciones y configuración con la bandeja de estado. Presiona Alt + mayúscula + S para acceder.</translation>
@@ -5404,6 +5418,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ha inhabilitado el cursor del mouse.</translation>
 <translation id="8264024885325823677">El administrador controla esta configuración.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" activó la pantalla completa.</translation>
+<translation id="826511437356419340">Se activó el modo de vista general de ventana. Desliza el dedo para navegar o presiona Tab si usas un teclado.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Se trata de información general sobre este dispositivo y cómo se usa (por ejemplo, el nivel de batería, los errores y la actividad de las apps y el sistema). Los datos se usarán para mejorar Android y la información agregada también permitirá que las apps y los socios de Google, como los desarrolladores de Android, mejoren sus apps y productos.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Si desactivas esta función, no se verá afectada la capacidad del dispositivo de enviar la información que necesita para recibir servicios esenciales, como actualizaciones del sistema y seguridad.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />El propietario puede controlar esta función desde Configuración &gt; Avanzada &gt; Envía a Google datos de uso y diagnóstico automáticamente.<ph name="END_PARAGRAPH3" />
@@ -5512,6 +5527,7 @@
 <translation id="8426713856918551002">Habilitando</translation>
 <translation id="8427292751741042100">incorporada en cualquier host</translation>
 <translation id="8428213095426709021">Configuración</translation>
+<translation id="8428271547607112339">Agregar una cuenta de una institución educativa</translation>
 <translation id="8428628598981198790">Tu llave de seguridad no se puede usar en este sitio</translation>
 <translation id="84297032718407999">Saldrás de la cuenta en <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Mostrar presiones</translation>
@@ -5575,6 +5591,7 @@
 <translation id="851263357009351303">Siempre permitir que <ph name="HOST" /> muestre imágenes</translation>
 <translation id="8513108775083588393">Giro automático</translation>
 <translation id="8514746246728959655">Prueba con otra llave de seguridad</translation>
+<translation id="851960115758509829">Se sincronizarán tus apps, opciones de configuración y otras personalizaciones en todos los dispositivos con el Sistema operativo Chrome a los que hayas accedido con tu Cuenta de Google.</translation>
 <translation id="8521475323816527629">Accede a las apps rápidamente</translation>
 <translation id="8523493869875972733">Conservar cambios</translation>
 <translation id="8523849605371521713">Agregada por la política</translation>
@@ -5856,11 +5873,13 @@
 <translation id="885701979325669005">Almacenamiento</translation>
 <translation id="8859057652521303089">Selecciona tu idioma:</translation>
 <translation id="8859174528519900719">Submarco: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Cuenta parental</translation>
 <translation id="8862003515646449717">Cambia a un navegador rápido</translation>
 <translation id="8863753581171631212">Abrir vínculo en una ventana nueva de <ph name="APP" /></translation>
 <translation id="8864055848767439877">Compartiendo <ph name="TAB_NAME" /> en <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Se quitó <ph name="EMAIL" /> de este dispositivo</translation>
 <translation id="8867228703146808825">Copiar detalles de la compilación al portapapeles</translation>
+<translation id="8868333925931032127">Inicio del modo de demostración</translation>
 <translation id="8868626022555786497">En uso</translation>
 <translation id="8870413625673593573">Cerrado recientemente</translation>
 <translation id="8871551568777368300">Fijado por el administrador</translation>
@@ -5939,6 +5958,7 @@
 <translation id="8966870118594285808">Volver a abrir una pestaña si la cerraste por accidente</translation>
 <translation id="8967866634928501045">Presiona Alt+mayúscula+A para mostrar</translation>
 <translation id="8968766641738584599">Guardar la tarjeta</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> no puede revisar las contraseñas. Vuelve a intentarlo dentro de 24 horas o <ph name="BEGIN_LINK" />revisa las contraseñas en tu Cuenta de Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Esc</translation>
 <translation id="8972513834460200407">Consulta con tu administrador de red para asegurarte de que el firewall no esté bloqueando las descargas de los servidores de Google.</translation>
 <translation id="8973557916016709913">Quitar el nivel de zoom</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index f4df806..3f2e779 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dispositivos disponibles</translation>
 <translation id="1042174272890264476">El ordenador también incluye la biblioteca RLZ de <ph name="SHORT_PRODUCT_NAME" />. RLZ asigna una etiqueta identificable, no exclusiva y no personal para medir las búsquedas y el uso de <ph name="SHORT_PRODUCT_NAME" /> derivados de una determinada campaña promocional. Estas etiquetas aparecen a veces en las consultas de la Búsqueda de Google realizadas en <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">¿Quieres borrar también los datos de estas aplicaciones?</translation>
+<translation id="1045448422538531528">Añadir al grupo</translation>
 <translation id="1046635659603195359">Parece que ya has configurado Voice Match con el Asistente de Google en otro dispositivo. Esas grabaciones anteriores pueden servir para crear un modelo de voz en este dispositivo. No debería llevar más de un minuto.</translation>
 <translation id="104710386808485638">¿Quieres reiniciar Linux?</translation>
 <translation id="1047431265488717055">Copiar te&amp;xto de enlace</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Bloquear siempre el acceso a la cámara</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> quiere restablecer la configuración predeterminada original de Chrome. Se restablecerá la página principal, la página Nueva pestaña y el motor de búsqueda. Asimismo, se inhabilitarán las extensiones y no se fijará ninguna pestaña. También se borrarán los datos temporales y los almacenados en la memoria caché, como las cookies, el contenido y los datos de sitios.</translation>
+<translation id="1084096383128641877">Aunque quites esta contraseña, no se eliminará tu cuenta de <ph name="DOMAIN" />. Cambia la contraseña o elimina tu cuenta de <ph name="DOMAIN_LINK" /> para protegerla de otros.</translation>
 <translation id="1084824384139382525">Copiar dir&amp;ección de enlace</translation>
 <translation id="1085697365578766383">No se ha podido iniciar la máquina virtual. Inténtalo de nuevo.</translation>
 <translation id="1090126737595388931">No se están ejecutando aplicaciones en segundo plano.</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">La comprobación de seguridad se ejecutó ayer</translation>
 <translation id="1260451001046713751">Permitir siempre ventanas emergentes y redirecciones de <ph name="HOST" /></translation>
 <translation id="126156426083987769">Ha habido un problema con las licencias del modo de demostración del dispositivo.</translation>
+<translation id="1263490604593716556">Cuenta gestionada por <ph name="FIRST_PARENT_EMAIL" /> y <ph name="SECOND_PARENT_EMAIL" />. Para cerrar la sesión en la cuenta principal de este dispositivo, haz clic en la hora que aparece en la pantalla. En el menú que aparecerá, haz clic en Cerrar sesión.</translation>
 <translation id="126710816202626562">Idioma de traducción:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Interrumpir</translation>
@@ -292,7 +295,7 @@
 <translation id="1398853756734560583">Maximizar</translation>
 <translation id="139911022479327130">Desbloquea tu teléfono y confirma que eres tú</translation>
 <translation id="1399511500114202393">Sin certificado de usuario</translation>
-<translation id="1401308693935339022">Usa la ubicación. Permite que las aplicaciones y los servicios que tienen permiso de ubicación utilicen la ubicación de este dispositivo. Es posible que Google recopile datos de ubicación de forma periódica y los utilice de forma anónima para mejorar la precisión de la ubicación y los servicios basados en la ubicación.</translation>
+<translation id="1401308693935339022">Usa la ubicación. Permite que las aplicaciones y los servicios que tienen permiso de ubicación utilicen la ubicación de este dispositivo. Es posible que Google recoja datos de ubicación de forma periódica y los utilice de forma anónima para mejorar la precisión de la ubicación y los servicios basados en la ubicación.</translation>
 <translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" /> (supervisado)</translation>
 <translation id="1405779994569073824">Error.</translation>
 <translation id="1406500794671479665">Verificando...</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Sitio web</translation>
 <translation id="15662109988763471">La impresora seleccionada no se encuentra disponible o no se ha instalado correctamente. Comprueba tu impresora o prueba a seleccionar otra.</translation>
 <translation id="1567387640189251553">Se ha conectado otro teclado desde la última vez que introdujiste la contraseña. Es posible que esté intentando captar tus pulsaciones de teclas.</translation>
-<translation id="1567750922576943685">Verificar tu identidad ayuda a proteger tu información personal</translation>
 <translation id="1567993339577891801">Consola JavaScript</translation>
 <translation id="1568323446248056064">Abrir la configuración de la pantalla</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (invitado)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Arte</translation>
 <translation id="1697686431566694143">Editar archivo</translation>
 <translation id="1698122934742150150">Solo a la sesión de incógnito actual</translation>
-<translation id="1698650002254827833">No se ha podido cargar la lista de aplicaciones. Vuelve a intentarlo.</translation>
 <translation id="1700079447639026019">Sitios web que no pueden usar cookies nunca</translation>
 <translation id="1701062906490865540">Eliminar este perfil</translation>
 <translation id="1703331064825191675">No vuelvas a preocuparte por tus contraseñas</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Continuar</translation>
 <translation id="2173302385160625112">Comprueba tu conexión a Internet</translation>
 <translation id="2173801458090845390">Añadir solicitud de ID para este dispositivo</translation>
+<translation id="2174948148799307353">Cuenta gestionada por <ph name="PARENT_EMAIL" />. Para cerrar la sesión en la cuenta principal de este dispositivo, haz clic en la hora que aparece en la pantalla. En el menú que aparecerá, haz clic en Cerrar sesión.</translation>
 <translation id="2175607476662778685">Barra de inicio rápido</translation>
 <translation id="217576141146192373">No se ha podido añadir la impresora. Revisa la configuración de tu impresora y vuelve a intentarlo.</translation>
 <translation id="2177950615300672361">Pestaña de incógnito: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Sombra del texto</translation>
 <translation id="2445081178310039857">El directorio raíz de la extensión es obligatorio.</translation>
 <translation id="2445484935443597917">Crear perfil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> quiere verificar tu identidad</translation>
 <translation id="2448312741937722512">Tipo</translation>
 <translation id="2450223707519584812">No podrás añadir usuarios porque faltan las claves de la API de Google. Consulta <ph name="DETAILS_URL" /> para obtener más información.</translation>
 <translation id="2450849356604136918">No hay vistas activas</translation>
@@ -1478,7 +1479,8 @@
 <translation id="2947605845283690091">La navegación web debería ser rápida. Dedica un momento a <ph name="BEGIN_LINK" />revisar tus extensiones<ph name="END_LINK" /> ahora.</translation>
 <translation id="2948300991547862301">Ir a <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Un navegador web rápido, seguro y fácil de usar creado para la Web actual.</translation>
-<translation id="2949289451367477459">Usar ubicación. Permite que los servicios y aplicaciones con permiso de ubicación utilicen la ubicación de este dispositivo. Es posible que Google recopile datos de ubicación periódicamente y que los utilice de forma anónima para mejorar la precisión de la ubicación y los servicios basados en la ubicación. <ph name="BEGIN_LINK1" />Más información<ph name="END_LINK1" /></translation>
+<translation id="2949289451367477459">Usar ubicación. Permite que los servicios y aplicaciones con permiso de ubicación utilicen la ubicación de este dispositivo. Es posible que Google recoja datos de ubicación periódicamente y que los utilice de forma anónima para mejorar la precisión de la ubicación y los servicios basados en la ubicación. <ph name="BEGIN_LINK1" />Más información<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Quiero registrarme</translation>
 <translation id="2956070239128776395">Sección anidada dentro de un grupo: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">No permitir a ningún sitio web editar archivos o carpetas de tu dispositivo</translation>
 <translation id="2958721676848865875">Advertencia sobre el empaquetado de extensión</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Avatar amarillo predeterminado</translation>
 <translation id="3141318088920353606">Escuchando...</translation>
 <translation id="3141917231319778873">"<ph name="DEVICE_NAME" />" no admite la solicitud proporcionada.</translation>
+<translation id="3142562627629111859">Nuevo grupo</translation>
 <translation id="3143515551205905069">Cancelar sincronización</translation>
 <translation id="3143754809889689516">Reproducir desde el principio</translation>
 <translation id="3144647712221361880">Abrir enlace como</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Beis</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (respaldado por hardware)</translation>
 <translation id="3161522574479303604">Todos los idiomas</translation>
+<translation id="3162853326462195145">Cuenta de centro educativo</translation>
 <translation id="3162899666601560689">Los sitios web pueden usar cookies para mejorar tu experiencia de navegación, por ejemplo, para mantener tu sesión iniciada o recordar los artículos de tu carrito de la compra</translation>
 <translation id="3163201441334626963">Producto <ph name="PRODUCT_ID" /> del proveedor <ph name="VENDOR_ID" /> desconocido</translation>
 <translation id="3164329792803560526">Compartiendo esta pestaña con <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Actualizar dispositivo dentro de 1 día}other{Actualizar dispositivo dentro de # días}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" />: error de red</translation>
 <translation id="3248902735035392926">Tu seguridad es importante. Dedica un momento a <ph name="BEGIN_LINK" />revisar tus extensiones<ph name="END_LINK" /> ahora</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;No incluido en el certificado&gt;</translation>
 <translation id="3253225298092156258">No disponible</translation>
 <translation id="3253448572569133955">Cuenta desconocida</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Al hacer clic en el botón "Aceptar y continuar", declaras que estás conforme con el proceso descrito anteriormente de estos servicios de Google.</translation>
 <translation id="3399432415385675819">Se inhabilitarán las notificaciones</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz) - entrelazado</translation>
+<translation id="3402585168444815892">Registrándose en modo demo</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">No hay contraseñas guardadas de este sitio web</translation>
 <translation id="3405664148539009465">Personalizar fuentes</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Teléfono Android</translation>
 <translation id="3470442499439619530">Eliminar este usuario</translation>
 <translation id="3471876058939596279">No se pueden usar los puertos HDMI y USB tipo C para vídeo al mismo tiempo. Usa otro puerto de vídeo.</translation>
+<translation id="3473241910002674503">Desplázate al escritorio, vuelve y cambia de aplicación con botones en el modo tablet.</translation>
 <translation id="3473479545200714844">Lupa</translation>
 <translation id="3475843873335999118">Sigue sin reconocerse tu huella digital. Introduce la contraseña.</translation>
 <translation id="3476303763173086583">Enviar datos de uso y diagnóstico. Contribuye a mejorar la experiencia de Android de tu hijo enviando automáticamente a Google datos de diagnóstico, del dispositivo y del uso de las aplicaciones. Los datos no se usarán para identificar a tu hijo, sino para aumentar la estabilidad de las aplicaciones y del sistema y realizar otras mejoras. Parte de los datos recogidos también ayudarán a las aplicaciones y los colaboradores de Google, como los desarrolladores de Android. El propietario ha aplicado este <ph name="BEGIN_LINK1" />ajuste<ph name="END_LINK1" />. El propietario puede elegir si se envían a Google datos de uso y diagnóstico de este dispositivo. Si la opción Actividad en la Web y en Aplicaciones Adicional está activada, es posible que estos datos se guarden en la cuenta de Google de tu hijo. <ph name="BEGIN_LINK2" />Más información<ph name="END_LINK2" /></translation>
@@ -2274,6 +2279,7 @@
 <translation id="3971764089670057203">Huellas digitales de esta llave de seguridad</translation>
 <translation id="3973660817924297510">Comprobando contraseñas (<ph name="CHECKED_PASSWORDS" /> de <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Se ha producido un error al contactar con el servidor del dominio</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> no puede comprobar tus contraseñas. Vuelve a intentarlo más tarde.</translation>
 <translation id="3976108569178263973">No hay impresoras disponibles.</translation>
 <translation id="397703832102027365">Finalizando...</translation>
 <translation id="3977886311744775419">Este tipo de red no admite que se descarguen actualizaciones de forma automática, pero puedes buscar actualizaciones manualmente.</translation>
@@ -2337,6 +2343,7 @@
 <translation id="4068506536726151626">Esta página contiene elementos de los siguientes sitios que hacen un seguimiento de tu ubicación:</translation>
 <translation id="4068776064906523561">Huellas digitales guardadas</translation>
 <translation id="407173827865827707">Al hacer clic</translation>
+<translation id="4073520450811433493">Sincronización de ajustes</translation>
 <translation id="4074900173531346617">Certificado de firma de correo electrónico</translation>
 <translation id="407520071244661467">Escala</translation>
 <translation id="4075639477629295004">No se puede enviar <ph name="FILE_NAME" />.</translation>
@@ -2573,6 +2580,7 @@
 <translation id="4421932782753506458">Gatito</translation>
 <translation id="4423376891418188461">Restaurar configuración</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, tu administrador solicita que cambies la contraseña.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> no puede comprobar tus contraseñas. Vuelve a intentarlo en 24 horas.</translation>
 <translation id="4429030830601238961">Estos datos infringen las políticas de seguridad de tu organización y no se pueden pegar.</translation>
 <translation id="4430019312045809116">Volumen</translation>
 <translation id="4430369329743628066">Añadida a Marcadores</translation>
@@ -2585,6 +2593,7 @@
 <translation id="4441124369922430666">¿Quieres que esta aplicación se inicie de forma automática cuando se active el ordenador?</translation>
 <translation id="4441147046941420429">Para seguir, saca la llave de seguridad del dispositivo, vuelve a meterla y pulsa el botón de activación.</translation>
 <translation id="444134486829715816">Ampliar...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> puede comprobar tus contraseñas si inicias sesión con tu cuenta de Google.</translation>
 <translation id="4442424173763614572">Error al buscar DNS</translation>
 <translation id="4443536555189480885">&amp;Ayuda</translation>
 <translation id="4444304522807523469">Acceder a escáneres de documentos conectados a través de USB o en la red local</translation>
@@ -2611,11 +2620,13 @@
 <translation id="4476659815936224889">Para escanear este código, puedes usar una aplicación de escaneo de QR de tu teléfono o algunas aplicaciones de cámara.</translation>
 <translation id="4477015793815781985">Incluye Ctrl, Alt o ⌘</translation>
 <translation id="4478664379124702289">Guardar enlac&amp;e como...</translation>
+<translation id="4478777936860197922">No hay ninguna contraseña guardada. <ph name="IDS_SHORT_PRODUCT_NAME" /> puede comprobar tus contraseñas cuando las guardas.</translation>
 <translation id="4479424953165245642">Administrar aplicaciones del kiosco</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Se está configurando la máquina virtual. Este proceso puede tardar unos minutos.</translation>
 <translation id="4480590691557335796">Chrome puede encontrar software dañino en tu ordenador y eliminarlo</translation>
 <translation id="4481530544597605423">Dispositivos desvinculados</translation>
+<translation id="4488107067273194838">Revisar opciones de sincronización del navegador después de la configuración</translation>
 <translation id="4488502501195719518">¿Quieres borrar todos los datos?</translation>
 <translation id="4495419450179050807">No mostrar en esta página</translation>
 <translation id="4496054781541092778">bloqueado automáticamente: <ph name="PERMISSION" /></translation>
@@ -2821,7 +2832,7 @@
 <translation id="479536056609751218">Página web (solo HTML)</translation>
 <translation id="4798236378408895261">Adjuntar <ph name="BEGIN_LINK" />registros de Bluetooth<ph name="END_LINK" /> (opción interna de Google)</translation>
 <translation id="4801448226354548035">Ocultar cuentas</translation>
-<translation id="4801512016965057443">Permitir la itinerancia de datos móviles</translation>
+<translation id="4801512016965057443">Permitir itinerancia de datos móviles</translation>
 <translation id="4804818685124855865">Desconectar</translation>
 <translation id="4804827417948292437">Aguacate</translation>
 <translation id="4805077164141082536">Te recomendamos que hagas una copia de seguridad de tu contenedor de Linux antes de actualizar.</translation>
@@ -2857,6 +2868,7 @@
 <translation id="4849517651082200438">No instalar</translation>
 <translation id="4850669014075537160">Desplazamiento</translation>
 <translation id="4850886885716139402">Ver</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> te enviará una notificación cuando inicies sesión con una contraseña vulnerada</translation>
 <translation id="4853020600495124913">Abrir en una ventana &amp;nueva</translation>
 <translation id="4854317507773910281">Elige una cuenta parental para la aprobación</translation>
 <translation id="485480310608090163">Más ajustes y permisos</translation>
@@ -2875,6 +2887,7 @@
 <translation id="4871322859485617074">El PIN contiene caracteres no válidos</translation>
 <translation id="4871370605780490696">Añadir marcador</translation>
 <translation id="4871719318659334896">Cerrar grupo</translation>
+<translation id="4871852311166078968">Añadir al grupo</translation>
 <translation id="4873312501243535625">Comprobador de archivos multimedia</translation>
 <translation id="4876273079589074638">Cuéntanos lo que ocurrió paso a paso para que nuestros ingenieros puedan investigar y solucionar el error. Cualquier detalle es importante.</translation>
 <translation id="4876895919560854374">Bloquear y desbloquear la pantalla</translation>
@@ -2966,7 +2979,6 @@
 <translation id="4992473555164495036">Tu administrador ha limitado los métodos de introducción disponibles.</translation>
 <translation id="4994474651455208930">Permitir que los sitios web se conviertan en controladores de protocolos predeterminados</translation>
 <translation id="4994754230098574403">Se está configurando</translation>
-<translation id="4996978546172906250">Compartir a través de</translation>
 <translation id="4997086284911172121">Sin conexión a Internet.</translation>
 <translation id="4997384734315285248">Desinstalar Plugin VM</translation>
 <translation id="4998430619171209993">Activado</translation>
@@ -3066,7 +3078,6 @@
 <translation id="5135085122826131075">Accede al Asistente cuando digas "Ok Google".</translation>
 <translation id="5135533361271311778">No se ha podido crear un elemento de marcador.</translation>
 <translation id="5137501176474113045">Eliminar este elemento</translation>
-<translation id="5138982052046316113">Cambiar el tamaño de disco de Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, búsqueda de <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Introduce el PIN de tu llave de seguridad. Si no sabes cuál es el PIN, tendrás que restablecer la llave de seguridad.</translation>
 <translation id="5139955368427980650">&amp;Abrir</translation>
@@ -3399,7 +3410,7 @@
 <translation id="5582839680698949063">Menú principal</translation>
 <translation id="5583640892426849032">Tecla de retroceso</translation>
 <translation id="5584088138253955452">¿Quieres guardar el nombre de usuario?</translation>
-<translation id="5584915726528712820"><ph name="BEGIN_PARAGRAPH1" />Se trata de información general sobre el dispositivo y su uso (como el nivel de batería, la actividad de las aplicaciones y del sistema, y los errores). Sirve para mejorar Android, y parte de los datos recogidos también ayudan a las aplicaciones y colaboradores de Google, como los desarrolladores de Android, a mejorar sus productos y aplicaciones.<ph name="END_PARAGRAPH1" />
+<translation id="5584915726528712820"><ph name="BEGIN_PARAGRAPH1" />Se trata de información general sobre el dispositivo y su uso (como el nivel de batería, la actividad de las aplicaciones y del sistema, y los errores). Sirve para mejorar Android, y parte de los datos recogidos también ayudan a las aplicaciones y partners de Google, como los desarrolladores de Android, a mejorar sus productos y aplicaciones.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Si la opción se desactiva, esto no afectará a la capacidad del dispositivo de enviar la información necesaria para recibir servicios esenciales, como actualizaciones del sistema y funciones de seguridad.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />El propietario puede controlar esta función en Ajustes &gt; Configuración avanzada &gt; Enviar automáticamente los datos de uso y diagnóstico a Google.<ph name="END_PARAGRAPH3" />
     <ph name="BEGIN_PARAGRAPH4" />Si has activado la opción Actividad en la Web y en Aplicaciones, es posible que estos datos se guarden en tu cuenta de Google. Puedes consultar tus datos, eliminarlos y cambiar la configuración de tu cuenta en la página account.google.com.<ph name="END_PARAGRAPH4" /></translation>
@@ -3518,6 +3529,7 @@
 <translation id="5739235828260127894">Esperando verificación. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" />.</translation>
 <translation id="5739458112391494395">Muy grande</translation>
 <translation id="574209121243317957">Tono</translation>
+<translation id="5745136023067925867">Recibe consejos, ofertas y novedades sobre <ph name="DEVICE_TYPE" />, y comparte tu opinión</translation>
 <translation id="5746169159649715125">Guardar como PDF</translation>
 <translation id="5747552184818312860">Caduca</translation>
 <translation id="5747785204778348146">Desarrollador: versión inestable</translation>
@@ -3764,7 +3776,7 @@
 <translation id="6073903501322152803">Añadir funciones de accesibilidad</translation>
 <translation id="6075731018162044558">¡Vaya! El sistema no ha podido obtener un token de acceso a la API a largo plazo para este dispositivo.</translation>
 <translation id="6075907793831890935">Intercambiar datos con el dispositivo denominado <ph name="HOSTNAME" /></translation>
-<translation id="6076175485108489240">Usar ubicación. Permite que los servicios y aplicaciones con permiso de ubicación utilicen la ubicación de este dispositivo. Es posible que Google recopile datos de ubicación periódicamente y que los utilice de forma anónima para mejorar la precisión de la ubicación y los servicios basados en la ubicación. <ph name="BEGIN_LINK1" />Más información<ph name="END_LINK1" /></translation>
+<translation id="6076175485108489240">Usar ubicación. Permite que los servicios y aplicaciones con permiso de ubicación utilicen la ubicación de este dispositivo. Es posible que Google recoja datos de ubicación periódicamente y que los utilice de forma anónima para mejorar la precisión de la ubicación y los servicios basados en la ubicación. <ph name="BEGIN_LINK1" />Más información<ph name="END_LINK1" /></translation>
 <translation id="6076448957780543068">Incluir esta captura de pantalla</translation>
 <translation id="6076491747490570887">Gris frío</translation>
 <translation id="6077131872140550515">Quitar de las redes preferidas</translation>
@@ -3890,7 +3902,7 @@
 <translation id="6241844896329831164">No se necesita acceso</translation>
 <translation id="6242589501614145408">Restablecer tu llave de seguridad</translation>
 <translation id="6242852299490624841">Destacar esta pestaña</translation>
-<translation id="6243280677745499710">Configurado actualmente</translation>
+<translation id="6243280677745499710">Establecido actualmente</translation>
 <translation id="6243774244933267674">Servidor no disponible</translation>
 <translation id="6246790815526961700">Subir desde dispositivo</translation>
 <translation id="6247620186971210352">No se han encontrado aplicaciones</translation>
@@ -3930,7 +3942,6 @@
 <translation id="6291953229176937411">&amp;Mostrar en Finder</translation>
 <translation id="6295158916970320988">Todos los sitios</translation>
 <translation id="6295855836753816081">Guardando...</translation>
-<translation id="629730747756840877">Cuenta</translation>
 <translation id="6298962879096096191">Usa Google Play para descargar aplicaciones de Android</translation>
 <translation id="630065524203833229">&amp;Salir</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> no se ha podido configurar automáticamente. Debes especificar información detallada de la impresora. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
@@ -4336,7 +4347,6 @@
 <translation id="6865598234501509159">La página no está en <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Registros de eventos de WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura del color</translation>
-<translation id="6870888490422746447">Elige una aplicación con la que compartir el contenido:</translation>
 <translation id="6871644448911473373">Respuesta de OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">El servidor ha rechazado la contraseña que has introducido.</translation>
 <translation id="6876155724392614295">Bici</translation>
@@ -4429,6 +4439,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" />: Registro de actividad</translation>
 <translation id="6997707937646349884">En tus dispositivos:</translation>
 <translation id="6998793565256476099">Registrar dispositivo para hacer videoconferencias</translation>
+<translation id="6999956497249459195">Nuevo grupo</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> está conectada, pero es necesario configurarla</translation>
 <translation id="7000347579424117903">Incluye Ctrl, Alt o la tecla de búsqueda</translation>
 <translation id="7001036685275644873">Copia de seguridad de aplicaciones y archivos de Linux</translation>
@@ -4727,6 +4738,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Configurar la conexión en tu <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Ignorar este mensaje</translation>
+<translation id="7403642243184989645">Descargando recursos</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{La comprobación de seguridad se realizó hace 1 hora}other{La comprobación de seguridad se realizó hace {NUM_HOURS} horas}}</translation>
 <translation id="740624631517654988">Ventana emergente bloqueada</translation>
 <translation id="7407430846095439694">Importar y vincular</translation>
@@ -4963,6 +4975,7 @@
 <translation id="7716781361494605745">URL de política de la entidad emisora de certificados de Netscape</translation>
 <translation id="7717014941119698257">Descargando: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Buscar actualizaciones</translation>
+<translation id="7719070594859855691">Dar acceso a la cámara</translation>
 <translation id="7719367874908701697">Zoom de la página</translation>
 <translation id="7721179060400456005">Permitir que las ventanas ocupen pantallas</translation>
 <translation id="7722040605881499779">Espacio necesario para la actualización: <ph name="NECESSARY_SPACE" /></translation>
@@ -4977,7 +4990,6 @@
 <translation id="7744047395460924128">Ver tu historial de impresiones</translation>
 <translation id="7744192722284567281">Encontrada en una quiebra de seguridad de datos</translation>
 <translation id="7750228210027921155">Imagen en imagen</translation>
-<translation id="7751229152614300329">La Navegación Segura está actualizada y te protege de descargas y sitios web dañinos</translation>
 <translation id="7751260505918304024">Mostrar todo</translation>
 <translation id="7754704193130578113">Preguntar dónde se guardará cada archivo antes de descargarlo</translation>
 <translation id="7755287808199759310">Uno de tus padres puede desbloquearlo</translation>
@@ -5065,6 +5077,7 @@
     <ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> El sistema se reiniciará durante el proceso.</translation>
 <translation id="7828731929332799387">Se eliminarán todas las cookies y los datos de sitios web disponibles en contextos de terceros. ¿Quieres continuar?</translation>
 <translation id="7829298379596169484">Accediendo a la entrada de audio</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> no puede comprobar tus contraseñas. Revisa tu conexión a Internet.</translation>
 <translation id="7829877209233347340">Pídele a tu padre o a tu madre que inicie sesión para permitir que se añada una cuenta de centro educativo</translation>
 <translation id="7830594666202422257">Conectar a Linux</translation>
 <translation id="7831491651892296503">No se ha podido configurar la red</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">Se está instalando Google Play Store en tu <ph name="DEVICE_TYPE" />. Este proceso puede tardar unos minutos.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{No hay cookies de terceros}=1{Se ha bloqueado 1 cookie de terceros}other{Se han bloqueado # cookies de terceros}}</translation>
 <translation id="810875025413331850">No se ha encontrado ningún dispositivo cerca.</translation>
+<translation id="8114199541033039755">Desplázate al escritorio, vuelve y cambia de aplicación con botones en el modo tablet. Se activa cuando ChromeVox o los clics automáticos están habilitados.</translation>
 <translation id="8114875720387900039">División horizontal</translation>
 <translation id="8116972784401310538">Administrador de &amp;marcadores</translation>
 <translation id="8117620576188476503">Administra los ajustes, conexiones y actualizaciones con la bandeja de estado. Para acceder a ella con el teclado, pulsa Alt + Mayús + S.</translation>
@@ -5406,7 +5420,8 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ha inhabilitado el cursor de tu ratón.</translation>
 <translation id="8264024885325823677">Este ajuste lo gestiona tu administrador.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> ha activado el modo de pantalla completa.</translation>
-<translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Se trata de información general sobre el dispositivo y su uso, como el nivel de batería, la actividad de las aplicaciones y del sistema, y los errores. Sirve para mejorar Android, y parte de los datos recogidos también ayudan a las aplicaciones y colaboradores de Google, como los desarrolladores de Android, a mejorar sus productos y aplicaciones.<ph name="END_PARAGRAPH1" />
+<translation id="826511437356419340">Se ha cambiado al modo de vista general. Desliza el dedo para desplazarte o pulsa el tabulador si usas un teclado.</translation>
+<translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Se trata de información general sobre el dispositivo y su uso, como el nivel de batería, la actividad de las aplicaciones y del sistema, y los errores. Sirve para mejorar Android, y parte de los datos recogidos también ayudan a las aplicaciones y partners de Google, como los desarrolladores de Android, a mejorar sus productos y aplicaciones.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Si la opción se desactiva, esto no afectará a la capacidad del dispositivo de enviar la información necesaria para recibir servicios esenciales, como actualizaciones del sistema y funciones de seguridad.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />El propietario puede controlar esta función en Ajustes &gt; Configuración avanzada &gt; Enviar automáticamente los datos de uso y diagnóstico a Google.<ph name="END_PARAGRAPH3" />
     <ph name="BEGIN_PARAGRAPH4" />Si has activado la opción Actividad en la Web y en Aplicaciones, es posible que estos datos se guarden en la cuenta de Google de tu hijo. Consulta más información sobre estos ajustes y sobre cómo configurarlos en families.google.com.<ph name="END_PARAGRAPH4" /></translation>
@@ -5514,6 +5529,7 @@
 <translation id="8426713856918551002">Habilitando</translation>
 <translation id="8427292751741042100">insertado en otro host</translation>
 <translation id="8428213095426709021">Configuración</translation>
+<translation id="8428271547607112339">Añadir cuenta de centro educativo</translation>
 <translation id="8428628598981198790">No puedes utilizar tu llave de seguridad en este sitio web</translation>
 <translation id="84297032718407999">Tu sesión se cerrará en <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Mostrar toques</translation>
@@ -5577,6 +5593,7 @@
 <translation id="851263357009351303">Permitir siempre que <ph name="HOST" /> muestre imágenes</translation>
 <translation id="8513108775083588393">Girar automáticamente</translation>
 <translation id="8514746246728959655">Prueba con una llave de seguridad diferente</translation>
+<translation id="851960115758509829">Tus aplicaciones, ajustes y otras personalizaciones se sincronizarán en todos los dispositivos Chrome OS en los que hayas iniciado sesión con tu cuenta de Google.</translation>
 <translation id="8521475323816527629">Accede rápidamente a tus aplicaciones</translation>
 <translation id="8523493869875972733">Mantener cambios</translation>
 <translation id="8523849605371521713">Añadida por política</translation>
@@ -5858,11 +5875,13 @@
 <translation id="885701979325669005">Almacenamiento</translation>
 <translation id="8859057652521303089">Selecciona tu idioma:</translation>
 <translation id="8859174528519900719">Submarco: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Cuenta parental</translation>
 <translation id="8862003515646449717">Cambia a un navegador rápido</translation>
 <translation id="8863753581171631212">Abrir enlace en una ventana nueva de <ph name="APP" /></translation>
 <translation id="8864055848767439877">Compartiendo <ph name="TAB_NAME" /> con <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Se ha eliminado <ph name="EMAIL" /> del dispositivo</translation>
 <translation id="8867228703146808825">Copiar detalles de compilación al portapapeles</translation>
+<translation id="8868333925931032127">Iniciando modo demo</translation>
 <translation id="8868626022555786497">En uso</translation>
 <translation id="8870413625673593573">Cerrado recientemente</translation>
 <translation id="8871551568777368300">Fijada por el administrador</translation>
@@ -5941,6 +5960,7 @@
 <translation id="8966870118594285808">Vuelve a abrir una pestaña si se cierra por error</translation>
 <translation id="8967866634928501045">Pulsa Alt + Mayús + A para mostrarlo</translation>
 <translation id="8968766641738584599">Guardar tarjeta</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> no puede comprobar tus contraseñas. Vuelve a intentarlo en 24 horas o <ph name="BEGIN_LINK" />comprueba las contraseñas en tu cuenta de Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Esc</translation>
 <translation id="8972513834460200407">Consulta al administrador de tu red para asegurarte de que el cortafuegos no está bloqueando las descargas procedentes de los servidores de Google.</translation>
 <translation id="8973557916016709913">Quitar el nivel de zoom</translation>
@@ -5979,7 +5999,7 @@
 <translation id="9018218886431812662">Instalación completada</translation>
 <translation id="901834265349196618">correo electrónico</translation>
 <translation id="9019062154811256702">Leer y cambiar la configuración de Autocompletar</translation>
-<translation id="9019894137004772119">Usa la ubicación. Permite que las aplicaciones y los servicios que tienen permiso de ubicación utilicen la ubicación de tu dispositivo. Es posible que Google recopile datos de ubicación de forma periódica y los utilice de forma anónima para mejorar la precisión de la ubicación y los servicios basados en la ubicación.</translation>
+<translation id="9019894137004772119">Usa la ubicación. Permite que las aplicaciones y los servicios que tienen permiso de ubicación utilicen la ubicación de tu dispositivo. Es posible que Google recoja datos de ubicación de forma periódica y los utilice de forma anónima para mejorar la precisión de la ubicación y los servicios basados en la ubicación.</translation>
 <translation id="9020362265352758658">4x</translation>
 <translation id="9021662811137657072">Virus detectado</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> ya utiliza esta cuenta en este ordenador.</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 3785dfb..bed2292b 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Saadaolevad seadmed</translation>
 <translation id="1042174272890264476">Teie arvutil on ka toote <ph name="SHORT_PRODUCT_NAME" /> sisseehitatud RLZ-teek. RLZ määrab korduva ja isikut mittetuvastava ID-tunnuse, et mõõta konkreetse reklaamikampaania tekitatud otsinguid ja toote <ph name="SHORT_PRODUCT_NAME" /> kasutust. Need sildid kuvatakse vahel ka tootes <ph name="PRODUCT_NAME" /> Google'i otsingupäringutes.</translation>
 <translation id="1043818413152647937">Kas kustutada andmed ka nendest rakendustest?</translation>
+<translation id="1045448422538531528">Lisa gruppi</translation>
 <translation id="1046635659603195359">Näib, et olete Voice Matchi oma Google'i assistendiga juba mõnes teises seadmes seadistanud. Neid varasemaid salvestisi saab kasutada häälemudeli loomiseks selles seadmes. See peaks võtma alla minuti.</translation>
 <translation id="104710386808485638">Kas taaskäivitada Linux?</translation>
 <translation id="1047431265488717055">Kopeeri lingi te&amp;kst</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Blokeeri alati juurdepääs kaamerale</translation>
 <translation id="1082398631555931481">Tööriist <ph name="THIRD_PARTY_TOOL_NAME" /> soovib teie Chrome'i seaded lähtestada algsetele vaikevalikutele. See lähtestab teie avalehe, uue vahelehe ja otsingumootori, keelab laiendused ning vabastab kõik vahelehed. Peale selle kustutatakse kõik muud ajutised ja vahemällu salvestatud andmed, nagu küpsisefailid ning sisu- ja saidiandmed.</translation>
+<translation id="1084096383128641877">Selle parooli eemaldamisel ei kustutata teie kontot saidil <ph name="DOMAIN" />. Muutke oma parooli või kustutage saidil <ph name="DOMAIN_LINK" /> olev konto, et parooli kaitsta.</translation>
 <translation id="1084824384139382525">Kopeeri lingi aadr&amp;ess</translation>
 <translation id="1085697365578766383">Viga virtuaalseadme käivitamisel. Proovige uuesti.</translation>
 <translation id="1090126737595388931">Taustal rakendusi ei tööta</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Ohutuskontroll tehti eile</translation>
 <translation id="1260451001046713751">Luba alati hüpikaknad ja ümbersuunamised saidilt <ph name="HOST" /></translation>
 <translation id="126156426083987769">Ilmnes demorežiimis seadmete litsentsidega seotud probleem.</translation>
+<translation id="1263490604593716556">Kontot haldavad <ph name="FIRST_PARENT_EMAIL" /> ja <ph name="SECOND_PARENT_EMAIL" />. Selles seadmes peamiselt kontolt väljalogimiseks klõpsake ekraanikuval kellaajal. Klõpsake kuvatavas menüüs käsul „Logi välja”.</translation>
 <translation id="126710816202626562">Tõlkimiskeel:</translation>
 <translation id="126768002343224824">16-kordne</translation>
 <translation id="1272079795634619415">Peata</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Veebisait</translation>
 <translation id="15662109988763471">Valitud printer pole saadaval või pole õigesti installitud. Kontrollige printerit või valige teine printer.</translation>
 <translation id="1567387640189251553">Pärast parooli viimast sisestamist on ühendatud teine klaviatuur. See võib üritada varastada teie klahvivajutusi.</translation>
-<translation id="1567750922576943685">Teie identiteedi kinnitamine aitab teie isiklikke andmeid kaitsta</translation>
 <translation id="1567993339577891801">JavaScripti konsool</translation>
 <translation id="1568323446248056064">Kuvaseadme seadete avamine</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Külaline)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Kunst</translation>
 <translation id="1697686431566694143">Muuda faili</translation>
 <translation id="1698122934742150150">Ainult praegune inkognito seanss</translation>
-<translation id="1698650002254827833">Rakenduste loendit ei saa laadida. Proovige uuesti.</translation>
 <translation id="1700079447639026019">Saidid, mis ei tohi kunagi küpsisefaile kasutada</translation>
 <translation id="1701062906490865540">Eemalda see isik</translation>
 <translation id="1703331064825191675">Te ei pea kunagi oma paroolide pärast muretsema</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Jätka</translation>
 <translation id="2173302385160625112">Kontrollige Interneti-ühendust</translation>
 <translation id="2173801458090845390">Lisa seadmesse nõude ID</translation>
+<translation id="2174948148799307353">Kontot haldab <ph name="PARENT_EMAIL" />. Selles seadmes peamiselt kontolt väljalogimiseks klõpsake ekraanikuval kellaajal. Klõpsake kuvatavas menüüs käsul „Logi välja”.</translation>
 <translation id="2175607476662778685">Kiirkäivitusriba</translation>
 <translation id="217576141146192373">Printerit ei saa lisada. Kontrollige oma printeri seadistust ja proovige uuesti.</translation>
 <translation id="2177950615300672361">Inkognito vaheleht: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Teksti vari</translation>
 <translation id="2445081178310039857">Laienduse juurkaust on nõutav.</translation>
 <translation id="2445484935443597917">Loo uus profiil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> soovib teie identiteedi kinnitada</translation>
 <translation id="2448312741937722512">Tüüp</translation>
 <translation id="2450223707519584812">Te ei saa kasutajaid lisada, kuna Google API võtmed puuduvad. Üksikasju vt <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Aktiivsed kuvad puuduvad</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Avage <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Kiire, lihtne ja turvaline veebibrauser, mis on loodud tänapäevase veebi jaoks.</translation>
 <translation id="2949289451367477459">Kasutage asukohta. Lubage asukohale juurdepääsu loaga rakendustel ja teenustel kasutada selle seadme asukohta. Google võib aeg-ajalt koguda asukohaandmeid ja kasutada neid anonüümselt asukoha täpsuse ning asukohapõhiste teenuste parendamiseks. <ph name="BEGIN_LINK1" />Lisateave<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Registreeri</translation>
 <translation id="2956070239128776395">Grupis pesastatud jaotis: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Ära luba ühelgi saidil seadmes olevaid faile või kaustu muuta</translation>
 <translation id="2958721676848865875">Laienduse ettevalmistamise hoiatus</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Kollane vaikeavatar</translation>
 <translation id="3141318088920353606">Kuulamine …</translation>
 <translation id="3141917231319778873">Antud taotlust ei toetata seadmes „<ph name="DEVICE_NAME" />”.</translation>
+<translation id="3142562627629111859">Uus grupp</translation>
 <translation id="3143515551205905069">Tühista sünkroonimine</translation>
 <translation id="3143754809889689516">Esita algusest</translation>
 <translation id="3144647712221361880">Ava link kasutajana</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Beež</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (riistvaratoega)</translation>
 <translation id="3161522574479303604">Kõik keeled</translation>
+<translation id="3162853326462195145">Kooli konto</translation>
 <translation id="3162899666601560689">Saidid võivad kasutada küpsisefaile teie sirvimiskogemuse täiustamiseks, näiteks selleks, et hoida teid sisselogituna või jätta meelde teie ostukorvis olevad esemed</translation>
 <translation id="3163201441334626963">Tundmatu toode <ph name="PRODUCT_ID" /> teenusepakkujalt <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Seda vahelehte jagatakse rakenduses <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Värskendage seadet päeva jooksul}other{Värskendage seadet # päeva jooksul}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – võrguviga</translation>
 <translation id="3248902735035392926">Ohutus on oluline. Leidke hetk ja <ph name="BEGIN_LINK" />vaadake oma laiendused kohe üle<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Ei sisaldu sertifikaadis&gt;</translation>
 <translation id="3253225298092156258">Pole saadaval</translation>
 <translation id="3253448572569133955">Tundmatu konto</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Kui klõpsate nupul „Nõustu ja jätka”, nõustute nende Google'i teenuste puhul andmete ülalkirjeldatud töötlemisega.</translation>
 <translation id="3399432415385675819">Märguanded keelatakse</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertsi) – ülereaskannimine</translation>
+<translation id="3402585168444815892">Demorežiimis registreerumine</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Selle saidi jaoks ei ole salvestatud ühtki parooli</translation>
 <translation id="3405664148539009465">Kohanda fonte</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android-telefon</translation>
 <translation id="3470442499439619530">Eemalda see kasutaja</translation>
 <translation id="3471876058939596279">HDMI- ja C-tüüpi USB-porte ei saa video jaoks samaaegselt kasutada. Kasutage mõnda teist videoporti.</translation>
+<translation id="3473241910002674503">Navigeerige tahvelarvutirežiimis nuppude abil avalehele, tagasi ja vahetage rakendusi.</translation>
 <translation id="3473479545200714844">Ekraanisuurendi</translation>
 <translation id="3475843873335999118">Kahjuks ei suudetud ikka teie sõrmejälge tuvastada. Sisestage oma parool.</translation>
 <translation id="3476303763173086583">Saada kasutus- ja diagnostikaandmeid. Aidake täiustada oma lapse Androidi kasutuskogemust, saates Google'ile automaatselt seadme teavet ning rakenduse kasutus- ja  diagnostikaandmeid. Neid andmeid ei kasutata teie lapse isiku tuvastamiseks ning need aitavad parandada süsteemi ja rakenduse stabiilsust ning muud. Teatud koondandmed on abiks ka Google'i rakendustele ja partneritele, näiteks Androidi arendajatele. Selle <ph name="BEGIN_LINK1" />seade<ph name="END_LINK1" /> on jõustanud omanik. Omanik võib otsustada saata Google'ile selle seadme diagnostika- ja kasutusandmeid. Kui täiendavad veebi- ja rakendustegevused on teie lapse jaoks sisse lülitatud, võidakse need andmed salvestada tema Google'i kontole. <ph name="BEGIN_LINK2" />Lisateave<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Sellel turvavõtmel olevad sõrmejäljed</translation>
 <translation id="3973660817924297510">Paroolide kontrollimine (<ph name="CHECKED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />) …</translation>
 <translation id="3975565978598857337">Valduse jaoks serveriga ühenduse loomine nurjus</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ei saa teie paroole kontrollida. Proovige hiljem uuesti.</translation>
 <translation id="3976108569178263973">Ühtegi printerit pole saadaval.</translation>
 <translation id="397703832102027365">Lõpetamine ...</translation>
 <translation id="3977886311744775419">See võrgu tüüp ei toeta automaatsete värskenduste allalaadimist, kuid võite värskendusi kontrollida käsitsi.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">See leht sisaldab järgmiste saitide elemente, mis jälgivad teie asukohta:</translation>
 <translation id="4068776064906523561">Salvestatud sõrmejäljed</translation>
 <translation id="407173827865827707">Klõpsamisel</translation>
+<translation id="4073520450811433493">Seadete sünkroonimine</translation>
 <translation id="4074900173531346617">Meili allkirjastamise sertifikaat</translation>
 <translation id="407520071244661467">Skaleeri</translation>
 <translation id="4075639477629295004">Faili <ph name="FILE_NAME" /> ei saa üle kanda.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Miisu</translation>
 <translation id="4423376891418188461">Taasta seaded</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, administraator nõuab, et muudaksite parooli.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ei saa teie paroole kontrollida. Proovige uuesti 24 tunni pärast.</translation>
 <translation id="4429030830601238961">Need andmed rikuvad teie organisatsiooni turvaeeskirju ja neid ei saa kleepida.</translation>
 <translation id="4430019312045809116">Helitugevus</translation>
 <translation id="4430369329743628066">Järjehoidja on lisatud</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Kas soovite selle rakenduse seadme sisselülitamisel automaatselt käivitada?</translation>
 <translation id="4441147046941420429">Jätkamiseks eemaldage turvavõti oma seadmest, sisestage see uuesti ja puudutage seda</translation>
 <translation id="444134486829715816">Laienda ...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> saab teie paroole kontrollida siis, kui logite sisse oma Google'i kontoga</translation>
 <translation id="4442424173763614572">DNS-i otsing nurjus</translation>
 <translation id="4443536555189480885">&amp;Abi</translation>
 <translation id="4444304522807523469">Juurdepääs dokumendiskänneritele USB või kohaliku võrgu kaudu</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Selle koodi skannimiseks võite oma telefonis kasutada QR-skannerit või mõnda kaamerarakendust.</translation>
 <translation id="4477015793815781985">Kaasake Ctrl, Alt või ⌘</translation>
 <translation id="4478664379124702289">&amp;Salvesta link nimega...</translation>
+<translation id="4478777936860197922">Salvestatud paroole ei ole. <ph name="IDS_SHORT_PRODUCT_NAME" /> saab teie paroole kontrollida, kui olete need salvestanud.</translation>
 <translation id="4479424953165245642">Halda kioski rakendusi</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Virtuaalseadme seadistamine. See võib võtta mitu minutit.</translation>
 <translation id="4480590691557335796">Chrome võib teie arvutist otsida kahjulikku tarkvara ja selle eemaldada</translation>
 <translation id="4481530544597605423">Sidumata seadmed</translation>
+<translation id="4488107067273194838">Vaata pärast seadistamist üle brauseri sünkroonimisvalikud</translation>
 <translation id="4488502501195719518">Kas kustutada kõik andmed?</translation>
 <translation id="4495419450179050807">Ära sellel lehel kuva</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> blokeeriti automaatselt</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Ära installi</translation>
 <translation id="4850669014075537160">Kerimine</translation>
 <translation id="4850886885716139402">Kuva</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> teavitab teid, kui logite sisse ohustatud parooliga</translation>
 <translation id="4853020600495124913">Ava &amp;uues aknas</translation>
 <translation id="4854317507773910281">Vali kinnitamiseks vanema konto</translation>
 <translation id="485480310608090163">Rohkem seadeid ja lube</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN-kood sisaldab sobimatuid tähemärke</translation>
 <translation id="4871370605780490696">Järjehoidja lisamine</translation>
 <translation id="4871719318659334896">Grupi sulgemine</translation>
+<translation id="4871852311166078968">Lisa gruppi</translation>
 <translation id="4873312501243535625">Meediafaili kontrollija</translation>
 <translation id="4876273079589074638">Aidake meie inseneridel seda kokkujooksmist uurida ja see parandada. Võimaluse korral loetlege täpselt tehtud toimingud. Ükski pisiasi pole liiga väike!</translation>
 <translation id="4876895919560854374">Ekraani lukustamine ja avamine</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Administraator on saadaolevaid sisestusmeetodeid piiranud.</translation>
 <translation id="4994474651455208930">Luba saitidel küsida, kas hakata protokollide vaikimisi töötlejateks</translation>
 <translation id="4994754230098574403">Seadistamine</translation>
-<translation id="4996978546172906250">Jagamine:</translation>
 <translation id="4997086284911172121">Interneti-ühendus puudub.</translation>
 <translation id="4997384734315285248">Plugin VM-i desinstallimine</translation>
 <translation id="4998430619171209993">Sees</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Pääsete oma assistendile juurde, öeldes lihtsalt „Ok Google”.</translation>
 <translation id="5135533361271311778">Järjehoidja üksust ei õnnestunud luua.</translation>
 <translation id="5137501176474113045">Kustuta see üksus</translation>
-<translation id="5138982052046316113">Linuxi ketta suuruse muutmine</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, otsing teenusega <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Sisestage turvavõtme PIN-kood. Kui te PIN-koodi ei tea, peate turvavõtme lähtestama.</translation>
 <translation id="5139955368427980650">&amp;Ava</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Kinnitamise ootel. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Väga suur</translation>
 <translation id="574209121243317957">Helikõrgus</translation>
+<translation id="5745136023067925867">Hankige seadme <ph name="DEVICE_TYPE" /> nõuandeid, pakkumisi ja värskendusi ning jagage tagasisidet</translation>
 <translation id="5746169159649715125">Salvesta PDF-ina</translation>
 <translation id="5747552184818312860">Aegub</translation>
 <translation id="5747785204778348146">Arendaja – ebastabiilne</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Näita otsijas</translation>
 <translation id="6295158916970320988">Kõik saidid</translation>
 <translation id="6295855836753816081">Salvestamine ...</translation>
-<translation id="629730747756840877">Konto</translation>
 <translation id="6298962879096096191">Androidi rakenduste installimiseks kasutatakse Google Playd</translation>
 <translation id="630065524203833229">V&amp;älju</translation>
 <translation id="6300718114348072351">Printerit <ph name="PRINTER_NAME" /> ei saanud automaatselt seadistada. Esitage printeri täpsemad üksikasjad. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Leht ei ole <ph name="LANGUAGE" /> keeles</translation>
 <translation id="6865708901122695652">WebRTC sündmuselogid (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Värvitemperatuur</translation>
-<translation id="6870888490422746447">Valige rakendus, mille kaudu jagada:</translation>
 <translation id="6871644448911473373">OCSP vastaja: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Server lükkas sisestatud parooli tagasi.</translation>
 <translation id="6876155724392614295">Jalgratas</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – tegevuste logi</translation>
 <translation id="6997707937646349884">Teie seadmetes:</translation>
 <translation id="6998793565256476099">Registreeri seade videokonverentsi kasutamiseks</translation>
+<translation id="6999956497249459195">Uus grupp</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> on ühendatud, aga vajab seadistamist</translation>
 <translation id="7000347579424117903">Kaasake Ctrl, Alt või otsinguklahv</translation>
 <translation id="7001036685275644873">Linuxi rakenduste ja failide varundamine</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Seadistage ühendus seadmes <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Loobu sellest sõnumist</translation>
+<translation id="7403642243184989645">Ressursside allalaadimine</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Ohutuskontroll tehti 1 tund tagasi}other{Ohutuskontroll tehti {NUM_HOURS} tundi tagasi}}</translation>
 <translation id="740624631517654988">Hüpik blokeeritud</translation>
 <translation id="7407430846095439694">Impordi ja seo</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">Netscape'i sertifitseerimisorgani eeskirjade URL</translation>
 <translation id="7717014941119698257">Allalaadimine: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Otsi värskendusi</translation>
+<translation id="7719070594859855691">Anna juurdepääs kaamerale</translation>
 <translation id="7719367874908701697">Lehe suum</translation>
 <translation id="7721179060400456005">Luba kuva laiendada üle mitme ekraani</translation>
 <translation id="7722040605881499779">Värskendamiseks vajalik: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Vaadake oma printimisajalugu</translation>
 <translation id="7744192722284567281">Ilmnes andmetega seotud rikkumises</translation>
 <translation id="7750228210027921155">Pilt pildis</translation>
-<translation id="7751229152614300329">Google'i ohutu sirvimine on ajakohane ning kaitseb teid ohtlike saitide ja allalaadimiste eest</translation>
 <translation id="7751260505918304024">Kuva kõik</translation>
 <translation id="7754704193130578113">Küsi enne iga faili allalaadimist, kuhu see salvestada.</translation>
 <translation id="7755287808199759310">Vanem saab blokeeringu teie eest tühistada</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Märkus.<ph name="END_BOLD" />  Protsessi käigus süsteem taaskäivitatakse.</translation>
 <translation id="7828731929332799387">See kustutab kõik kolmanda osapoole pakutavad küpsisefailid ja saidi andmed. Kas soovite jätkata?</translation>
 <translation id="7829298379596169484">Juurdepääs helisisendile</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ei saa teie paroole kontrollida. Kontrollige internetiühendust.</translation>
 <translation id="7829877209233347340">Palu vanemal sisse logida, et ta annaks loa koolikonto lisamiseks</translation>
 <translation id="7830594666202422257">Ühenda Linuxiga</translation>
 <translation id="7831491651892296503">Viga võrgu seadistamisel</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Google Play pood installitakse teie seadmesse <ph name="DEVICE_TYPE" />. See võib võtta mõne minuti.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Kolmanda osapoole küpsisefailid puuduvad}=1{1 kolmanda osapoole küpsisefail blokeeriti}other{# kolmanda osapoole küpsisefaili blokeeriti}}</translation>
 <translation id="810875025413331850">Läheduses olevaid seadmeid ei leitud.</translation>
+<translation id="8114199541033039755">Navigeerige tahvelarvutirežiimis nuppude abil avalehele, tagasi ja vahetage rakendusi. See on sisse lülitatud, kui ChromeVox või automaatsed klikid on lubatud.</translation>
 <translation id="8114875720387900039">Horisontaalne poolitamine</translation>
 <translation id="8116972784401310538">&amp;Järjehoidjate haldur</translation>
 <translation id="8117620576188476503">Olekusalves on võimalik hallata ühendusi, värskendusi ja seadeid. Klaviatuuri abil siia liikumiseks vajutage klahvikombinatsiooni Alt + Tõstuklahv + S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> keelas teie hiirekursori.</translation>
 <translation id="8264024885325823677">Seda seadet haldab administraator.</translation>
 <translation id="8264718194193514834">„<ph name="EXTENSION_NAME" />” aktiveeris täisekraani režiimi.</translation>
+<translation id="826511437356419340">Akna ülevaate režiim on aktiveeritud. Pühkige navigeerimiseks või vajutage tabulaatorit, kui kasutate klaviatuuri.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />See on üldteave seadme ja selle kasutamise kohta (nt aku tase, süsteemi ja rakenduste tegevus ning vead). Neid andmeid kasutatakse Androidi täiustamiseks ning teatud koondteave aitab ka Google'i rakendusi ja partnerite, näiteks Androidi arendajate, tooteid ja teenuseid täiustada.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Kui selle funktsiooni välja lülitate, ei mõjuta see seadme võimet saata oluliste teenuste kasutamiseks vajalikku teavet, näiteks süsteemivärskendusi ja turvateavet.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Omanik saab seda funktsiooni juhtida jaotises Seaded &gt; Täpsemad &gt; Saada Google'ile automaatselt diagnostika- ja kasutusandmeid.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Luba</translation>
 <translation id="8427292751741042100">manustatud mis tahes hostile</translation>
 <translation id="8428213095426709021">Seaded</translation>
+<translation id="8428271547607112339">Lisa koolikonto</translation>
 <translation id="8428628598981198790">Teie turvavõtit ei saa sellel saidil kasutada</translation>
 <translation id="84297032718407999">Teid logitakse välja <ph name="LOGOUT_TIME_LEFT" /> pärast</translation>
 <translation id="8431190899827883166">Puudutuste kuvamine</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Luba alati saidil <ph name="HOST" /> pilte kuvada</translation>
 <translation id="8513108775083588393">Automaatne pööramine</translation>
 <translation id="8514746246728959655">Proovige muud turvavõtit</translation>
+<translation id="851960115758509829">Teie rakendused, seaded ja muud kohandatud üksused sünkroonitakse kõigi Chrome OS-i seadmete vahel, kuhu olete oma Google'i kontoga sisse logitud.</translation>
 <translation id="8521475323816527629">Avage rakendused kiiresti</translation>
 <translation id="8523493869875972733">Säilita muudatused</translation>
 <translation id="8523849605371521713">Reegliga lisatud</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Salvestamine</translation>
 <translation id="8859057652521303089">Valige keel:</translation>
 <translation id="8859174528519900719">Alamraam: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Vanema konto</translation>
 <translation id="8862003515646449717">Minge üle kiirele brauserile</translation>
 <translation id="8863753581171631212">Ava link uues rakenduses <ph name="APP" /></translation>
 <translation id="8864055848767439877">Vahelehe <ph name="TAB_NAME" /> jagamine rakenduses <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Konto <ph name="EMAIL" /> eemaldati sellest seadmest</translation>
 <translation id="8867228703146808825">Kopeeri järgu üksikasjad lõikelauale</translation>
+<translation id="8868333925931032127">Demorežiimi käivitamine</translation>
 <translation id="8868626022555786497">Kasutusel</translation>
 <translation id="8870413625673593573">Viimati suletud</translation>
 <translation id="8871551568777368300">Administraator on selle kinnitanud</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Saate kogemata suletud vahelehe uuesti avada</translation>
 <translation id="8967866634928501045">Kuvamiseks vajutage klahvi Alt + tõstuklahvi + klahvi A</translation>
 <translation id="8968766641738584599">Salvesta kaart</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ei saa teie paroole kontrollida. Proovige uuesti 24 tunni pärast või <ph name="BEGIN_LINK" />kontrollige oma Google'i kontol paroole<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Klahv Escape</translation>
 <translation id="8972513834460200407">Paluge oma võrguadministraatoril tagada, et tulemüür ei blokeeriks allalaaditavaid faile Google'i serveritest.</translation>
 <translation id="8973557916016709913">Suumitaseme eemaldamine</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index 0d948d0..fe512f6 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Gailu erabilgarriak</translation>
 <translation id="1042174272890264476">Ordenagailuak <ph name="SHORT_PRODUCT_NAME" /> produktuaren RLZ liburutegia ere du integratuta. RLZ liburutegiak esklusiboa ez den eta pertsonalki identifikatu ezin zaitzakeen etiketa bat esleitzen du promozio-kanpaina jakin batek sortutako bilaketak eta <ph name="SHORT_PRODUCT_NAME" /> produktuaren erabilera neurtzeko. Etiketa horiek <ph name="PRODUCT_NAME" /> produktuko Google Bilaketa kontsultetan agertzen dira batzuetan.</translation>
 <translation id="1043818413152647937">Aplikazio hauetako datuak ere garbitu nahi dituzu?</translation>
+<translation id="1045448422538531528">Gehitu taldean</translation>
 <translation id="1046635659603195359">Beste gailu bateko Google-ren Laguntzailea eginbidearekin erabiltzeko daukazu konfiguratuta Voice Match. Ahots-eredua sortzeko, gailu horretako grabaketak erabil genitzake gailu honetan ere. Minutu bat baino gutxiago beharko dugu.</translation>
 <translation id="104710386808485638">Linux berrabiarazi nahi duzu?</translation>
 <translation id="1047431265488717055">Kopiatu estekaren te&amp;stua</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Blokeatu beti kamerarako sarbidea</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> tresnak jatorrizko balio lehenetsietara leheneratuko ditu Chrome ezarpenak. Horrela, orri nagusia, fitxa berrien orria eta bilatzailea leheneratuko dira, luzapenak desgaituko dira eta fitxa guztien aingurak kenduko dira. Gainera, aldi baterako datuak eta cachean gordetakoak (adibidez, cookieak, edukia eta webguneen datuak) ezabatu egingo dira.</translation>
+<translation id="1084096383128641877">Pasahitza kentzen baduzu ere, ez da ezabatuko <ph name="DOMAIN" /> domeinuko kontua. <ph name="DOMAIN_LINK" /> domeinuko kontua babestuta mantentzeko, ezaba ezazu edo alda iezaiozu pasahitza.</translation>
 <translation id="1084824384139382525">Kopiatu estekaren &amp;helbidea</translation>
 <translation id="1085697365578766383">Errore bat gertatu da makina birtuala abiaraztean. Saiatu berriro.</translation>
 <translation id="1090126737595388931">Ez da aplikaziorik abian atzeko planoan</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Atzo egin zen segurtasun-egiaztapena</translation>
 <translation id="1260451001046713751">Eman beti <ph name="HOST" /> webguneko leiho gainerakorrak eta birbideratzeak erakusteko baimena</translation>
 <translation id="126156426083987769">Arazo bat izan da demo moduko gailuen lizentziekin.</translation>
+<translation id="1263490604593716556"><ph name="FIRST_PARENT_EMAIL" /> eta <ph name="SECOND_PARENT_EMAIL" /> arduratzen dira kontu hau kudeatzeaz. Gailu honetako kontu nagusiko saioa amaitzeko, sakatu pantailako ordua. Agertuko den menuan, sakatu "Amaitu saioa".</translation>
 <translation id="126710816202626562">Xede-hizkuntza:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Gelditu</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Webgunea</translation>
 <translation id="15662109988763471">Hautatutako inprimagailua ez dago erabilgarri edo ez da instalatu behar bezala. Egiaztatu inprimagailua edo hautatu beste bat.</translation>
 <translation id="1567387640189251553">Beste teklatu bat konektatu duzu pasahitza azkenekoz idatzi zenuenetik. Agian sakatzen ari zaren teklak erregistratzen ari da, pasahitzak lapurtzeko asmoz.</translation>
-<translation id="1567750922576943685">Zure identitatea egiaztatzen baduzu, babestuago izango duzu informazio pertsonala</translation>
 <translation id="1567993339577891801">JavaScript-en kontsola</translation>
 <translation id="1568323446248056064">Ireki pantailaren ezarpenak</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (gonbidatua)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Artea</translation>
 <translation id="1697686431566694143">Editatu fitxategia</translation>
 <translation id="1698122934742150150">Uneko ezkutuko saioan soilik</translation>
-<translation id="1698650002254827833">Ezin da kargatu aplikazioen zerrenda. Saiatu berriro.</translation>
 <translation id="1700079447639026019">Webguneek ezin dituzte erabili cookieak inoiz</translation>
 <translation id="1701062906490865540">Kendu pertsona hau</translation>
 <translation id="1703331064825191675">Ez arduratu pasahitzak gogoratu beharraz</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Egin aurrera</translation>
 <translation id="2173302385160625112">Egiaztatu Internetera konektatuta zaudela</translation>
 <translation id="2173801458090845390">Gehitu eskaeraren IDa gailu honetan</translation>
+<translation id="2174948148799307353"><ph name="PARENT_EMAIL" /> arduratzen da kontu hau kudeatzeaz. Gailu honetako kontu nagusiko saioa amaitzeko, sakatu pantailako ordua. Agertuko den menuan, sakatu "Amaitu saioa".</translation>
 <translation id="2175607476662778685">Abiarazte bizkorraren barra</translation>
 <translation id="217576141146192373">Ezin da gehitu inprimagailua. Egiaztatu ongi konfiguratuta dagoela eta saiatu berriro.</translation>
 <translation id="2177950615300672361">Ezkutuko fitxa: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Testuaren itzala</translation>
 <translation id="2445081178310039857">Luzapenaren erroaren direktorioa behar da.</translation>
 <translation id="2445484935443597917">Sortu profil bat</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> aplikazioak zure identitatea egiaztatu nahi du</translation>
 <translation id="2448312741937722512">Mota</translation>
 <translation id="2450223707519584812">Ezin izango dituzu erabiltzaileak gehitu, Google APIaren gakoak falta direlako. Xehetasun gehiago nahi badituzu, ikusi <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Ez dago ikuspegi aktiborik</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Joan <ph name="PAGE_TITLE" /> orrira</translation>
 <translation id="29488703364906173">Sare modernorako egindako web-arakatzaile azkarra, sinplea eta segurua.</translation>
 <translation id="2949289451367477459">Erabili kokapena. Baimendu kokapena atzitzeko baimena duten aplikazio eta zerbitzuei gailuaren kokapena erabiltzea. Google-k kokapen-datu anonimoak biltzen ditu noizean behin, kokapenaren zehaztasuna eta kokapenean oinarritutako zerbitzuak hobetzeko. <ph name="BEGIN_LINK1" />Lortu informazio gehiago<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Eman izena</translation>
 <translation id="2956070239128776395">Talde honetan habiaratuta dago atala: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Ez utzi webguneei gailuko fitxategiak edo karpetak editatzen</translation>
 <translation id="2958721676848865875">Pakete-luzapenaren abisua</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Abatar hori lehenetsia</translation>
 <translation id="3141318088920353606">Entzuten…</translation>
 <translation id="3141917231319778873">Eskaera hori ezin da gauzatu "<ph name="DEVICE_NAME" />" gailuan.</translation>
+<translation id="3142562627629111859">Talde berria</translation>
 <translation id="3143515551205905069">Utzi sinkronizazioa bertan behera</translation>
 <translation id="3143754809889689516">Erreproduzitu hasieratik</translation>
 <translation id="3144647712221361880">Ireki esteka honela:</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Beixa</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardwarean gordeta)</translation>
 <translation id="3161522574479303604">Hizkuntza guztiak</translation>
+<translation id="3162853326462195145">Ikastetxeko kontua</translation>
 <translation id="3162899666601560689">Webguneek cookieak erabil ditzakete arakatze-zerbitzua hobetzeko; adibidez, saioa hasita mantentzeko edo erosketa-saskiko produktuak gogoratzeko.</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> saltzailearen <ph name="PRODUCT_ID" /> produktu ezezaguna</translation>
 <translation id="3164329792803560526">Fitxa hau <ph name="APP_NAME" /> aplikazioarekin dago partekatuta</translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Eguneratu gailua egun bateko epean}other{Eguneratu gailua # eguneko epean}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Sareko errorea</translation>
 <translation id="3248902735035392926">Segurtasuna garrantzitsua da. Hartu unetxo bat eta <ph name="BEGIN_LINK" />begiratu zer luzapen dituzun<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;ez dago ziurtagirian&gt;</translation>
 <translation id="3253225298092156258">Ez dago erabilgarri</translation>
 <translation id="3253448572569133955">Kontu ezezaguna</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">"Onartu eta egin aurrera" botoia sakatuta, onartu egingo duzu Google-ren zerbitzuok prozesatzeko modua, arestian aipatu bezala.</translation>
 <translation id="3399432415385675819">Desgaitu egingo dira jakinarazpenak</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz) - gurutzatuta</translation>
+<translation id="3402585168444815892">Demo moduan erregistratu</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Ez da gorde webgune honetako pasahitzik</translation>
 <translation id="3405664148539009465">Pertsonalizatu letrak</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android-eko telefonoa</translation>
 <translation id="3470442499439619530">Kendu erabiltzailea</translation>
 <translation id="3471876058939596279">HDMI eta USB Type-C motako atakak ezin dira bideorako erabili aldi berean. Erabili beste bideo-ataka bat.</translation>
+<translation id="3473241910002674503">Tableta moduan, erabili botoiak orri nagusira joateko, atzera egiteko eta aplikazioz aldatzeko.</translation>
 <translation id="3473479545200714844">Lupa</translation>
 <translation id="3475843873335999118">Ez dugu ezagutu hatz-marka. Idatzi pasahitza.</translation>
 <translation id="3476303763173086583">Bidali erabilera- eta diagnostiko-datuak. Bidali diagnostikoak eta gailu zein aplikazioen erabilerari buruzko datuak Google-ri automatikoki haurrak darabiltzan Android zerbitzuak hobetzen laguntzeko. Informazio hori ez da erabiliko haurra identifikatzeko eta, hari esker, sistemaren eta aplikazioen egonkortasuna hobetuko da, besteak beste. Gainera, multzokatutako datu batzuk oso baliagarriak izango dira Google-ren aplikazioak hobetzeko eta bazkideei laguntzeko (adibidez, Android-en garatzaileei). Jabeak konfiguratu du <ph name="BEGIN_LINK1" />ezarpen<ph name="END_LINK1" /> hori. Gailu honen diagnostikoak eta erabilera-datuak Google-ri bidaltzea aukera dezake jabeak. Haurraren kontuko Sareko eta aplikazioetako jarduera gehigarriak ezarpena aktibatuta badago, baliteke datu horiek haren Google-ko kontuan gordetzea. <ph name="BEGIN_LINK2" />Lortu informazio gehiago<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Segurtasun-fitxa honetako hatz-markak</translation>
 <translation id="3973660817924297510">Pasahitzak egiaztatzen (<ph name="CHECKED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Ezin izan da jarri domeinuaren zerbitzariarekin harremanetan</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ez da pasahitzak egiaztatzeko gai. Saiatu geroago.</translation>
 <translation id="3976108569178263973">Ez dago inprimagailurik erabilgarri.</translation>
 <translation id="397703832102027365">Amaitzen…</translation>
 <translation id="3977886311744775419">Eguneratze automatikoak ez dira deskargatuko mota honetako sareetan, baina eskuz bila ditzakezu.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Zure kokapenaren jarraipena egiten ari diren webgune hauetako elementuak daude orrian:</translation>
 <translation id="4068776064906523561">Gordetako hatz-markak</translation>
 <translation id="407173827865827707">Klik egitean</translation>
+<translation id="4073520450811433493">Ezarpenen sinkronizazioa</translation>
 <translation id="4074900173531346617">Mezu elektronikoaren sinatzailearen ziurtagiria</translation>
 <translation id="407520071244661467">Eskala</translation>
 <translation id="4075639477629295004">Ezin da igorri <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Katutxoa</translation>
 <translation id="4423376891418188461">Berrezarri ezarpenak</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, pasahitza aldatzeko eskatu dizu administratzaileak.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ez da pasahitzak egiaztatzeko gai. Saiatu berriro 24 ordu barru.</translation>
 <translation id="4429030830601238961">Datu hauek erakundearen segurtasun-gidalerroak urratzen dituzte eta ezin dira itsatsi.</translation>
 <translation id="4430019312045809116">Bolumena</translation>
 <translation id="4430369329743628066">Gehitu da laster-marka</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Gailua pizten duzunean aplikazioa automatikoki hastea nahi duzu?</translation>
 <translation id="4441147046941420429">Aurrera egiteko, atera segurtasun-giltza gailutik, sar ezazu berriro eta, ondoren, sakatu</translation>
 <translation id="444134486829715816">Zabaldu…</translation>
+<translation id="4442329324652245220">Saioa Google-ko kontu batekin hasten baduzu, pasahitzak egiaztatzeko gai izango da <ph name="IDS_SHORT_PRODUCT_NAME" /></translation>
 <translation id="4442424173763614572">DNS bilaketak huts egin du</translation>
 <translation id="4443536555189480885">&amp;Laguntza</translation>
 <translation id="4444304522807523469">Atzitu USB bidez konektatuta edo sare lokalean dauden dokumentu-eskaneatzaileak</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Kode hau eskaneatzeko, QR kodeak eskaneatzeko berariazko aplikazio bat edo kamera-aplikazio batzuk erabil ditzakezu.</translation>
 <translation id="4477015793815781985">Erabili Ktrl, Alt edo ⌘</translation>
 <translation id="4478664379124702289">Gorde &amp;esteka honela…</translation>
+<translation id="4478777936860197922">Ez dago pasahitzik gordeta. Gordetako pasahitzak egiaztatzeko gai da <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="4479424953165245642">Kudeatu aplikazio espezializatuak</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Makina birtuala konfiguratzen. Agian minutu batzuk beharko dira.</translation>
 <translation id="4480590691557335796">Chrome-k ordenagailuko software kaltegarria aurkitu eta ezaba dezake</translation>
 <translation id="4481530544597605423">Desparekatutako gailuak</translation>
+<translation id="4488107067273194838">Arakatzailea konfiguratu ondoren, berrikusi haren sinkronizazio-aukerak</translation>
 <translation id="4488502501195719518">Datu guztiak garbitu nahi dituzu?</translation>
 <translation id="4495419450179050807">Ez erakutsi orri honetan</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> automatikoki blokeatu da</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Ez instalatu</translation>
 <translation id="4850669014075537160">Desplazamendua</translation>
 <translation id="4850886885716139402">Ikusi</translation>
+<translation id="485197095346966382">Arriskuan dagoen pasahitz batekin hasten baduzu saioa, horren berri emateaz arduratuko da <ph name="IDS_SHORT_PRODUCT_NAME" /></translation>
 <translation id="4853020600495124913">Ireki leiho &amp;berrian</translation>
 <translation id="4854317507773910281">Aukeratu gurasoaren zer kontu erabili nahi duzun onartzeko</translation>
 <translation id="485480310608090163">Ezarpen eta baimen gehiago</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN kodeak balio ez duten karaktereak ditu</translation>
 <translation id="4871370605780490696">Gehitu laster-marka</translation>
 <translation id="4871719318659334896">Itxi taldea</translation>
+<translation id="4871852311166078968">Gehitu taldean</translation>
 <translation id="4873312501243535625">Multimedia-fitxategien egiaztatzailea</translation>
 <translation id="4876273079589074638">Lagundu gure ingeniariei hutsegitea aztertzen eta konpontzen. Ahal baduzu, azaldu zer egin duzun urratsez urrats. Xehetasun txikienek ere garrantzitsuak dira!</translation>
 <translation id="4876895919560854374">Blokeatu eta desblokeatu pantaila</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Administratzaileak erabil ditzakezun idazketa-metodoak mugatu ditu.</translation>
 <translation id="4994474651455208930">Baimendu webguneei protokoloen kudeatzaile lehenetsi bihurtzeko baimena eskatzea</translation>
 <translation id="4994754230098574403">Konfiguratzen</translation>
-<translation id="4996978546172906250">Partekatu honen bidez:</translation>
 <translation id="4997086284911172121">Ez zaude konektatuta Internetera.</translation>
 <translation id="4997384734315285248">Desinstalatu Plugin VM</translation>
 <translation id="4998430619171209993">Aktibatuta</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Laguntzailea atzitzeko, esan "Ok Google".</translation>
 <translation id="5135533361271311778">Ezin izan da sortu laster-markaren elementua.</translation>
 <translation id="5137501176474113045">Ezabatu elementua</translation>
-<translation id="5138982052046316113">Aldatu Linux-eko diskoaren tamaina</translation>
 <translation id="5139112070765735680">Bilatu "<ph name="QUERY_NAME" />" <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> erabilita</translation>
 <translation id="5139823398361067371">Idatzi segurtasun-giltzaren PIN kodea. PIN kodea ez badakizu, segurtasun-giltza berrezarri egin beharko duzu.</translation>
 <translation id="5139955368427980650">Ir&amp;eki</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Egiaztapenaren zain. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Oso handia</translation>
 <translation id="574209121243317957">Tonua</translation>
+<translation id="5745136023067925867">Lortu <ph name="DEVICE_TYPE" /> gailuari buruzko aholkuak eta eskaintzak, eta partekatu zure iritzia</translation>
 <translation id="5746169159649715125">Gorde PDF gisa</translation>
 <translation id="5747552184818312860">Iraungitze-data</translation>
 <translation id="5747785204778348146">Garatzailea; egoera ezegonkorra</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Erakutsi Finder-en</translation>
 <translation id="6295158916970320988">Webgune guztiak</translation>
 <translation id="6295855836753816081">Gordetzen…</translation>
-<translation id="629730747756840877">Kontua</translation>
 <translation id="6298962879096096191">Erabili Google Play Android-erako aplikazioak instalatzeko</translation>
 <translation id="630065524203833229">Irt&amp;en</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> ezin izan da konfiguratu automatikoki. Zehaztu inprimagailuaren xehetasun aurreratuak. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Orriak ez du erabiltzen <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC gertaera-erregistroak (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Koloreen tenperatura</translation>
-<translation id="6870888490422746447">Aukeratu zein aplikaziorekin partekatu nahi duzun:</translation>
 <translation id="6871644448911473373">OCSP erantzulea: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Zerbitzariak idatzi duzun pasahitza baztertu du.</translation>
 <translation id="6876155724392614295">Bizikleta</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Jardueren erregistroa</translation>
 <translation id="6997707937646349884">Gailu hauetan:</translation>
 <translation id="6998793565256476099">Erregistratu gailua bideo-konferentziak egiteko</translation>
+<translation id="6999956497249459195">Talde berria</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> konektatu da baina konfiguratu egin behar da</translation>
 <translation id="7000347579424117903">Erabili Ktrl, Alt edo bilaketa-tekla</translation>
 <translation id="7001036685275644873">Linux aplikazioen eta fitxategien babeskopia egiten</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URLa</translation>
 <translation id="7400839060291901923">Konfiguratu konexioa <ph name="PHONE_NAME" /> gailuan</translation>
 <translation id="7401778920660465883">Baztertu mezu hau</translation>
+<translation id="7403642243184989645">Baliabideak deskargatu</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Duela ordubete egin da segurtasun-egiaztapena}other{Duela {NUM_HOURS} ordu egin da segurtasun-egiaztapena}}</translation>
 <translation id="740624631517654988">Leiho gainerakorra blokeatu da</translation>
 <translation id="7407430846095439694">Inportatu eta lotu</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">Netscape ziurtagiriaren autoritatearen gidalerroen URLa</translation>
 <translation id="7717014941119698257">Deskargatzen: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Bilatu eguneratzeak</translation>
+<translation id="7719070594859855691">Eman kamera atzitzeko baimena</translation>
 <translation id="7719367874908701697">Orriaren zooma</translation>
 <translation id="7721179060400456005">Onartu leihoak hainbat pantailatan hedatzeko aukera</translation>
 <translation id="7722040605881499779">Eguneratzeko behar dena: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Ikusi inprimatze-historia</translation>
 <translation id="7744192722284567281">Datuen isilpekotasuna urratu den batean aurkitu da</translation>
 <translation id="7750228210027921155">Pantaila txikia</translation>
-<translation id="7751229152614300329">Arakatze segurua eguneratuta dago, eta webgune eta deskarga kaltegarrietatik babesten zaitu</translation>
 <translation id="7751260505918304024">Erakutsi guztiak</translation>
 <translation id="7754704193130578113">Galdetu fitxategi bakoitza non gorde behar den deskargatu aurretik</translation>
 <translation id="7755287808199759310">Gurasoek desblokea diezazukete</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Oharra:<ph name="END_BOLD" /> sistema berrabiarazi egingo da prozesuan zehar.</translation>
 <translation id="7828731929332799387">Cookie eta webguneen datu guztiak ezabatuko ditu hirugarrenen testuinguruetatik. Aurrera egin nahi duzu?</translation>
 <translation id="7829298379596169484">Audio-sarrera atzitzen</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ez da pasahitzak egiaztatzeko gai. Egiaztatu Internetera konektatuta zaudela.</translation>
 <translation id="7829877209233347340">Eskatu guraso bati saioa hasteko, ikastetxeko kontu bat gehitzeko baimena eman diezazun</translation>
 <translation id="7830594666202422257">Konektatu Linux-era</translation>
 <translation id="7831491651892296503">Errore bat gertatu da sarea konfiguratzean</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">Google Play Store <ph name="DEVICE_TYPE" /> gailuan instalatzen ari gara. Minutu batzuk beharko ditugu.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Ez dago hirugarrenen cookierik}=1{Hirugarrenen 1 cookie blokeatu da}other{Hirugarrenen # cookie blokeatu dira}}</translation>
 <translation id="810875025413331850">Ez da aurkitu gailurik inguruan.</translation>
+<translation id="8114199541033039755">Tableta moduan, erabili botoiak orri nagusira joateko, atzera egiteko eta aplikazioz aldatzeko. Aktibatuta egongo da ChromeVox edo klik automatikoak gaituta daudenean.</translation>
 <translation id="8114875720387900039">Zatitu horizontalki</translation>
 <translation id="8116972784401310538">&amp;Laster-marken kudeatzailea</translation>
 <translation id="8117620576188476503">Kudeatu konexioak, eguneratzeak eta ezarpenak egoera-erretiluan. Hona teklatuaren bidez etortzeko, sakatu Alt + Maius + S.</translation>
@@ -5406,6 +5420,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> orriak saguaren kurtsorea desgaitu du.</translation>
 <translation id="8264024885325823677">Administratzaileak kudeatzen du ezarpen hau.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" luzapenak pantaila osoa abiarazi du.</translation>
+<translation id="826511437356419340">Leihoen informazio orokorraren moduan sartu zara. Pasatu hatza nabigatzeko edo, teklatu bat erabiltzen ari bazara, sakatu tabuladorea.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Gailuari eta hura erabiltzeko moduari buruzko informazio orokorra da hori (adibidez, bateria-maila, sistemako eta aplikazioetako jarduerak, eta erroreak). Android hobetzeko erabiliko dira datuok. Gainera, multzokatutako datu batzuk oso baliagarriak dira Google-ren aplikazioak hobetzeko eta bazkideei (adibidez, Android garatzaileei) euren aplikazio eta produktuak hobetzen laguntzeko.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Eginbidea desaktibatuta ere, gailuak beharrezko informazioa bidaltzen jarraitu ahal izango du funtsezko zerbitzuak jasotzeko, hala nola sistemaren eguneratzeak eta segurtasun-neurriak.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Jabeak kontrolatu nahi badu, atal honetara joan beharko du: Ezarpenak &gt; Aurreratuak &gt; Bidali Google-ri diagnostikoak eta erabilera-datuak automatikoki.<ph name="END_PARAGRAPH3" />
@@ -5514,6 +5529,7 @@
 <translation id="8426713856918551002">Gaitzen</translation>
 <translation id="8427292751741042100">edozein ostalaritan kapsulatuta</translation>
 <translation id="8428213095426709021">Ezarpenak</translation>
+<translation id="8428271547607112339">Gehitu ikastetxeko kontua</translation>
 <translation id="8428628598981198790">Daukazun segurtasun-giltza ezin da erabili webgune honetan</translation>
 <translation id="84297032718407999">Saioa amaituko egingo da <ph name="LOGOUT_TIME_LEFT" /> igarotakoan</translation>
 <translation id="8431190899827883166">Erakutsi sakatutakoa</translation>
@@ -5577,6 +5593,7 @@
 <translation id="851263357009351303">Eman beti irudiak erakusteko baimena <ph name="HOST" /> webguneari</translation>
 <translation id="8513108775083588393">Biratu automatikoki</translation>
 <translation id="8514746246728959655">Erabili beste segurtasun-giltza bat</translation>
+<translation id="851960115758509829">Aplikazioak, ezarpenak eta beste pertsonalizazio batzuk sinkronizatu egingo dira Chrome OS darabilten eta Google-ko kontuan saioa hasita duten gailu guztien artean.</translation>
 <translation id="8521475323816527629">Atzitu aplikazioak bizkor</translation>
 <translation id="8523493869875972733">Mantendu aldaketak</translation>
 <translation id="8523849605371521713">Gidalerroei jarraikiz gehitu da</translation>
@@ -5858,11 +5875,13 @@
 <translation id="885701979325669005">Biltegia</translation>
 <translation id="8859057652521303089">Hautatu hizkuntza:</translation>
 <translation id="8859174528519900719">Azpimarkoa: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Gurasoaren kontua</translation>
 <translation id="8862003515646449717">Aldatu arakatzaile bizkor batera</translation>
 <translation id="8863753581171631212">Ireki esteka <ph name="APP" /> aplikazio berrian</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> fitxa <ph name="APP_NAME" /> aplikazioarekin dago partekatuta</translation>
 <translation id="8864458770072227512">Kendu da <ph name="EMAIL" /> gailu honetatik</translation>
 <translation id="8867228703146808825">Kopiatu konpilazioaren xehetasunak arbelean</translation>
+<translation id="8868333925931032127">Demo modua abiarazten</translation>
 <translation id="8868626022555786497">Erabilita</translation>
 <translation id="8870413625673593573">Itxitako azkenak</translation>
 <translation id="8871551568777368300">Administratzaileak ainguratu du</translation>
@@ -5941,6 +5960,7 @@
 <translation id="8966870118594285808">Ireki berriro nahi gabe itxi duzun fitxa</translation>
 <translation id="8967866634928501045">Sakatu Alt + Maius + A ikusteko</translation>
 <translation id="8968766641738584599">Gorde txartela</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ez da pasahitzak egiaztatzeko gai. Saiatu berriro 24 ordu barru edo <ph name="BEGIN_LINK" />egiaztatu pasahitzak Google-ko kontuan<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Ihes-tekla</translation>
 <translation id="8972513834460200407">Galdetu sarearen administratzaileari suebakia Google-ren zerbitzariaren deskargak blokeatzen ari den.</translation>
 <translation id="8973557916016709913">Kendu zooma</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index b1e71a0..54b7c35 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">دستگاه‌های در دسترس</translation>
 <translation id="1042174272890264476">‏‫همچنین کتابخانه RLZ‏ <ph name="SHORT_PRODUCT_NAME" /> از قبل بر روی رایانه شما نصب شده است. RLZ یک برچسب غیرمنحصر بفرد و غیرقابل‌شناسایی برای سنجش جستجوها و استفاده از <ph name="SHORT_PRODUCT_NAME" /> اختصاص می‌دهد که توسط یک کمپین تبلیغاتی خاص ارائه می‌شود. در بعضی مواقع در <ph name="PRODUCT_NAME" /> این برچسب‌ها در عباراتی که در جستجوی Goole جستجو می‌شوند نمایان می‌شوند.</translation>
 <translation id="1043818413152647937">داده‌های این برنامه‌ها نیز پاک شود؟</translation>
+<translation id="1045448422538531528">افزودن به گروه</translation>
 <translation id="1046635659603195359">‏به‌نظر می‌رسد ازقبل Voice Match را با «دستیار Google» در دستگاه دیگری راه‌اندازی کرده‌اید. از این قطعه‌های قبلاً ضبط‌شده می‌توان برای ایجاد مدل صوتی در این دستگاه استفاده کرد. نباید بیشتر از یک دقیقه طول بکشد.</translation>
 <translation id="104710386808485638">‏Linux بازراه‌اندازی شود؟</translation>
 <translation id="1047431265488717055">کپی کردن متن &amp;پیوند</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">دسترسی به دوربین همیشه مسدود شود</translation>
 <translation id="1082398631555931481">‏<ph name="THIRD_PARTY_TOOL_NAME" /> می‌خواهد تنظیمات Chrome شما را به پیش‌فرض‌های اصلی‌شان بازیابی کند. با این کار صفحه اصلی، صفحه برگه جدید و موتور جستجویتان بازنشانی می‌شود، افزونه‌های شما غیرفعال می‌شوند و پین همه برگه‌ها برداشته می‌شود. همچنین سایر داده‌های موقت و داده‌های ذخیره شده در حافظه موقت، مانند کوکی‌ها، اطلاعات سایت و محتوا پاک می‌شوند.</translation>
+<translation id="1084096383128641877">با برداشتن گذرواژه، حساب‌تان در <ph name="DOMAIN" /> حذف نخواهد شد. برای ایمن نگه‌داشتن گذرواژه‌تان، آن را تغییر دهید یا حساب‌تان را در <ph name="DOMAIN_LINK" /> حذف کنید.</translation>
 <translation id="1084824384139382525">کپی آدر&amp;س پیوند</translation>
 <translation id="1085697365578766383">هنگام شروع دستگاه مجازی خطایی روی داد. لطفاً دوباره امتحان کنید.</translation>
 <translation id="1090126737595388931">بدون برنامه‌های در حال اجرا در پس‌زمینه</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">«بررسی ایمنی» دیروز اجرا شد</translation>
 <translation id="1260451001046713751">همیشه پنجره‌های بازشو و هدایت‌ها از <ph name="HOST" /> مجاز باشد</translation>
 <translation id="126156426083987769">مشکلی در رابطه با مجوزهای حالت نمایشی دستگاه پیش آمد.</translation>
+<translation id="1263490604593716556">حساب را <ph name="FIRST_PARENT_EMAIL" /> و <ph name="SECOND_PARENT_EMAIL" /> مدیریت می‌کنند. برای خروج از حساب اصلی در این دستگاه، روی زمان صفحه‌نمایش کلیک کنید. در منویی که نمایش داده می‌شود، روی «خروج از سیستم» کلیک کنید.</translation>
 <translation id="126710816202626562">زبان ترجمه:</translation>
 <translation id="126768002343224824">۱۶ برابر</translation>
 <translation id="1272079795634619415">توقف</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">وب‌سایت</translation>
 <translation id="15662109988763471">چاپگر انتخابی موجود نیست یا به‌درستی نصب نشده است. چاپگر خود را بررسی کنید یا چاپگر دیگری را انتخاب کنید.</translation>
 <translation id="1567387640189251553">بعد از آخرین باری که گذرواژه‌تان را وارد کردید، صفحه‌کلید دیگری متصل شده است. ممکن است تلاش کند ضربه‌کلیدهای شما را به سرقت ببرد.</translation>
-<translation id="1567750922576943685">تأیید هویت به محافظت از اطلاعات شخصی‌تان کمک می‌کند</translation>
 <translation id="1567993339577891801">کنسول جاوا اسکریپت</translation>
 <translation id="1568323446248056064">باز کردن تنظیمات نمایشگر دستگاه</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (مهمان)</translation>
@@ -516,7 +518,6 @@
 <translation id="1697150536837697295">هنری</translation>
 <translation id="1697686431566694143">ویرایش فایل</translation>
 <translation id="1698122934742150150">فقط جلسه ناشناس کنونی</translation>
-<translation id="1698650002254827833">فهرست برنامه‌ها بارگیری نشد. لطفاً دوباره امتحان کنید.</translation>
 <translation id="1700079447639026019">سایت‌هایی که هرگز نمی‌توانند از کوکی‌ها استفاده کنند</translation>
 <translation id="1701062906490865540">حذف این شخص</translation>
 <translation id="1703331064825191675">هرگز نگران گذرواژه‌هایتان نباشید</translation>
@@ -870,6 +871,7 @@
 <translation id="2172784515318616985">ادامه</translation>
 <translation id="2173302385160625112">اتصال اینترنت را بررسی کنید</translation>
 <translation id="2173801458090845390">افزودن شناسه درخواست به این دستگاه</translation>
+<translation id="2174948148799307353">حساب را <ph name="PARENT_EMAIL" /> مدیریت می‌کند. برای خروج از حساب اصلی در این دستگاه، روی زمان صفحه‌نمایش کلیک کنید. در منویی که نمایش داده می‌شود، روی «خروج از سیستم» کلیک کنید.</translation>
 <translation id="2175607476662778685">نوار راه‌اندازی سریع</translation>
 <translation id="217576141146192373">چاپگر اضافه نشد. لطفاً پیکربندی چاپگرتان را بررسی کنید و دوباره امتحان کنید.</translation>
 <translation id="2177950615300672361">برگه ناشناس: <ph name="TAB_NAME" /></translation>
@@ -971,7 +973,7 @@
 <translation id="2300383962156589922">سفارشی ساختن و کنترل <ph name="APP_NAME" /></translation>
 <translation id="2301382460326681002">دایرکتوری ریشه برنامهٔ افزودنی نامعتبر است.</translation>
 <translation id="2302444155926798584">‏Plugin VM حذف نصب شده است</translation>
-<translation id="23030561267973084">«<ph name="EXTENSION_NAME" />» مجوزهای دیگری را درخواست کرده است.</translation>
+<translation id="23030561267973084">«<ph name="EXTENSION_NAME" />» اجازه‌های تکمیلی درخواست کرده است.</translation>
 <translation id="23055578400314116">نام کاربری انتخاب کنید</translation>
 <translation id="2307462900900812319">پیکربندی شبکه</translation>
 <translation id="230927227160767054">این صفحه، می‌خواهد یک کنترل‌کننده سرویس نصب کند.</translation>
@@ -1078,7 +1080,6 @@
 <translation id="2442916515643169563">سایه نوشتار</translation>
 <translation id="2445081178310039857">دایرکتوری ریشه برنامهٔ افزودنی لازم است.</translation>
 <translation id="2445484935443597917">ایجاد نمایه جدید</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> می‌خواهد هویتتان را به تأیید برساند</translation>
 <translation id="2448312741937722512">نوع</translation>
 <translation id="2450223707519584812">‏نمی‌توانید کاربران را اضافه کنید زیرا کلیدهای Google API موجود نیستند. برای جزئیات به <ph name="DETAILS_URL" /> مراجعه کنید.</translation>
 <translation id="2450849356604136918">هیچ نمای فعالی وجود ندارد</translation>
@@ -1476,6 +1477,7 @@
 <translation id="2948300991547862301">رفتن به <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">مرورگر وب سریع، ساده و ایمن که برای وب مدرن طراحی شده است.</translation>
 <translation id="2949289451367477459">‏استفاده از مکان. به برنامه‌ها و سرویس‌های دارای مجوز مکان اجازه دهید از مکان این دستگاه استفاده کنند. Google ممکن است به‌صورت دوره‌ای داده‌های مکان را جمع‌آوری کند و از این داده‌ها به‌شیوه‌ای ناشناس برای بهبود دقت مکان و خدمات مکان‌مبنا استفاده کند. <ph name="BEGIN_LINK1" />بیشتر بدانید<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">من را ثبت‌نام کن</translation>
 <translation id="2956070239128776395">بخش در گروه قرار گرفت: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">به هیچ سایتی اجازه ویرایش فایل‌ها و پوشه‌های دستگاه داده نشود</translation>
 <translation id="2958721676848865875">هشدار در مورد بسته‌بندی افزونه</translation>
@@ -1600,6 +1602,7 @@
 <translation id="3139925690611372679">چهره‌نمای پیش‌فرض زرد</translation>
 <translation id="3141318088920353606">درحال گوش کردن...</translation>
 <translation id="3141917231319778873">درخواست موردنظر در این دستگاه پشتیبانی نمی‌شود: «<ph name="DEVICE_NAME" />».</translation>
+<translation id="3142562627629111859">گروه جدید</translation>
 <translation id="3143515551205905069">لغو همگام‌سازی</translation>
 <translation id="3143754809889689516">پخش از ابتدا</translation>
 <translation id="3144647712221361880">بازکردن پیوند به‌عنوان</translation>
@@ -1624,6 +1627,7 @@
 <translation id="3159493096109238499">بژ</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (پشتیبان‌گیری‌شده در سخت‌افزار)</translation>
 <translation id="3161522574479303604">همه زبان‌ها</translation>
+<translation id="3162853326462195145">حساب محل تحصیل</translation>
 <translation id="3162899666601560689">سایت‌ها می‌توانند از کوکی‌ها برای بهبود تجربه مرورتان استفاده کنند، مثلاً برای اینکه شما را درحالت واردشده به سیستم نگه دارند یا موارد موجود در سبد خریدتان را به‌خاطر بسپارند</translation>
 <translation id="3163201441334626963">محصول نامشخص <ph name="PRODUCT_ID" /> از فروشنده <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">درحال هم‌رسانی این برگه با <ph name="APP_NAME" /></translation>
@@ -1682,7 +1686,6 @@
 <translation id="3246107497225150582">{0,plural, =1{دستگاه را تا یک روز دیگر به‌روزرسانی کنید}one{دستگاه را تا # روز دیگر به‌روزرسانی کنید}other{دستگاه را تا # روز دیگر به‌روزرسانی کنید}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - خطای شبکه</translation>
 <translation id="3248902735035392926">امنیت اهمیت دارد. اکنون چند لحظه برای<ph name="BEGIN_LINK" />بررسی افزونه‌هایتان<ph name="END_LINK" /> وقت بگذارید</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;جزئی از گواهی نیست&gt;</translation>
 <translation id="3253225298092156258">موجود نیست</translation>
 <translation id="3253448572569133955">حساب نامشخص</translation>
@@ -1787,6 +1790,7 @@
 <translation id="3396800784455899911">‏با کلیک کردن روی دکمه «پذیرفتن و ادامه»، با پردازش مربوط به این سرویس‌های Google که در بالا توضیح داده شد موافقت می‌کنید.</translation>
 <translation id="3399432415385675819">اعلان‌ها غیرفعال خواهند شد</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> هرتز) - درهم‌بافته</translation>
+<translation id="3402585168444815892">درحال ثبت‌نام کردن در «حالت نمایشی»</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />، <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">هیچ گذرواژه‌ای برای این سایت ذخیره نشده است</translation>
 <translation id="3405664148539009465">سفارشی کردن قلم‌ها</translation>
@@ -1848,6 +1852,7 @@
 <translation id="3468999815377931311">‏تلفن Android</translation>
 <translation id="3470442499439619530">حذف این کاربر</translation>
 <translation id="3471876058939596279">‏نمی‌توان به‌طور هم‌زمان از درگاه‌های HDMI و USB نوع C برای ویدیو استفاده کرد. از درگاه ویدیوی دیگری استفاده کنید.</translation>
+<translation id="3473241910002674503">با دکمه‌های «حالت رایانه لوحی» به صفحه اصلی پیمایش کنید، به صفحه قبلی برگردید، و بین برنامه‌ها جابه‌جا شوید.</translation>
 <translation id="3473479545200714844">ذره‌بین صفحه</translation>
 <translation id="3475843873335999118">متأسفیم، اثر انگشتتان هنوز شناسایی نشده است. لطفاً گذرواژه‌تان را وارد کنید.</translation>
 <translation id="3476303763173086583">‏داده‌های استفاده و عیب‌یابی را ارسال کنید. با ارسال خودکار داده‌های عیب‌یابی و داده‌های استفاده از دستگاه و برنامه به Google به بهبود تجربه Android خود کمک کنید. این داده‌ها برای شناسایی فرزندتان استفاده نخواهند شد و به بهبود پایداری سیستم و برنامه و موارد دیگر کمک خواهد کرد. بعضی داده‌های انبوه نیز به برنامه‌ها و شرکای Google (مانند برنامه‌نویس‌های Android) کمک می‌کند. این <ph name="BEGIN_LINK1" />تنظیم<ph name="END_LINK1" /> توسط مالک اعمال می‌شود. ممکن است مالک انتخاب کند داده‌های استفاده و عیب‌یابی این دستگاه به Google ارسال شود. اگر تنظیم «فعالیت وب و برنامه» تکمیلی برای فرزندتان روشن باشد، ممکن است این داده‌ها در حساب Google او ذخیره شود. <ph name="BEGIN_LINK2" />بیشتر بدانید<ph name="END_LINK2" /></translation>
@@ -2272,6 +2277,7 @@
 <translation id="3971764089670057203">اثر انگشت‌ها در این کلید امنیتی</translation>
 <translation id="3973660817924297510">درحال بررسی کردن گذرواژه‌ها (<ph name="CHECKED_PASSWORDS" /> از <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">برقراری ارتباط با سرور برای گستره ناموفق بود</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> نمی‌تواند گذرواژه‌هایتان را بررسی کند. بعداً دوباره امتحان کنید.</translation>
 <translation id="3976108569178263973">چاپگری دردسترس نیست.</translation>
 <translation id="397703832102027365">نهایی‌سازی…</translation>
 <translation id="3977886311744775419">به‌روزرسانی‌های خودکار در این نوع شبکه بارگیری نمی‌شود، اما می‌توانید به‌صورت دستی دردسترس بودن آن‌ها را بررسی کنید.</translation>
@@ -2335,6 +2341,7 @@
 <translation id="4068506536726151626">این صفحه کنشگرهایی از سایت‌های زیر دارد که مکان شما را ردیابی می‌کنند:</translation>
 <translation id="4068776064906523561">اثرانگشت‌های ذخیره‌شده</translation>
 <translation id="407173827865827707">با کلیک</translation>
+<translation id="4073520450811433493">همگام‌سازی تنظیمات</translation>
 <translation id="4074900173531346617">گواهی امضاکننده ایمیل</translation>
 <translation id="407520071244661467">مقیاس</translation>
 <translation id="4075639477629295004">ارسال محتوای <ph name="FILE_NAME" /> امکان‌پذیر نیست.</translation>
@@ -2571,6 +2578,7 @@
 <translation id="4421932782753506458">پشمالو</translation>
 <translation id="4423376891418188461">بازیابی تنظیمات</translation>
 <translation id="442397852638519243">سرپرستتان (<ph name="USER_NAME" />)، از شما می‌خواهد که گذرواژه‌تان را عوض کنید.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> نمی‌تواند گذرواژه‌هایتان را بررسی کند. بعد از ۲۴ ساعت دوباره امتحان کنید.</translation>
 <translation id="4429030830601238961">این داده‌ها خط‌مشی‌های امنیتی سازمانتان را نقض می‌کند و نمی‌تواند جای‌گذاری شود.</translation>
 <translation id="4430019312045809116">میزان صدا</translation>
 <translation id="4430369329743628066">نشانک اضافه شد</translation>
@@ -2583,6 +2591,7 @@
 <translation id="4441124369922430666">آیا می‌خواهید با روشن شدن دستگاه، این برنامه به‌طور خودکار شروع شود؟</translation>
 <translation id="4441147046941420429">برای ادامه کار، کلید امنیتی‌تان را از دستگاه جدا کنید و سپس آن را دوباره وارد کنید و لمس کنید</translation>
 <translation id="444134486829715816">گسترده کردن...</translation>
+<translation id="4442329324652245220">‏<ph name="IDS_SHORT_PRODUCT_NAME" /> زمانی می‌تواند گذرواژه‌هایتان را بررسی کند که با «حساب Google» خود به سیستم وارد شوید</translation>
 <translation id="4442424173763614572">‏جستجوی DNS انجام نشد</translation>
 <translation id="4443536555189480885">&amp;راهنما</translation>
 <translation id="4444304522807523469">‏دسترسی به اسکنرهای سند متصل شده از طریق USB یا در شبکه محلی</translation>
@@ -2609,11 +2618,13 @@
 <translation id="4476659815936224889">‏برای اسکن کردن این کد، می‌توانید از برنامه اسکنر QR در تلفن یا دیگر برنامه‌های دوربین استفاده کنید.</translation>
 <translation id="4477015793815781985">‏باید شامل Ctrl، ‏Alt یا ⌘ باشد</translation>
 <translation id="4478664379124702289">ذخیره پی&amp;وند به‌عنوان...</translation>
+<translation id="4478777936860197922">گذرواژه ذخیره‌شده‌ای وجود ندارد. <ph name="IDS_SHORT_PRODUCT_NAME" /> زمانی می‌تواند گذرواژه‌هایتان را بررسی کند که آن‌ها را ذخیره کرده باشید.</translation>
 <translation id="4479424953165245642">مدیریت برنامه‌های کاربردی کیوسک</translation>
 <translation id="4479639480957787382">اترنت</translation>
 <translation id="4479877282574735775">درحال پیکربندی ماشین مجازی. ممکن است چند دقیقه طول بکشد.</translation>
 <translation id="4480590691557335796">‏Chrome می‌تواند نرم‌افزار مضر را در رایانه‌تان پیدا کرده و آن را حذف کند</translation>
 <translation id="4481530544597605423">دستگاه‌های لغو ارتباط‌شده</translation>
+<translation id="4488107067273194838">بررسی گزینه‌های همگام‌سازی مرورگر بعد از راه‌اندازی</translation>
 <translation id="4488502501195719518">همه داده‌ها پاک شود؟</translation>
 <translation id="4495419450179050807">در این صفحه نشان داده نشود</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> به‌طور خودکار مسدود‌ شده است</translation>
@@ -2855,9 +2866,10 @@
 <translation id="4849517651082200438">نصب نشود</translation>
 <translation id="4850669014075537160">پیمایش</translation>
 <translation id="4850886885716139402">نما</translation>
+<translation id="485197095346966382">وقتی با گذرواژه لورفته به سیستم وارد شوید، <ph name="IDS_SHORT_PRODUCT_NAME" /> به شما اطلاع می‌دهد</translation>
 <translation id="4853020600495124913">باز کردن در پنجره &amp;جدید</translation>
 <translation id="4854317507773910281">حساب ولی را برای تأیید انتخاب کنید</translation>
-<translation id="485480310608090163">تنظیمات و مجوزهای بیشتر</translation>
+<translation id="485480310608090163">تنظیمات و اجازه‌های بیشتر</translation>
 <translation id="4856478137399998590">سرویس داده تلفن همراه شما فعال شده و آمادهٔ استفاده است.</translation>
 <translation id="4857506433977877623">{COUNT,plural, =0{باز کردن همه در پنجره ناشناس}=1{باز کردن در پنجره ناشناس}one{باز کردن همه (#) در پنجره ناشناس}other{باز کردن همه (#) در پنجره ناشناس}}</translation>
 <translation id="4858792381671956233">از والدینتان پرسیدید آیا اجازه بازدید از این سایت را دارید</translation>
@@ -2873,6 +2885,7 @@
 <translation id="4871322859485617074">پین حاوی نویسه‌های نامعتبر است</translation>
 <translation id="4871370605780490696">افزودن نشانک</translation>
 <translation id="4871719318659334896">بستن گروه</translation>
+<translation id="4871852311166078968">افزودن به گروه</translation>
 <translation id="4873312501243535625">بررسی‌کننده فایل رسانه‌ای</translation>
 <translation id="4876273079589074638">به مهندسان ما کمک کنید این خرابی را بررسی و برطرف کنند. در صورت امکان مراحل را دقیق فهرست کنید. هیچ جزئیاتی بی‌اهمیت نیست!</translation>
 <translation id="4876895919560854374">قفل و باز کردن قفل صفحه</translation>
@@ -2964,7 +2977,6 @@
 <translation id="4992473555164495036">سرپرست سیستم روش‌های ورودی دردسترس را محدود کرده است.</translation>
 <translation id="4994474651455208930">سایت‌ها اجازه دارند درخواست کنند کنترل کننده پیش‌فرض برای پروتکل ها شوند</translation>
 <translation id="4994754230098574403">درحال راه‌اندازی</translation>
-<translation id="4996978546172906250">اشتراک‌گذاری از طریق</translation>
 <translation id="4997086284911172121">اتصال اینترنت ندارید.</translation>
 <translation id="4997384734315285248">‏حذف کردن نصب Plugin VM</translation>
 <translation id="4998430619171209993">روشن</translation>
@@ -3064,7 +3076,6 @@
 <translation id="5135085122826131075">‏با گفتن «OK Google» به «دستیار» دسترسی پیدا کنید.</translation>
 <translation id="5135533361271311778">ایجاد مورد نشانک ممکن نیست.</translation>
 <translation id="5137501176474113045">حذف این مورد</translation>
-<translation id="5138982052046316113">‏تغییر اندازه دیسک Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />، جستجوی <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">پین کلید امنیتی را وارد کنید. اگر پین را نمی‌دانید، باید کلید امنیتی را بازنشانی کنید.</translation>
 <translation id="5139955368427980650">&amp;بازکردن</translation>
@@ -3516,6 +3527,7 @@
 <translation id="5739235828260127894">در انتظار تأیید. <ph name="LINK_BEGIN" />بیشتر بدانید.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">خیلی بزرگ</translation>
 <translation id="574209121243317957">زیروبمی صدا</translation>
+<translation id="5745136023067925867">نکته‌ها، پیشنهادها، و به‌روزرسانی‌های مربوط به <ph name="DEVICE_TYPE" /> را دریافت کنید و بازخورد ارائه دهید</translation>
 <translation id="5746169159649715125">‏ذخیره به‌عنوان PDF</translation>
 <translation id="5747552184818312860">تاریخ انقضا</translation>
 <translation id="5747785204778348146">برنامه‌نویس - ناپایدار</translation>
@@ -3928,7 +3940,6 @@
 <translation id="6291953229176937411">‏&amp;نمایش در Finder</translation>
 <translation id="6295158916970320988">همه سایت‌ها</translation>
 <translation id="6295855836753816081">در حال ذخیره کردن...</translation>
-<translation id="629730747756840877">حساب</translation>
 <translation id="6298962879096096191">‏برای نصب برنامه‌های Android از Google Play‌ استفاده کنید</translation>
 <translation id="630065524203833229">&amp;خروج</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> به‌طور خودکار پیکربندی نشد. لطفاً جزئیات پیشرفته چاپگر را مشخص کنید. <ph name="LINK_BEGIN" />بیشتر بدانید<ph name="LINK_END" /></translation>
@@ -4334,7 +4345,6 @@
 <translation id="6865598234501509159">صفحه به زبان <ph name="LANGUAGE" /> نیست</translation>
 <translation id="6865708901122695652">‏گزارش وقایع WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">دمای رنگ</translation>
-<translation id="6870888490422746447">انتخاب برنامه‌ای برای اشتراک‌گذاری در:</translation>
 <translation id="6871644448911473373">‏پاسخگوی OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">سرور گذرواژه‌ای را که وارد کردید نپذیرفته است.</translation>
 <translation id="6876155724392614295">دوچرخه‌</translation>
@@ -4427,6 +4437,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - گزارش فعالیت</translation>
 <translation id="6997707937646349884">در دستگاه‌های شما:</translation>
 <translation id="6998793565256476099">ثبت‌نام دستگاه برای برگزاری کنفرانس ویدیویی</translation>
+<translation id="6999956497249459195">گروه جدید</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> متصل شده است اما باید پیکربندی شود</translation>
 <translation id="7000347579424117903">‏باید شامل Ctrl،‏ Alt یا Search‌ باشد</translation>
 <translation id="7001036685275644873">‏پشتیبان‌گیری از برنامه‌ها و فایل‌های Linux</translation>
@@ -4436,7 +4447,7 @@
 <translation id="7003844668372540529">محصول نامشخص <ph name="PRODUCT_ID" /> از <ph name="VENDOR_NAME" /></translation>
 <translation id="7004402701596653846">‏سایت می‌تواند از MIDI استفاده کند</translation>
 <translation id="7004499039102548441">برگه‌های جدید</translation>
-<translation id="7005496624875927304">مجوزهای بیشتر</translation>
+<translation id="7005496624875927304">اجازه‌های تکمیلی</translation>
 <translation id="7005848115657603926">محدوده صفحه معتبر نیست، از <ph name="EXAMPLE_PAGE_RANGE" /> استفاده کنید</translation>
 <translation id="7006634003215061422">حاشیه پایین</translation>
 <translation id="7007648447224463482">باز کردن همه در پنجره جدید</translation>
@@ -4725,6 +4736,7 @@
 <translation id="7400418766976504921">نشانی وب</translation>
 <translation id="7400839060291901923">تنظیم اتصال در <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">رد کردن این پیام</translation>
+<translation id="7403642243184989645">درحال بارگیری کردن منابع</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{بررسی ایمنی ۱ ساعت پیش اجرا شده است}one{بررسی ایمنی {NUM_HOURS} ساعت پیش اجرا شد}other{بررسی ایمنی {NUM_HOURS} ساعت پیش اجرا شد}}</translation>
 <translation id="740624631517654988">پنجره‌های بازشو مسدود شدند</translation>
 <translation id="7407430846095439694">وارد کردن و اتصال</translation>
@@ -4961,6 +4973,7 @@
 <translation id="7716781361494605745">‏نشانی وب خط‌مشی ارائه دهنده مجوز Netscape</translation>
 <translation id="7717014941119698257">بارگیری: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">بررسی به‌روزرسانی‌ها</translation>
+<translation id="7719070594859855691">اعطای دسترسی به دوربین</translation>
 <translation id="7719367874908701697">بزرگ‌نمایی صفحه</translation>
 <translation id="7721179060400456005">اجازه دادن به پنجره‌ها برای پوشاندن کل نمایشگر</translation>
 <translation id="7722040605881499779">فضای لازم برای به‌روزرسانی: <ph name="NECESSARY_SPACE" /></translation>
@@ -4975,7 +4988,6 @@
 <translation id="7744047395460924128">مشاهده سابقه چاپ کردن</translation>
 <translation id="7744192722284567281">در نقض داده پیدا شد</translation>
 <translation id="7750228210027921155">تصویردرتصویر</translation>
-<translation id="7751229152614300329">«مرور ایمن» به‌روز شده است و از شما دربرابر سایت‌ها و بارگیری‌های مضر محافظت می‌کند</translation>
 <translation id="7751260505918304024">نمایش همه</translation>
 <translation id="7754704193130578113">قبل از بارگیری هر فایل، درباره مکان ذخیره سؤال شود</translation>
 <translation id="7755287808199759310">والدینتان می‌توانند این سایت را برای شما بگشایند</translation>
@@ -5063,6 +5075,7 @@
     <ph name="BEGIN_BOLD" />نکته:<ph name="END_BOLD" /> سیستم هنگام پردازش راه‌اندازی مجدد می‌شود.</translation>
 <translation id="7828731929332799387">با این کار همه کوکی‌ها و داده‌های سایت موجود در بافت‌های شخص ثالث حذف می‌شود. می‌خواهید ادامه دهید؟</translation>
 <translation id="7829298379596169484">در حال دسترسی به ورودی صوتی</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> نمی‌تواند گذرواژه‌هایتان را بررسی کند. اتصال اینترنت را بررسی کنید.</translation>
 <translation id="7829877209233347340">از ولی خود بخواهید به سیستم وارد شود و با افزودن حساب محل تحصیل موافقت کند</translation>
 <translation id="7830594666202422257">‏اتصال به Linux</translation>
 <translation id="7831491651892296503">خطا در پیکربندی شبکه</translation>
@@ -5285,6 +5298,7 @@
 <translation id="8107015733319732394">‏«فروشگاه Google Play» در <ph name="DEVICE_TYPE" /> شما درحال نصب شدن است. ممکن است این کار چند دقیقه طول بکشد.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{فاقد کوکی شخص ثالث}=1{۱ کوکی شخص ثالث مسدود شده است}one{# کوکی شخص ثالث مسدود شده است}other{# کوکی شخص ثالث مسدود شده است}}</translation>
 <translation id="810875025413331850">هیچ دستگاه نزدیکی پیدا نشد.</translation>
+<translation id="8114199541033039755">‏با دکمه‌های «حالت رایانه لوحی» به صفحه اصلی پیمایش کنید، به صفحه قبلی برگردید، و بین برنامه‌ها جابه‌جا شوید. وقتی ChromeVox یا «کلیک‌های خودکار» فعال باشد، روشن می‌شود.</translation>
 <translation id="8114875720387900039">تقسیم افقی</translation>
 <translation id="8116972784401310538">مدیر &amp;نشانک</translation>
 <translation id="8117620576188476503">‏اتصال‌ها، به‌روزرسانی‌ها و تنظیمات را ازطریق سینی وضعیت مدیریت کنید. برای اینکه ازطریق صفحه‌کلید به اینجا بیایید Alt + Shift + S را فشار دهید.</translation>
@@ -5404,6 +5418,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> مکان‌نمای ماوس شما را غیرفعال کرد.</translation>
 <translation id="8264024885325823677">این تنظیم را سرپرست شما مدیریت می‌کند.</translation>
 <translation id="8264718194193514834">«<ph name="EXTENSION_NAME" />» حالت تمام صفحه را فعال کرد.</translation>
+<translation id="826511437356419340">وارد حالت نمای کلی پنجره شدید. برای پیمایش تند روی صفحه بکشید، یا اگر از صفحه‌کلید استفاده می‌کنید، کلید جهش را فشار دهید.</translation>
 <translation id="8267961145111171918">‏<ph name="BEGIN_PARAGRAPH1" />این اطلاعاتی عمومی درباره این دستگاه و نحوه استفاده از آن است (مثلاً میزان شارژ باتری، فعالیت سیستم و برنامه و خطاها). از این داده‌ها برای بهبود Android استفاده می‌شود و بعضی از اطلاعات جمع‌آوری‌شده به برنامه‌ها و شرکای Google (ازجمله برنامه‌نویسان Android) نیز کمک می‌کند برنامه‌ها و محصولاتشان را بهتر کنند.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />خاموش کردن این ویژگی بر توانایی این دستگاه در ارسال اطلاعات موردنیاز برای سرویس‌های ضروری (مانند به‌روزرسانی‌های سیستم و امنیت) بی‌تأثیر است.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />مالک می‌تواند این ویژگی را از «تنظیمات &gt; پیشرفته &gt; ارسال خودکار داده‌های تشخیصی و میزان استفاده به Google» کنترل کند.<ph name="END_PARAGRAPH3" />
@@ -5512,6 +5527,7 @@
 <translation id="8426713856918551002">فعال کردن</translation>
 <translation id="8427292751741042100">جاسازی‌شده در هر میزبانی</translation>
 <translation id="8428213095426709021">تنظیمات</translation>
+<translation id="8428271547607112339">افزودن حساب محل تحصیل</translation>
 <translation id="8428628598981198790">نمی‌توان از کلید امنیتی‌تان در این سایت استفاده کرد.</translation>
 <translation id="84297032718407999"><ph name="LOGOUT_TIME_LEFT" /> دیگر از سیستم خارج می‌شوید</translation>
 <translation id="8431190899827883166">نمایش ضربه‌ها</translation>
@@ -5575,6 +5591,7 @@
 <translation id="851263357009351303">همیشه <ph name="HOST" /> مجاز باشد تصاویر را نشان دهد</translation>
 <translation id="8513108775083588393">چرخش خودکار</translation>
 <translation id="8514746246728959655">کلید امنیتی دیگری را امتحان کنید</translation>
+<translation id="851960115758509829">‏برنامه‌ها، تنظیمات، و دیگر موارد سفارشی در همه دستگاه‌های «سیستم‌عامل Chrome» که با «حساب Google» خود در آن‌ها به سیستم وارد شده‌اید همگام‌سازی خواهند شد.</translation>
 <translation id="8521475323816527629">دسترسی سریع به برنامه‌ها</translation>
 <translation id="8523493869875972733">حفظ تغییرات</translation>
 <translation id="8523849605371521713">به‌موجب خط‌مشی اضافه شد</translation>
@@ -5856,11 +5873,13 @@
 <translation id="885701979325669005">فضای ذخیره‌سازی</translation>
 <translation id="8859057652521303089">انتخاب زبان:</translation>
 <translation id="8859174528519900719">قاب فرعی: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">حساب والدین</translation>
 <translation id="8862003515646449717">به مرورگر سریعی جابه‌جا شوید</translation>
 <translation id="8863753581171631212">باز کردن پیوند در پنجره جدید <ph name="APP" /></translation>
 <translation id="8864055848767439877">درحال هم‌رسانی <ph name="TAB_NAME" /> با <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> از این دستگاه برداشته شد</translation>
 <translation id="8867228703146808825">جزئیات ساخت را در بریده‌دان کپی کنید</translation>
+<translation id="8868333925931032127">درحال شروع کردن «حالت نمایشی»</translation>
 <translation id="8868626022555786497">درحال استفاده</translation>
 <translation id="8870413625673593573">اخیراً بسته‌شده</translation>
 <translation id="8871551568777368300">پین‌شده توسط سرپرست</translation>
@@ -5939,6 +5958,7 @@
 <translation id="8966870118594285808">اگر به اشتباه برگه‌ای را بستید، دوباره آن را باز کنید</translation>
 <translation id="8967866634928501045">‏Alt Shift A را برای نمایش فشار دهید</translation>
 <translation id="8968766641738584599">ذخیره کارت</translation>
+<translation id="8971800409073702505">‏<ph name="IDS_SHORT_PRODUCT_NAME" /> نمی‌تواند گذرواژه‌هایتان را بررسی کند. بعد از ۲۴ ساعت دوباره امتحان کنید یا <ph name="BEGIN_LINK" />گذرواژه‌ها را در «حساب Google» خود بررسی کنید<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">فرار</translation>
 <translation id="8972513834460200407">‏لطفاً با سرپرست شبکه خود بررسی کنید تا مطمئن شوید فایروال از بارگیری از سرورهای Google جلوگیری نمی‌کند.</translation>
 <translation id="8973557916016709913">برداشتن سطح بزرگ‌نمایی</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index e940520..afc73896 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Käytettävissä olevat laitteet</translation>
 <translation id="1042174272890264476"><ph name="SHORT_PRODUCT_NAME" /> sisältää sisäänrakennetun RLZ-kirjaston. RLZ tuottaa ei-yksilöivän tagin, jolla voidaan mitata tietyn kampanjan aiheuttamia hakuja ja tuotteen <ph name="SHORT_PRODUCT_NAME" /> käyttöä. <ph name="PRODUCT_NAME" /> näyttää ajoittain näitä tunnisteita Google-hakujen kyselyissä.</translation>
 <translation id="1043818413152647937">Poistetaanko myös näiden sovellusten data?</translation>
+<translation id="1045448422538531528">Lisää ryhmään</translation>
 <translation id="1046635659603195359">Olet näemmä jo määrittänyt Google Assistantin Voice Matchin toisella laitteella. Tämän laitteen äänimalli voidaan luoda aiemmista tallenteista. Määrityksen pitäisi kestää alle minuutin.</translation>
 <translation id="104710386808485638">Käynnistetäänkö Linux uudelleen?</translation>
 <translation id="1047431265488717055">Kopioi linkin te&amp;ksti</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Estä aina kameran käyttö</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> haluaa palauttaa Chrome-asetuksesi alkuperäisiksi. Etusivusi, Uusi välilehti -sivusi ja hakukoneesi palautetaan, laajennukset poistetaan käytöstä ja kaikki kiinnitetyt välilehdet irrotetaan. Myös kaikki väliaikaiset ja välimuistissa olevat tiedot, kuten evästeet, sisältö ja sivustotiedot, poistetaan.</translation>
+<translation id="1084096383128641877">Vaikka poistat salasanan, tiliäsi (<ph name="DOMAIN" />) ei poisteta. Vaihda salasana tai poista tili (<ph name="DOMAIN_LINK" />), jotta se pysyy turvassa muilta.</translation>
 <translation id="1084824384139382525">Kopioi linkin osoit&amp;e</translation>
 <translation id="1085697365578766383">Virtuaalikoneen käynnistys epäonnistui. Yritä uudelleen.</translation>
 <translation id="1090126737595388931">Ei käynnissä olevia taustasovelluksia</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Turvatarkistus tehtiin eilen</translation>
 <translation id="1260451001046713751">Näytä aina ponnahdusikkunat: <ph name="HOST" /></translation>
 <translation id="126156426083987769">Esittelytilan laitelisenssien kanssa tapahtui ongelma.</translation>
+<translation id="1263490604593716556"><ph name="FIRST_PARENT_EMAIL" /> ja <ph name="SECOND_PARENT_EMAIL" /> hallinnoivat tiliä. Jos haluat kirjautua ulos laitteen ensisijaiselta tililtä, klikkaa aikaa näytöllä. Valitse avautuvasta valikosta Kirjaudu ulos.</translation>
 <translation id="126710816202626562">Käännöksen kieli:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Pysäytä</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Verkkosivusto</translation>
 <translation id="15662109988763471">Valittu tulostin ei ole käytettävissä tai sitä ei ole asennettu oikein. Tarkista tulostin tai valitse toinen tulostin.</translation>
 <translation id="1567387640189251553">Laitteeseen on kytketty eri näppäimistö sen jälkeen, kun annoit salasanasi edellisen kerran. Sillä voidaan yrittää kaapata näppäinpainalluksesi.</translation>
-<translation id="1567750922576943685">Henkilöllisyyden vahvistaminen auttaa suojaamaan henkilötietojasi</translation>
 <translation id="1567993339577891801">JavaScript-konsoli</translation>
 <translation id="1568323446248056064">Avaa näytön laiteasetukset</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (vieras)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Taide</translation>
 <translation id="1697686431566694143">Muokkaa tiedostoa</translation>
 <translation id="1698122934742150150">Vain nykyinen incognito-istunto</translation>
-<translation id="1698650002254827833">Sovellusluetteloa ei voi ladata. Yritä uudelleen.</translation>
 <translation id="1700079447639026019">Sivustot, jotka eivät koskaan voi käyttää evästeitä</translation>
 <translation id="1701062906490865540">Poista tämä henkilö</translation>
 <translation id="1703331064825191675">Enää ei tarvitse huolehtia salasanoista</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Jatka</translation>
 <translation id="2173302385160625112">Tarkista internetyhteytesi</translation>
 <translation id="2173801458090845390">Lisää pyynnön tunnus tähän laitteeseen</translation>
+<translation id="2174948148799307353"><ph name="PARENT_EMAIL" /> hallinnoi tiliä. Jos haluat kirjautua ulos laitteen ensisijaiselta tililtä, klikkaa aikaa näytöllä. Valitse avautuvasta valikosta Kirjaudu ulos.</translation>
 <translation id="2175607476662778685">Pikakäynnistysvalikko</translation>
 <translation id="217576141146192373">Tulostimen lisääminen ei onnistu. Tarkista tulostimen määritykset ja yritä uudelleen.</translation>
 <translation id="2177950615300672361">Incognito-välilehti: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Tekstin varjo</translation>
 <translation id="2445081178310039857">Laajennuksen juurihakemisto tarvitaan.</translation>
 <translation id="2445484935443597917">Luo uusi profiili</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> haluaa vahvistaa henkilöllisyytesi</translation>
 <translation id="2448312741937722512">Tyyppi</translation>
 <translation id="2450223707519584812">Et voi lisätä käyttäjiä, koska Google-sovellusliittymäavaimia ei löydy. Saat lisätietoja osoitteesta <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Ei aktiivisia näkymiä</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Siirry kohtaan <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Nopea, yksinkertainen ja turvallinen verkkoselain, joka on suunniteltu nykypäivän verkon tarpeisiin.</translation>
 <translation id="2949289451367477459">Käytä sijaintia. Salli laitteen sijainnin käyttäminen sovelluksille ja palveluille, joilla on sijainnin käyttöoikeus. Google voi ajoittain kerätä sijaintitietoja ja käyttää niitä ei-yksilöivästi sijainnin tarkkuuden ja sijaintiin perustuvien palvelujen kehittämiseen. <ph name="BEGIN_LINK1" />Lue lisää<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Lähden mukaan</translation>
 <translation id="2956070239128776395">Osio sisällytetty ryhmään: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Älä anna sivuston muokata tiedostoja tai kansioita laitteella</translation>
 <translation id="2958721676848865875">Varoitus: pakattu laajennus</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Keltainen oletusavatar</translation>
 <translation id="3141318088920353606">Kuunnellaan…</translation>
 <translation id="3141917231319778873">Annettua pyyntöä ei tueta laitteella <ph name="DEVICE_NAME" />.</translation>
+<translation id="3142562627629111859">Uusi ryhmä</translation>
 <translation id="3143515551205905069">Peruuta synkronointi</translation>
 <translation id="3143754809889689516">Toista alusta</translation>
 <translation id="3144647712221361880">Avaa linkki käyttäjänä</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (laitteiston tukema)</translation>
 <translation id="3161522574479303604">Kaikki kielet</translation>
+<translation id="3162853326462195145">Koulutili</translation>
 <translation id="3162899666601560689">Sivustot voivat käyttää evästeitä selauskokemuksesi parantamiseen, esimerkiksi pitää sinut kirjautuneena tai muistaa ostoskorisi sisällön</translation>
 <translation id="3163201441334626963">Tuntematon tuote <ph name="PRODUCT_ID" /> toimittajalta <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Välilehti jaetaan, <ph name="APP_NAME" /> saa sen</translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Päivitä laite vuorokauden kuluessa}other{Päivitä laite # vuorokauden kuluessa}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – verkkovirhe</translation>
 <translation id="3248902735035392926">Turvallisuudella on väliä. Käytä nyt hetki <ph name="BEGIN_LINK" />laajennusten tarkistamiseen<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Ei osa varmennetta&gt;</translation>
 <translation id="3253225298092156258">Ei saatavilla</translation>
 <translation id="3253448572569133955">Tuntematon tili</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Kun valitset Hyväksy ja jatka, hyväksyt käsittelyn näissä Google-palveluissa edellä kuvatuilla tavoilla.</translation>
 <translation id="3399432415385675819">Ilmoitukset poistetaan käytöstä.</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertsiä) – lomitettu</translation>
+<translation id="3402585168444815892">Liitytään demotilaan</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Tämän sivuston salasanoja ei ole tallennettu</translation>
 <translation id="3405664148539009465">Muokkaa kirjasimia</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android-puhelin</translation>
 <translation id="3470442499439619530">Poista tämä käyttäjä</translation>
 <translation id="3471876058939596279">HDMI- ja USB Type-C ‑portteja ei voi käyttää videota varten yhtä aikaa. Käytä toista videoporttia.</translation>
+<translation id="3473241910002674503">Tablettitilan painikkeilla voit siirtyä aloitusnäytölle, takaisin ja vaihtaa sovellusta.</translation>
 <translation id="3473479545200714844">Ruudun suurentaminen</translation>
 <translation id="3475843873335999118">Sormenjälkeäsi ei tunnistettu vieläkään. Lisää salasana.</translation>
 <translation id="3476303763173086583">Lähetä käyttö- ja diagnostiikkadataa. Auta parantamaan lapsesi Android-käyttökokemusta lähettämällä diagnostiikkadataa sekä laitteen ja sovellusten käyttödataa automaattisesti Googlelle. Dataa ei käytetä lapsesi henkilöllisyyden selvittämiseen – sen avulla parannetaan esimerkiksi järjestelmän ja sovellusten vakautta. Kootusta datasta on hyötyä myös Googlen sovelluksille ja kumppaneille, kuten Android-kehittäjille. Omistaja on ottanut tämän <ph name="BEGIN_LINK1" />asetuksen<ph name="END_LINK1" /> käyttöön. Omistaja voi lähettää tätä laitetta koskevaa diagnostiikka- ja käyttödataa Googlelle. Jos muun verkko- ja sovellustoiminnan asetus on lapsella käytössä, tätä dataa voidaan tallentaa hänen Google-tililleen. <ph name="BEGIN_LINK2" />Lue lisää<ph name="END_LINK2" /></translation>
@@ -2272,6 +2277,7 @@
 <translation id="3971764089670057203">Tämän suojausavaimen sormenjäljet</translation>
 <translation id="3973660817924297510">Tarkistetaan salasanoja (<ph name="CHECKED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Alueen hakeminen palvelimelta epäonnistui</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ei voi tarkistaa salasanojasi. Kokeile myöhemmin.</translation>
 <translation id="3976108569178263973">Tulostimia ei ole saatavilla.</translation>
 <translation id="397703832102027365">Viimeistellään...</translation>
 <translation id="3977886311744775419">Automaattisia päivityksiä ei ladata tässä verkkotyypissä, mutta voit tarkistaa päivitykset manuaalisesti.</translation>
@@ -2335,6 +2341,7 @@
 <translation id="4068506536726151626">Tämä sivu sisältää osia seuraavista sivuistoista, jotka käyttävät sijaintiasi:</translation>
 <translation id="4068776064906523561">Tallennetut sormenjäljet</translation>
 <translation id="407173827865827707">Klikkaamalla</translation>
+<translation id="4073520450811433493">Asetusten synkronointi</translation>
 <translation id="4074900173531346617">Sähköpostin allekirjoitusvarmenne</translation>
 <translation id="407520071244661467">Asteikko</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> ei ole suoratoistettavissa.</translation>
@@ -2571,6 +2578,7 @@
 <translation id="4421932782753506458">Pörrö</translation>
 <translation id="4423376891418188461">Palauta asetukset</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, järjestelmänvalvojasi vaatii sinua vaihtamaan salasanasi.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ei voi tarkistaa salasanojasi. Yritä uudelleen 24 tunnin päästä.</translation>
 <translation id="4429030830601238961">Tämä data rikkoo organisaatiosi suojauskäytäntöjä eikä sitä voi liittää.</translation>
 <translation id="4430019312045809116">Äänenvoimakkuus</translation>
 <translation id="4430369329743628066">Kirjanmerkki lisättiin</translation>
@@ -2583,6 +2591,7 @@
 <translation id="4441124369922430666">Haluatko käynnistää tämän sovelluksen automaattisesti koneen käynnistyessä?</translation>
 <translation id="4441147046941420429">Jos haluat jatkaa, poista suojausavain laitteesta, aseta se takaisin ja kosketa sitä</translation>
 <translation id="444134486829715816">Laajenna...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> voi tarkistaa salasanasi, kun kirjaudut sisään Google-tililläsi.</translation>
 <translation id="4442424173763614572">DNS-haku epäonnistui</translation>
 <translation id="4443536555189480885">O&amp;hje</translation>
 <translation id="4444304522807523469">Käyttää USB:n tai lähiverkon kautta yhdistettyjä dokumenttiskannereita</translation>
@@ -2609,11 +2618,13 @@
 <translation id="4476659815936224889">Voit skannata koodin puhelimen QR-skannaussovelluksella tai joillakin kamerasovelluksilla.</translation>
 <translation id="4477015793815781985">Sisällytä Ctrl, Alt tai ⌘</translation>
 <translation id="4478664379124702289">Tallenna lin&amp;kki nimellä...</translation>
+<translation id="4478777936860197922">Ei tallennettuja salasanoja. <ph name="IDS_SHORT_PRODUCT_NAME" /> voi tarkistaa salasanasi, kun tallennat niitä.</translation>
 <translation id="4479424953165245642">Hallinnoi kioskisovelluksia</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Määritetään virtuaalikonetta. Tämä voi kestää muutaman minuutin.</translation>
 <translation id="4480590691557335796">Chrome etsii haitallisia ohjelmia tietokoneestasi ja voi poistaa ne</translation>
 <translation id="4481530544597605423">Laitteet ilman paria</translation>
+<translation id="4488107067273194838">Tarkista selaimen synkronointiasetukset käyttöönoton jälkeen</translation>
 <translation id="4488502501195719518">Poistetaanko kaikki data?</translation>
 <translation id="4495419450179050807">Älä näytä tällä sivulla</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> estetty automaattisesti</translation>
@@ -2855,6 +2866,7 @@
 <translation id="4849517651082200438">Älä asenna</translation>
 <translation id="4850669014075537160">Vieritys</translation>
 <translation id="4850886885716139402">Näytä</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> ilmoittaa, kun kirjaudut sisään vaarantuneella salasanalla</translation>
 <translation id="4853020600495124913">Avaa uudessa ikkunassa</translation>
 <translation id="4854317507773910281">Valitse vanhemman tili hyväksymistä varten</translation>
 <translation id="485480310608090163">Lisää asetuksia ja käyttöoikeuksia</translation>
@@ -2873,6 +2885,7 @@
 <translation id="4871322859485617074">PIN-koodi sisältää virheellisiä merkkejä</translation>
 <translation id="4871370605780490696">Lisää kirjanmerkki</translation>
 <translation id="4871719318659334896">Sulje ryhmä</translation>
+<translation id="4871852311166078968">Lisää ryhmään</translation>
 <translation id="4873312501243535625">Mediatiedostojen tarkistaja</translation>
 <translation id="4876273079589074638">Auta tiimiämme tutkimaan kaatumista ja korjaamaan virheet. Kerro toimista niin tarkasti kuin mahdollista. Kaikista yksityiskohdista on hyötyä.</translation>
 <translation id="4876895919560854374">Lukitse näyttö ja poista sen lukitus</translation>
@@ -2964,7 +2977,6 @@
 <translation id="4992473555164495036">Järjestelmänvalvoja on rajoittanut syöttötapoja.</translation>
 <translation id="4994474651455208930">Anna sivustojen ehdottaa protokollien oletuskäsittelypalveluiden määrittämistä</translation>
 <translation id="4994754230098574403">Määritetään</translation>
-<translation id="4996978546172906250">Jaa palvelussa:</translation>
 <translation id="4997086284911172121">Ei internetyhteyttä.</translation>
 <translation id="4997384734315285248">Poista Plugin VM</translation>
 <translation id="4998430619171209993">Päällä</translation>
@@ -3064,7 +3076,6 @@
 <translation id="5135085122826131075">Käytä Assistantia sanomalla Ok Google.</translation>
 <translation id="5135533361271311778">Kirjanmerkin luominen epäonnistui.</translation>
 <translation id="5137501176474113045">Poista tämä kohde</translation>
-<translation id="5138982052046316113">Linux-levyn koon muuttaminen</translation>
 <translation id="5139112070765735680"><ph name="DEFAULT_SEARCH_ENGINE_NAME" />, haku <ph name="QUERY_NAME" /></translation>
 <translation id="5139823398361067371">Lisää suojausavaimen PIN-koodi. Jos et tiedä PIN-koodia, suojausavain on nollattava.</translation>
 <translation id="5139955368427980650">&amp;Avaa</translation>
@@ -3516,6 +3527,7 @@
 <translation id="5739235828260127894">Odotetaan vahvistusta. <ph name="LINK_BEGIN" />Lisätietoja<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Hyvin suuri</translation>
 <translation id="574209121243317957">Äänenkorkeus</translation>
+<translation id="5745136023067925867">Tilaa vinkkejä, tarjouksia ja päivityksiä (<ph name="DEVICE_TYPE" />) ja anna palautetta</translation>
 <translation id="5746169159649715125">Tallenna PDF-muodossa</translation>
 <translation id="5747552184818312860">Vanhenee</translation>
 <translation id="5747785204778348146">Kehittäjä – epävakaa</translation>
@@ -3930,7 +3942,6 @@
 <translation id="6291953229176937411">Näytä Finderi&amp;ssä</translation>
 <translation id="6295158916970320988">Kaikki sivustot</translation>
 <translation id="6295855836753816081">Tallennetaan…</translation>
-<translation id="629730747756840877">Tili</translation>
 <translation id="6298962879096096191">Asenna Android-sovelluksia Google Playn avulla</translation>
 <translation id="630065524203833229">Poist&amp;u</translation>
 <translation id="6300718114348072351">Automaattinen määritys epäonnistui: <ph name="PRINTER_NAME" />. Määritä tulostimen lisäasetukset. <ph name="LINK_BEGIN" />Lue lisää<ph name="LINK_END" /></translation>
@@ -4336,7 +4347,6 @@
 <translation id="6865598234501509159">Eikö sivua ole kirjoitettu tällä kielellä: <ph name="LANGUAGE" />?</translation>
 <translation id="6865708901122695652">WebRTC-tapahtumalokit (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Värilämpötila</translation>
-<translation id="6870888490422746447">Valitse jakamisen kohdesovellus:</translation>
 <translation id="6871644448911473373">OCSP-vastaus: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Palvelin hylkäsi antamasi salasanan.</translation>
 <translation id="6876155724392614295">Pyörä</translation>
@@ -4429,6 +4439,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – toimintaloki</translation>
 <translation id="6997707937646349884">Laitteillasi:</translation>
 <translation id="6998793565256476099">Ota videokonferenssit käyttöön laitteessa</translation>
+<translation id="6999956497249459195">Uusi ryhmä</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> on yhdistetty mutta määritettävä</translation>
 <translation id="7000347579424117903">Lisää alkuun Ctrl, Alt tai hakupainike</translation>
 <translation id="7001036685275644873">Varmuuskopioidaan Linux-sovelluksia ja ‑tiedostoja</translation>
@@ -4727,6 +4738,7 @@
 <translation id="7400418766976504921">URL-osoite</translation>
 <translation id="7400839060291901923">Avaa <ph name="PHONE_NAME" /> ja määritä yhteys</translation>
 <translation id="7401778920660465883">Ohita tämä viesti</translation>
+<translation id="7403642243184989645">Ladataan resursseja</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Turvatarkistus tehtiin tunti sitten}other{Turvatarkistus tehtiin {NUM_HOURS} tuntia sitten}}</translation>
 <translation id="740624631517654988">Ponnahdusikkuna estetty</translation>
 <translation id="7407430846095439694">Tuo ja sido</translation>
@@ -4963,6 +4975,7 @@
 <translation id="7716781361494605745">Netscape-varmenteen myöntäjän käytäntö-URL</translation>
 <translation id="7717014941119698257">Ladataan: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Tarkista päivitykset</translation>
+<translation id="7719070594859855691">Anna kameran käyttölupa</translation>
 <translation id="7719367874908701697">Sivun zoomaus</translation>
 <translation id="7721179060400456005">Salli ikkunoiden ulottua näytöltä toiselle</translation>
 <translation id="7722040605881499779">Päivitykseen tarvitaan <ph name="NECESSARY_SPACE" />.</translation>
@@ -4977,7 +4990,6 @@
 <translation id="7744047395460924128">Näytä tulostushistoria</translation>
 <translation id="7744192722284567281">Kuului tietosuojaloukkaukseen</translation>
 <translation id="7750228210027921155">Kuva kuvassa</translation>
-<translation id="7751229152614300329">Selaussuoja on ajan tasalla ja suojelee sinua haitallisilta sivustoilta ja latauksilta</translation>
 <translation id="7751260505918304024">Näytä kaikki</translation>
 <translation id="7754704193130578113">Kysy, minne kukin tiedosto tallennetaan ennen lataamista</translation>
 <translation id="7755287808199759310">Vanhempasi voi kumota eston puolestasi.</translation>
@@ -5064,6 +5076,7 @@
     <ph name="BEGIN_BOLD" />Huom.<ph name="END_BOLD" /> Järjestelmä käynnistyy uudelleen prosessin aikana.</translation>
 <translation id="7828731929332799387">Tämä poistaa kaikki kolmansien osapuolten yhteydessä saatavilla olevat evästeet ja sivustodatan. Haluatko jatkaa?</translation>
 <translation id="7829298379596169484">Äänituloa käytetään</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ei voi tarkistaa salasanojasi. Tarkista internetyhteytesi.</translation>
 <translation id="7829877209233347340">Pyydä vanhempaa kirjautumaan, jotta hän voi antaa luvan koulutilin lisäämiseen</translation>
 <translation id="7830594666202422257">Yhdistä Linuxiin</translation>
 <translation id="7831491651892296503">Verkon määritysvirhe</translation>
@@ -5286,6 +5299,7 @@
 <translation id="8107015733319732394"><ph name="DEVICE_TYPE" /> asentaa Google Play Kauppaa. Tämä voi kestää pari minuuttia.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Ei kolmannen osapuolen evästeitä}=1{1 kolmannen osapuolen eväste on estetty}other{# kolmannen osapuolen evästettä on estetty}}</translation>
 <translation id="810875025413331850">Lähistöllä olevia laitteita ei löydy.</translation>
+<translation id="8114199541033039755">Tablettitilan painikkeilla voit siirtyä aloitusnäytölle, takaisin ja vaihtaa sovellusta. Päällä, kun ChromeVox tai automaattiset klikkaukset on käytössä.</translation>
 <translation id="8114875720387900039">Vaakasuuntainen jako</translation>
 <translation id="8116972784401310538">&amp;Kirjanmerkkien hallinta</translation>
 <translation id="8117620576188476503">Tila-alueella voit hallita yhteyksiä, päivityksiä ja asetuksia. Avaa se näppäimistöllä painamalla Alt + vaihto + S.</translation>
@@ -5405,6 +5419,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> poisti hiiren osoittimen käytöstä.</translation>
 <translation id="8264024885325823677">Järjestelmänvalvojasi ylläpitää tätä asetusta.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> käynnisti koko ruudun tilan.</translation>
+<translation id="826511437356419340">Siirryttiin ikkunoiden yleiskatsaustilaan. Siirry pyyhkäisemällä tai paina välilehteä, jos käytät näppäimistöä.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Nämä ovat yleisiä tietoja laitteesta ja sen käytöstä (esim. akun varaustasosta, järjestelmän ja sovellusten toiminnasta sekä virheistä). Dataa käytetään Androidin parantamiseen. Koottuja tietoja voidaan myös käyttää Google-sovellusten, Android-kehittäjien tai muiden kumppanien sovellusten ja tuotteiden parantamiseen.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Ominaisuuden poistaminen käytöstä ei estä laitetta lähettämästä olennaisten palvelujen (esim. järjestelmäpäivitysten ja tietoturvan) kannalta välttämättömiä tietoja.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Omistaja voi muokata tätä ominaisuutta kohdassa Asetukset &gt; Lisäasetukset &gt; Lähetä automaattisesti diagnostiikka- ja käyttötietoja Googlelle.<ph name="END_PARAGRAPH3" />
@@ -5513,6 +5528,7 @@
 <translation id="8426713856918551002">Otetaan käyttöön</translation>
 <translation id="8427292751741042100">verkkopalveluun upotettu</translation>
 <translation id="8428213095426709021">Asetukset</translation>
+<translation id="8428271547607112339">Lisää koulutili</translation>
 <translation id="8428628598981198790">Suojausavaintasi ei voi käyttää tällä sivustolla</translation>
 <translation id="84297032718407999">Sinut kirjataan ulos <ph name="LOGOUT_TIME_LEFT" /> päästä</translation>
 <translation id="8431190899827883166">Näytä kosketus</translation>
@@ -5576,6 +5592,7 @@
 <translation id="851263357009351303">Salli aina sivuston <ph name="HOST" /> näyttää kuvia</translation>
 <translation id="8513108775083588393">Automaattinen kääntö</translation>
 <translation id="8514746246728959655">Kokeile toista suojausavainta</translation>
+<translation id="851960115758509829">Sovelluksesi, asetuksesi ja muut muokkaukset synkronoidaan kaikilla Chrome-käyttöjärjestelmän laitteilla, joilla olet kirjautuneena Google-tilillesi.</translation>
 <translation id="8521475323816527629">Avaa sovelluksia nopeasti</translation>
 <translation id="8523493869875972733">Säilytä muutokset</translation>
 <translation id="8523849605371521713">Käytännön lisäämä</translation>
@@ -5857,11 +5874,13 @@
 <translation id="885701979325669005">Tallennus</translation>
 <translation id="8859057652521303089">Valitse kieli:</translation>
 <translation id="8859174528519900719">Alakehys: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Vanhemman tili</translation>
 <translation id="8862003515646449717">Siirry käyttämään nopeaa selainta.</translation>
 <translation id="8863753581171631212">Avaa linkki uudessa ikkunassa (<ph name="APP" />)</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> jaetaan, vastaanottaja: <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> poistettiin tältä laitteelta</translation>
 <translation id="8867228703146808825">Kopioi koontiversion tiedot leikepöydälle</translation>
+<translation id="8868333925931032127">Käynnistetään demotilaa</translation>
 <translation id="8868626022555786497">Käytössä</translation>
 <translation id="8870413625673593573">Hiljattain suljetut</translation>
 <translation id="8871551568777368300">Järjestelmänvalvojan kiinnittämä</translation>
@@ -5940,6 +5959,7 @@
 <translation id="8966870118594285808">Avaa välilehti uudelleen, jos suljit sen vahingossa</translation>
 <translation id="8967866634928501045">Näytä painamalla Alt Vaihto A</translation>
 <translation id="8968766641738584599">Tallenna kortti</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ei voi tarkistaa salasanojasi. Yritä uudelleen 24 tunnin kuluttua tai <ph name="BEGIN_LINK" />tarkista salasanat Google-tililtä<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Ota yhteyttä verkon järjestelmänvalvojaan ja varmista, ettei palomuuri estä latauksia Googlen palvelimilta.</translation>
 <translation id="8973557916016709913">Poista zoomaustaso</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 87d2e6d..ebd518f 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Mga available na device</translation>
 <translation id="1042174272890264476">Ang iyong computer ay may naka-built in din na RLZ library ng <ph name="SHORT_PRODUCT_NAME" />. Nagtatalaga ang RLZ ng hindi natatangi at hindi personal na nakakapagpakilalang tag upang sukatin ang mga paghahanap at paggamit ng <ph name="SHORT_PRODUCT_NAME" /> na nahimok ng isang partikular na kampanya sa pag-promote. Lumalabas minsan ang mga label na ito sa mga query sa Paghahanap sa Google sa <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">I-clear din ang data mula sa mga app na ito?</translation>
+<translation id="1045448422538531528">Idagdag sa pangkat</translation>
 <translation id="1046635659603195359">Mukhang na-set up mo na ang Voice Match sa iyong Google Assistant sa isa pang device. Magagamit ang mga nakaraang recording na ito para gumawa ng voice model sa device na ito. Hindi dapat ito abutin nang mahigit isang minuto.</translation>
 <translation id="104710386808485638">I-restart ang Linux?</translation>
 <translation id="1047431265488717055">Kopyahin ang Text ng Link</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Palaging i-block ang access sa camera</translation>
 <translation id="1082398631555931481">Gustong ibalik ng <ph name="THIRD_PARTY_TOOL_NAME" /> ang mga setting ng iyong Chrome sa mga orihinal na default ng mga ito. Kapag isinagawa mo ito, mare-reset ang iyong home page, page ng bagong tab at search engine, madi-disable ang iyong mga extension at maa-unpin ang lahat ng tab. Maki-clear din nito ang iba pang pansamantala at naka-cache na data, gaya ng cookies, content at data ng site.</translation>
+<translation id="1084096383128641877">Kapag inalis ang password na ito, hindi ide-delete ang iyong account sa <ph name="DOMAIN" />. Palitan ang iyong password o i-delete ang account mo sa <ph name="DOMAIN_LINK" /> para mapanatili itong ligtas mula sa iba.</translation>
 <translation id="1084824384139382525">Kopyahin ang addr&amp;ess ng link</translation>
 <translation id="1085697365578766383">Nagkaroon ng error sa pagpapagana sa virtual machine. Pakisubukang muli.</translation>
 <translation id="1090126737595388931">Walang Tumatakbong Apps sa Background</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Nagpatakbo ng pag-check sa kaligtasan kahapon</translation>
 <translation id="1260451001046713751">Palaging payagan ang mga pop-up at pag-redirect mula sa <ph name="HOST" /></translation>
 <translation id="126156426083987769">Nagkaproblema sa mga lisensya ng device sa demo mode.</translation>
+<translation id="1263490604593716556">Pinapamahalaan nina <ph name="FIRST_PARENT_EMAIL" /> at <ph name="SECOND_PARENT_EMAIL" /> ang account. Para mag-sign out sa pangunahing account sa device na ito, i-click ang oras sa iyong screen. Sa lalabas na menu, i-click ang "Mag-sign out."</translation>
 <translation id="126710816202626562">Wika ng pagsasalin</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Stop</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Website</translation>
 <translation id="15662109988763471">Ang napiling printer ay hindi available o hindi naka-install nang tama. Tingnan ang iyong printer o subukang pumili ng isa pang printer.</translation>
 <translation id="1567387640189251553">Nagkonekta ng ibang keyboard mula nang huli mong inilagay ang iyong password. Maaaring sinusubukan nitong nakawin ang iyong mga keystroke.</translation>
-<translation id="1567750922576943685">Nakakatulong ang pag-verify sa iyong pagkakakilanlang maprotektahan ang personal na impormasyon mo</translation>
 <translation id="1567993339577891801">Console ng JavaScript</translation>
 <translation id="1568323446248056064">Buksan ang mga setting ng display device</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Bisita)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Sining</translation>
 <translation id="1697686431566694143">I-edit ang file</translation>
 <translation id="1698122934742150150">Kasalukuyang incognito na session lang</translation>
-<translation id="1698650002254827833">Hindi ma-load ang listahan ng mga app. Pakisubukang muli.</translation>
 <translation id="1700079447639026019">Mga site na hindi kailanman puwedeng gumamit ng cookies</translation>
 <translation id="1701062906490865540">Alisin ang taong ito</translation>
 <translation id="1703331064825191675">Huwag nang mag-alala sa iyong mga password</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Magpatuloy</translation>
 <translation id="2173302385160625112">Suriin ang iyong koneksyon sa internet</translation>
 <translation id="2173801458090845390">Magdagdag ng requisition ID sa device na ito</translation>
+<translation id="2174948148799307353">Pinapamahalaan ni <ph name="PARENT_EMAIL" /> ang account. Para mag-sign out sa pangunahing account sa device na ito, i-click ang oras sa iyong screen. Sa lalabas na menu, i-click ang "Mag-sign out."</translation>
 <translation id="2175607476662778685">Quick launch bar</translation>
 <translation id="217576141146192373">Hindi naidagdag ang printer. Pakitingnan ang configuration ng iyong printer at subukan ulit.</translation>
 <translation id="2177950615300672361">Tab na Incognito: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Shadow ng text</translation>
 <translation id="2445081178310039857">Kinakailangan ang pinagmulang direktoryo ng extension.</translation>
 <translation id="2445484935443597917">Gumawa ng Bagong Profile</translation>
-<translation id="2446585455334014596">Gustong i-verify ng <ph name="APP_NAME" /> ang iyong pagkakakilanlan</translation>
 <translation id="2448312741937722512">Uri</translation>
 <translation id="2450223707519584812">Hindi mo magagawang magdagdag ng mga user dahil wala ang mga Google API key. Tingnan ang <ph name="DETAILS_URL" /> para sa mga detalye.</translation>
 <translation id="2450849356604136918">Walang aktibong view</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Pumunta sa <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Isang mabilis, simple at secure na web browser na ginawa para sa modernong web.</translation>
 <translation id="2949289451367477459">Gamitin ang lokasyon. Payagan ang mga app at serbisyong may pahintulot sa lokasyon na gamitin ang lokasyon ng device na ito. Ang Google ay maaaring pana-panahong mangolekta ng data ng lokasyon at gamitin ang data na ito nang anonymous para maging mas tumpak ang lokasyon at ang mga serbisyong batay sa lokasyon. <ph name="BEGIN_LINK1" />Matuto Pa<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">I-sign up ako</translation>
 <translation id="2956070239128776395">Seksyong naka-nest sa grupo: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Huwag payagan ang anumang site na mag-edit ng mga file o folder sa iyong device</translation>
 <translation id="2958721676848865875">Babala sa extension ng pack</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Default na dilaw na avatar</translation>
 <translation id="3141318088920353606">Nakikinig...</translation>
 <translation id="3141917231319778873">Ang ibinigay na kahilingan ay hindi sinusuportahan sa: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Bagong Pangkat</translation>
 <translation id="3143515551205905069">Kanselahin ang pag-sync</translation>
 <translation id="3143754809889689516">I-play mula sa simula</translation>
 <translation id="3144647712221361880">Buksan ang link bilang</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardware-backed)</translation>
 <translation id="3161522574479303604">Lahat ng wika</translation>
+<translation id="3162853326462195145">Pampaaralang account</translation>
 <translation id="3162899666601560689">Puwedeng gumamit ng cookies ang mga site para pahusayin ang iyong karanasan sa pag-browse, halimbawa, para mapanatili kang naka-sign in o para maalala ang mga item sa shopping cart mo</translation>
 <translation id="3163201441334626963">Hindi kilalang produkto na <ph name="PRODUCT_ID" /> mula sa vendor na <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Ibinabahagi ang tab na ito sa <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{I-update ang device sa loob ng isang araw}one{I-update ang device sa loob ng # araw}other{I-update ang device sa loob ng # na araw}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Error sa network</translation>
 <translation id="3248902735035392926">Mahalaga ang kaligtasan. Maglaan ng ilang sandali at <ph name="BEGIN_LINK" />tingnan ang iyong mga extension ngayon<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Hindi Bahagi Ng Certificate&gt;</translation>
 <translation id="3253225298092156258">Hindi available</translation>
 <translation id="3253448572569133955">Hindi kilalang account</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Sa pamamagitan ng pag-click sa button na "Tanggapin at magpatuloy," sumasang-ayon ka sa pagpoproseso na inilarawan sa itaas para sa mga serbisyong ito ng Google.</translation>
 <translation id="3399432415385675819">Madi-disable ang mga notification</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - naka-interlace</translation>
+<translation id="3402585168444815892">Ine-enroll sa Demo Mode</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Walang naka-save na password para sa site na ito</translation>
 <translation id="3405664148539009465">I-customize ang mga font</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android phone</translation>
 <translation id="3470442499439619530">Alisin ang User na Ito</translation>
 <translation id="3471876058939596279">Hindi magagamit ang HDMI at USB Type-C port para sa video nang sabay. Gumamit ng ibang port para sa video.</translation>
+<translation id="3473241910002674503">Mag-navigate sa home, pabalik, at lumipat ng app gamit ang mga button sa tablet mode.</translation>
 <translation id="3473479545200714844">Screen magnifier</translation>
 <translation id="3475843873335999118">Paumanhin, hindi pa rin nakikilala ang iyong fingerprint. Pakilagay ang password mo.</translation>
 <translation id="3476303763173086583">Magpadala ng data ng paggamit at diagnostic na data. Tumulong sa pagpapaganda ng karanasan ng iyong anak sa Android sa pamamagitan ng awtomatikong pagpapadala ng diagnostic na data, data ng device, at data ng paggamit sa app sa Google. Hindi ito gagamitin para tukuyin ang pagkakakilanlan ng iyong anak, at makakatulong ito sa stability ng system at ng app, at sa iba pang pagpapahusay. Makakatulong din ang ilang pinagsama-samang data sa mga app at partner ng Google, gaya ng mga developer ng Android. Ipinapatupad ng may-ari ang <ph name="BEGIN_LINK1" />setting<ph name="END_LINK1" /> na ito. Maaaring piliin ng may-aring magpadala ng diagnostic na data at data ng paggamit para sa device na ito sa Google. Kung naka-on ang karagdagang setting ng Aktibidad sa Web at App para sa iyong anak, maaaring ma-save ang data na ito sa kanyang Google account. <ph name="BEGIN_LINK2" />Matuto Pa<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Mga fingerprint sa security key na ito</translation>
 <translation id="3973660817924297510">Sinusuri ang mga password (<ph name="CHECKED_PASSWORDS" /> sa <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Hindi nagawang makipag-ugnayan sa server para sa realm</translation>
+<translation id="3975884715086515476">Hindi masuri ng <ph name="IDS_SHORT_PRODUCT_NAME" /> ang iyong mga password. Subukan ulit sa ibang pagkakataon.</translation>
 <translation id="3976108569178263973">Walang available na printer.</translation>
 <translation id="397703832102027365">Tinatapos...</translation>
 <translation id="3977886311744775419">Hindi nada-download ang mga awtomatikong update sa ganitong uri ng network, pero puwede kang tumingin ng mga update nang manual.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Naglalaman ang page na ito ng mga elemento mula sa sumusunod na mga site na sumusubaybay sa lokasyon mo:</translation>
 <translation id="4068776064906523561">Mga naka-save na fingerprint</translation>
 <translation id="407173827865827707">Sa pag-click</translation>
+<translation id="4073520450811433493">I-sync ang mga setting</translation>
 <translation id="4074900173531346617">Certificate ng Email Signer</translation>
 <translation id="407520071244661467">Scale</translation>
 <translation id="4075639477629295004">Hindi ma-cast ang <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Mingming</translation>
 <translation id="4423376891418188461">I-restore ang Mga Setting</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, hinihiling sa iyo ng administrator mo na palitan ang iyong password.</translation>
+<translation id="4426209360861763174">Hindi masuri ng <ph name="IDS_SHORT_PRODUCT_NAME" /> ang iyong mga password. Subukan ulit pagkalipas ng 24 na oras.</translation>
 <translation id="4429030830601238961">Nilalabag ng data na ito ang mga patakaran sa seguridad ng iyong organisasyon at hindi ito puwedeng i-paste.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Naidagdag na ang bookmark</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Nais mo bang awtomatikong simulan ang app na ito kapag nag-on ang makina?</translation>
 <translation id="4441147046941420429">Para magpatuloy, alisin ang iyong security key mula sa device mo, pagkatapos ay ilagay ulit at pindutin ito</translation>
 <translation id="444134486829715816">Palawakin...</translation>
+<translation id="4442329324652245220">Magagawang suriin ng <ph name="IDS_SHORT_PRODUCT_NAME" /> ang iyong mga password kapag nag-sign in ka gamit ang Google Account mo</translation>
 <translation id="4442424173763614572">Nabigo ang paghahanap sa DNS</translation>
 <translation id="4443536555189480885">&amp;Tulong</translation>
 <translation id="4444304522807523469">I-access ang mga scanner ng dokumento na naka-attach sa pamamagitan ng USB o sa lokal na network</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Para i-scan ang code na ito, puwede kang gumamit ng QR scanner app sa iyong telepono, o ilang camera app.</translation>
 <translation id="4477015793815781985">Dapat may kasabay na Ctrl, Alt, o ⌘</translation>
 <translation id="4478664379124702289">I-save ang Lin&amp;k Bilang...</translation>
+<translation id="4478777936860197922">Walang naka-save na password. Masusuri ng <ph name="IDS_SHORT_PRODUCT_NAME" /> ang iyong mga password kapag na-save mo ang mga ito.</translation>
 <translation id="4479424953165245642">Pamahalaan ang mga kiosk application</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Kino-configure ang virtual machine. Puwede itong tumagal nang ilang minuto.</translation>
 <translation id="4480590691557335796">Makakahanap at makakapag-alis ang Chrome ng mapaminsalang software sa iyong computer</translation>
 <translation id="4481530544597605423">Mga hindi nakapares na device</translation>
+<translation id="4488107067273194838">Suriin ang mga opsyon sa pag-sync ng browser pagkatapos ng pag-set up</translation>
 <translation id="4488502501195719518">I-clear ang lahat ng data?</translation>
 <translation id="4495419450179050807">Huwag ipakita sa pahinang ito</translation>
 <translation id="4496054781541092778">awtomatikong na-block ang <ph name="PERMISSION" /></translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Huwag I-install</translation>
 <translation id="4850669014075537160">Pag-ii-scroll</translation>
 <translation id="4850886885716139402">View</translation>
+<translation id="485197095346966382">Aabisuhan ka ng <ph name="IDS_SHORT_PRODUCT_NAME" /> kapag nag-sign in ka gamit ang isang nakompromisong password</translation>
 <translation id="4853020600495124913">Buksan sa &amp;bagong window</translation>
 <translation id="4854317507773910281">Pumili ng account ng magulang para sa pag-apruba</translation>
 <translation id="485480310608090163">Higit pang setting at pahintulot</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">Naglalaman ang PIN ng mga invalid na character</translation>
 <translation id="4871370605780490696">Magdagdag ng bookmark</translation>
 <translation id="4871719318659334896">Isara ang grupo</translation>
+<translation id="4871852311166078968">Idagdag sa Pangkat</translation>
 <translation id="4873312501243535625">Pangsuri ng Media File</translation>
 <translation id="4876273079589074638">Tulungan ang aming mga engineer na siyasatin at ayusin ang pag-crash na ito. Maglista ng mga eksaktong hakbang kung maaari. Walang detalye ang masasayang!</translation>
 <translation id="4876895919560854374">I-lock at i-unlock ang screen</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Nilimitahan ng iyong administrator ang mga available na pamamaraan ng pag-input.</translation>
 <translation id="4994474651455208930">Payagan ang mga site na humiling na maging mga default na handler para sa mga protocol</translation>
 <translation id="4994754230098574403">Sine-set up</translation>
-<translation id="4996978546172906250">Ibahagi gamit ang</translation>
 <translation id="4997086284911172121">Walang koneksyon sa Internet.</translation>
 <translation id="4997384734315285248">I-uninstall ang Plugin VM</translation>
 <translation id="4998430619171209993">Naka-on</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">I-access ang iyong Assistant kapag sinabi mong "Ok Google."</translation>
 <translation id="5135533361271311778">Hindi makalikha ng item ng bookmark.</translation>
 <translation id="5137501176474113045">Tanggalin ang item na ito</translation>
-<translation id="5138982052046316113">I-resize ang Linux Disk</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, Paghahanap sa <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Ilagay ang PIN para sa iyong security key. Kung hindi mo alam ang PIN, kakailanganin mong i-reset ang security key.</translation>
 <translation id="5139955368427980650">&amp;Buksan</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Naghihintay ng pag-verify. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Napakalaki</translation>
 <translation id="574209121243317957">Pitch</translation>
+<translation id="5745136023067925867">Makatanggap ng mga tip, alok, at update sa <ph name="DEVICE_TYPE" />, at magbahagi ng feedback</translation>
 <translation id="5746169159649715125">I-save bilang PDF</translation>
 <translation id="5747552184818312860">Mag-e-expire sa</translation>
 <translation id="5747785204778348146">Developer - hindi matatag</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Show in Finder</translation>
 <translation id="6295158916970320988">Lahat ng site</translation>
 <translation id="6295855836753816081">Sine-save...</translation>
-<translation id="629730747756840877">Account</translation>
 <translation id="6298962879096096191">Gamitin ang Google Play upang mag-install ng mga Android app</translation>
 <translation id="630065524203833229">L&amp;umabas</translation>
 <translation id="6300718114348072351">Hindi ma-configure nang awtomatiko ang <ph name="PRINTER_NAME" />. Pakitukoy ang mga advanced na detalye ng printer. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Hindi <ph name="LANGUAGE" /> Ang Page</translation>
 <translation id="6865708901122695652">Mga log ng event ng WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura ng kulay</translation>
-<translation id="6870888490422746447">Pumili ng app na pagbabahagian:</translation>
 <translation id="6871644448911473373">OCSP Responder: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Tinanggihan ng server ang password na inilagay mo.</translation>
 <translation id="6876155724392614295">Bisikleta</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Log ng Aktibidad</translation>
 <translation id="6997707937646349884">Sa iyong mga device:</translation>
 <translation id="6998793565256476099">Magpatala ng device para sa pakikipagkumperensya gamit ang video</translation>
+<translation id="6999956497249459195">Bagong pangkat</translation>
 <translation id="7000206553895739324">Nakakonekta ang <ph name="PRINTER_NAME" /> pero kailangan ng pag-configure</translation>
 <translation id="7000347579424117903">Isama ang Ctrl, Alt, o Search</translation>
 <translation id="7001036685275644873">Bina-back up ang mga app at file ng Linux</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Mag-set up ng koneksyon sa iyong <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">I-dismiss ang mensaheng ito</translation>
+<translation id="7403642243184989645">Dina-download ang Mga Resource</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Nagpatakbo ng pag-check sa kaligtasan 1 oras ang nakalipas}one{Nagpatakbo ng pag-check sa kaligtasan {NUM_HOURS} oras ang nakalipas}other{Nagpatakbo ng pag-check sa kaligtasan {NUM_HOURS} na oras ang nakalipas}}</translation>
 <translation id="740624631517654988">Naka-block ang pop-up</translation>
 <translation id="7407430846095439694">I-import at I-bind</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">Netscape Certification Authority Policy URL</translation>
 <translation id="7717014941119698257">Nagda-download: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Tumingin ng mga update</translation>
+<translation id="7719070594859855691">Magbigay ng access sa camera</translation>
 <translation id="7719367874908701697">Pag-zoom ng page</translation>
 <translation id="7721179060400456005">Payagan ang mga window na gumamit ng maraming display</translation>
 <translation id="7722040605881499779">Kinakailangan upang mag-update: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Tingnan ang iyong history ng pag-print</translation>
 <translation id="7744192722284567281">Nakita sa paglabag sa data</translation>
 <translation id="7750228210027921155">Picture in picture</translation>
-<translation id="7751229152614300329">Up to date ang Ligtas na Pag-browse at pinoprotektahan ka nito mula sa mga mapaminsalang site at download</translation>
 <translation id="7751260505918304024">Ipakita lahat</translation>
 <translation id="7754704193130578113">Magtanong kung saan ise-save ang bawat file bago ang pagda-download</translation>
 <translation id="7755287808199759310">Maaari itong i-unblock ng iyong magulang para sa iyo</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Tandaan:<ph name="END_BOLD" />  Mare-reboot ang system sa panahon ng proseso.</translation>
 <translation id="7828731929332799387">Ide-delete nito ang lahat ng cookies at data ng site na available sa mga konteksto ng third party. Gusto mo bang magpatuloy?</translation>
 <translation id="7829298379596169484">Ina-access ang input ng audio</translation>
+<translation id="7829528495815477379">Hindi masuri ng <ph name="IDS_SHORT_PRODUCT_NAME" /> ang iyong mga password. Subukang tingnan ang iyong koneksyon sa internet.</translation>
 <translation id="7829877209233347340">Hilingin sa magulang na mag-sign in para magbigay ng pahintulot na magdagdag ng pampaaralang account</translation>
 <translation id="7830594666202422257">Ikonekta sa Linux</translation>
 <translation id="7831491651892296503">Nagkaroon ng error sa pag-configure sa network</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Ini-install ang Google Play Store sa iyong <ph name="DEVICE_TYPE" />. Maaaring abutin ito nang ilang minuto.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Walang third-party na cookies}=1{1 third-party na cookie ang na-block}one{# third-party na cookies ang na-block}other{# na third-party na cookies ang na-block}}</translation>
 <translation id="810875025413331850">Walang nakitang device na nasa malapit.</translation>
+<translation id="8114199541033039755">Mag-navigate sa home, pabalik, at lumipat ng app gamit ang mga button sa tablet mode. Mag-o-on kapag naka-enable ang ChromeVox o Mga awtomatikong pag-click.</translation>
 <translation id="8114875720387900039">I-split nang pahalang</translation>
 <translation id="8116972784401310538">&amp;Tagapangasiwa ng bookmark</translation>
 <translation id="8117620576188476503">Pamahalaan ang mga koneksyon, update, at setting gamit ang status tray. Upang makapunta rito sa pamamagitan ng keyboard, pindutin ang Alt + Shift + S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914">Hindi pinagana ng <ph name="FULLSCREEN_ORIGIN" /> ang cursor ng iyong mouse.</translation>
 <translation id="8264024885325823677">Pinapamahalaan ng iyong administrator ang setting na ito.</translation>
 <translation id="8264718194193514834">Nag-trigger ang "<ph name="EXTENSION_NAME" />" ng full screen.</translation>
+<translation id="826511437356419340">Pumasok sa overview mode ng window. Mag-swipe para mag-navigate, o pindutin ang tab kung gumagamit ng keyboard.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ito ay pangkalahatang impormasyon tungkol sa device na ito at kung paano ito ginagamit (gaya ng antas ng baterya, aktibidad ng system at app, at mga error). Gagamitin ang data para pahusayin ang Android, at makakatulong din ang ilang pinagsama-samang impormasyon sa mga app at partner ng Google, gaya ng mga developer ng Android, na mapahusay ang mga app at produkto ng mga ito.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Kapag na-off ang feature na ito, hindi maaapektuhan ang kakayahan ng device na ito na ipadala ang impormasyong kinakailangan para sa mahahalagang serbisyo gaya ng mga pag-update ng system at seguridad.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Makokontrol ng may-ari ang feature na ito mula sa Mga Setting &gt; Advanced &gt; Awtomatikong ipadala sa Google ang data ng diagnostic at paggamit.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Ine-enable</translation>
 <translation id="8427292751741042100">naka-embed sa anumang host</translation>
 <translation id="8428213095426709021">Mga Setting</translation>
+<translation id="8428271547607112339">Magdagdag ng pampaaralang account</translation>
 <translation id="8428628598981198790">Hindi puwedeng gamitin ang iyong security key sa site na ito</translation>
 <translation id="84297032718407999">Masa-sign out ka sa loob ng <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Ipakita ang mga pag-tap</translation>
@@ -5579,6 +5595,7 @@
 <translation id="851263357009351303">Palaging hayaan ang <ph name="HOST" /> na magpakita ng mga larawan</translation>
 <translation id="8513108775083588393">I-auto rotate</translation>
 <translation id="8514746246728959655">Sumubok ng ibang security key</translation>
+<translation id="851960115758509829">Magsi-sync ang iyong mga app, setting, at iba pang pag-customize sa lahat ng Chrome OS device na naka-sign in gamit ang Google Account mo.</translation>
 <translation id="8521475323816527629">Mabilis na makapunta sa iyong mga app</translation>
 <translation id="8523493869875972733">Panatilihin ang Mga Pagbabago</translation>
 <translation id="8523849605371521713">Idinagdag ng patakaran</translation>
@@ -5860,11 +5877,13 @@
 <translation id="885701979325669005">Storage</translation>
 <translation id="8859057652521303089">Piliin ang iyong wika:</translation>
 <translation id="8859174528519900719">Subframe: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Account ng magulang</translation>
 <translation id="8862003515646449717">Lumipat sa isang mabilis na browser</translation>
 <translation id="8863753581171631212">Buksan ang link sa bagong <ph name="APP" /></translation>
 <translation id="8864055848767439877">Ibinabahagi ang <ph name="TAB_NAME" /> sa <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Inalis ang <ph name="EMAIL" /> sa device na ito</translation>
 <translation id="8867228703146808825">Kopyahin ang mga detalye ng build sa clipboard</translation>
+<translation id="8868333925931032127">Sinisimulan ang Demo Mode</translation>
 <translation id="8868626022555786497">Ginagamit</translation>
 <translation id="8870413625673593573">Recently Closed</translation>
 <translation id="8871551568777368300">Na-pin ng administrator</translation>
@@ -5944,6 +5963,7 @@
 <translation id="8966870118594285808">Muling magbukas ng tab kung naisara mo ito nang hindi sinasadya</translation>
 <translation id="8967866634928501045">Pindutin ang Alt Shift A upang ipakita</translation>
 <translation id="8968766641738584599">I-save ang card</translation>
+<translation id="8971800409073702505">Hindi masuri ng <ph name="IDS_SHORT_PRODUCT_NAME" /> ang iyong mga password. Subukan ulit pagkalipas ng 24 na oras o <ph name="BEGIN_LINK" />suriin ang mga password sa iyong Google Account<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Pakisuri sa administrator ng iyong network upang matiyak na hindi bina-block ng firewall ang mga pag-download mula sa mga server ng Google.</translation>
 <translation id="8973557916016709913">Mag-alis ng antas ng zoom</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 0dcad09..d60182d 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Appareils accessibles</translation>
 <translation id="1042174272890264476">Votre ordinateur est fourni avec la bibliothèque RLZ de <ph name="SHORT_PRODUCT_NAME" />. RLZ attribue une étiquette non unique et qui ne permet pas d'identifier des internautes afin de mesurer les recherches et l'utilisation de <ph name="SHORT_PRODUCT_NAME" /> générées par une campagne de promotion particulière. Ces étiquettes s'affichent parfois dans les requêtes de recherche Google dans <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Effacer également les données issues de ces applications?</translation>
+<translation id="1045448422538531528">Ajouter au groupe</translation>
 <translation id="1046635659603195359">Il semble que vous avez déjà configuré la fonction Voice Match avec l'Assistant Google sur un autre appareil. Ces enregistrements précédents peuvent être utilisés pour créer un modèle vocal sur cet appareil. L'opération devrait prendre moins d'une minute.</translation>
 <translation id="104710386808485638">Redémarrer Linux?</translation>
 <translation id="1047431265488717055">Copier le texte du lien</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Toujours bloquer l'accès à la caméra</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> souhaite restaurer vos paramètres Chrome par défaut. Votre page d'accueil, la page Nouvel onglet et votre moteur de recherche seront réinitialisés. Vos extensions seront désactivées et vos onglets ne seront plus épinglés. Les autres données temporaires ou mises en cache, telles que les témoins, les données relatives aux contenus et aux sites, seront effacées.</translation>
+<translation id="1084096383128641877">La suppression de ce mot de passe ne supprimera pas votre compte sur <ph name="DOMAIN" />. Changez votre mot de passe ou supprimez votre compte sur <ph name="DOMAIN_LINK" /> pour le protéger des autres.</translation>
 <translation id="1084824384139382525">Copier l'adr&amp;esse du lien</translation>
 <translation id="1085697365578766383">Erreur lors du démarrage de la machine virtuelle. Veuillez réessayer.</translation>
 <translation id="1090126737595388931">Aucune application ne fonctionne en arrière-plan</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">La vérification de sécurité s'est exécutée hier</translation>
 <translation id="1260451001046713751">Toujours autoriser les fenêtres contextuelles et les redirections de <ph name="HOST" /></translation>
 <translation id="126156426083987769">Un problème avec les licences d'appareils en mode démo est survenu.</translation>
+<translation id="1263490604593716556">Compte géré par <ph name="FIRST_PARENT_EMAIL" /> et <ph name="SECOND_PARENT_EMAIL" />. Pour vous déconnecter du compte principal sur cet appareil, cliquez sur l'horloge à l'écran. Dans le menu qui s'affiche, cliquez sur « Déconnexion ».</translation>
 <translation id="126710816202626562">Langue de la traduction :</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Arrêter</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Site Web</translation>
 <translation id="15662109988763471">L'imprimante sélectionnée n'est pas accessible ou n'est pas installée correctement. Vérifiez votre imprimante ou essayez d'en sélectionner une autre.</translation>
 <translation id="1567387640189251553">Un autre clavier a été branché depuis la dernière fois que vous avez entré votre mot de passe. Il essaie peut-être de récupérer les touches que vous avez utilisées.</translation>
-<translation id="1567750922576943685">La vérification de votre identité vous aide à protéger vos renseignements personnels</translation>
 <translation id="1567993339577891801">Console JavaScript</translation>
 <translation id="1568323446248056064">Ouvrir les paramètres d'affichage de l'appareil</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (invité)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Art</translation>
 <translation id="1697686431566694143">Modifier le fichier</translation>
 <translation id="1698122934742150150">Session de navigation privée active uniquement</translation>
-<translation id="1698650002254827833">Impossible de charger la liste des applications. Veuillez réessayer.</translation>
 <translation id="1700079447639026019">Sites qui ne peuvent jamais utiliser les témoins</translation>
 <translation id="1701062906490865540">Supprimer cette personne</translation>
 <translation id="1703331064825191675">Ne vous inquiétez jamais au sujet de vos mots de passe</translation>
@@ -826,7 +827,7 @@
 <translation id="2119349053129246860">Ouvrir dans <ph name="APP" /></translation>
 <translation id="2120297377148151361">Activité et interactions</translation>
 <translation id="2120639962942052471">Bloqué <ph name="PERMISSION" /></translation>
-<translation id="2121055421682309734">{COUNT,plural, =0{Les témoins sont bloqués}=1{Les témoins sont bloqués, 1 exception}one{Les témoins sont bloqués, avec {COUNT} exception}other{Les témoins sont bloqués, avec {COUNT} exceptions}}</translation>
+<translation id="2121055421682309734">{COUNT,plural, =0{Les témoins sont bloqués}=1{Les témoins sont bloqués, avec 1 exception}one{Les témoins sont bloqués, avec {COUNT} exception}other{Les témoins sont bloqués, avec {COUNT} exceptions}}</translation>
 <translation id="2121825465123208577">Redimensionner</translation>
 <translation id="2122305276694332719">La connexion automatique à un réseau masqué permet aux autres personnes de voir votre appareil et certains paramètres réseau, et n'est pas recommandée.</translation>
 <translation id="2123766928840368256">Choisir un autre fichier</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Continuer</translation>
 <translation id="2173302385160625112">Vérifiez votre connexion Internet</translation>
 <translation id="2173801458090845390">Ajouter un identifiant de réquisition à cet appareil</translation>
+<translation id="2174948148799307353">Compte géré par <ph name="PARENT_EMAIL" />. Pour vous déconnecter du compte principal sur cet appareil, cliquez sur l'horloge à l'écran. Dans le menu qui s'affiche, cliquez sur « Déconnexion ».</translation>
 <translation id="2175607476662778685">Barre de lancement rapide</translation>
 <translation id="217576141146192373">Impossible d'ajouter l'imprimante. Veuillez vérifier la configuration de votre imprimante, puis réessayer.</translation>
 <translation id="2177950615300672361">Onglet de navigation privée : <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Ombre du texte</translation>
 <translation id="2445081178310039857">Le répertoire racine de l'extension doit être indiqué.</translation>
 <translation id="2445484935443597917">Créer un profil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> souhaite vérifier votre identité</translation>
 <translation id="2448312741937722512">Type</translation>
 <translation id="2450223707519584812">Vous ne pourrez pas ajouter d'utilisateurs, car il manque les clés de l'API Google. Consultez <ph name="DETAILS_URL" /> pour plus de détails.</translation>
 <translation id="2450849356604136918">Aucun affichage actif</translation>
@@ -1480,6 +1481,7 @@
 <translation id="2948300991547862301">Aller à <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Un navigateur Internet rapide, simple et sécurisé, conçu pour le Web d'aujourd'hui.</translation>
 <translation id="2949289451367477459">Utiliser la localisation. Permettez aux applications et aux services munis de l'autorisation de localisation d'utiliser la position de cet appareil. Google peut collecter des données de localisation sur une base périodique et les utiliser de manière anonyme pour améliorer la précision de la localisation et les services qui y font appel. <ph name="BEGIN_LINK1" />En savoir plus<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Je m'inscris</translation>
 <translation id="2956070239128776395">Section imbriquée dans le groupe : <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Ne pas autoriser de sites à modifier les fichiers ou les dossiers de votre appareil</translation>
 <translation id="2958721676848865875">Avertissement concernant l'empaquetage d'extensions</translation>
@@ -1604,6 +1606,7 @@
 <translation id="3139925690611372679">Avatar jaune par défaut</translation>
 <translation id="3141318088920353606">Écoute en cours…</translation>
 <translation id="3141917231319778873">La requête donnée n'est pas prise en charge sur l'appareil « <ph name="DEVICE_NAME" /> ».</translation>
+<translation id="3142562627629111859">Nouveau groupe</translation>
 <translation id="3143515551205905069">Annuler la synchronisation</translation>
 <translation id="3143754809889689516">Faire jouer depuis le début</translation>
 <translation id="3144647712221361880">Ouvrir le lien en tant que</translation>
@@ -1628,6 +1631,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (intégré au matériel)</translation>
 <translation id="3161522574479303604">Toutes les langues</translation>
+<translation id="3162853326462195145">Compte scolaire</translation>
 <translation id="3162899666601560689">Les sites peuvent utiliser des témoins afin d'améliorer votre expérience de navigation, par exemple en vous permettant de rester connecté ou en mémorisant des articles de votre panier d'achats</translation>
 <translation id="3163201441334626963">Produit inconnu <ph name="PRODUCT_ID" /> du fournisseur <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Onglet partagé avec <ph name="APP_NAME" /></translation>
@@ -1686,7 +1690,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Mettre à jour l'appareil d'ici un jour}one{Mettre à jour l'appareil d'ici # jour}other{Mettre à jour l'appareil d'ici # jours}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Erreur réseau</translation>
 <translation id="3248902735035392926">La sécurité, c'est important. Prenez quelques instants pour <ph name="BEGIN_LINK" />vérifier vos extensions maintenant<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Ne fait pas partie du certificat&gt;</translation>
 <translation id="3253225298092156258">Non accessible</translation>
 <translation id="3253448572569133955">Compte inconnu</translation>
@@ -1791,6 +1794,7 @@
 <translation id="3396800784455899911">En cliquant sur le bouton « Accepter et continuer », vous acceptez le traitement décrit ci-dessus pour ces services Google.</translation>
 <translation id="3399432415385675819">Les notifications seront désactivées</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz), entrelacé</translation>
+<translation id="3402585168444815892">Inscription au mode de démonstration en cours…</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Aucun mot de passe enregistré pour ce site</translation>
 <translation id="3405664148539009465">Personnaliser les polices</translation>
@@ -1852,6 +1856,7 @@
 <translation id="3468999815377931311">Téléphone Android</translation>
 <translation id="3470442499439619530">Supprimer cet utilisateur</translation>
 <translation id="3471876058939596279">Les ports HDMI et USB de type C ne peuvent pas être utilisés simultanément pour la sortie vidéo. Utilisez un port vidéo différent.</translation>
+<translation id="3473241910002674503">Naviguer vers l'écran d'accueil ou vers l'arrière et basculer entre les applications grâce aux boutons en mode tablette.</translation>
 <translation id="3473479545200714844">Loupe d'écran</translation>
 <translation id="3475843873335999118">Désolés, votre empreinte digitale n'a toujours pas été reconnue. Veuillez entrer votre mot de passe.</translation>
 <translation id="3476303763173086583">Envoyer les données d'utilisation et de diagnostic. Aidez-nous à améliorer l'expérience Android de votre enfant en envoyant automatiquement à Google des données de diagnostic, de l'appareil et d'utilisation des applications. L'envoi de ces données ne sera pas utilisé pour identifier votre enfant, mais pour assurer la stabilité du système et des applications, et pour apporter d'autres améliorations. Certaines données collectées contribueront également à améliorer les applications Google et aideront nos partenaires, comme les concepteurs Android. Ce <ph name="BEGIN_LINK1" />paramètre<ph name="END_LINK1" /> est appliqué par le propriétaire du compte. C'est à lui de choisir d'envoyer ou non à Google les données de diagnostic et d'utilisation de cet appareil. Si le paramètre relatif aux autres activités sur le Web et dans les applications est activé pour votre enfant, ces données peuvent être enregistrées dans son compte Google. <ph name="BEGIN_LINK2" />En savoir plus<ph name="END_LINK2" /></translation>
@@ -2276,6 +2281,7 @@
 <translation id="3971764089670057203">Empreintes digitales sur cette clé de sécurité</translation>
 <translation id="3973660817924297510">Vérification des mots de passe en cours… (<ph name="CHECKED_PASSWORDS" /> sur <ph name="TOTAL_PASSWORDS" />)</translation>
 <translation id="3975565978598857337">Échec de la tentative de contact du serveur associé à ce domaine</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne peut pas vérifier vos mots de passe. Réessayez plus tard.</translation>
 <translation id="3976108569178263973">Il n'y a aucune imprimante à proximité.</translation>
 <translation id="397703832102027365">Finalisation en cours...</translation>
 <translation id="3977886311744775419">Les mises à jour automatiques ne seront pas téléchargées sur ce type de réseau, mais vous pouvez vérifier manuellement la présence de mises à jour.</translation>
@@ -2339,6 +2345,7 @@
 <translation id="4068506536726151626">Cette page contient des éléments des sites ci-dessous qui suivent votre position géographique :</translation>
 <translation id="4068776064906523561">Empreintes digitales enregistrées</translation>
 <translation id="407173827865827707">Au clic</translation>
+<translation id="4073520450811433493">Synchronisation des paramètres</translation>
 <translation id="4074900173531346617">Certificat du signataire de courrier électronique</translation>
 <translation id="407520071244661467">Redimensionner</translation>
 <translation id="4075639477629295004">Impossible de diffuser <ph name="FILE_NAME" />.</translation>
@@ -2575,6 +2582,7 @@
 <translation id="4421932782753506458">Félix</translation>
 <translation id="4423376891418188461">Restaurer les paramètres</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, votre administrateur vous demande de changer votre mot de passe.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne peut pas vérifier vos mots de passe. Réessayez après 24 heures.</translation>
 <translation id="4429030830601238961">Ces données violent les politiques de sécurité de votre organisation et ne peuvent pas être collées.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Favori ajouté</translation>
@@ -2587,6 +2595,7 @@
 <translation id="4441124369922430666">Voulez-vous lancer automatiquement cette application au démarrage de l'ordinateur?</translation>
 <translation id="4441147046941420429">Pour continuer, retirez votre clé de sécurité de votre appareil, puis réinsérez-la et touchez-la</translation>
 <translation id="444134486829715816">Développer...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> peut vérifier vos mots de passe lorsque vous vous connectez avec votre compte Google</translation>
 <translation id="4442424173763614572">Échec de la consultation de DNS.</translation>
 <translation id="4443536555189480885">A&amp;ide</translation>
 <translation id="4444304522807523469">Accéder aux analyseurs de documents joints par USB ou sur le réseau local</translation>
@@ -2613,11 +2622,13 @@
 <translation id="4476659815936224889">Pour numériser ce code, vous pouvez utiliser une application de numérisation de code QR sur votre téléphone ou certaines applications d'appareil photo.</translation>
 <translation id="4477015793815781985">Incluez la touche Ctrl, Alt ou ⌘</translation>
 <translation id="4478664379124702289">Enregistrer le lie&amp;n sous...</translation>
+<translation id="4478777936860197922">Aucun mot de passe enregistré. <ph name="IDS_SHORT_PRODUCT_NAME" /> ne peut vérifier vos mots de passe que si vous les enregistrez.</translation>
 <translation id="4479424953165245642">Gérer les applications de kiosque</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Configuration de la machine virtuelle. Cette opération peut prendre quelques minutes.</translation>
 <translation id="4480590691557335796">Google Chrome peut rechercher un logiciel nuisible sur votre ordinateur et le supprimer</translation>
 <translation id="4481530544597605423">Appareils dissociés</translation>
+<translation id="4488107067273194838">Examiner les options de synchronisation du navigateur après la configuration</translation>
 <translation id="4488502501195719518">Effacer toutes les données?</translation>
 <translation id="4495419450179050807">Ne pas afficher sur cette page</translation>
 <translation id="4496054781541092778">bloqué automatiquement <ph name="PERMISSION" /></translation>
@@ -2859,6 +2870,7 @@
 <translation id="4849517651082200438">Ne pas installer</translation>
 <translation id="4850669014075537160">Défilement</translation>
 <translation id="4850886885716139402">Affichage</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> vous avisera lorsque vous utilisez un mot de passe compromis pour vous connecter</translation>
 <translation id="4853020600495124913">Ouvrir dans une &amp;nouvelle fenêtre</translation>
 <translation id="4854317507773910281">Sélectionner le compte parental pour l'approbation</translation>
 <translation id="485480310608090163">Plus de paramètres et d'autorisations</translation>
@@ -2877,6 +2889,7 @@
 <translation id="4871322859485617074">Le NIP contient des caractères incorrects</translation>
 <translation id="4871370605780490696">Ajouter aux favoris</translation>
 <translation id="4871719318659334896">Fermer le groupe</translation>
+<translation id="4871852311166078968">Ajouter au groupe</translation>
 <translation id="4873312501243535625">Vérificateur de fichier multimédia</translation>
 <translation id="4876273079589074638">Aidez nos ingénieurs à enquêter sur ce plantage et à le corriger. Indiquez les étapes exactes, si vous le pouvez. Tous les détails comptent!</translation>
 <translation id="4876895919560854374">Verrouiller et déverrouiller l'écran</translation>
@@ -2968,7 +2981,6 @@
 <translation id="4992473555164495036">Votre administrateur a limité les méthodes d'entrée disponibles.</translation>
 <translation id="4994474651455208930">Permettre aux sites de demander l'autorisation de devenir gestionnaires par défaut des protocoles</translation>
 <translation id="4994754230098574403">Configuration</translation>
-<translation id="4996978546172906250">Partager par</translation>
 <translation id="4997086284911172121">Aucune connexion Internet.</translation>
 <translation id="4997384734315285248">Désinstaller Plugin VM</translation>
 <translation id="4998430619171209993">Activé</translation>
@@ -3068,7 +3080,6 @@
 <translation id="5135085122826131075">Accédez à l'Assistant Google lorsque vous dites « Ok Google ».</translation>
 <translation id="5135533361271311778">Impossible de créer le favori.</translation>
 <translation id="5137501176474113045">Supprimer cet élément</translation>
-<translation id="5138982052046316113">Redimensionner le disque Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, recherche <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Entrez le NIP de votre clé de sécurité. Si vous ne connaissez pas le NIP, vous devrez réinitialiser la clé de sécurité.</translation>
 <translation id="5139955368427980650">&amp;Ouvrir</translation>
@@ -3520,6 +3531,7 @@
 <translation id="5739235828260127894">En attente de vérification. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Très grand</translation>
 <translation id="574209121243317957">Timbre de la voix</translation>
+<translation id="5745136023067925867">Obtenez des conseils sur votre <ph name="DEVICE_TYPE" />, des offres et des mises à jour, et transmettez vos commentaires</translation>
 <translation id="5746169159649715125">Enregistrer au format PDF</translation>
 <translation id="5747552184818312860">Date d'expiration</translation>
 <translation id="5747785204778348146">Développeur (instable)</translation>
@@ -3932,7 +3944,6 @@
 <translation id="6291953229176937411">&amp;Afficher dans le Finder</translation>
 <translation id="6295158916970320988">Tous les sites</translation>
 <translation id="6295855836753816081">Enregistrement en cours...</translation>
-<translation id="629730747756840877">Compte</translation>
 <translation id="6298962879096096191">Utilisez Google Play pour installer des applications Android</translation>
 <translation id="630065524203833229">&amp;Quitter</translation>
 <translation id="6300718114348072351">Impossible de configurer automatiquement l'imprimante <ph name="PRINTER_NAME" />. Veuillez spécifier les détails avancés de l'imprimante. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
@@ -4338,7 +4349,6 @@
 <translation id="6865598234501509159">La page n'est pas en <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Journaux d'événements WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Température des couleurs</translation>
-<translation id="6870888490422746447">Sélectionnez une application pour le partage :</translation>
 <translation id="6871644448911473373">Répondeur OCSP : <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Le mot de passe que vous avez entré a été refusé par le serveur.</translation>
 <translation id="6876155724392614295">Vélo</translation>
@@ -4431,6 +4441,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Journal d'activité</translation>
 <translation id="6997707937646349884">Sur vos appareils :</translation>
 <translation id="6998793565256476099">Inscrire un appareil pour la vidéoconférence</translation>
+<translation id="6999956497249459195">Nouveau groupe</translation>
 <translation id="7000206553895739324">L'imprimante <ph name="PRINTER_NAME" /> est connectée, mais elle doit être configurée</translation>
 <translation id="7000347579424117903">Incluez la touche Ctrl, Alt ou Recherche</translation>
 <translation id="7001036685275644873">Sauvegarde des applications et des fichiers Linux en cours…</translation>
@@ -4729,6 +4740,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Configurez la connexion sur votre <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Ignorer ce message</translation>
+<translation id="7403642243184989645">Téléchargement des ressources en cours…</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{La vérification de sécurité s'est exécutée il y a 1 heure}one{La vérification de sécurité s'est exécutée il y a {NUM_HOURS} heure}other{La vérification de sécurité s'est exécutée il y a {NUM_HOURS} heures}}</translation>
 <translation id="740624631517654988">Fenêtre contextuelle bloquée</translation>
 <translation id="7407430846095439694">Importer et associer</translation>
@@ -4965,6 +4977,7 @@
 <translation id="7716781361494605745">URL de la politique de l'autorité de certification Netscape</translation>
 <translation id="7717014941119698257">Téléchargement : <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Rechercher des mises à jour</translation>
+<translation id="7719070594859855691">Accorder l'accès à l'appareil photo</translation>
 <translation id="7719367874908701697">Zoom de la page</translation>
 <translation id="7721179060400456005">Autoriser les fenêtres à s'afficher sur plusieurs écrans</translation>
 <translation id="7722040605881499779">Espace nécessaire pour la mise à jour : <ph name="NECESSARY_SPACE" /></translation>
@@ -4979,7 +4992,6 @@
 <translation id="7744047395460924128">Afficher votre historique d'impression</translation>
 <translation id="7744192722284567281">Trouvé dans une violation de données</translation>
 <translation id="7750228210027921155">Incrustation d'image</translation>
-<translation id="7751229152614300329">La navigation sécurisée est à jour et vous protège contre les sites et les téléchargements nuisibles</translation>
 <translation id="7751260505918304024">Tout afficher</translation>
 <translation id="7754704193130578113">Toujours demander où enregistrer les fichiers</translation>
 <translation id="7755287808199759310">L'un de tes parents peut le débloquer pour toi</translation>
@@ -5067,6 +5079,7 @@
     <ph name="BEGIN_BOLD" />Note :<ph name="END_BOLD" />  Le système va redémarrer durant le processus.</translation>
 <translation id="7828731929332799387">Cela supprimera tous les témoins et les données des sites proposés dans les contextes tiers. Voulez-vous continuer?</translation>
 <translation id="7829298379596169484">Accès à l'entrée audio en cours…</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne peut pas vérifier vos mots de passe. Essayez de vérifier votre connexion Internet.</translation>
 <translation id="7829877209233347340">Demande à un parent de se connecter afin d'accorder l'autorisation d'ajouter un compte scolaire</translation>
 <translation id="7830594666202422257">Connexion à Linux</translation>
 <translation id="7831491651892296503">Erreur de configuration réseau</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Installation du Google Play Store sur votre <ph name="DEVICE_TYPE" /> en cours… Cela peut prendre quelques minutes.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Aucun témoin tiers}=1{1 témoin tiers est bloqué}one{# témoin tiers est bloqué}other{# témoins tiers sont bloqués}}</translation>
 <translation id="810875025413331850">Aucun appareil à proximité n'a été détecté.</translation>
+<translation id="8114199541033039755">Naviguer vers l'écran d'accueil ou vers l'arrière et basculer entre les applications grâce aux boutons en mode tablette. Cette fonctionnalité est active lorsque l'option ChromeVox ou Clics automatiques est activée.</translation>
 <translation id="8114875720387900039">Séparation horizontale</translation>
 <translation id="8116972784401310538">&amp;Gestionnaire de favoris</translation>
 <translation id="8117620576188476503">Gérez les connexions, les mises à jour et les paramètres avec la barre d'état. Pour y accéder à l'aide du clavier, appuyez sur Alt + Maj + S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> a désactivé le curseur de votre souris.</translation>
 <translation id="8264024885325823677">C'est votre administrateur qui gère ce paramètre.</translation>
 <translation id="8264718194193514834">L'extension « <ph name="EXTENSION_NAME" /> » a déclenché le mode plein écran.</translation>
+<translation id="826511437356419340">Vous avez activé le mode de vue d'ensemble des fenêtres. Balayez l'écran pour naviguer, ou appuyez sur la touche Tabulation si vous utilisez un clavier.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Il s'agit de données générales concernant votre appareil et l'usage que vous en faites (comme le niveau de la pile, l'activité système, l'activité des applications et les erreurs) qui seront utilisées pour améliorer Android. De plus, certaines données collectées contribueront également à améliorer les applications de Google et aideront nos partenaires, comme les concepteurs d'Android, à améliorer leurs applications et leurs produits.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />La désactivation de cette fonctionnalité n'empêche pas votre appareil d'envoyer les données nécessaires aux services essentiels, comme les mises à jour du système et la sécurité.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />L'utilisateur peut contrôler cette fonctionnalité en accédant à Paramètres &gt; Paramètres avancés… &gt; Envoyer automatiquement un diagnostic et des données d'utilisation à Google.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Activation en cours…</translation>
 <translation id="8427292751741042100">intégrée à n'importe quel hôte</translation>
 <translation id="8428213095426709021">Paramètres</translation>
+<translation id="8428271547607112339">Ajouter un compte scolaire</translation>
 <translation id="8428628598981198790">Votre clé de sécurité ne peut pas être utilisée avec ce site</translation>
 <translation id="84297032718407999">Vous serez déconnecté dans <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Afficher les éléments sélectionnés</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Toujours autoriser <ph name="HOST" /> à afficher les images</translation>
 <translation id="8513108775083588393">Rotation automatique</translation>
 <translation id="8514746246728959655">Essayez une clé de sécurité différente</translation>
+<translation id="851960115758509829">Vos applications, vos paramètres et d'autres personnalisations seront synchronisés sur tous les appareils Chrome OS sur lesquels vous êtes connecté avec votre compte Google.</translation>
 <translation id="8521475323816527629">Accédez rapidement à vos applications</translation>
 <translation id="8523493869875972733">Conserver les modifications</translation>
 <translation id="8523849605371521713">Ajoutée par une règle</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Stockage</translation>
 <translation id="8859057652521303089">Sélectionnez votre langue :</translation>
 <translation id="8859174528519900719">Sous-cadre : <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Compte parental</translation>
 <translation id="8862003515646449717">Passer à un navigateur rapide</translation>
 <translation id="8863753581171631212">Ouvrir le lien dans une nouvelle fenêtre <ph name="APP" /></translation>
 <translation id="8864055848767439877">Partage de <ph name="TAB_NAME" /> avec <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">L'adresse <ph name="EMAIL" /> a été supprimée de cet appareil</translation>
 <translation id="8867228703146808825">Copier les renseignements de la version dans le presse-papier</translation>
+<translation id="8868333925931032127">Démarrage du mode de démonstration en cours…</translation>
 <translation id="8868626022555786497">Utilisé</translation>
 <translation id="8870413625673593573">Éléments récemment fermés</translation>
 <translation id="8871551568777368300">Épinglé par l'administrateur</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Rouvrir un onglet fermé par accident</translation>
 <translation id="8967866634928501045">Appuyez sur Alt+Maj+A pour afficher</translation>
 <translation id="8968766641738584599">Enregistrer la carte</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne peut pas vérifier vos mots de passe. Réessayez après 24 heures ou <ph name="BEGIN_LINK" />effectuez une vérification des mots de passe dans votre compte Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Échappement</translation>
 <translation id="8972513834460200407">Veuillez vérifier auprès de votre administrateur réseau que le pare-feu ne bloque pas les téléchargements des serveurs Google.</translation>
 <translation id="8973557916016709913">Supprimer le niveau de zoom</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index eef41a4..20f87947 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Appareils disponibles</translation>
 <translation id="1042174272890264476">Votre ordinateur est fourni avec la bibliothèque RLZ de <ph name="SHORT_PRODUCT_NAME" />. RLZ attribue un tag non unique (et qui n'identifie pas personnellement les internautes) afin de mesurer les recherches et l'utilisation de <ph name="SHORT_PRODUCT_NAME" /> générées par une campagne de promotion spécifique. Ces libellés s'affichent parfois dans les requêtes de recherche Google dans <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Effacer également les données issues de ces applications ?</translation>
+<translation id="1045448422538531528">Ajouter au groupe</translation>
 <translation id="1046635659603195359">Il semble que vous ayez déjà configuré Voice Match avec l'Assistant Google sur un autre appareil. Vous pouvez utiliser ces enregistrements précédents pour créer une empreinte vocale sur cet appareil. Cela devrait prendre moins d'une minute.</translation>
 <translation id="104710386808485638">Redémarrer Linux ?</translation>
 <translation id="1047431265488717055">Copier le te&amp;xte du lien</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Toujours bloquer l'accès à la caméra</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> souhaite rétablir les valeurs par défaut des paramètres Chrome. Suite à cette opération, votre page d'accueil, la page Nouvel onglet et le moteur de recherche seront la réinitialisés, vos extensions seront désactivées et tous les onglets épinglés seront supprimés. D'autres données temporaires et mises en cache seront également effacées, comme les cookies, les données relatives au contenu et les données de sites.</translation>
+<translation id="1084096383128641877">La suppression de ce mot de passe n'entraînera pas la suppression de votre compte sur <ph name="DOMAIN" />. Modifiez votre mot de passe ou supprimez votre compte sur <ph name="DOMAIN_LINK" /> pour le protéger des autres utilisateurs.</translation>
 <translation id="1084824384139382525">Copier l'adr&amp;esse du lien</translation>
 <translation id="1085697365578766383">Impossible de démarrer la machine virtuelle. Veuillez réessayer.</translation>
 <translation id="1090126737595388931">Aucune application active en arrière plan</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Contrôle de sécurité effectué hier</translation>
 <translation id="1260451001046713751">Toujours autoriser les pop-up et les redirections de <ph name="HOST" /></translation>
 <translation id="126156426083987769">Un problème est survenu avec les licences d'appareils en mode de démonstration.</translation>
+<translation id="1263490604593716556">Compte géré par <ph name="FIRST_PARENT_EMAIL" /> et <ph name="SECOND_PARENT_EMAIL" />. Pour vous déconnecter du compte principal sur cet appareil, cliquez sur l'heure indiquée sur votre écran. Dans le menu qui s'affiche, cliquez sur "Déconnexion".</translation>
 <translation id="126710816202626562">Langue de traduction :</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Arrêter</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Site Web</translation>
 <translation id="15662109988763471">L'imprimante sélectionnée n'est pas disponible ou n'est pas installée correctement. Vérifiez votre imprimante ou sélectionnez-en une autre.</translation>
 <translation id="1567387640189251553">Un clavier différent a été branché depuis la dernière fois où vous avez saisi votre mot de passe. Il est possible que ce soit pour enregistrer les touches sur lesquelles vous appuyez et vous soutirer ainsi des informations.</translation>
-<translation id="1567750922576943685">La validation de votre identité contribue à protéger vos informations personnelles</translation>
 <translation id="1567993339577891801">Console JavaScript</translation>
 <translation id="1568323446248056064">Ouvrir les paramètres de l'écran</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (invité)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Art</translation>
 <translation id="1697686431566694143">Modifier le fichier</translation>
 <translation id="1698122934742150150">Session de navigation privée actuelle uniquement</translation>
-<translation id="1698650002254827833">Impossible de charger la liste des applications. Veuillez réessayer.</translation>
 <translation id="1700079447639026019">Sites ne pouvant pas utiliser de cookies</translation>
 <translation id="1701062906490865540">Supprimer ce profil utilisateur</translation>
 <translation id="1703331064825191675">Ne vous souciez plus jamais de vos mots de passe</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Continuer</translation>
 <translation id="2173302385160625112">Vérifiez votre connexion Internet</translation>
 <translation id="2173801458090845390">Ajoutez un ID de réquisition sur cet appareil</translation>
+<translation id="2174948148799307353">Compte géré par <ph name="PARENT_EMAIL" />. Pour vous déconnecter du compte principal sur cet appareil, cliquez sur l'heure indiquée sur votre écran. Dans le menu qui s'affiche, cliquez sur "Déconnexion".</translation>
 <translation id="2175607476662778685">Barre de lancement rapide</translation>
 <translation id="217576141146192373">Impossible d'ajouter une imprimante. Vérifiez la configuration de votre imprimante et réessayez.</translation>
 <translation id="2177950615300672361">Onglet de navigation privée : <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Ombre du texte</translation>
 <translation id="2445081178310039857">Le répertoire racine de l'extension doit être indiqué.</translation>
 <translation id="2445484935443597917">Créer un profil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> souhaite valider votre identité</translation>
 <translation id="2448312741937722512">Type</translation>
 <translation id="2450223707519584812">Vous ne pourrez pas ajouter d'utilisateurs, car des clés API Google sont manquantes. Pour en savoir plus, rendez-vous sur <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Aucune vue active</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Accéder à la page <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Un navigateur Internet rapide, simple et sécurisé, conçu pour le Web d'aujourd'hui</translation>
 <translation id="2949289451367477459">Utiliser la localisation. Autoriser les applications et services disposant de l'autorisation d'accéder à la position à utiliser l'emplacement de cet appareil. Nous pouvons recueillir régulièrement des données de localisation et les utiliser de façon anonyme afin d'améliorer la précision de la localisation et les services géolocalisés. <ph name="BEGIN_LINK1" />En savoir plus<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">S'inscrire</translation>
 <translation id="2956070239128776395">Section imbriquée dans un groupe : <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Interdire à tous les sites de modifier des fichiers ou des dossiers sur votre appareil</translation>
 <translation id="2958721676848865875">Avertissement relatif à la mise en package des extensions</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Avatar jaune par défaut</translation>
 <translation id="3141318088920353606">Écoute…</translation>
 <translation id="3141917231319778873">La demande fournie n'est pas compatible avec l'appareil <ph name="DEVICE_NAME" />.</translation>
+<translation id="3142562627629111859">Nouveau groupe</translation>
 <translation id="3143515551205905069">Annuler la synchronisation</translation>
 <translation id="3143754809889689516">Lire depuis le début</translation>
 <translation id="3144647712221361880">Ouvrir le lien avec le compte</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (matériel requis)</translation>
 <translation id="3161522574479303604">Toutes les langues</translation>
+<translation id="3162853326462195145">Compte scolaire</translation>
 <translation id="3162899666601560689">Les sites peuvent utiliser des cookies pour améliorer votre expérience de navigation, par exemple pour maintenir votre connexion ou mémoriser les articles de votre panier</translation>
 <translation id="3163201441334626963">Produit inconnu <ph name="PRODUCT_ID" /> du fournisseur <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Partage de l'onglet avec <ph name="APP_NAME" />…</translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Mettre à jour l'appareil d'ici 1 jour}one{Update device within # days}other{Mettre à jour l'appareil d'ici # jours}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – Erreur réseau</translation>
 <translation id="3248902735035392926">La sécurité est essentielle. Prenez quelques instants pour <ph name="BEGIN_LINK" />vérifier vos extensions dès maintenant<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Ne fait pas partie du certificat&gt;</translation>
 <translation id="3253225298092156258">Indisponible</translation>
 <translation id="3253448572569133955">Compte inconnu</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">En cliquant sur le bouton "Accepter et continuer", vous acceptez le processus décrit ci-dessus pour ces services Google.</translation>
 <translation id="3399432415385675819">Les notifications seront désactivées</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz) – entrelacé</translation>
+<translation id="3402585168444815892">Inscription au mode démo</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Aucun mot de passe enregistré pour ce site</translation>
 <translation id="3405664148539009465">Personnaliser les polices</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Téléphone Android</translation>
 <translation id="3470442499439619530">Supprimer cet utilisateur</translation>
 <translation id="3471876058939596279">Les ports HDMI et USB Type-C ne peuvent pas être utilisés simultanément pour de la vidéo. Utilisez un autre port vidéo.</translation>
+<translation id="3473241910002674503">Utilisez les boutons pour accéder à la page d'accueil, revenir en arrière et changer d'application en mode tablette.</translation>
 <translation id="3473479545200714844">Loupe</translation>
 <translation id="3475843873335999118">Désolé, votre empreinte digitale n'est toujours pas reconnue. Veuillez saisir votre mot de passe.</translation>
 <translation id="3476303763173086583">Envoyer des données d'utilisation et de diagnostic. Contribuez à l'amélioration de l'expérience de votre enfant sur Android en envoyant automatiquement à Google des données relatives aux diagnostics et à l'utilisation de l'appareil et des applications. Ces informations ne seront pas utilisées pour identifier votre enfant, mais elles nous aideront à améliorer, entre autres, la stabilité du système et des applications. Certaines données globales seront également utiles aux développeurs des applications Google et à nos partenaires, tels que les développeurs Android. Ce <ph name="BEGIN_LINK1" />paramètre<ph name="END_LINK1" /> est appliqué par le propriétaire. Le propriétaire de cet appareil peut choisir d'envoyer à Google des données de diagnostic et d'utilisation. Si vous activez le paramètre relatif à l'activité supplémentaire sur le Web et les applications pour votre enfant, ces données peuvent être enregistrées dans son compte Google. <ph name="BEGIN_LINK2" />En savoir plus<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Empreintes sur cette clé de sécurité</translation>
 <translation id="3973660817924297510">Vérification des mots de passe (<ph name="CHECKED_PASSWORDS" /> sur <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Échec de la tentative de contact du serveur correspondant à ce domaine</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne parvient pas à vérifier vos mots de passe. Réessayez plus tard.</translation>
 <translation id="3976108569178263973">Aucune imprimante n'est disponible.</translation>
 <translation id="397703832102027365">Finalisation en cours…</translation>
 <translation id="3977886311744775419">Les mises à jour automatiques ne sont pas téléchargées sur ce type de réseau. Cependant, vous pouvez rechercher les mises à jour manuellement.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Cette page contient des éléments des sites ci-dessous qui suivent votre position géographique :</translation>
 <translation id="4068776064906523561">Empreintes digitales enregistrées</translation>
 <translation id="407173827865827707">En cas de clic</translation>
+<translation id="4073520450811433493">Synchronisation des paramètres</translation>
 <translation id="4074900173531346617">Certificat du signataire de courrier électronique</translation>
 <translation id="407520071244661467">Mise à l'échelle</translation>
 <translation id="4075639477629295004">Impossible de caster "<ph name="FILE_NAME" />"</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Félix</translation>
 <translation id="4423376891418188461">Rétablir les paramètres</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, votre administrateur exige que vous changiez votre mot de passe.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne parvient pas à vérifier vos mots de passe. Réessayez dans 24 heures.</translation>
 <translation id="4429030830601238961">Impossible de coller ces données, car elles ne respectent pas les règles de sécurité de votre organisation.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Favori ajouté</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Voulez-vous démarrer automatiquement cette application à la mise sous tension de l'ordinateur ?</translation>
 <translation id="4441147046941420429">Pour continuer, retirez la clé de sécurité de votre appareil, puis réinsérez-la et appuyez dessus</translation>
 <translation id="444134486829715816">Développer...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> peut vérifier vos mots de passe lorsque vous vous connectez à votre compte Google</translation>
 <translation id="4442424173763614572">Échec de la résolution DNS.</translation>
 <translation id="4443536555189480885">&amp;Aide</translation>
 <translation id="4444304522807523469">Accéder aux scanners de documents connectés via USB ou sur le réseau local</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Pour scanner ce code, vous pouvez utiliser une application de lecture de codes QR sur votre téléphone ou certaines applications d'appareil photo.</translation>
 <translation id="4477015793815781985">Incluez les touches Ctrl, Alt ou ⌘</translation>
 <translation id="4478664379124702289">Enregistrer le lie&amp;n sous...</translation>
+<translation id="4478777936860197922">Aucun mot de passe enregistré. <ph name="IDS_SHORT_PRODUCT_NAME" /> ne peut vérifier vos mots de passe que si vous les enregistrez.</translation>
 <translation id="4479424953165245642">Gérer les applications du kiosque</translation>
 <translation id="4479639480957787382">Ethernet </translation>
 <translation id="4479877282574735775">Configuration de la machine virtuelle… Cette opération peut prendre quelques minutes.</translation>
 <translation id="4480590691557335796">Chrome peut détecter et supprimer les logiciels malveillants sur votre ordinateur</translation>
 <translation id="4481530544597605423">Appareils dissociés</translation>
+<translation id="4488107067273194838">Vérifier les options de synchronisation du navigateur après la configuration</translation>
 <translation id="4488502501195719518">Effacer toutes les données ?</translation>
 <translation id="4495419450179050807">Ne pas afficher sur cette page</translation>
 <translation id="4496054781541092778">autorisation "<ph name="PERMISSION" />" bloquée automatiquement</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Ne pas installer</translation>
 <translation id="4850669014075537160">Défilement</translation>
 <translation id="4850886885716139402">Afficher</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> vous avertira si vous vous connectez avec un mot de passe compromis</translation>
 <translation id="4853020600495124913">Ouvrir dans une &amp;nouvelle fenêtre</translation>
 <translation id="4854317507773910281">Sélectionnez un compte parental pour la demande d'autorisation</translation>
 <translation id="485480310608090163">Plus de paramètres et d'autorisations</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">Ce code contient des caractères non valides</translation>
 <translation id="4871370605780490696">Ajouter aux favoris</translation>
 <translation id="4871719318659334896">Fermer le groupe</translation>
+<translation id="4871852311166078968">Ajouter au groupe</translation>
 <translation id="4873312501243535625">Vérification de fichiers multimédias</translation>
 <translation id="4876273079589074638">Aidez nos ingénieurs à trouver l'origine de ce plantage pour y apporter une solution. Dans la mesure du possible, indiquez précisément les étapes suivies. Chaque détail compte.</translation>
 <translation id="4876895919560854374">Verrouiller et déverrouiller l'écran</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Votre administrateur a limité les modes de saisie disponibles.</translation>
 <translation id="4994474651455208930">Permettre aux sites de demander l'autorisation de devenir gestionnaires par défaut des protocoles</translation>
 <translation id="4994754230098574403">Configuration</translation>
-<translation id="4996978546172906250">Partager via</translation>
 <translation id="4997086284911172121">Aucune connexion Internet.</translation>
 <translation id="4997384734315285248">Désinstaller Plugin VM</translation>
 <translation id="4998430619171209993">Activé</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Accédez à l'Assistant en disant "Ok Google".</translation>
 <translation id="5135533361271311778">Impossible de créer le favori.</translation>
 <translation id="5137501176474113045">Supprimer cet élément</translation>
-<translation id="5138982052046316113">Redimensionner le disque Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, recherche dans <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Saisissez le code de votre clé de sécurité. Si vous ne le connaissez pas, vous devez réinitialiser la clé de sécurité.</translation>
 <translation id="5139955368427980650">&amp;Ouvrir</translation>
@@ -3520,6 +3531,7 @@
 <translation id="5739235828260127894">En attente de validation. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Très grande</translation>
 <translation id="574209121243317957">Ton</translation>
+<translation id="5745136023067925867">Recevez des conseils, des offres et des informations sur <ph name="DEVICE_TYPE" />, et partagez vos commentaires</translation>
 <translation id="5746169159649715125">Enregistrer au format PDF</translation>
 <translation id="5747552184818312860">Date d'expiration</translation>
 <translation id="5747785204778348146">Développeur (instable)</translation>
@@ -3932,7 +3944,6 @@
 <translation id="6291953229176937411">&amp;Afficher dans le Finder</translation>
 <translation id="6295158916970320988">Tous les sites</translation>
 <translation id="6295855836753816081">Enregistrement…</translation>
-<translation id="629730747756840877">Compte</translation>
 <translation id="6298962879096096191">Utilise Google Play pour installer des applications Android</translation>
 <translation id="630065524203833229">&amp;Quitter</translation>
 <translation id="6300718114348072351">Impossible de configurer automatiquement <ph name="PRINTER_NAME" />. Veuillez définir des paramètres avancés pour cette imprimante. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
@@ -4338,7 +4349,6 @@
 <translation id="6865598234501509159">La page n'est pas en <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Journaux d'événements WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Température des couleurs</translation>
-<translation id="6870888490422746447">Sélectionnez une application pour le partage :</translation>
 <translation id="6871644448911473373">Répondeur OCSP : <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Le serveur a refusé le mot de passe que vous avez saisi.</translation>
 <translation id="6876155724392614295">Vélo</translation>
@@ -4431,6 +4441,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – Journal d'activité</translation>
 <translation id="6997707937646349884">Sur vos appareils :</translation>
 <translation id="6998793565256476099">Enregistrer un appareil pour la visioconférence</translation>
+<translation id="6999956497249459195">Nouveau groupe</translation>
 <translation id="7000206553895739324">L'imprimante <ph name="PRINTER_NAME" /> est connectée, mais doit être configurée.</translation>
 <translation id="7000347579424117903">Vous devez inclure la touche Ctrl, la touche Alt ou la touche de recherche</translation>
 <translation id="7001036685275644873">Sauvegarde des applications et fichiers Linux</translation>
@@ -4729,6 +4740,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Configurer la connexion sur votre <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Fermer ce message</translation>
+<translation id="7403642243184989645">Téléchargement des ressources</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Contrôle de sécurité effectué il y a 1 heure}one{Contrôle de sécurité effectué il y a {NUM_HOURS} heure}other{Contrôle de sécurité effectué il y a {NUM_HOURS} heures}}</translation>
 <translation id="740624631517654988">Fenêtre pop-up bloquée</translation>
 <translation id="7407430846095439694">Importer et lier</translation>
@@ -4965,6 +4977,7 @@
 <translation id="7716781361494605745">URL de stratégie de l'autorité de certification Netscape</translation>
 <translation id="7717014941119698257">Téléchargement : <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Rechercher des mises à jour</translation>
+<translation id="7719070594859855691">Autoriser l'accès à l'appareil photo</translation>
 <translation id="7719367874908701697">Zoom de la page</translation>
 <translation id="7721179060400456005">Autoriser les fenêtres à occuper plusieurs écrans</translation>
 <translation id="7722040605881499779">Espace nécessaire pour la mise à jour : <ph name="NECESSARY_SPACE" /></translation>
@@ -4979,7 +4992,6 @@
 <translation id="7744047395460924128">Afficher l'historique d'impression</translation>
 <translation id="7744192722284567281">Détecté lors d'une violation des données</translation>
 <translation id="7750228210027921155">Mode PIP (Picture-in-Picture)</translation>
-<translation id="7751229152614300329">La navigation sécurisée est à jour et vous protège contre les sites et les téléchargements dangereux</translation>
 <translation id="7751260505918304024">Tout afficher</translation>
 <translation id="7754704193130578113">Toujours demander où enregistrer les fichiers</translation>
 <translation id="7755287808199759310">Ton parent peut te le débloquer</translation>
@@ -5067,6 +5079,7 @@
     <ph name="BEGIN_BOLD" />Remarque<ph name="END_BOLD" /> : Le système redémarre au cours de ce processus.</translation>
 <translation id="7828731929332799387">Cette action supprimera l'ensemble des cookies et données de sites disponibles dans des contextes tiers. Voulez-vous continuer ?</translation>
 <translation id="7829298379596169484">Accès à l'entrée audio en cours…</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne parvient pas à vérifier vos mots de passe. Vérifiez votre connexion Internet.</translation>
 <translation id="7829877209233347340">Demande à l'un de tes parents de t'autoriser à ajouter un compte scolaire</translation>
 <translation id="7830594666202422257">Connecter à Linux</translation>
 <translation id="7831491651892296503">Erreur lors de la configuration du réseau</translation>
@@ -5289,6 +5302,7 @@
 <translation id="8107015733319732394">Installation du Google Play Store sur votre <ph name="DEVICE_TYPE" />. Cette opération peut prendre quelques minutes.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Aucun cookie tiers}=1{1 cookie tiers bloqué}one{# cookie tiers bloqué}other{# cookies tiers bloqués}}</translation>
 <translation id="810875025413331850">Aucun appareil à proximité n'a été trouvé.</translation>
+<translation id="8114199541033039755">Utilisez les boutons pour accéder à la page d'accueil, revenir en arrière et changer d'application en mode tablette. Ce paramètre est activé lorsque ChromeVox ou les clics automatiques sont activés.</translation>
 <translation id="8114875720387900039">Séparation horizontale</translation>
 <translation id="8116972784401310538">&amp;Gestionnaire de favoris</translation>
 <translation id="8117620576188476503">Gérez les connexions, les mises à jour et les paramètres depuis la barre d'état. Pour y accéder depuis le clavier, appuyez sur Alt+Maj+S.</translation>
@@ -5408,6 +5422,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> a désactivé le curseur de votre souris.</translation>
 <translation id="8264024885325823677">Ce paramètre est géré par votre administrateur.</translation>
 <translation id="8264718194193514834">L'extension <ph name="EXTENSION_NAME" /> a déclenché le mode Plein écran.</translation>
+<translation id="826511437356419340">Mode de présentation de la fenêtre activé. Balayez l'écran pour naviguer, ou appuyez sur Tabulation si vous utilisez un clavier.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ces informations d'ordre général concernent cet appareil et l'usage qui en est fait (comme le niveau de batterie, les erreurs, et l'activité du système et des applications). Elles serviront à améliorer Android, et certaines informations agrégées aideront également nos développeurs d'applications et nos partenaires, tels que les développeurs Android, à améliorer leurs applications et leurs produits.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />La désactivation de cette fonctionnalité n'affecte pas la capacité de votre appareil à envoyer les informations requises pour les services essentiels tels que les mises à jour système et la sécurité.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Le propriétaire de l'appareil peut contrôler cette fonctionnalité dans Paramètres &gt; Avancés &gt; Envoyer automatiquement des données de diagnostic et d'utilisation à Google.<ph name="END_PARAGRAPH3" />
@@ -5516,6 +5531,7 @@
 <translation id="8426713856918551002">Activation</translation>
 <translation id="8427292751741042100">intégré sur n'importe quel hôte</translation>
 <translation id="8428213095426709021">Paramètres</translation>
+<translation id="8428271547607112339">Ajouter un compte scolaire</translation>
 <translation id="8428628598981198790">Impossible d'utiliser votre clé de sécurité sur ce site</translation>
 <translation id="84297032718407999">Vous allez être déconnecté dans <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Afficher les éléments sélectionnés</translation>
@@ -5579,6 +5595,7 @@
 <translation id="851263357009351303">Toujours autoriser <ph name="HOST" /> à afficher les images</translation>
 <translation id="8513108775083588393">Rotation automatique</translation>
 <translation id="8514746246728959655">Essayer une autre clé de sécurité</translation>
+<translation id="851960115758509829">Vos applications, paramètres et autres personnalisations seront synchronisés sur tous les appareils Chrome OS où vous êtes connecté à votre compte Google.</translation>
 <translation id="8521475323816527629">Accédez rapidement à vos applications</translation>
 <translation id="8523493869875972733">Conserver les modifications</translation>
 <translation id="8523849605371521713">Ajoutée en raison des règles</translation>
@@ -5860,11 +5877,13 @@
 <translation id="885701979325669005">Données stockées</translation>
 <translation id="8859057652521303089">Sélectionnez votre langue :</translation>
 <translation id="8859174528519900719">Sous-cadre : <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Compte parental</translation>
 <translation id="8862003515646449717">Passez à un navigateur rapide</translation>
 <translation id="8863753581171631212">Ouvrir le lien dans une nouvelle fenêtre <ph name="APP" /></translation>
 <translation id="8864055848767439877">Partage de <ph name="TAB_NAME" /> avec <ph name="APP_NAME" />…</translation>
 <translation id="8864458770072227512">Le compte <ph name="EMAIL" /> a été supprimé de cet appareil</translation>
 <translation id="8867228703146808825">Copier les détails de la version dans le presse-papiers</translation>
+<translation id="8868333925931032127">Lancement du mode démo</translation>
 <translation id="8868626022555786497">Utilisé</translation>
 <translation id="8870413625673593573">Récemment fermés</translation>
 <translation id="8871551568777368300">Épinglé par l'administrateur</translation>
@@ -5943,6 +5962,7 @@
 <translation id="8966870118594285808">Permet de rouvrir un onglet fermé par erreur</translation>
 <translation id="8967866634928501045">Appuyez sur Alt+Maj+A pour afficher</translation>
 <translation id="8968766641738584599">Enregistrer la carte</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne parvient pas à vérifier vos mots de passe. Réessayez dans 24 heures ou <ph name="BEGIN_LINK" />vérifiez les mots de passe enregistrés dans votre compte Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Échap</translation>
 <translation id="8972513834460200407">Vérifiez auprès de votre administrateur réseau que le pare-feu ne bloque pas les téléchargements effectués depuis les serveurs Google.</translation>
 <translation id="8973557916016709913">Supprimer le niveau de zoom</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index f775d67b..28cee66 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dispositivos dispoñibles</translation>
 <translation id="1042174272890264476">O ordenador tamén inclúe a biblioteca de <ph name="SHORT_PRODUCT_NAME" />. RLZ asigna unha etiqueta que non é exclusiva e sen identificación persoal para medir as buscas e o uso de <ph name="SHORT_PRODUCT_NAME" /> derivados dunha determinada campaña promocional. En ocasións estas etiquetas aparecen nas consultas de Busca de Google en <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Tamén queres borrar os datos destas aplicacións?</translation>
+<translation id="1045448422538531528">Engadir pestana(s) a un grupo</translation>
 <translation id="1046635659603195359">Parece que xa configuraches a Voice Match co teu Asistente de Google noutro dispositivo. As gravacións anteriores pódense usar para crear un modelo de voz neste dispositivo. Esta acción debería levar menos dun minuto.</translation>
 <translation id="104710386808485638">Queres reiniciar Linux?</translation>
 <translation id="1047431265488717055">Copiar te&amp;xto da ligazón</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Bloquear sempre o acceso á cámara</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> quere restaurar a túa configuración de Chrome aos seus axustes predeterminados orixinais. Esta acción restablecerá a túa páxina de inicio, a pestana Nova páxina e o motor de busca, desactivará as túas extensións e deixará todas as pestanas sen fixar. Tamén eliminará outros datos temporais e almacenados na memoria caché, como as cookies, o contido e os datos do sitio.</translation>
+<translation id="1084096383128641877">Quitar este contrasinal non provocará que se elimine a túa conta en <ph name="DOMAIN" />. Cambia o contrasinal ou elimina a túa conta en <ph name="DOMAIN_LINK" /> para protexela doutras persoas.</translation>
 <translation id="1084824384139382525">Copiar endere&amp;zo da ligazón</translation>
 <translation id="1085697365578766383">Produciuse un erro ao iniciar a máquina virtual. Téntao de novo.</translation>
 <translation id="1090126737595388931">Non hai ningunha aplicación en segundo plano en execución</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">A comprobación de seguranza executouse onte</translation>
 <translation id="1260451001046713751">Permitir sempre ventás emerxentes e redireccións desde <ph name="HOST" /></translation>
 <translation id="126156426083987769">Produciuse un problema coas licenzas do dispositivo do modo de demostración.</translation>
+<translation id="1263490604593716556">A conta está xestionada por <ph name="FIRST_PARENT_EMAIL" /> e <ph name="SECOND_PARENT_EMAIL" />. Para pechar sesión na conta principal deste dispositivo, fai clic na hora da pantalla. No menú que aparece, fai clic en Pechar sesión.</translation>
 <translation id="126710816202626562">Idioma da tradución:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Deter</translation>
@@ -416,7 +419,6 @@
 <translation id="1566049601598938765">Sitio web</translation>
 <translation id="15662109988763471">A impresora seleccionada non está dispoñible ou non está instalada correctamente. Compróbaa ou selecciona outra.</translation>
 <translation id="1567387640189251553">Conectouse un teclado diferente desde a última vez que inseriches o teu contrasinal. É posible que estea tentando detectar as teclas que premes.</translation>
-<translation id="1567750922576943685">Verificar a túa identidade axuda a protexer a túa información persoal</translation>
 <translation id="1567993339577891801">consola de JavaScript</translation>
 <translation id="1568323446248056064">Abrir a configuración de visualización do dispositivo</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (modo de convidado)</translation>
@@ -518,7 +520,6 @@
 <translation id="1697150536837697295">Arte</translation>
 <translation id="1697686431566694143">Editar ficheiro</translation>
 <translation id="1698122934742150150">Só sesión do modo de incógnito actual</translation>
-<translation id="1698650002254827833">Non se puido cargar a lista de aplicacións. Téntao de novo.</translation>
 <translation id="1700079447639026019">Sitios que nunca poden utilizar cookies</translation>
 <translation id="1701062906490865540">Eliminar esta persoa</translation>
 <translation id="1703331064825191675">Non te preocupes nunca polos teus contrasinais</translation>
@@ -872,6 +873,7 @@
 <translation id="2172784515318616985">Continuar</translation>
 <translation id="2173302385160625112">Comproba a túa conexión a Internet</translation>
 <translation id="2173801458090845390">Engade o ID de solicitude para este dispositivo</translation>
+<translation id="2174948148799307353">A conta está xestionada por <ph name="PARENT_EMAIL" />. Para pechar sesión na conta principal deste dispositivo, fai clic na hora da pantalla. No menú que aparece, fai clic en Pechar sesión.</translation>
 <translation id="2175607476662778685">Barra de inicio rápido</translation>
 <translation id="217576141146192373">Non se puido engadir a impresora. Comproba a súa configuración e téntao de novo.</translation>
 <translation id="2177950615300672361">Pestana de incógnito: <ph name="TAB_NAME" /></translation>
@@ -1080,7 +1082,6 @@
 <translation id="2442916515643169563">Sombra do texto</translation>
 <translation id="2445081178310039857">É obrigatorio o directorio raíz da extensión.</translation>
 <translation id="2445484935443597917">Crear un novo perfil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> quere verificar a túa identidade</translation>
 <translation id="2448312741937722512">Tipo</translation>
 <translation id="2450223707519584812">Non poderás engadir usuarios porque faltan as claves da API de Google. Consulta <ph name="DETAILS_URL" /> para obter máis información.</translation>
 <translation id="2450849356604136918">non hai visualizacións activas</translation>
@@ -1478,6 +1479,7 @@
 <translation id="2948300991547862301">Ir a <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Un navegador rápido, sinxelo e seguro deseñado para a web moderna.</translation>
 <translation id="2949289451367477459">Usar localización. Permite que as aplicacións e servizos con permiso de localización utilicen a localización deste dispositivo. Google pode recompilar datos de localización periodicamente e utilizalos de forma anónima para mellorar os servizos baseados na localización e a precisión desta última. <ph name="BEGIN_LINK1" />Máis información<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Rexistrarse</translation>
 <translation id="2956070239128776395">Hai unha sección aniñada dentro dun grupo: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Non permitir que ningún sitio modifique ficheiros ou cartafoles do teu dispositivo</translation>
 <translation id="2958721676848865875">Advertencia de extensión de paquete</translation>
@@ -1602,6 +1604,7 @@
 <translation id="3139925690611372679">Avatar amarelo predeterminado</translation>
 <translation id="3141318088920353606">Escoitando…</translation>
 <translation id="3141917231319778873">A solicitude determinada non é compatible co dispositivo "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Novo grupo</translation>
 <translation id="3143515551205905069">Cancelar sincronización</translation>
 <translation id="3143754809889689516">Reproducir desde o principio</translation>
 <translation id="3144647712221361880">Abrir ligazón como</translation>
@@ -1626,6 +1629,7 @@
 <translation id="3159493096109238499">Beixe</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (almacenado en hardware)</translation>
 <translation id="3161522574479303604">Todos os idiomas</translation>
+<translation id="3162853326462195145">Conta escolar</translation>
 <translation id="3162899666601560689">Os sitios poden utilizar cookies para mellorar a túa experiencia de navegación a través de funcións como manter a sesión iniciada ou lembrar artigos da túa cesta da compra</translation>
 <translation id="3163201441334626963">Produto descoñecido <ph name="PRODUCT_ID" /> do provedor <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Compartindo esta pestana con <ph name="APP_NAME" /></translation>
@@ -1684,7 +1688,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Actualiza o dispositivo en 1 día}other{Actualiza o dispositivo en # días}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" />: erro da rede</translation>
 <translation id="3248902735035392926">A seguranza é importante. Dedica un momento a <ph name="BEGIN_LINK" />comprobar as túas extensións agora<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Non forma parte do certificado&gt;</translation>
 <translation id="3253225298092156258">Non dispoñible</translation>
 <translation id="3253448572569133955">Conta descoñecida</translation>
@@ -1789,6 +1792,7 @@
 <translation id="3396800784455899911">Ao facer clic no botón Aceptar e continuar, aceptarás o procesamento descrito anteriormente para estes servizos de Google.</translation>
 <translation id="3399432415385675819">Desactivaranse as notificacións</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz): liñas entrelazadas</translation>
+<translation id="3402585168444815892">Inscribindo empresa no modo de demostración</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Non se gardou ningún contrasinal para este sitio</translation>
 <translation id="3405664148539009465">Personalizar tipos de letra</translation>
@@ -1850,6 +1854,7 @@
 <translation id="3468999815377931311">Teléfono Android</translation>
 <translation id="3470442499439619530">Eliminar este usuario</translation>
 <translation id="3471876058939596279">Os portos HDMI e USB tipo C non se poden utilizar ao mesmo tempo para o contido de vídeo. Utiliza un porto de vídeo distinto.</translation>
+<translation id="3473241910002674503">Vai ao inicio, volve atrás e cambia de aplicación usando os botóns no modo de tableta.</translation>
 <translation id="3473479545200714844">Lupa</translation>
 <translation id="3475843873335999118">Aínda non se recoñece a túa impresión dixital. Introduce o teu contrasinal.</translation>
 <translation id="3476303763173086583">Enviar datos de uso e de diagnóstico. Envía automaticamente datos de diagnóstico e de uso do dispositivo e das aplicacións a Google para axudar a mellorar a experiencia do teu fillo en Android. Esta información non se utilizará para identificar o teu fillo, senón co obxectivo de aumentar a estabilidade do sistema e das aplicacións, e de realizar outras melloras. Algúns datos agregados tamén serán útiles para as aplicacións e os socios de Google, como os programadores de Android. Esta <ph name="BEGIN_LINK1" />opción de configuración<ph name="END_LINK1" /> contrólaa o propietario. O cal pode optar por enviar datos de diagnóstico e uso deste dispositivo a Google. Se está activada a opción de configuración Actividade web e das aplicacións adicional para o teu fillo, estes datos pódense gardar na súa conta de Google <ph name="BEGIN_LINK2" />Máis información<ph name="END_LINK2" /></translation>
@@ -2274,6 +2279,7 @@
 <translation id="3971764089670057203">Impresións dixitais nesta chave de seguranza</translation>
 <translation id="3973660817924297510">Comprobando contrasinais (<ph name="CHECKED_PASSWORDS" /> de <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Produciuse un erro durante o contacto co servidor do dominio</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> non puido comprobar os teus contrasinais. Téntao de novo máis tarde.</translation>
 <translation id="3976108569178263973">Non hai impresoras dispoñibles.</translation>
 <translation id="397703832102027365">Finalizando...</translation>
 <translation id="3977886311744775419">As actualizacións automáticas non se descargan neste tipo de rede, pero podes buscar actualizacións manualmente.</translation>
@@ -2337,6 +2343,7 @@
 <translation id="4068506536726151626">Esta páxina contén elementos dos seguintes sitios que están rastrexando a túa localización:</translation>
 <translation id="4068776064906523561">Impresións dixitais gardadas</translation>
 <translation id="407173827865827707">Ao facer clic</translation>
+<translation id="4073520450811433493">Sincronización da configuración</translation>
 <translation id="4074900173531346617">Certificado de sinatura de correo electrónico</translation>
 <translation id="407520071244661467">Escala</translation>
 <translation id="4075639477629295004">Non se puido emitir <ph name="FILE_NAME" />.</translation>
@@ -2573,6 +2580,7 @@
 <translation id="4421932782753506458">Gatiño</translation>
 <translation id="4423376891418188461">Restaurar configuración</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, o teu administrador require que cambies o contrasinal.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> non puido comprobar os teus contrasinais. Téntao de novo dentro de 24 horas.</translation>
 <translation id="4429030830601238961">Estes datos infrinxen as políticas de seguranza da túa organización e non se poden pegar.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Engadiuse o marcador</translation>
@@ -2585,6 +2593,7 @@
 <translation id="4441124369922430666">Queres que se inicie automaticamente esta aplicación cando se acenda o equipo?</translation>
 <translation id="4441147046941420429">Para continuar, quita a chave de seguranza do teu dispositivo, volve inserila e toca o botón de activación</translation>
 <translation id="444134486829715816">Expandir...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> pode comprobar os teus contrasinais cando inicies sesión coa túa Conta de Google</translation>
 <translation id="4442424173763614572">Erro ao buscar o DNS</translation>
 <translation id="4443536555189480885">A&amp;xuda</translation>
 <translation id="4444304522807523469">Acceso aos escáneres de documentos conectados a través de USB ou que se atopan na rede local</translation>
@@ -2611,11 +2620,13 @@
 <translation id="4476659815936224889">Para escanear este código, podes utilizar unha aplicación de escáner de QR do teu teléfono ou algunhas aplicacións de cámara.</translation>
 <translation id="4477015793815781985">Inclúea Ctrl, Alt ou ⌘</translation>
 <translation id="4478664379124702289">Gardar liga&amp;zón como...</translation>
+<translation id="4478777936860197922">Non hai contrasinais gardados. <ph name="IDS_SHORT_PRODUCT_NAME" /> pode comprobar os teus contrasinais cando os gardes.</translation>
 <translation id="4479424953165245642">Xestionar as aplicacións de quiosco</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Configurando a máquina virtual. Esta acción pode tardar uns minutos.</translation>
 <translation id="4480590691557335796">Chrome pode buscar software daniño no ordenador e eliminalo</translation>
 <translation id="4481530544597605423">Dispositivos desincronizados</translation>
+<translation id="4488107067273194838">Revisar opcións de sincronización do navegador despois da configuración</translation>
 <translation id="4488502501195719518">Queres borrar todos os datos?</translation>
 <translation id="4495419450179050807">Non mostrar nesta páxina</translation>
 <translation id="4496054781541092778">bloqueouse automaticamente o permiso: <ph name="PERMISSION" /></translation>
@@ -2857,6 +2868,7 @@
 <translation id="4849517651082200438">Non instalar</translation>
 <translation id="4850669014075537160">Desprazamento</translation>
 <translation id="4850886885716139402">Vista</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> enviarache unha notificación cando inicies sesión cun contrasinal vulnerado</translation>
 <translation id="4853020600495124913">Abrir nunha ventá &amp;nova</translation>
 <translation id="4854317507773910281">Escolle a conta parental para a aprobación</translation>
 <translation id="485480310608090163">Máis opcións de configuración e permisos</translation>
@@ -2875,6 +2887,7 @@
 <translation id="4871322859485617074">O PIN contén caracteres non válidos</translation>
 <translation id="4871370605780490696">Engadir marcador</translation>
 <translation id="4871719318659334896">Pechar grupo</translation>
+<translation id="4871852311166078968">Engadir pestana(s) a un grupo</translation>
 <translation id="4873312501243535625">Comprobador de ficheiros multimedia</translation>
 <translation id="4876273079589074638">Indica exactamente o que aconteceu paso a paso para axudar aos nosos enxeñeiros a investigar e solucionar este fallo. Calquera detalle é importante.</translation>
 <translation id="4876895919560854374">Bloquear e desbloquear a pantalla</translation>
@@ -2966,7 +2979,6 @@
 <translation id="4992473555164495036">O administrador limitou os métodos de introdución de texto dispoñibles.</translation>
 <translation id="4994474651455208930">Permitir que os sitios soliciten converterse en controladores predeterminados de protocolos</translation>
 <translation id="4994754230098574403">Configurando</translation>
-<translation id="4996978546172906250">Compartir a través de</translation>
 <translation id="4997086284911172121">Non hai conexión a Internet.</translation>
 <translation id="4997384734315285248">Desinstalar Plugin VM</translation>
 <translation id="4998430619171209993">Si</translation>
@@ -3066,7 +3078,6 @@
 <translation id="5135085122826131075">Accede ao teu Asistente cando digas "Ok Google".</translation>
 <translation id="5135533361271311778">Non se puido crear o elemento do marcador.</translation>
 <translation id="5137501176474113045">Eliminar este elemento</translation>
-<translation id="5138982052046316113">Cambiar o tamaño do disco de Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, busca con <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Escribe o PIN da túa chave de seguranza. Se non o sabes, terás que restablecela.</translation>
 <translation id="5139955368427980650">&amp;Abrir</translation>
@@ -3518,6 +3529,7 @@
 <translation id="5739235828260127894">Esperando pola verificación. <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Moi grande</translation>
 <translation id="574209121243317957">Ton</translation>
+<translation id="5745136023067925867">Recibe consellos sobre <ph name="DEVICE_TYPE" />, mantente ao tanto das novidades e das ofertas, e envíanos os teus comentarios</translation>
 <translation id="5746169159649715125">Gardar como PDF</translation>
 <translation id="5747552184818312860">Data de caducidade</translation>
 <translation id="5747785204778348146">Programador: inestable</translation>
@@ -3930,7 +3942,6 @@
 <translation id="6291953229176937411">&amp;Mostrar en Finder</translation>
 <translation id="6295158916970320988">Todos os sitios</translation>
 <translation id="6295855836753816081">Gardando...</translation>
-<translation id="629730747756840877">Conta</translation>
 <translation id="6298962879096096191">Utiliza Google Play para instalar aplicacións Android</translation>
 <translation id="630065524203833229">Sa&amp;ír</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> non se puido configurar automaticamente. Indica os detalles avanzados da impresora. <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation>
@@ -4336,7 +4347,6 @@
 <translation id="6865598234501509159">A páxina non está en <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Rexistros de eventos WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura da cor</translation>
-<translation id="6870888490422746447">Selecciona unha aplicación na que compartir o contido:</translation>
 <translation id="6871644448911473373">Dispositivo de resposta OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">O servidor rexeitou o contrasinal que introduciches.</translation>
 <translation id="6876155724392614295">Ciclismo</translation>
@@ -4429,6 +4439,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> (rexistro de actividade)</translation>
 <translation id="6997707937646349884">Nos teus dispositivos:</translation>
 <translation id="6998793565256476099">Rexistra o dispositivo para realizar videoconferencias</translation>
+<translation id="6999956497249459195">Novo grupo</translation>
 <translation id="7000206553895739324">A impresora <ph name="PRINTER_NAME" /> está conectada, pero é necesario configurala</translation>
 <translation id="7000347579424117903">Utiliza Ctrl, Alt ou a tecla de busca</translation>
 <translation id="7001036685275644873">Creando copia de seguranza das aplicacións e dos ficheiros de Linux</translation>
@@ -4727,6 +4738,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Configura a conexión no teléfono <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Ignorar esta mensaxe</translation>
+<translation id="7403642243184989645">Descargando recursos</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{A comprobación de seguranza executouse hai 1 hora}other{A comprobación de seguranza executouse hai {NUM_HOURS} horas}}</translation>
 <translation id="740624631517654988">Ventá emerxente bloqueada</translation>
 <translation id="7407430846095439694">Importar e vincular</translation>
@@ -4963,6 +4975,7 @@
 <translation id="7716781361494605745">URL de política de autoridade de certificación de Netscape</translation>
 <translation id="7717014941119698257">Descargando: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Buscar actualizacións</translation>
+<translation id="7719070594859855691">Permitir acceso á cámara</translation>
 <translation id="7719367874908701697">Zoom na páxina</translation>
 <translation id="7721179060400456005">Permite que as ventás ocupen varias pantallas</translation>
 <translation id="7722040605881499779">Espazo necesario para a actualización: <ph name="NECESSARY_SPACE" /></translation>
@@ -4977,7 +4990,6 @@
 <translation id="7744047395460924128">Ver o teu historial de impresión</translation>
 <translation id="7744192722284567281">O contrasinal viuse implicado nunha violación da seguranza dos datos</translation>
 <translation id="7750228210027921155">Pantalla superposta</translation>
-<translation id="7751229152614300329">A opción Navegación segura está actualizada e protéxete contra descargas e sitios daniños</translation>
 <translation id="7751260505918304024">Mostrar todo</translation>
 <translation id="7754704193130578113">Preguntar onde gardar cada ficheiro antes de descargalo</translation>
 <translation id="7755287808199759310">O teu pai ou nai non o pode desbloquear por ti</translation>
@@ -5065,6 +5077,7 @@
     <ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> O sistema reiniciarase durante o proceso.</translation>
 <translation id="7828731929332799387">Ao realizar esta acción, eliminaranse todas as cookies e os datos dos sitios de terceiros. Queres continuar?</translation>
 <translation id="7829298379596169484">Accedendo á entrada de audio</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> non puido comprobar os teus contrasinais. Verifica a conexión a Internet.</translation>
 <translation id="7829877209233347340">Pídelle a teu pai ou a túa nai que inicie sesión e che dea permiso para engadir unha conta de centro educativo</translation>
 <translation id="7830594666202422257">Conectar a Linux</translation>
 <translation id="7831491651892296503">Produciuse un erro ao configurar a rede</translation>
@@ -5286,6 +5299,7 @@
 <translation id="8107015733319732394">Estase instalando Google Play Store no dispositivo <ph name="DEVICE_TYPE" />. Esta operación pode tardar uns minutos.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Non hai ningunha cookie de terceiros}=1{Bloqueouse 1 cookie de terceiros}other{Bloqueáronse # cookies de terceiros}}</translation>
 <translation id="810875025413331850">Non se encontraron dispositivos cerca.</translation>
+<translation id="8114199541033039755">Vai ao inicio, volve atrás e cambia de aplicación usando os botóns no modo de tableta. Esta opción está dispoñible cando están activados os Clics automáticos ou ChromeVox.</translation>
 <translation id="8114875720387900039">Dividir horizontalmente</translation>
 <translation id="8116972784401310538">Xestor de &amp;marcadores</translation>
 <translation id="8117620576188476503">Xestiona as conexións, as actualizacións e a configuración coa bandexa de estado. Para acceder a ela a través do teclado, preme Alt + Maiús + S.</translation>
@@ -5405,6 +5419,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> desactivou o cursor do rato.</translation>
 <translation id="8264024885325823677">O teu administrador xestiona esta opción de configuración.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" activou a pantalla completa.</translation>
+<translation id="826511437356419340">Modo de vista xeral da ventá activado. Pasar dedo para navegar. Premer tabulador no teclado.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Trátase de información xeral acerca deste dispositivo e do seu uso, como o nivel de batería, a actividade da aplicación e do sistema, e os erros. Os datos utilizaranse coa finalidade de mellorar Android e algunha información adicional tamén axudará ás aplicacións de Google e aos socios, como os programadores de Android, a mellorar as súas aplicacións e os produtos.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />A desactivación desta función non afecta á capacidade deste dispositivo de enviar a información necesaria para os servizos esenciais, como a seguranza e as actualizacións do sistema.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />O propietario pode controlar esta función desde Configuración &gt; Configuración avanzada &gt; Enviar de forma automática datos de uso e diagnóstico a Google.<ph name="END_PARAGRAPH3" />
@@ -5513,6 +5528,7 @@
 <translation id="8426713856918551002">Activando</translation>
 <translation id="8427292751741042100">páxina inserida en calquera host</translation>
 <translation id="8428213095426709021">Configuración</translation>
+<translation id="8428271547607112339">Engadir conta escolar</translation>
 <translation id="8428628598981198790">Non se pode utilizar a túa chave de seguranza con este sitio</translation>
 <translation id="84297032718407999">Pecharase a túa sesión dentro de <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Mostrar toques</translation>
@@ -5576,6 +5592,7 @@
 <translation id="851263357009351303">Permitir sempre a <ph name="HOST" /> mostrar imaxes</translation>
 <translation id="8513108775083588393">Xirar automaticamente</translation>
 <translation id="8514746246728959655">Proba a utilizar unha chave de seguranza distinta</translation>
+<translation id="851960115758509829">As túas aplicacións, opcións de configuración e personalizacións sincronizaranse en todos os dispositivos Chrome OS nos que iniciases sesión coa túa Conta de Google.</translation>
 <translation id="8521475323816527629">Accede ás túas aplicacións máis rápido</translation>
 <translation id="8523493869875972733">Manter cambios</translation>
 <translation id="8523849605371521713">Engadida pola política</translation>
@@ -5857,11 +5874,13 @@
 <translation id="885701979325669005">Almacenamento</translation>
 <translation id="8859057652521303089">Selecciona o teu idioma:</translation>
 <translation id="8859174528519900719">Submarco: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Conta parental</translation>
 <translation id="8862003515646449717">Cambiar a un navegador rápido</translation>
 <translation id="8863753581171631212">Abrir ligazón na nova aplicación <ph name="APP" /></translation>
 <translation id="8864055848767439877">Compartindo <ph name="TAB_NAME" /> con <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> quitouse deste dispositivo</translation>
 <translation id="8867228703146808825">Copia os detalles da compilación no portapapeis</translation>
+<translation id="8868333925931032127">Iniciando modo de demostración</translation>
 <translation id="8868626022555786497">En uso</translation>
 <translation id="8870413625673593573">Pechados recentemente</translation>
 <translation id="8871551568777368300">Fixado polo administrador</translation>
@@ -5940,6 +5959,7 @@
 <translation id="8966870118594285808">Volve abrir unha pestana se a pechaches accidentalmente</translation>
 <translation id="8967866634928501045">Preme Alt+Maiús+A para mostrar o contido</translation>
 <translation id="8968766641738584599">Gardar tarxeta</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> non puido comprobar os teus contrasinais. Téntao de novo dentro de 24 horas ou <ph name="BEGIN_LINK" />comproba os contrasinais na túa Conta de Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Esc</translation>
 <translation id="8972513834460200407">Consulta ao administrador da rede para asegurarte de que o firewall non estea bloqueando as descargas dos servidores de Google.</translation>
 <translation id="8973557916016709913">Quitar o nivel de zoom</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index c3b9162..4d924d0 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -414,7 +414,6 @@
 <translation id="1566049601598938765">વેબસાઇટ</translation>
 <translation id="15662109988763471">પસંદ કરેલું પ્રિન્ટર ઉપલબ્ધ નથી અથવા યોગ્ય રીતે ઇન્સ્ટૉલ કરેલું નથી. તમારું પ્રિન્ટર ચેક કરો અથવા બીજું પ્રિન્ટર પસંદ કરી જુઓ.</translation>
 <translation id="1567387640189251553">તમે છેલ્લે પાસવર્ડ દાખલ કર્યો, ત્યાર પછી એક અલગ કીબોર્ડ કનેક્ટ કરવામાં આવ્યું છે. તે તમારા કીસ્ટ્રોકની ચોરી કરવાનો પ્રયાસ કરતું હોઈ શકે છે.</translation>
-<translation id="1567750922576943685">તમારી ઓળખની ચકાસણી કરવાથી તમારી વ્યક્તિગત માહિતીનું રક્ષણ કરવામાં સહાય મળી રહે છે</translation>
 <translation id="1567993339577891801">JavaScript કન્સોલ</translation>
 <translation id="1568323446248056064">ડિસ્પ્લે ડિવાઇસ સેટિંગ ખોલો</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (અતિથિ)</translation>
@@ -515,7 +514,6 @@
 <translation id="1697150536837697295">કળા</translation>
 <translation id="1697686431566694143">ફાઇલમાં ફેરફાર કરો</translation>
 <translation id="1698122934742150150">ફક્ત વર્તમાન છૂપું સત્ર</translation>
-<translation id="1698650002254827833">ઍપની સૂચિ લોડ કરી શકાતી નથી. કૃપા કરીને ફરી પ્રયાસ કરો.</translation>
 <translation id="1700079447639026019">કુકીનો ક્યારેય ઉપયોગ કરી શકતી નથી એવી સાઇટ</translation>
 <translation id="1701062906490865540">આ વ્યક્તિને દૂર કરો</translation>
 <translation id="1703331064825191675">તમારા પાસવર્ડ વિશે ક્યારેય ચિંતા કરશો નહીં</translation>
@@ -822,6 +820,7 @@
 <translation id="2119349053129246860"><ph name="APP" />માં ખોલો</translation>
 <translation id="2120297377148151361">પ્રવૃત્તિ અને ક્રિયાપ્રતિક્રિયાઓ</translation>
 <translation id="2120639962942052471"><ph name="PERMISSION" />ને બ્લૉક કરેલી છે</translation>
+<translation id="2121055421682309734">{COUNT,plural, =0{કુકી બ્લૉક કરેલી છે}=1{કુકી બ્લૉક કરેલી છે, જેમાં 1 અપવાદ છે}one{કુકી બ્લૉક કરેલી છે, જેમાં {COUNT} અપવાદ છે}other{કુકી બ્લૉક કરેલી છે, જેમાં {COUNT} અપવાદ છે}}</translation>
 <translation id="2121825465123208577">આકાર બદલો</translation>
 <translation id="2122305276694332719">છુપાવેલા નેટવર્ક સાથે ઑટોમૅટિક રીતે કનેક્ટ કરવાથી અન્ય લોકો તમારું ડિવાઇસ અને અન્ય નેટવર્ક સેટિંગ જોઈ શકે છે અને તે માટે સુઝાવ આપેલો નથી.</translation>
 <translation id="2123766928840368256">કોઈ અલગ ફાઇલ પસંદ કરો</translation>
@@ -1076,7 +1075,6 @@
 <translation id="2442916515643169563">ટેક્સ્ટ શૅડો</translation>
 <translation id="2445081178310039857">એક્સ્ટેંશન રૂટ ડિરેક્ટરી જરૂરી છે.</translation>
 <translation id="2445484935443597917">એક નવી પ્રોફાઇલ બનાવો</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" />ને તમારી ઓળખ ચકાસવી છે</translation>
 <translation id="2448312741937722512">પ્રકાર</translation>
 <translation id="2450223707519584812">તમે વપરાશકર્તાઓને ઉમેરવામાં સમર્થ થશો નહીં કારણ કે Google API કીઝ ખૂટે છે. વિગતો માટે <ph name="DETAILS_URL" /> જુઓ.</translation>
 <translation id="2450849356604136918">કોઈ દૃશ્ય નથી</translation>
@@ -1680,7 +1678,6 @@
 <translation id="3246107497225150582">{0,plural, =1{એક દિવસની અંદર ડિવાઇસ અપડેટ કરો}one{# દિવસની અંદર ડિવાઇસ અપડેટ કરો}other{# દિવસની અંદર ડિવાઇસ અપડેટ કરો}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - નેટવર્ક ભૂલ</translation>
 <translation id="3248902735035392926">સલામતી મહત્ત્વપૂર્ણ છે. થોડી ક્ષણ ફાળવીને <ph name="BEGIN_LINK" />હમણાં જ તમારા એક્સ્ટેંશન ચેક કરો<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;પ્રમાણપત્રનો ભાગ નથી&gt;</translation>
 <translation id="3253225298092156258">ઉપલબ્ધ નથી</translation>
 <translation id="3253448572569133955">અજાણ એકાઉન્ટ</translation>
@@ -2962,7 +2959,6 @@
 <translation id="4992473555164495036">તમારા વ્યવસ્થાપકે ઉપલબ્ધ ઇનપુટ પદ્ધતિઓને મર્યાદિત કરેલ છે.</translation>
 <translation id="4994474651455208930">પ્રોટોકૉલ્સ માટે ડિફૉલ્ટ હેન્ડલર્સ બનવા માટે સાઇટને પૂછવાની મંજૂરી આપો</translation>
 <translation id="4994754230098574403">સેટ કરી રહ્યા છીએ</translation>
-<translation id="4996978546172906250">આનાથી શેર કરો</translation>
 <translation id="4997086284911172121">કોઈ ઇન્ટરનેટ કનેક્શન નથી.</translation>
 <translation id="4997384734315285248">Plugin VMને અનઇન્સ્ટૉલ કરો</translation>
 <translation id="4998430619171209993">ચાલુ</translation>
@@ -3062,7 +3058,6 @@
 <translation id="5135085122826131075">તમે "ઓકે Google" બોલીને તમારા આસિસ્ટંટને ઍક્સેસ કરો.</translation>
 <translation id="5135533361271311778">બુકમાર્ક આઇટમ બનાવી શકાઈ નથી.</translation>
 <translation id="5137501176474113045">આ આઇટમ ડિલીટ કરો</translation>
-<translation id="5138982052046316113">Linux ડિસ્કનું કદ બદલો</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> શોધો</translation>
 <translation id="5139823398361067371">તમારી સિક્યુરિટી કી માટેનો પિન દાખલ કરો. જો તમને તમારો પિન યાદ ન હોય, તો તમારે સિક્યુરિટી કી રીસેટ કરવી પડશે.</translation>
 <translation id="5139955368427980650">&amp;ખોલો</translation>
@@ -3928,7 +3923,6 @@
 <translation id="6291953229176937411">ફાઇન્ડર માં &amp;બતાવો</translation>
 <translation id="6295158916970320988">બધી સાઇટ્સ</translation>
 <translation id="6295855836753816081">સાચવી રહ્યું છે...</translation>
-<translation id="629730747756840877">એકાઉન્ટ</translation>
 <translation id="6298962879096096191">Android ઍપ્લિકેશનોને ઇન્સ્ટૉલ કરવા માટે Google Play નો ઉપયોગ કરો</translation>
 <translation id="630065524203833229">&amp;બહાર નીકળો</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" />ને ઑટોમૅટિક રીતે ગોઠવી શકાતું નથી. કૃપા કરીને વિગતવાર પ્રિન્ટરની વિગતો જણાવો. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation>
@@ -4334,7 +4328,6 @@
 <translation id="6865598234501509159">પેજ <ph name="LANGUAGE" />માં નથી</translation>
 <translation id="6865708901122695652">WebRTC ઇવેન્ટ લૉગ (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">રંગ તાપમાન</translation>
-<translation id="6870888490422746447">આના પર શેર કરવા માટે એક ઍપ્લિકેશન પસંદ કરો:</translation>
 <translation id="6871644448911473373">OCSP પ્રતિસાદકર્તા: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">તમે દાખલ કરેલ પાસવર્ડ સર્વર દ્વારા નકારવામાં આવ્યો હતો.</translation>
 <translation id="6876155724392614295">બાઇક</translation>
@@ -4975,7 +4968,6 @@
 <translation id="7744047395460924128">તમારો પ્રિન્ટીંગનો ઇતિહાસ જુઓ</translation>
 <translation id="7744192722284567281">ડેટા ઉલ્લંઘનમાં મળ્યો</translation>
 <translation id="7750228210027921155">ચિત્રમાં ચિત્ર</translation>
-<translation id="7751229152614300329">Safe Browsing અપ ટૂ ડેટ છે અને હાનિકારક સાઇટ તથા ડાઉનલોડથી તમારું રક્ષણ કરે છે</translation>
 <translation id="7751260505918304024">બધું બતાવો</translation>
 <translation id="7754704193130578113">ડાઉનલોડ કરતાં પહેલાં પ્રત્યેક ફાઇલને ક્યાં સાચવવી છે તે જણાવો</translation>
 <translation id="7755287808199759310">તમારા માટે તમારા માતાપિતા તેને અનાવરોધિત કરી શકે છે</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index 08a9fa7..98b25996 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">उपलब्ध डिवाइस</translation>
 <translation id="1042174272890264476">आपके कंप्यूटर में पहले से ही <ph name="SHORT_PRODUCT_NAME" /> की RLZ लाइब्रेरी होती है. किसी खास प्रचार कैंपेन में इस्तेमाल हुई खोजों और <ph name="SHORT_PRODUCT_NAME" /> के इस्तेमाल को मापने के लिए, RLZ एक बिना-विशिष्ट, बिना निजी तौर वाला टैग तय करता है. कभी-कभी ये लेबल <ph name="PRODUCT_NAME" /> में 'Google सर्च' क्वेरी में दिखाई देते हैं.</translation>
 <translation id="1043818413152647937">क्या आप इन ऐप्लिकेशन से डेटा भी मिटाना चाहते हैं?</translation>
+<translation id="1045448422538531528">ग्रुप में जोड़ें</translation>
 <translation id="1046635659603195359">ऐसा लगता है कि आपने पहले ही किसी दूसरे डिवाइस पर अपनी Google Assistant की मदद से Voice Match सेट अप कर लिया है. इस डिवाइस पर आवाज़ का नमूना बनाने के लिए इन पुरानी रिकॉर्डिंग का इस्तेमाल किया जा सकता है. इसमें एक मिनट से भी कम समय लगेगा.</translation>
 <translation id="104710386808485638">क्या आप Linux को रीस्टार्ट करना चाहते हैं?</translation>
 <translation id="1047431265488717055">लिंक ले&amp;ख को कॉपी करें</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">कैमरा कभी भी ब्लॉक करने के लिए एक्सेस करें</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> आपकी Chrome सेटिंग को उनकी मूल डिफ़ॉल्ट स्थिति पर वापस लाना चाहता है. इससे आपका होम पेज, नया टैब पेज और सर्च इंजन रीसेट हो जाएंगे, आपके एक्सटेंशन बंद हो जाएंगे और सभी टैब अनपिन हो जाएंगे. इससे कुछ समय के लिए सेव किया गया डेटा और कैश मेमोरी का डेटा, जैसे कुकी, सामग्री और साइट डेटा भी हट जाएंगे.</translation>
+<translation id="1084096383128641877">इस पासवर्ड को हटाने से, आपका <ph name="DOMAIN" /> वाला खाता नहीं मिटेगा. दूसरों से सुरक्षित रखने के लिए, अपना पासवर्ड बदलें या अपना <ph name="DOMAIN_LINK" /> वाला खाता मिटाएं.</translation>
 <translation id="1084824384139382525">लिंक के प&amp;ते की प्रतिलिपि बनाएं</translation>
 <translation id="1085697365578766383">वर्चुअल मशीन शुरू करने में गड़बड़ी हुई. कृपया फिर से कोशिश करें.</translation>
 <translation id="1090126737595388931">कोई पृष्ठभूमि ऐप्स  चालू नहीं है</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">कल सुरक्षा जांच हुई थी</translation>
 <translation id="1260451001046713751"><ph name="HOST" /> से हमेशा पॉप-अप और रीडायरेक्ट की अनुमति दें</translation>
 <translation id="126156426083987769">डेमो मोड डिवाइस के लाइसेंस में कोई परेशानी हुई.</translation>
+<translation id="1263490604593716556"><ph name="FIRST_PARENT_EMAIL" /> और <ph name="SECOND_PARENT_EMAIL" /> खाता प्रबंधित करते हैं. इस डिवाइस के मुख्य खाते से साइन आउट करने के लिए, अपनी स्क्रीन पर दिख रहे समय पर क्लिक करें. दिखने वाले मेन्यू में, "साइन आउट करें" पर क्लिक करें.</translation>
 <translation id="126710816202626562">अनुवाद की भाषा:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">रोकें</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">वेबसाइट</translation>
 <translation id="15662109988763471">चुना गया प्रिंटर उपलब्ध नहीं है या ठीक से इंस्टॉल नहीं किया गया है. अपना प्रिंटर जाँचें या कोई दूसरा प्रिंटर चुनकर देखें.</translation>
 <translation id="1567387640189251553">आपके पिछली बार डाले गए पासवर्ड के बाद से एक अलग कीबोर्ड कनेक्ट किया गया है. यह आपके कीस्ट्रोक चुराने की कोशिश कर सकता है.</translation>
-<translation id="1567750922576943685">अपनी पहचान की पुष्टि करने से आपको अपनी निजी जानकारी सुरक्षित रखने में मदद मिलती है</translation>
 <translation id="1567993339577891801">JavaScript पैनल</translation>
 <translation id="1568323446248056064">डिसप्ले डिवाइस सेटिंग खोलें</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (मेहमान)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">कला</translation>
 <translation id="1697686431566694143">फ़ाइल में बदलाव करें</translation>
 <translation id="1698122934742150150">केवल वर्तमान गुप्त सत्र</translation>
-<translation id="1698650002254827833">ऐप्लिकेशन की सूची लोड नहीं हो सकी. कृपया फिर से कोशिश करें.</translation>
 <translation id="1700079447639026019">वे साइटें जो कभी कुकी का इस्तेमाल नहीं कर सकतीं</translation>
 <translation id="1701062906490865540">इस व्यक्ति को निकालें</translation>
 <translation id="1703331064825191675">अपने पासवर्ड की फ़िक्र छोड़ दें</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">जारी रखें</translation>
 <translation id="2173302385160625112">अपना इंटरनेट कनेक्शन जाँचें</translation>
 <translation id="2173801458090845390">इस डिवाइस में मांग आईडी जोड़ें</translation>
+<translation id="2174948148799307353"><ph name="PARENT_EMAIL" /> खाता प्रबंधित करते हैं. इस डिवाइस के मुख्य खाते से साइन आउट करने के लिए, अपनी स्क्रीन पर दिख रहे समय पर क्लिक करें. दिखने वाले मेन्यू में, "साइन आउट करें" पर क्लिक करें.</translation>
 <translation id="2175607476662778685">त्वरित लॉन्च बार</translation>
 <translation id="217576141146192373">प्रिंटर जोड़ा नहीं जा सका. अपने प्रिंटर के कॉन्फ़िगरेशन की जांच करें और फिर से कोशिश करें.</translation>
 <translation id="2177950615300672361">गुप्त टैब: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">टेक्स्ट शैडो</translation>
 <translation id="2445081178310039857">एक्‍सटेंशन मूल निर्देशिका आवश्यक है.</translation>
 <translation id="2445484935443597917">नई प्रोफ़ाइल बनाएं</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> आपकी पहचान की पुष्टि करना चाहता है</translation>
 <translation id="2448312741937722512">प्रकार</translation>
 <translation id="2450223707519584812">आप उपयोगकर्ताओं को नहीं जोड़ सकेंगे क्योंकि Google API (एपीआई) कुंजियां मौजूद नहीं हैं. जानकारी के लिए <ph name="DETAILS_URL" /> देखें.</translation>
 <translation id="2450849356604136918">कोई सक्रिय दृश्य नहीं</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" /> पर जाएं</translation>
 <translation id="29488703364906173">Chrome, आधुनिक वेब के लिए बनाया गया एक तेज़, आसान, और सुरक्षि‍त वेब ब्राउज़र है.</translation>
 <translation id="2949289451367477459">जगह की जानकारी का इस्तेमाल करें. जगह की जानकारी देखने की मंज़ूरी वाले ऐप्लिकेशन और सेवाओं को इस डिवाइस की जगह की जानकारी का इस्तेमाल करने दें. Google, जगह की जानकारी को ज़्यादा बेहतर बनाने और उससे जुड़ी सेवाओं में सुधार करने के लिए समय-समय पर जगह की जानकारी का डेटा इकट्ठा कर सकता है. साथ ही, वह आपकी पहचान ज़ाहिर किए बिना इस डेटा का इस्तेमाल भी कर सकता है. <ph name="BEGIN_LINK1" />ज़्यादा जानें<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">मुझे सदस्यता दें</translation>
 <translation id="2956070239128776395">सेक्शन समूह के अंदर मौजूद है: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">किसी भी वेबसाइट को अपने डिवाइस की फ़ाइल या फ़ोल्डर में बदलाव न करने दें</translation>
 <translation id="2958721676848865875">पैक एक्‍सटेंशन चेतावनी</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">डिफ़ॉल्ट पीला अवतार</translation>
 <translation id="3141318088920353606">सुन रही है...</translation>
 <translation id="3141917231319778873">दिया गया अनुरोध इसका समर्थन नहीं करता है: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">नया ग्रुप</translation>
 <translation id="3143515551205905069">लिंक करना रोक दें</translation>
 <translation id="3143754809889689516">शुरू से चलाएं</translation>
 <translation id="3144647712221361880">लिंक को इस रूप में खोलें</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">मटमैला</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (हार्डवेयर समर्थित)</translation>
 <translation id="3161522574479303604">सभी भाषाएं</translation>
+<translation id="3162853326462195145">स्कूल वाला खाता</translation>
 <translation id="3162899666601560689">साइटें आपके ब्राउज़ करने के अनुभव को बेहतर बनाने के लिए कुकी का इस्तेमाल कर सकती हैं. जैसे, आपको साइन इन बनाए रखने के लिए या आपने शॉपिंग कार्ट में जो आइटम सेव किए हैं उन्हें याद रखने के लिए</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> की ओर से अज्ञात <ph name="PRODUCT_ID" /> उत्पाद</translation>
 <translation id="3164329792803560526">इस टैब को <ph name="APP_NAME" /> के साथ शेयर किया जा रहा है</translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{1 दिन के अंदर डिवाइस अपडेट करें}one{# दिन के अंदर डिवाइस अपडेट करें}other{# दिनों के अंदर डिवाइस अपडेट करें}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - नेटवर्क गड़बड़ी</translation>
 <translation id="3248902735035392926">सुरक्षा ज़रूरी है. थोड़ा समय निकालकर, <ph name="BEGIN_LINK" />अभी अपने एक्सटेंशन की जांच करें.<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;प्रमाणपत्र का भाग नहीं है&gt;</translation>
 <translation id="3253225298092156258">उपलब्ध नहीं है</translation>
 <translation id="3253448572569133955">अनजान खाता</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">"स्वीकार करें और जारी रखें" बटन पर क्लिक करके, आप पुष्टि करते हैं कि इन Google सेवाओं के लिए ऊपर बताई गई प्रोसेसिंग से आप सहमत हैं.</translation>
 <translation id="3399432415385675819">नोटिफ़िकेशन अक्षम हो जाएंगे</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> गुणा <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> हर्ट्ज़) - जाली की तरह</translation>
+<translation id="3402585168444815892">डेमाे माेड में नाम दर्ज किया जा रहा है</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">इस साइट के लिए कोई पासवर्ड सेव नहीं किया गया है</translation>
 <translation id="3405664148539009465">फ़ॉन्‍ट को पसंद के मुताबिक बनाएं</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android फ़ोन</translation>
 <translation id="3470442499439619530">इस उपयोगकर्ता को हटाएं</translation>
 <translation id="3471876058939596279">वीडियो के लिए एचडीएमआई पोर्ट और यूएसबी टाइप-सी पोर्ट को एक ही समय में इस्तेमाल नहीं किया जा सकता. कोई अलग पोर्ट इस्तेमाल करें.</translation>
+<translation id="3473241910002674503">टैबलेट मोड में बटन की मदद से, होम पेज पर जाएं, वापस जाएं, और एक ऐप्लिकेशन से दूसरे पर जाएं.</translation>
 <translation id="3473479545200714844">स्क्रीन आवर्द्धक</translation>
 <translation id="3475843873335999118">माफ़ कीजिए, आपके फ़िंगरप्रिंट की अब भी पहचान नहीं हुई हैैै. कृपया अपना पासवर्ड डालें.</translation>
 <translation id="3476303763173086583">इस्तेमाल और निदान से जुड़ा डेटा भेजें. Google को निदान, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने आप भेजकर, अपने बच्चे के Android अनुभव को बेहतर बनाने में मदद करें. इसका इस्तेमाल आपके बच्चे की पहचान करने के लिए नहीं किया जाएगा. यह सिस्टम और ऐप्लिकेशन की स्थिरता और दूसरे सुधारों में मदद करेगा. कुछ एग्रीगेट डेटा Google ऐप्लिकेशन और पार्टनर, जैसे कि Android डेवलपरों की भी मदद करेगा. यह <ph name="BEGIN_LINK1" />सेटिंग<ph name="END_LINK1" /> डिवाइस के मालिक ने लागू की है. डिवाइस का मालिक यह चुन सकता है कि निदान और इस डिवाइस के इस्तेमाल से जुड़ा डेटा Google को भेजना है. अगर आपके बच्चे के लिए दूसरी 'वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा उसके Google खाते में सेव किया जा सकता है. <ph name="BEGIN_LINK2" />ज़्यादा जानें<ph name="END_LINK2" /></translation>
@@ -2274,6 +2279,7 @@
 <translation id="3971764089670057203">इस सुरक्षा कुंजी के लिए दर्ज किए गए फ़िंगरप्रिंट</translation>
 <translation id="3973660817924297510">पासवर्ड की जांच की जा रही है (<ph name="TOTAL_PASSWORDS" /> में से <ph name="CHECKED_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">दिए गए क्षेत्र के लिए सर्वर से संपर्क नहीं हो पाया</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> आपके पासवर्ड की जांच नहीं कर सकता. कुछ देर बाद कोशिश करें.</translation>
 <translation id="3976108569178263973">कोई भी प्रिंटर उपलब्ध नहीं है</translation>
 <translation id="397703832102027365">अंतिम रूप दिया जा रहा है...</translation>
 <translation id="3977886311744775419">इस नेटवर्क प्रकार पर अपडेट अपने आप डाउनलोड नहीं होते, लेकिन आप मैन्युअल रूप से अपडेट के लिए देख सकते हैं.</translation>
@@ -2337,6 +2343,7 @@
 <translation id="4068506536726151626">इस पेज पर आपके स्थान की जानकारी रखने वाली निम्न साइटों की कुछ चीजें मौजूद हैं:</translation>
 <translation id="4068776064906523561">सहेजे गए फ़िंगरप्रिंट</translation>
 <translation id="407173827865827707">क्लिक करने पर</translation>
+<translation id="4073520450811433493">सेटिंग सिंक करें</translation>
 <translation id="4074900173531346617">ईमेल हस्ताक्षरकर्ता प्रमाणपत्र</translation>
 <translation id="407520071244661467">स्केल</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> कास्ट नहीं हो पा रहा है.</translation>
@@ -2573,6 +2580,7 @@
 <translation id="4421932782753506458">फ्लफ़ी</translation>
 <translation id="4423376891418188461">सेटिंग फिर से स्थापित करें</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, आपके व्यवस्थापक के लिए ज़रूरी है कि आप अपना पासवर्ड बदलें.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> आपके पासवर्ड की जांच नहीं कर सकता. 24 घंटे बाद कोशिश करें.</translation>
 <translation id="4429030830601238961">यह डेटा आपके संगठन की सुरक्षा नीतियों का उल्लंघन करता है. इसलिए, इसे चिपकाया नहीं जा सकता.</translation>
 <translation id="4430019312045809116">मात्रा</translation>
 <translation id="4430369329743628066">बुकमार्क जोड़ा गया</translation>
@@ -2585,6 +2593,7 @@
 <translation id="4441124369922430666">क्या आप चाहते हैं कि मशीन चालू होने पर यह ऐप्लिकेशन अपने आप शुरू हो जाए?</translation>
 <translation id="4441147046941420429">जारी रखने के लिए, अपनी सुरक्षा कुंजी को अपने डिवाइस से हटाएं. इसके बाद, उसे दाेबारा डालें और छुएं.</translation>
 <translation id="444134486829715816">पूरा खोलें...</translation>
+<translation id="4442329324652245220">आप जब अपने Google खाते से साइन इन करते हैं, तब <ph name="IDS_SHORT_PRODUCT_NAME" /> आपके पासवर्ड की जांच कर सकता है</translation>
 <translation id="4442424173763614572">DNS लुकअप विफल</translation>
 <translation id="4443536555189480885">&amp;मदद</translation>
 <translation id="4444304522807523469">यूएसबी के ज़रिए अटैच किए गए या स्‍थानीय नेटवर्क पर मौजूद दस्‍तावेज़ स्‍कैनर को ऐक्‍सेस करें</translation>
@@ -2611,11 +2620,13 @@
 <translation id="4476659815936224889">इस कोड को स्कैन करने के लिए, आप अपने फ़ोन पर क्यूआर स्कैनर या कुछ कैमरा ऐप्लिकेशन का इस्तेमाल कर सकते हैं.</translation>
 <translation id="4477015793815781985">Ctrl, Alt या ⌘ को शामिल करें</translation>
 <translation id="4478664379124702289">लिंक को इस रूप में सेव करें...</translation>
+<translation id="4478777936860197922">सेव किया हुआ कोई भी पासवर्ड नहीं है. <ph name="IDS_SHORT_PRODUCT_NAME" /> आपके पासवर्ड की जांच तब ही कर सकता है, जब वे पहले से सेव हाेते हैं.</translation>
 <translation id="4479424953165245642">कियोस्क ऐप्स  प्रबंधित करें</translation>
 <translation id="4479639480957787382">इथरनेट</translation>
 <translation id="4479877282574735775">वर्चुअल मशीन कॉन्फ़िगर हो रही है. इसमें कुछ मिनट लग सकते हैं.</translation>
 <translation id="4480590691557335796">Chrome आपके कंप्यूटर पर नुकसान पहुंचाने वाला सॉफ़्टवेयर ढूंढ सकता है और उसे हटा सकता है</translation>
 <translation id="4481530544597605423">अयुग्मित किए गए डिवाइस</translation>
+<translation id="4488107067273194838">सेट अप के बाद, ब्राउज़र को सिंक करने के विकल्पों को देखें</translation>
 <translation id="4488502501195719518">क्या आप सारा डेटा मिटाना चाहते हैं?</translation>
 <translation id="4495419450179050807">इस पेज पर न दिखाएं</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> को अपने-आप ब्लॉक किया गया है</translation>
@@ -2857,6 +2868,7 @@
 <translation id="4849517651082200438">इंस्‍टॉल न करें</translation>
 <translation id="4850669014075537160">स्क्रॉल करना</translation>
 <translation id="4850886885716139402">देखें</translation>
+<translation id="485197095346966382">जब आप किसी हैक या चोरी हो चुके पासवर्ड से साइन इन करेंगे, तो <ph name="IDS_SHORT_PRODUCT_NAME" /> आपको इसकी सूचना देगा</translation>
 <translation id="4853020600495124913">&amp;नई विंडो में खोलें</translation>
 <translation id="4854317507773910281">मंज़ूरी के लिए माता-पिता का खाता चुनें</translation>
 <translation id="485480310608090163">ज़्यादा सेटिंग और अनुमतियां</translation>
@@ -2875,6 +2887,7 @@
 <translation id="4871322859485617074">पिन में गलत वर्ण शामिल हैं</translation>
 <translation id="4871370605780490696">बुकमार्क जोड़ें</translation>
 <translation id="4871719318659334896">ग्रुप बंद करें</translation>
+<translation id="4871852311166078968">ग्रुप में जोड़ें</translation>
 <translation id="4873312501243535625">मीडिया फ़ाइल चेकर</translation>
 <translation id="4876273079589074638">इस क्रैश की जाँच-पड़ताल करने और इसे ठीक करने में हमारे इंजीनियरों की सहायता करें. अगर हो सके तो सटीक चरणों की सूची बनाएं. कोई भी विवरण छोटा नहीं है!</translation>
 <translation id="4876895919560854374">स्क्रीन लॉक करना और अनलॉक करना</translation>
@@ -2966,7 +2979,6 @@
 <translation id="4992473555164495036">आपके एडमिन ने इनपुट के उपलब्ध तरीके सीमित किए हुए हैं.</translation>
 <translation id="4994474651455208930">साइटों को प्रोटोकॉल के लिए सामान्य हैंडलर बनने के लिए पूछने की अनुमति दें</translation>
 <translation id="4994754230098574403">सेट अप किया जा रहा है</translation>
-<translation id="4996978546172906250">इससे शेयर करें</translation>
 <translation id="4997086284911172121">कोई इंटरनेट कनेक्शन नहीं.</translation>
 <translation id="4997384734315285248">Plugin VM अनइंस्टॉल करें</translation>
 <translation id="4998430619171209993">चालू है</translation>
@@ -3066,7 +3078,6 @@
 <translation id="5135085122826131075">"Ok Google" बोलकर अपनी Assistant की सेवा ऐक्सेस करें.</translation>
 <translation id="5135533361271311778">बुकमार्क आइटम नहीं बना सका.</translation>
 <translation id="5137501176474113045">यह आइटम मिटाएं</translation>
-<translation id="5138982052046316113">Linux डिस्क का साइज़ बदलें</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> खोजें</translation>
 <translation id="5139823398361067371">अपनी सुरक्षा कुंजी का पिन डालें. अगर आपको पिन नहीं पता है, तो सुरक्षा कुंजी रीसेट करनी होगी.</translation>
 <translation id="5139955368427980650">&amp;खोलें</translation>
@@ -3518,6 +3529,7 @@
 <translation id="5739235828260127894">पुष्टि होने का इंतज़ार किया जा रहा है. <ph name="LINK_BEGIN" />ज़्यादा जानें<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">बहुत बड़ा</translation>
 <translation id="574209121243317957">पिच</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" /> के इस्तेमाल से जुड़ी सलाह, ऑफ़र, और अपडेट पाएं. साथ ही, सुझाव/शिकायत/राय शेयर करें</translation>
 <translation id="5746169159649715125">PDF के रूप में सेव करें</translation>
 <translation id="5747552184818312860">समय सीमा समाप्ति तारीख</translation>
 <translation id="5747785204778348146">डेवलपर - अस्थिर</translation>
@@ -3930,7 +3942,6 @@
 <translation id="6291953229176937411">खोजकर्ता में &amp;दिखाएं</translation>
 <translation id="6295158916970320988">सभी साइटें</translation>
 <translation id="6295855836753816081">सहेज रहा है...</translation>
-<translation id="629730747756840877">खाता</translation>
 <translation id="6298962879096096191">Android ऐप्लिकेशन इंस्टॉल करने के लिए Google Play का उपयोग करें</translation>
 <translation id="630065524203833229">&amp;बाहर निकलें</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> को अपने-आप कॉन्फ़िगर नहीं किया जा सका. कृपया प्रिंटर की बेहतर जानकारी के बारे में बताएं. <ph name="LINK_BEGIN" />ज़्यादा जानें<ph name="LINK_END" /></translation>
@@ -4336,7 +4347,6 @@
 <translation id="6865598234501509159">पेज <ph name="LANGUAGE" /> भाषा में नहीं है</translation>
 <translation id="6865708901122695652">WebRTC इवेंट लॉग (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">कलर टेंपरेचर</translation>
-<translation id="6870888490422746447">शेयर करने के लिए कोई ऐप्लिकेशन चुनें:</translation>
 <translation id="6871644448911473373">OCSP प्रतिसादी: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">आपने जो पासवर्ड डाला है उसे सर्वर ने अस्‍वीकार कर दिया है.</translation>
 <translation id="6876155724392614295">बाइक</translation>
@@ -4429,6 +4439,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - गतिविधि लॉग</translation>
 <translation id="6997707937646349884">आपके इन डिवाइस पर:</translation>
 <translation id="6998793565256476099">डिवाइस को वीडियो कॉन्फ़्रेंसिंग के लिए नामांकित करें</translation>
+<translation id="6999956497249459195">नया ग्रुप</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> कनेक्ट है पर उसे कॉन्फ़िगर करने की ज़रूरत है</translation>
 <translation id="7000347579424117903">Ctrl, Alt या Search को शामिल करें</translation>
 <translation id="7001036685275644873">Linux ऐप्लिकेशन और फ़ाइलों का बैकअप लिया जा रहा है</translation>
@@ -4727,6 +4738,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">अपने <ph name="PHONE_NAME" /> पर कनेक्शन सेट अप करें</translation>
 <translation id="7401778920660465883">यह मैसेज खारिज करें</translation>
+<translation id="7403642243184989645">संसाधन डाउनलोड हाे रहे हैं</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{सुरक्षा जांच 1 घंटे पहले हुई है}one{सुरक्षा जांच {NUM_HOURS} घंटे पहले हुई है}other{सुरक्षा जांच {NUM_HOURS} घंटे पहले हुई है}}</translation>
 <translation id="740624631517654988">पॉप-अप अवरोधित</translation>
 <translation id="7407430846095439694">आयात करें और आबद्ध करें</translation>
@@ -4963,6 +4975,7 @@
 <translation id="7716781361494605745">Netscape प्रमाणन प्राधिकरण नीति यूआरएल</translation>
 <translation id="7717014941119698257">डाउनलोड हो रहा है: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">देखें कि अपडेट उपलब्ध हैं या नहीं</translation>
+<translation id="7719070594859855691">कैमरे काे ऐक्सेस दें</translation>
 <translation id="7719367874908701697">पेज ज़ूम</translation>
 <translation id="7721179060400456005">विंडो को प्रदर्शन फैलाने दें</translation>
 <translation id="7722040605881499779">अपडेट करना ज़रूरी है: <ph name="NECESSARY_SPACE" /></translation>
@@ -4977,7 +4990,6 @@
 <translation id="7744047395460924128">अपना प्रिंटिंग इतिहास देखें</translation>
 <translation id="7744192722284567281">यह पासवर्ड आपके हैक हो चुके डेटा में शामिल है</translation>
 <translation id="7750228210027921155">पिक्चर में पिक्चर</translation>
-<translation id="7751229152614300329">सुरक्षित ब्राउज़िंग अप-टू-डेट है. यह आपको नुकसान पहुंचाने वाली साइटों और डाउनलोड से बचाती है</translation>
 <translation id="7751260505918304024">सभी दिखाएं</translation>
 <translation id="7754704193130578113">डाउनलोड करने से पहले, हर फ़ाइल को सेव करने की जगह के बारें में पूछें</translation>
 <translation id="7755287808199759310">आपका अभिभावक इसे आपके लिए अनवरोधित कर सकता है</translation>
@@ -5064,6 +5076,7 @@
     <ph name="BEGIN_BOLD" />नोट:<ph name="END_BOLD" />  इस प्रक्रिया के दौरान सिस्टम फिर चालू होगा.</translation>
 <translation id="7828731929332799387">इससे तीसरे पक्ष से जुड़ी सभी उपलब्ध कुकी और साइट डेटा मिट जाएंगे. क्या आप जारी रखना चाहते हैं?</translation>
 <translation id="7829298379596169484">ऑडियो इनपुट ऐक्सेस हो रहा है</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> आपके पासवर्ड की जांच नहीं कर सकता. अपने इंटरनेट कनेक्शन की जांच करें.</translation>
 <translation id="7829877209233347340">स्कूल वाला खाता जोड़ने की अनुमति देने के लिए, अपने माता-पिता से साइन इन करने को कहें</translation>
 <translation id="7830594666202422257">Linux से कनेक्ट करें</translation>
 <translation id="7831491651892296503">नेटवर्क कॉन्फ़िगर करने में गड़बड़ी</translation>
@@ -5286,6 +5299,7 @@
 <translation id="8107015733319732394">आपके <ph name="DEVICE_TYPE" /> पर Google Play स्टोर इंस्टॉल हो रहा है. इसमें कुछ मिनट लग सकते हैं.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{तीसरे पक्ष की कोई कुकी नहीं है}=1{तीसरे पक्ष की 1 कुकी ब्लॉक की गई है}one{तीसरे पक्ष की # कुकी ब्लॉक की गई हैं}other{तीसरे पक्ष की # कुकी ब्लॉक की गई हैं}}</translation>
 <translation id="810875025413331850">आस-पास का कोई ब्लूटूथ डिवाइस नहीं मिला.</translation>
+<translation id="8114199541033039755">टैबलेट मोड में बटन की मदद से, होम पेज पर जाएं, वापस जाएं, और एक ऐप्लिकेशन से दूसरे पर जाएं. ये बटन, ChromeVox या अपने-आप क्लिक होने की सुविधा हाेने पर ही चालू हाेते हैं.</translation>
 <translation id="8114875720387900039">हाॅरिज़ॉन्टल (बाईं से दाईं ओर) रूप से छोटे-छोटे हिस्सों में बांटें यानी स्प्लिट करें</translation>
 <translation id="8116972784401310538">&amp;बुकमार्क प्रबंधक</translation>
 <translation id="8117620576188476503">स्टेटस ट्रे के ज़रिए कनेक्शन, अपडेट और सेटिंग प्रबंधित करें. कीबोर्ड से यहां पहुंचने के लिए, Alt + Shift + S दबाएं.</translation>
@@ -5405,6 +5419,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ने आपका माउस कर्सर अक्षम कर दिया है.</translation>
 <translation id="8264024885325823677">इस सेटिंग को आपका एडमिन प्रबंधित करता है.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ने पूरी स्क्रीन ट्रिगर की है.</translation>
+<translation id="826511437356419340">विंडो की खास जानकारी वाले मोड पर पहुंच गए. एक जगह से दूसरी जगह जाने के लिए स्वाइप करें या tab बटन दबाएं (अगर कीबाेर्ड का इस्तेमाल कर रहे हैं).</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />यह इस डिवाइस और इसके इस्तेमाल के तरीके के बारे में सामान्य जानकारी है (जैसे कि बैटरी लेवल, सिस्टम और ऐप्लिकेशन गतिविधि और गड़बड़ियां). इस डेटा का इस्तेमाल Android को बेहतर बनाने के लिए किया जाएगा. इकट्ठी की गई कुछ जानकारी से Google ऐप्लिकेशन और 'Android डेवलपर' जैसे पार्टनर को भी मदद मिलेगी और वे अपने ऐप्लिकेशन और उत्पादों को बेहतर बना सकेंगे.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />इस सुविधा को बंद करने के बाद भी यह डिवाइस, सिस्टम अपडेट और सुरक्षा जैसी ज़रूरी सेवाएं पाने के लिए जानकारी भेज सकेगा.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />सेटिंग &gt; बेहतर &gt; Google को निदान और इस्तेमाल का डेटा अपने आप भेजें पर जाकर मालिक इस सुविधा को नियंत्रित कर सकता है.<ph name="END_PARAGRAPH3" />
@@ -5513,6 +5528,7 @@
 <translation id="8426713856918551002">सक्षम किया जा रहा है</translation>
 <translation id="8427292751741042100">किसी भी होस्ट पर एम्बेड किया गया</translation>
 <translation id="8428213095426709021">सेटिंग</translation>
+<translation id="8428271547607112339">स्कूल वाला खाता जोड़ें</translation>
 <translation id="8428628598981198790">इस साइट में आपकी सुरक्षा कुंजी का इस्तेमाल नहीं किया जा सकता</translation>
 <translation id="84297032718407999">आपको <ph name="LOGOUT_TIME_LEFT" /> में साइन आउट कर दिया जाएगा</translation>
 <translation id="8431190899827883166">टैप दिखाएं</translation>
@@ -5576,6 +5592,7 @@
 <translation id="851263357009351303"><ph name="HOST" /> को हमेशा चित्र दिखाने की अनुमति दें</translation>
 <translation id="8513108775083588393">स्क्रीन का अपने आप दिशा बदलना (ऑटो-रोटेट)</translation>
 <translation id="8514746246728959655">कोई दूसरी सुरक्षा कुंजी आज़माकर देखें</translation>
+<translation id="851960115758509829">आपके ऐप्लिकेशन, सेटिंग, और दूसरे कस्टमाइज़ेशन (पसंद के मुताबिक बनाई गई चीज़ें) उन सभी Chrome OS डिवाइस में सिंक हो जाएंगे जिनमें आपने अपने Google खाते से साइन किया है.</translation>
 <translation id="8521475323816527629">अपने ऐप्लिकेशन तक तेज़ी से पहुंचें</translation>
 <translation id="8523493869875972733">बदलावों को बनाए रखें</translation>
 <translation id="8523849605371521713">पॉलिसी द्वारा जोड़ा गया</translation>
@@ -5857,11 +5874,13 @@
 <translation id="885701979325669005">मेमोरी</translation>
 <translation id="8859057652521303089">अपनी भाषा चुनें:</translation>
 <translation id="8859174528519900719">सबफ़्रेम: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">अभिभावक का खाता</translation>
 <translation id="8862003515646449717">किसी तेज़ ब्राउज़र पर जाएं</translation>
 <translation id="8863753581171631212">नए <ph name="APP" /> में लिंक खोलें</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> को <ph name="APP_NAME" /> के साथ शेयर किया जा रहा है</translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> को इस डिवाइस से हटा दिया गया</translation>
 <translation id="8867228703146808825">बिल्ड की जानकारी को क्लिपबोर्ड पर कॉपी करें</translation>
+<translation id="8868333925931032127">डेमो मोड चालू किया जा रहा है</translation>
 <translation id="8868626022555786497">उपयोग में है</translation>
 <translation id="8870413625673593573">हाल ही में बंद किए गए</translation>
 <translation id="8871551568777368300">व्यवस्थापक द्वारा पिन किया गया</translation>
@@ -5940,6 +5959,7 @@
 <translation id="8966870118594285808">अगर आपने गलती से किसी टैब को बंद कर दिया था तो उसे फिर से खोलें</translation>
 <translation id="8967866634928501045">दिखाने के लिए Alt Shift A दबाएं</translation>
 <translation id="8968766641738584599">कार्ड सेव करें</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> आपके पासवर्ड की जांच नहीं कर सकता. 24 घंटे बाद कोशिश करें या <ph name="BEGIN_LINK" />अपने Google खाते के पासवर्ड की जांच करें<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">यह पक्का करने के लिए कृपया अपने नेटवर्क एडमिन से बात करें कि फ़ायरवॉल Google के सर्वर से होने वाले डाउनलोड को ब्लॉक नहीं कर रहा है.</translation>
 <translation id="8973557916016709913">ज़ूम लेवल निकालें</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 2077a4ae..2b3036c 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dostupni uređaji</translation>
 <translation id="1042174272890264476">Vaše računalo ima ugrađenu RLZ biblioteku preglednika <ph name="SHORT_PRODUCT_NAME" />. RLZ dodjeljuje nejedinstvenu oznaku koja ne može poslužiti za osobnu identifikaciju za mjerenje pretraživanja i upotrebu proizvoda <ph name="SHORT_PRODUCT_NAME" /> potaknutu određenom promotivnom kampanjom. Te se oznake ponekad prikazuju u upitima Google pretraživanja u pregledniku <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Želite li izbrisati podatke i iz ovih aplikacija?</translation>
+<translation id="1045448422538531528">Dodaj u grupu</translation>
 <translation id="1046635659603195359">Izgleda da ste već postavili Voice Match za Google asistent na nekom drugom uređaju. Prethodne se snimke mogu upotrijebiti za izradu glasovnog modela na ovom uređaju. To bi trebalo trajati manje od minute.</translation>
 <translation id="104710386808485638">Ponovno pokrenuti Linux?</translation>
 <translation id="1047431265488717055">Kopiraj te&amp;kst veze</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Uvijek blokiraj pristup kameri</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> želi vratiti vaše postavke Chromea na izvorne zadane vrijednosti. Time će se vaša početna stranica, stranica nove kartice i tražilica vratiti na zadano, proširenja će se onemogućiti, a sve kartice otkvačiti. Izbrisat će se i ostali privremeni podaci i podaci u predmemoriji, na primjer, kolačići te podaci o sadržaju i web-lokacijama.</translation>
+<translation id="1084096383128641877">Uklanjanjem zaporke neće se izbrisati vaš račun na <ph name="DOMAIN" />. Izmijenite zaporku ili izbrišite račun na <ph name="DOMAIN_LINK" /> da biste ga zaštitili od drugih.</translation>
 <translation id="1084824384139382525">Kopiraj adresu &amp;veze</translation>
 <translation id="1085697365578766383">Došlo je do pogreške prilikom pokretanja virtualnog računala. Pokušajte ponovo.</translation>
 <translation id="1090126737595388931">Nema pokrenutih pozadinskih aplikacija</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Sigurnosna provjera izvršena je jučer</translation>
 <translation id="1260451001046713751">Uvijek dopusti skočne prozore i preusmjeravanja s web-lokacije <ph name="HOST" /></translation>
 <translation id="126156426083987769">Pojavio se problem s licencama uređaja za demo način.</translation>
+<translation id="1263490604593716556">Računom upravljaju <ph name="FIRST_PARENT_EMAIL" /> i <ph name="SECOND_PARENT_EMAIL" />. Da biste se odjavili s primarnog računa na ovom uređaju, kliknite vrijeme na zaslonu. Na izborniku koji će se prikazati kliknite "Odjava".</translation>
 <translation id="126710816202626562">Jezik prijevoda:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Zaustavi</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Web-lokacija</translation>
 <translation id="15662109988763471">Odabrani pisač nije dostupan ili nije ispravno postavljen. Provjerite svoj pisač ili pokušajte odabrati drugi pisač.</translation>
 <translation id="1567387640189251553">Nakon vašeg posljednjeg unosa zaporke povezana je neka druga tipkovnica. Možda pokušava ukrasti podatke o pritisnutim tipkama.</translation>
-<translation id="1567750922576943685">Potvrđivanjem identiteta bolje štitite svoje osobne podatke</translation>
 <translation id="1567993339577891801">Konzola JavaScripta</translation>
 <translation id="1568323446248056064">Otvorite postavke zaslona na uređaju</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Gost)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Umjetnost</translation>
 <translation id="1697686431566694143">Uredi datoteku</translation>
 <translation id="1698122934742150150">Samo trenutačna anonimna sesija</translation>
-<translation id="1698650002254827833">Učitavanje popisa aplikacija nije uspjelo. Pokušajte ponovo.</translation>
 <translation id="1700079447639026019">Web-lokacije koje nikad ne mogu upotrebljavati kolačiće</translation>
 <translation id="1701062906490865540">Ukloni ovu osobu</translation>
 <translation id="1703331064825191675">Ne morate se brinuti za svoje zaporke</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Nastavi</translation>
 <translation id="2173302385160625112">Provjerite internetsku vezu</translation>
 <translation id="2173801458090845390">Dodavanje ID-a zahtjeva uređaju</translation>
+<translation id="2174948148799307353">Računom upravlja <ph name="PARENT_EMAIL" />. Da biste se odjavili s primarnog računa na ovom uređaju, kliknite vrijeme na zaslonu. Na izborniku koji će se prikazati kliknite "Odjava".</translation>
 <translation id="2175607476662778685">Traka za brzo pokretanje</translation>
 <translation id="217576141146192373">Nije moguće dodati pisač. Provjerite konfiguraciju pisača i pokušajte ponovno.</translation>
 <translation id="2177950615300672361">Anonimna kartica: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Sjenčanje teksta</translation>
 <translation id="2445081178310039857">Obavezan je korijenski direktorij proširenja.</translation>
 <translation id="2445484935443597917">Izradi novi profil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> želi potvrditi vaš identitet</translation>
 <translation id="2448312741937722512">Vrsta</translation>
 <translation id="2450223707519584812">Nećete moći dodati korisnike zato što nedostaju ključevi Google API-ja. Pojedinosti možete saznati na web-lokaciji <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">nema aktivnih prikaza</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Idi na stranicu <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Brz, jednostavan i siguran web-preglednik izrađen za moderni web.</translation>
 <translation id="2949289451367477459">Upotrebljavajte lokaciju. Aplikacijama i uslugama s dopuštenjem za lokaciju dopustite da upotrebljavaju lokaciju ovog uređaja. Google povremeno može prikupljati podatke o lokaciji i upotrebljavati te podatke na anoniman način radi poboljšanja točnosti lokacije i usluga temeljenih na lokaciji.<ph name="BEGIN_LINK1" />Saznajte više<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Registriraj me</translation>
 <translation id="2956070239128776395">Odjeljak je ugniježđen u grupi: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Nijednoj web-lokaciji nije dopušteno da uređuje datoteke ili mape na uređaju</translation>
 <translation id="2958721676848865875">Upozorenje proširenja paketa</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Zadani žuti avatar</translation>
 <translation id="3141318088920353606">Slušanje...</translation>
 <translation id="3141917231319778873">Navedeni zahtjev nije podržan za uređaj: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Nova grupa</translation>
 <translation id="3143515551205905069">Otkaži sinkronizaciju</translation>
 <translation id="3143754809889689516">Reproduciraj od početka</translation>
 <translation id="3144647712221361880">Otvori vezu kao</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Bež</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (s hardverskom podlogom)</translation>
 <translation id="3161522574479303604">Svi jezici</translation>
+<translation id="3162853326462195145">Školski račun</translation>
 <translation id="3162899666601560689">Web-lokacije mogu upotrebljavati kolačiće za poboljšanje vašeg doživljaja pregledavanja, primjerice da biste ostali prijavljeni ili da bi stavke u vašoj košarici ostale zapamćene</translation>
 <translation id="3163201441334626963">Nepoznati proizvod <ph name="PRODUCT_ID" /> dobavljača <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Ova se kartica dijeli s aplikacijom <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Ažurirajte uređaj u roku od jednog dana}one{Ažurirajte uređaj u roku od # dana}few{Ažurirajte uređaj u roku od # dana}other{Ažurirajte uređaj u roku od # dana}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – mrežna pogreška</translation>
 <translation id="3248902735035392926">Sigurnost je bitna. Odvojite trenutak i <ph name="BEGIN_LINK" />provjerite svoja proširenja<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Nije dio certifikata&gt;</translation>
 <translation id="3253225298092156258">Nije dostupno</translation>
 <translation id="3253448572569133955">Nepoznati račun</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Klikom na gumb "Prihvati i nastavi" prihvaćate prethodno opisanu obradu za ove Googleove usluge.</translation>
 <translation id="3399432415385675819">Obavijesti će se onemogućiti</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> herca) – isprepleteno</translation>
+<translation id="3402585168444815892">Prijava u demo način</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Za tu web-lokaciju nema spremljenih zaporki</translation>
 <translation id="3405664148539009465">Prilagodi fontove</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android telefon</translation>
 <translation id="3470442499439619530">Uklanjanje tog korisnika</translation>
 <translation id="3471876058939596279">HDMI priključci i USB priključci vrste C ne mogu se istovremeno upotrebljavati za videozapise. Koristite drugi videopriključak.</translation>
+<translation id="3473241910002674503">U načinu rada tableta gumbima idite na početnu stranicu, natrag i prelazite s jedne aplikacije na drugu.</translation>
 <translation id="3473479545200714844">Povećalo</translation>
 <translation id="3475843873335999118">Žao nam je, uređaj i dalje ne prepoznaje vaš otisak prsta. Unesite zaporku.</translation>
 <translation id="3476303763173086583">Slanje podataka o upotrebi i dijagnostici. Pomognite poboljšati djetetov doživljaj Androida automatskim slanjem dijagnostičkih podataka i podataka o upotrebi uređaja i aplikacija Googleu. Ti se podaci neće upotrebljavati za identifikaciju vašeg djeteta, a pomoći će poboljšati sustav, stabilnost aplikacija i drugo. Neki skupni podaci pomoći će i Googleovim aplikacijama i partnerima, na primjer razvojnim programerima za Android. Ovu <ph name="BEGIN_LINK1" />postavku<ph name="END_LINK1" /> zadao je vlasnik. Vlasnik može Googleu slati dijagnostiku i podatke o upotrebi za ovaj uređaj. Ako je za vaše dijete uključena dodatna postavka Aktivnost na webu i u aplikacijama, ti se podaci mogu spremati na djetetov Google račun. <ph name="BEGIN_LINK2" />Saznajte više<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Otisci prsta na ovom sigurnosnom ključu</translation>
 <translation id="3973660817924297510">Provjera zaporki (<ph name="CHECKED_PASSWORDS" /> od <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Kontaktiranje poslužitelja za domenu nije uspjelo</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne može provjeriti vaše zaporke. Pokušajte opet kasnije.</translation>
 <translation id="3976108569178263973">Nema dostupnih pisača.</translation>
 <translation id="397703832102027365">Dovršavanje...</translation>
 <translation id="3977886311744775419">Na ovoj vrsti mreže ne preuzimaju se automatska ažuriranja, no možete ih potražiti ručno.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Ova stranica sadrži elemente sa sljedećih web-lokacija koje prate vašu lokaciju:</translation>
 <translation id="4068776064906523561">Spremljeni otisci prstiju</translation>
 <translation id="407173827865827707">Na klik</translation>
+<translation id="4073520450811433493">Sinkronizacija postavki</translation>
 <translation id="4074900173531346617">Certifikat potpisnika e-pošte</translation>
 <translation id="407520071244661467">Skaliranje</translation>
 <translation id="4075639477629295004">Nije moguće emitirati <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Pahuljica</translation>
 <translation id="4423376891418188461">Vrati postavke</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, vaš administrator traži da promijenite zaporku.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne može provjeriti vaše zaporke. Pokušajte ponovno nakon 24 sata.</translation>
 <translation id="4429030830601238961">Ovi podaci krše sigurnosna pravila vaše organizacije, pa se ne mogu zalijepiti.</translation>
 <translation id="4430019312045809116">Glasnoća</translation>
 <translation id="4430369329743628066">Oznaka je dodana</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Želite li automatski pokrenuti tu aplikaciju kada se uređaj uključi?</translation>
 <translation id="4441147046941420429">Da biste nastavili, uklonite sigurnosni ključ iz uređaja, a zatim ga ponovo umetnite i dodirnite</translation>
 <translation id="444134486829715816">Proširi...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> može provjeriti vaše zaporke kad se prijavite Google računom</translation>
 <translation id="4442424173763614572">Nije uspjelo pretraživanje DNS poslužitelja</translation>
 <translation id="4443536555189480885">&amp;Help (Pomoć)</translation>
 <translation id="4444304522807523469">pristupiti skenerima dokumenata priključenim preko USB-a ili na lokalnu mrežu</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Taj kôd možete skenirati pomoću aplikacije za skeniranje QR kodova na svojem telefonu ili pomoću nekih aplikacija za kamere.</translation>
 <translation id="4477015793815781985">Mora sadržavati Ctrl, Alt ili ⌘</translation>
 <translation id="4478664379124702289">Spremi ve&amp;zu kao...</translation>
+<translation id="4478777936860197922">Nema nijedne spremljene zaporke. <ph name="IDS_SHORT_PRODUCT_NAME" /> može provjeriti vaše zaporke kad ih spremite.</translation>
 <translation id="4479424953165245642">Upravljanje aplikacijama kioska</translation>
 <translation id="4479639480957787382">Eternet</translation>
 <translation id="4479877282574735775">Konfigurira se virtualno računalo. To može potrajati nekoliko minuta.</translation>
 <translation id="4480590691557335796">Chrome može pronaći i ukloniti štetni softver na vašem računalu</translation>
 <translation id="4481530544597605423">Neupareni uređaji</translation>
+<translation id="4488107067273194838">Nakon postavljanja pregledajte opcije sinkronizacije preglednika</translation>
 <translation id="4488502501195719518">Želite li izbrisati sve podatke?</translation>
 <translation id="4495419450179050807">Ne prikazuj na ovoj stranici</translation>
 <translation id="4496054781541092778">automatski je blokirano dopuštenje <ph name="PERMISSION" /></translation>
@@ -2671,7 +2682,7 @@
 <translation id="4558426062282641716">Zatraženo je dopuštenje za automatsko pokretanje</translation>
 <translation id="4559617833001311418">Ova web-lokacija pristupa vašim senzorima pokreta ili svjetla.</translation>
 <translation id="4561893854334016293">Nema nedavno promijenjenih dopuštenja</translation>
-<translation id="4562155214028662640">Dodaj otisak prsta</translation>
+<translation id="4562155214028662640">Dodajte otisak prsta</translation>
 <translation id="4562494484721939086">Nema usluge</translation>
 <translation id="4563880231729913339">Treći prst</translation>
 <translation id="4565377596337484307">Sakrij zaporku</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Ne instaliraj</translation>
 <translation id="4850669014075537160">Pomicanje</translation>
 <translation id="4850886885716139402">Prikaz</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> će vas obavijestiti kada se prijavite ugroženom zaporkom</translation>
 <translation id="4853020600495124913">Otvaranje u &amp;novom prozoru</translation>
 <translation id="4854317507773910281">Odaberi roditeljski račun za odobrenje</translation>
 <translation id="485480310608090163">Više postavki i dopuštenja</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN sadrži nevažeće znakove</translation>
 <translation id="4871370605780490696">Dodavanje oznake</translation>
 <translation id="4871719318659334896">Zatvori grupu</translation>
+<translation id="4871852311166078968">Dodaj u grupu</translation>
 <translation id="4873312501243535625">Provjera medijskih datoteka</translation>
 <translation id="4876273079589074638">Pomognite našim inženjerima da istraže i isprave rušenje. Navedite točne korake ako možete. Svaka je pojedinost važna!</translation>
 <translation id="4876895919560854374">zaključati i otključati zaslon</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Vaš je administrator ograničio dostupne načine unosa.</translation>
 <translation id="4994474651455208930">Dopusti web-lokacijama traženje dopuštenja da postanu zadani rukovatelji za protokole</translation>
 <translation id="4994754230098574403">Postavljanje</translation>
-<translation id="4996978546172906250">Dijeli putem</translation>
 <translation id="4997086284911172121">Nema internetske veze.</translation>
 <translation id="4997384734315285248">Deinstalirajte Plugin VM</translation>
 <translation id="4998430619171209993">Uključeno</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Pristupajte svojem Asistentu tako što ćete izgovoriti "Ok Google".</translation>
 <translation id="5135533361271311778">Nije bilo moguće stvoriti oznaku.</translation>
 <translation id="5137501176474113045">Izbriši stavku</translation>
-<translation id="5138982052046316113">Promjena veličine Linux Diska</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> pretraživanje</translation>
 <translation id="5139823398361067371">Unesite PIN za sigurnosni ključ. Ako ne znate PIN, morat ćete vratiti sigurnosni ključ na zadano.</translation>
 <translation id="5139955368427980650">&amp;Otvori</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Čeka se potvrda. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Vrlo velik</translation>
 <translation id="574209121243317957">Visina glasa</translation>
+<translation id="5745136023067925867">Pronađite savjete, ponude i novosti za <ph name="DEVICE_TYPE" /> te nam recite što mislite</translation>
 <translation id="5746169159649715125">Spremi kao PDF</translation>
 <translation id="5747552184818312860">Istječe</translation>
 <translation id="5747785204778348146">Razvojni programer – nestabilno</translation>
@@ -3623,7 +3635,7 @@
 <translation id="5877584842898320529">Odabrani pisač nije dostupan ili nije ispravno instaliran. <ph name="BR" /> Provjerite pisač ili pokušajte odabrati neki drugi.</translation>
 <translation id="5882919346125742463">Poznate mreže</translation>
 <translation id="5884474295213649357">Kartica je povezana s USB uređajem.</translation>
-<translation id="5886009770935151472">Prvi prst</translation>
+<translation id="5886009770935151472">1. prst</translation>
 <translation id="5889282057229379085">Maksimalni broj srednjih CA-ova: <ph name="NUM_INTERMEDIATE_CA" /></translation>
 <translation id="5895138241574237353">Ponovno pokreni</translation>
 <translation id="5900302528761731119">Fotografija Google profila</translation>
@@ -3725,7 +3737,7 @@
 <translation id="6023643151125006053">Taj uređaj (serijski broj: <ph name="SERIAL_NUMBER" />) zaključao je administrator domene <ph name="SAML_DOMAIN" />.</translation>
 <translation id="6025215716629925253">Trag stoga</translation>
 <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB uređaj povezan</translation>
-<translation id="6028117231645531007">Dodaj otisak prsta</translation>
+<translation id="6028117231645531007">Dodajte otisak prsta</translation>
 <translation id="6029587122245504742">Najsporije</translation>
 <translation id="6029594605736587274">blokirano je dopuštenje <ph name="PERMISSION" /></translation>
 <translation id="6032715498678347852">Da biste proširenju omogućili pristup web-lokaciji, kliknite ga.</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Prikaži u programu Finder</translation>
 <translation id="6295158916970320988">Sve web-lokacije</translation>
 <translation id="6295855836753816081">Spremanje...</translation>
-<translation id="629730747756840877">Račun</translation>
 <translation id="6298962879096096191">Za instaliranje Android aplikacija upotrijebite Google Play</translation>
 <translation id="630065524203833229">I&amp;zađi</translation>
 <translation id="6300718114348072351">Automatsko konfiguriranje pisača <ph name="PRINTER_NAME" /> nije uspjelo. Navedite napredne pojedinosti pisača. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Jezik stranice nije <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC zapisnici događaja (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura boje</translation>
-<translation id="6870888490422746447">Odaberite aplikaciju za dijeljenje:</translation>
 <translation id="6871644448911473373">OCSP odgovaratelj: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Poslužitelj je odbio zaporku koju ste unijeli.</translation>
 <translation id="6876155724392614295">Voziti bicikl</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – zapisnik aktivnosti</translation>
 <translation id="6997707937646349884">Na vašim uređajima:</translation>
 <translation id="6998793565256476099">Registriranje uređaja za videokonferencije</translation>
+<translation id="6999956497249459195">Nova grupa</translation>
 <translation id="7000206553895739324">Pisač <ph name="PRINTER_NAME" /> povezan je, no potrebno ga je konfigurirati</translation>
 <translation id="7000347579424117903">Mora sadržavati Ctrl, Alt ili Search</translation>
 <translation id="7001036685275644873">Sigurnosno kopiranje Linux aplikacija i datoteka</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Postavite vezu na telefonu <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Odbacite ovu poruku</translation>
+<translation id="7403642243184989645">Preuzimanje resursa</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Sigurnosna provjera izvršena je prije sat vremena}one{Sigurnosna provjera izvršena je prije {NUM_HOURS} sata}few{Sigurnosna provjera izvršena je prije {NUM_HOURS} sata}other{Sigurnosna provjera izvršena je prije {NUM_HOURS} sati}}</translation>
 <translation id="740624631517654988">Skočni prozor blokiran</translation>
 <translation id="7407430846095439694">Uvezi i uveži</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">URL pravila tijela za izdavanje Netscape certifikata</translation>
 <translation id="7717014941119698257">Preuzimanje: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Provjeri ažuriranja</translation>
+<translation id="7719070594859855691">Omogući pristup fotoaparatu</translation>
 <translation id="7719367874908701697">Zumiranje stranice</translation>
 <translation id="7721179060400456005">Dopusti da prozori obuhvaćaju više zaslona</translation>
 <translation id="7722040605881499779">Potrebno za ažuriranje: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Prikaz povijesti ispisa</translation>
 <translation id="7744192722284567281">Pronađeno u povredi podataka</translation>
 <translation id="7750228210027921155">Slika u slici</translation>
-<translation id="7751229152614300329">Sigurno pregledavanje ažurirano je i štiti vas od štetnih web-lokacija i preuzimanja</translation>
 <translation id="7751260505918304024">Prikaži sve</translation>
 <translation id="7754704193130578113">Pitaj gdje spremiti svaku datoteku prije preuzimanja</translation>
 <translation id="7755287808199759310">Roditelj je može deblokirati</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Napomena:<ph name="END_BOLD" /> sustav će se ponovo pokrenuti tijekom postupka.</translation>
 <translation id="7828731929332799387">Time će se izbrisati svi kolačići i podaci o web-lokaciji treće strane. Želite li nastaviti?</translation>
 <translation id="7829298379596169484">Pristupanje audioulazu</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne može provjeriti vaše zaporke. Provjerite internetsku vezu.</translation>
 <translation id="7829877209233347340">Zamoli roditelja da se prijavi i da ti da dopuštenje za dodavanje školskog računa</translation>
 <translation id="7830594666202422257">Poveži s Linuxom</translation>
 <translation id="7831491651892296503">Pogreška prilikom konfiguriranja mreže</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Trgovina Google Play instalira se na vašem uređaju <ph name="DEVICE_TYPE" />. To bi moglo potrajati nekoliko minuta.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Bez kolačića treće strane}=1{Blokiran je jedan kolačić treće strane}one{Blokiran je # kolačić treće strane}few{Blokirana su # kolačića treće strane}other{Blokirano je # kolačića treće strane}}</translation>
 <translation id="810875025413331850">Nije pronađen nijedan uređaj u blizini.</translation>
+<translation id="8114199541033039755">U načinu rada tableta gumbima idite na početnu stranicu, natrag i prelazite s jedne aplikacije na drugu. Uključeno kad su omogućeni ChromeVox ili automatski klikovi.</translation>
 <translation id="8114875720387900039">Podijeli vodoravno</translation>
 <translation id="8116972784401310538">&amp;Upravitelj oznaka</translation>
 <translation id="8117620576188476503">Upravljajte vezama, ažuriranjima i postavkama pomoću ladice statusa. Da biste je otvorili pomoću tipkovnice, pritisnite Alt + Shift + S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914">Stranica <ph name="FULLSCREEN_ORIGIN" /> onemogućila je pokazivač miša.</translation>
 <translation id="8264024885325823677">Tom postavkom upravlja vaš administrator.</translation>
 <translation id="8264718194193514834">Proširenje <ph name="EXTENSION_NAME" /> pokrenulo je prikaz na cijelom zaslonu.</translation>
+<translation id="826511437356419340">Otvoren je način pregleda u prozoru. Da biste se kretali, prijeđite prstom ili, ako koristite tipkovnicu, pritisnite tabulator.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />To su općeniti podaci o ovom uređaju i načinu na koji se upotrebljava (kao što su razina baterije, aktivnosti sustava i aplikacija te pogreške). Ti će se podaci koristiti za poboljšanje Androida, a neki skupni podaci pomoći će Googleovim aplikacijama i partnerima, primjerice razvojnim programerima za Android, da poboljšaju svoje aplikacije i proizvode.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Isključivanje te značajke ne utječe na mogućnost uređaja da šalje informacije koje su potrebne za ključne usluge kao što su ažuriranja sustava i sigurnost.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Vlasnik može upravljati tom značajkom putem Postavki &gt; Napredno &gt; Automatsko slanje dijagnostike i podataka o upotrebi Googleu.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Omogućivanje</translation>
 <translation id="8427292751741042100">ugrađeno na bilo kojem hostu</translation>
 <translation id="8428213095426709021">Postavke</translation>
+<translation id="8428271547607112339">Dodavanje školskog računa</translation>
 <translation id="8428628598981198790">Vaš sigurnosni ključ ne može se upotrebljavati s tom web-lokacijom</translation>
 <translation id="84297032718407999">Odjavit ćete se za <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Prikaži dodire</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Uvijek dopusti da web-lokacija <ph name="HOST" /> prikazuje slike</translation>
 <translation id="8513108775083588393">Automatsko zakretanje</translation>
 <translation id="8514746246728959655">Pokušajte s nekim drugim sigurnosnim ključem</translation>
+<translation id="851960115758509829">Vaše aplikacije, postavke i ostale prilagodbe sinkronizirat će se na svim uređajima s OS-om Chrome na kojima ste prijavljeni svojim Google računom.</translation>
 <translation id="8521475323816527629">Brzo pristupite svojim aplikacijama</translation>
 <translation id="8523493869875972733">Zadrži promjene</translation>
 <translation id="8523849605371521713">Dodala pravila</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Prostor za pohranu</translation>
 <translation id="8859057652521303089">Odaberite svoj jezik:</translation>
 <translation id="8859174528519900719">Podokvir: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Račun roditelja</translation>
 <translation id="8862003515646449717">Prijeđite na brz preglednik</translation>
 <translation id="8863753581171631212">Otvori vezu u novom prozoru aplikacije <ph name="APP" /></translation>
 <translation id="8864055848767439877">Kartica <ph name="TAB_NAME" /> dijeli se s aplikacijom <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Račun <ph name="EMAIL" /> uklonjen je s ovog uređaja</translation>
 <translation id="8867228703146808825">Kopiranje pojedinosti o međuverziji u međuspremnik</translation>
+<translation id="8868333925931032127">Pokretanje demo načina</translation>
 <translation id="8868626022555786497">U upotrebi</translation>
 <translation id="8870413625673593573">Nedavno zatvoreno</translation>
 <translation id="8871551568777368300">Prikvačio administrator</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Ponovo otvorite karticu ako ste je slučajno zatvorili</translation>
 <translation id="8967866634928501045">Pritisnite Alt + Shift + A za prikaz</translation>
 <translation id="8968766641738584599">Spremanje kartice</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne može provjeriti vaše zaporke. Pokušajte ponovno nakon 24 sata ili <ph name="BEGIN_LINK" />provjerite zaporke na svojem Google računu<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Obratite se administratoru mreže i provjerite blokira li vatrozid preuzimanja s Googleovih poslužitelja.</translation>
 <translation id="8973557916016709913">Ukloni razinu zuma</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index b9c316c..12a3388 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Rendelkezésre álló eszközök</translation>
 <translation id="1042174272890264476">Számítógépe a <ph name="SHORT_PRODUCT_NAME" /> RLZ-könyvtárát is tartalmazza beépítve. Az RLZ egy nem egyedi, személy szerinti azonosításra nem alkalmas címkét rendel hozzá a keresések és a <ph name="SHORT_PRODUCT_NAME" /> használatának egy adott promóciós kampány keretein belüli felméréséhez. Ezek a címkék időnként a <ph name="PRODUCT_NAME" /> Google-keresési lekérdezéseiben is feltűnnek.</translation>
 <translation id="1043818413152647937">Ezekből az alkalmazásokból is törli az adatokat?</translation>
+<translation id="1045448422538531528">Hozzáadás csoporthoz</translation>
 <translation id="1046635659603195359">Úgy tűnik, hogy Google Segédjéhez már beállította a Voice Match funkciót valamelyik másik eszközön. Korábbi felvételeiből ezen az eszközön is létrehozhat hangmintát. Ez legfeljebb egy percet vesz igénybe.</translation>
 <translation id="104710386808485638">Újraindítja a Linuxot?</translation>
 <translation id="1047431265488717055">Link szövegének má&amp;solása</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Mindig tiltsa a hozzáférést a kamerához</translation>
 <translation id="1082398631555931481">A(z) <ph name="THIRD_PARTY_TOOL_NAME" /> vissza akarja állítani a Chrome beállításait az alapértelmezett értékekre. Ez visszaállítja a kezdőlap, az új lap oldal és a keresőmotor beállításait, továbbá letiltja a bővítményeket, illetve feloldja minden lap rögzítését. Az egyéb átmeneti és gyorsítótárazott adatok – például cookie-k, tartalmi és webhelyadatok – is törlődni fognak.</translation>
+<translation id="1084096383128641877">A jelszó eltávolításával nem törli fiókját a következő domainről: <ph name="DOMAIN" />. Ha szeretné megőrizni fiókja biztonságát, módosítsa a jelszót, vagy törölje a fiókot a(z) <ph name="DOMAIN_LINK" /> domainről.</translation>
 <translation id="1084824384139382525">Link címén&amp;ek másolása</translation>
 <translation id="1085697365578766383">Nem sikerült elindítani a virtuális gépet. Próbálja újra.</translation>
 <translation id="1090126737595388931">Nincs háttérben futó alkalmazás</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">A biztonsági ellenőrzés tegnap lefutott</translation>
 <translation id="1260451001046713751">Itt mindig engedélyezve vannak az előugró ablakok és az átirányítások: <ph name="HOST" /></translation>
 <translation id="126156426083987769">Gond adódott a demó módú eszközengedélyekkel.</translation>
+<translation id="1263490604593716556">A fiókot a(z) <ph name="FIRST_PARENT_EMAIL" /> és a(z) <ph name="SECOND_PARENT_EMAIL" /> kezeli. Ha szeretne kijelentkezni eszközén az elsődleges fiókból, kattintson a képernyőn az órára. A megjelenő menüben kattintson a „Kijelentkezés” lehetőségre.</translation>
 <translation id="126710816202626562">A fordítás nyelve:</translation>
 <translation id="126768002343224824">16×</translation>
 <translation id="1272079795634619415">Leállítás</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Webhely</translation>
 <translation id="15662109988763471">A kiválasztott nyomtató nem áll rendelkezésre, vagy nincs megfelelően telepítve. Ellenőrizze a nyomtatót, vagy válasszon egy másikat.</translation>
 <translation id="1567387640189251553">A jelszó utolsó megadása óta új billentyűzetet csatlakoztattak. Előfordulhat, hogy így kísérlik meg a billentyűleütések rögzítését.</translation>
-<translation id="1567750922576943685">Személyazonosságának igazolásával segít személyes adatainak megvédésében</translation>
 <translation id="1567993339577891801">JavaScript-konzol</translation>
 <translation id="1568323446248056064">Megjelenítőeszköz beállításainak megnyitása</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (vendég)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Művészet</translation>
 <translation id="1697686431566694143">Fájl szerkesztése</translation>
 <translation id="1698122934742150150">Csak a jelenlegi inkognitó munkamenet</translation>
-<translation id="1698650002254827833">Nem sikerült az alkalmazáslista betöltése. Próbálja újra.</translation>
 <translation id="1700079447639026019">Webhelyek, amelyek sosem használhatnak cookie-kat</translation>
 <translation id="1701062906490865540">Személy eltávolítása</translation>
 <translation id="1703331064825191675">Sosem kell aggódnia jelszavai miatt</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Tovább</translation>
 <translation id="2173302385160625112">Ellenőrizze az internetkapcsolatot</translation>
 <translation id="2173801458090845390">Igénylésazonosító hozzáadása ehhez az eszközhöz</translation>
+<translation id="2174948148799307353">A fiókot a(z) <ph name="PARENT_EMAIL" /> kezeli. Ha szeretne kijelentkezni eszközén az elsődleges fiókból, kattintson a képernyőn az órára. A megjelenő menüben kattintson a „Kijelentkezés” lehetőségre.</translation>
 <translation id="2175607476662778685">Gyorsindító sáv</translation>
 <translation id="217576141146192373">Nem sikerült hozzáadni a nyomtatót. Ellenőrizze a nyomtató beállításait, majd próbálja újra.</translation>
 <translation id="2177950615300672361">Inkognitólap: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Szövegárnyék</translation>
 <translation id="2445081178310039857">A bővítmény gyökérkönyvtárát kötelező megadni.</translation>
 <translation id="2445484935443597917">Új profil létrehozása</translation>
-<translation id="2446585455334014596">A(z) <ph name="APP_NAME" /> ellenőrizni szeretné az Ön személyazonosságát</translation>
 <translation id="2448312741937722512">Típus</translation>
 <translation id="2450223707519584812">Nem tud majd hozzáadni felhasználókat, mert hiányoznak a Google API-kulcsok. Részletekért lásd: <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Nincs aktív nézet</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Ugrás: <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">A modern internetre szabott gyors, egyszerű és biztonságos böngésző.</translation>
 <translation id="2949289451367477459">A tartózkodási hely használata. A helymeghatározási jogosultsággal rendelkező alkalmazások és szolgáltatások számára lehetővé teszi az eszköz tartózkodási helyének használatát. A Google időről időre helyadatokat gyűjthet, és ezen adatok anonim módon történő felhasználásával javíthatja a helymeghatározás pontosságát, valamint a helyalapú szolgáltatásokat. <ph name="BEGIN_LINK1" />További információ<ph name="END_LINK1" />.</translation>
+<translation id="2950666755714083615">Regisztráció</translation>
 <translation id="2956070239128776395">Egy szakasz csoportba van beágyazva: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Egy webhely sem módosíthatja az eszközén található fájlokat vagy mappákat</translation>
 <translation id="2958721676848865875">Csomagbővítménnyel kapcsolatos figyelmeztetés</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Alapértelmezett sárga avatar</translation>
 <translation id="3141318088920353606">Figyelek…</translation>
 <translation id="3141917231319778873">Az adott kérés nem támogatott a következőhöz: „<ph name="DEVICE_NAME" />”.</translation>
+<translation id="3142562627629111859">Új csoport</translation>
 <translation id="3143515551205905069">Szinkronizálás megszakítása</translation>
 <translation id="3143754809889689516">Lejátszás az elejétől</translation>
 <translation id="3144647712221361880">Link megnyitása mint</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Bézs</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardverrel támogatott)</translation>
 <translation id="3161522574479303604">Minden nyelv</translation>
+<translation id="3162853326462195145">Iskolai fiók</translation>
 <translation id="3162899666601560689">A webhelyek használhatnak cookie-kat a böngészési élmény javítására például úgy, hogy bejelentkezve tartják Önt, illetve megjegyzik a kosarában lévő termékeket.</translation>
 <translation id="3163201441334626963">Ismeretlen termék (<ph name="PRODUCT_ID" />) a következő forgalmazótól: <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Lap megosztása a következővel: <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Egy napon belül frissítse az eszközt}other{# napon belül frissítse az eszközt}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – Hálózati hiba</translation>
 <translation id="3248902735035392926">A biztonság fontos. Szánjon egy pillanatot <ph name="BEGIN_LINK" />bővítményeinek ellenőrzésére<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Nem része a tanúsítványnak&gt;</translation>
 <translation id="3253225298092156258">Nem hozzáférhető</translation>
 <translation id="3253448572569133955">Ismeretlen fiók</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Az „Elfogadás és folytatás” gombra kattintva elfogadja az ezen Google-szolgáltatásokkal kapcsolatos, fent részletezett feldolgozási folyamatot.</translation>
 <translation id="3399432415385675819">Az értesítések le lesznek tiltva</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) – váltottsoros</translation>
+<translation id="3402585168444815892">Regisztráció a demó módra</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Ehhez a webhelyhez nincsenek mentve jelszavak</translation>
 <translation id="3405664148539009465">Betűtípusok testreszabása</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Androidos telefon</translation>
 <translation id="3470442499439619530">Felhasználó eltávolítása</translation>
 <translation id="3471876058939596279">A HDMI- és a C típusú USB-csatlakozók nem használhatók egyidejűleg videokimenetként. Használjon másik videocsatlakozót.</translation>
+<translation id="3473241910002674503">Táblagép módban gombok segítségével válthat alkalmazásokat, illetve léphet vissza és a kezdőképernyőre.</translation>
 <translation id="3473479545200714844">Képernyőnagyító</translation>
 <translation id="3475843873335999118">Sajnos az ujjlenyomatát továbbra sem sikerült felismerni. Adja meg jelszavát.</translation>
 <translation id="3476303763173086583">Használati és diagnosztikai adatok küldése. Segítsen gyermeke Android-élményének továbbfejlesztésében azzal, hogy automatikusan diagnosztikai, valamint eszköz- és alkalmazáshasználati adatokat küld a Google-nak. Az adatok a rendszer- és alkalmazásstabilitás javításában, valamint más fejlesztésekben segítenek, nem használjuk fel őket az Ön gyermekének azonosítására. Bizonyos összesített adatok a Google-alkalmazásoknak és -partnereknek, például az Android-fejlesztőknek is segítenek. Ezt a <ph name="BEGIN_LINK1" />beállítást<ph name="END_LINK1" /> kötelezővé tette az eszköz tulajdonosa. A tulajdonos dönthet úgy, hogy elküldi az eszközzel kapcsolatos diagnosztikai és használati adatokat a Google-nak. Ha az Internetes és alkalmazástevékenységek beállítás is be van kapcsolva a gyermekénél, akkor a rendszer ezeket az adatokat mentheti a gyermek Google-fiókjába. <ph name="BEGIN_LINK2" />További információ.<ph name="END_LINK2" /></translation>
@@ -2274,6 +2279,7 @@
 <translation id="3971764089670057203">A biztonsági kulcson található ujjlenyomatok</translation>
 <translation id="3973660817924297510">Jelszavak ellenőrzése (<ph name="TOTAL_PASSWORDS" />/<ph name="CHECKED_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Nem sikerült kapcsolódni a tartomány szerveréhez</translation>
+<translation id="3975884715086515476">A(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> nem tudja ellenőrizni a jelszavait. Próbálkozzon újra később.</translation>
 <translation id="3976108569178263973">Nincsenek rendelkezésre álló nyomtatók.</translation>
 <translation id="397703832102027365">Véglegesítés...</translation>
 <translation id="3977886311744775419">A rendszer nem tölt le automatikus frissítéseket ilyen hálózattípusnál, de manuálisan kereshet frissítéseket.</translation>
@@ -2337,6 +2343,7 @@
 <translation id="4068506536726151626">Ezen az oldalon olyan elemek vannak webhelyekről, amelyek figyelik a tartózkodási helyét:</translation>
 <translation id="4068776064906523561">Mentett ujjlenyomatok</translation>
 <translation id="407173827865827707">Kattintásra</translation>
+<translation id="4073520450811433493">Beállítások szinkronizálása</translation>
 <translation id="4074900173531346617">E-mail aláíró tanúsítvány</translation>
 <translation id="407520071244661467">Átméretezés</translation>
 <translation id="4075639477629295004">Nem lehet átküldeni a következőt: <ph name="FILE_NAME" />.</translation>
@@ -2573,6 +2580,7 @@
 <translation id="4421932782753506458">Bolyhos</translation>
 <translation id="4423376891418188461">A beállítások visszaállítása</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, az Ön rendszergazdája jelszómódosításra kéri.</translation>
+<translation id="4426209360861763174">A(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> nem tudja ellenőrizni a jelszavait. Próbálja újra 24 óra múlva.</translation>
 <translation id="4429030830601238961">Ezek az adatok sértik szervezete biztonsági szabályait, ezért nem illeszthetők be.</translation>
 <translation id="4430019312045809116">Hangerő</translation>
 <translation id="4430369329743628066">Könyvjelző hozzáadva</translation>
@@ -2585,6 +2593,7 @@
 <translation id="4441124369922430666">Szeretné automatikusan elindítani ezt az alkalmazást, amikor bekapcsolja a számítógépet?</translation>
 <translation id="4441147046941420429">A folytatáshoz távolítsa el a biztonsági kulcsot az eszközből, majd helyezze vissza, és érintse meg.</translation>
 <translation id="444134486829715816">Részletes nézet...</translation>
+<translation id="4442329324652245220">A(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> ellenőrizni tudja a mentett jelszavakat, ha Ön bejelentkezik Google-fiókjával.</translation>
 <translation id="4442424173763614572">A DNS keresése sikertelen</translation>
 <translation id="4443536555189480885">&amp;Súgó</translation>
 <translation id="4444304522807523469">USB-kapcsolaton vagy a helyi hálózaton keresztül csatlakoztatott szkennerek elérése</translation>
@@ -2611,11 +2620,13 @@
 <translation id="4476659815936224889">A kód beolvasásához használhat a telefonján QR-kódok olvasására szolgáló alkalmazást, illetve bizonyos kameraalkalmazásokat.</translation>
 <translation id="4477015793815781985">Használja a Ctrl, az Alt vagy a ⌘ billentyűk egyikét</translation>
 <translation id="4478664379124702289">Link mentése &amp;másként...</translation>
+<translation id="4478777936860197922">Nincsenek mentett jelszavak. A(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> képes a jelszavak ellenőrzésére, amikor Ön menti őket.</translation>
 <translation id="4479424953165245642">Kiosk-alkalmazások kezelése</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">A virtuális gép konfigurálása folyamatban van. Ez eltarthat néhány percig.</translation>
 <translation id="4480590691557335796">A Chrome képes a számítógépen lévő kártékony szoftverek megkeresésére és eltávolítására</translation>
 <translation id="4481530544597605423">Párosítatlan eszközök</translation>
+<translation id="4488107067273194838">A böngésző szinkronizálási beállításainak áttekintése a beállítás után</translation>
 <translation id="4488502501195719518">Törli az összes adatot?</translation>
 <translation id="4495419450179050807">Ne jelenjen meg ezen az oldalon</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> automatikusan letiltva</translation>
@@ -2857,6 +2868,7 @@
 <translation id="4849517651082200438">Ne telepítse</translation>
 <translation id="4850669014075537160">Görgetés</translation>
 <translation id="4850886885716139402">Nézet</translation>
+<translation id="485197095346966382">A(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> figyelmezteti Önt, amikor olyan jelszóval jelentkezik be, amelyhez illetéktelenül hozzáfértek.</translation>
 <translation id="4853020600495124913">Megnyitás új &amp;ablakban</translation>
 <translation id="4854317507773910281">Szülői fiók kiválasztása a jóváhagyáshoz</translation>
 <translation id="485480310608090163">További beállítások és engedélyek</translation>
@@ -2875,6 +2887,7 @@
 <translation id="4871322859485617074">A PIN-kód érvénytelen karaktereket tartalmaz</translation>
 <translation id="4871370605780490696">Könyvjelzõ hozzáadása</translation>
 <translation id="4871719318659334896">Csoport bezárása</translation>
+<translation id="4871852311166078968">Hozzáadás csoporthoz</translation>
 <translation id="4873312501243535625">Médiafájl-ellenőrző</translation>
 <translation id="4876273079589074638">Segítse mérnökeinket az összeomlás kivizsgálásában és kijavításában. Ha lehet, adja meg a pontos lépéseket. Nem létezik túl apró részlet!</translation>
 <translation id="4876895919560854374">A képernyő feloldása és zárolása</translation>
@@ -2966,7 +2979,6 @@
 <translation id="4992473555164495036">A rendszergazda korlátozta a rendelkezésre álló beviteli módokat.</translation>
 <translation id="4994474651455208930">A webhelyek kérhetik, hogy protokollok alapértelmezett kezelői legyenek</translation>
 <translation id="4994754230098574403">Beállítás</translation>
-<translation id="4996978546172906250">Megosztás itt:</translation>
 <translation id="4997086284911172121">Nincs internetkapcsolat.</translation>
 <translation id="4997384734315285248">A Plugin VM eltávolítása</translation>
 <translation id="4998430619171209993">Be</translation>
@@ -3066,7 +3078,6 @@
 <translation id="5135085122826131075">Az „Ok Google” parancsszó kimondásával hozzáférhet Segédjéhez.</translation>
 <translation id="5135533361271311778">Nem sikerült létrehozni a könyvjelzőelemet.</translation>
 <translation id="5137501176474113045">Elem törlése</translation>
-<translation id="5138982052046316113">Linux-lemez átméretezése</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" />-keresés</translation>
 <translation id="5139823398361067371">Adja meg a biztonsági kulcs PIN-kódját. Ha nem tudja a PIN-kódot, vissza kell állítania a biztonsági kulcsot.</translation>
 <translation id="5139955368427980650">&amp;Megnyitás</translation>
@@ -3520,6 +3531,7 @@
 <translation id="5739235828260127894">Várakozás az ellenőrzésre. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation>
 <translation id="5739458112391494395">Nagyon nagy</translation>
 <translation id="574209121243317957">Hangmagasság</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" />-tippeket és -ajánlatokat, valamint friss híreket kaphat, ezenkívül visszajelzést is küldhet.</translation>
 <translation id="5746169159649715125">Mentés PDF-ként</translation>
 <translation id="5747552184818312860">Lejár</translation>
 <translation id="5747785204778348146">Fejlesztői – nem stabil</translation>
@@ -3932,7 +3944,6 @@
 <translation id="6291953229176937411">Me&amp;gjelenítés a Finderben</translation>
 <translation id="6295158916970320988">Az összes webhely</translation>
 <translation id="6295855836753816081">Mentés…</translation>
-<translation id="629730747756840877">Fiók</translation>
 <translation id="6298962879096096191">A Google Play használata Android-alkalmazások telepítésére</translation>
 <translation id="630065524203833229">K&amp;ilépés</translation>
 <translation id="6300718114348072351">Nem sikerült a(z) <ph name="PRINTER_NAME" /> automatikus beállítása. Adja meg a nyomtató speciális adatait. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation>
@@ -4338,7 +4349,6 @@
 <translation id="6865598234501509159">Az oldal nem <ph name="LANGUAGE" /> nyelvű</translation>
 <translation id="6865708901122695652">WebRTC-eseménynaplók (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Színhőmérséklet</translation>
-<translation id="6870888490422746447">Alkalmazás kiválasztása és megosztása itt:</translation>
 <translation id="6871644448911473373">OCSP válaszadó: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">A szerver elutasította a megadott jelszót.</translation>
 <translation id="6876155724392614295">Kerékpár</translation>
@@ -4431,6 +4441,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – Tevékenységnapló</translation>
 <translation id="6997707937646349884">Az Ön eszközein:</translation>
 <translation id="6998793565256476099">Eszköz felvétele a videokonferenciába</translation>
+<translation id="6999956497249459195">Új csoport</translation>
 <translation id="7000206553895739324">A(z) <ph name="PRINTER_NAME" /> csatlakoztatva van, de konfigurálni kell</translation>
 <translation id="7000347579424117903">Használja a Ctrl, az Alt vagy a Keresés gombok egyikét</translation>
 <translation id="7001036685275644873">Biztonsági másolat készítése a Linux-alkalmazásokról és -fájlokról…</translation>
@@ -4729,6 +4740,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Kapcsolat beállítása a(z) <ph name="PHONE_NAME" /> eszközön</translation>
 <translation id="7401778920660465883">Az üzenet bezárása</translation>
+<translation id="7403642243184989645">Erőforrások letöltése…</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{A biztonsági ellenőrzés 1 órával ezelőtt futott}other{A biztonsági ellenőrzés {NUM_HOURS} órával ezelőtt futott}}</translation>
 <translation id="740624631517654988">Előugró ablak letiltva</translation>
 <translation id="7407430846095439694">Importálás és összekapcsolás</translation>
@@ -4965,6 +4977,7 @@
 <translation id="7716781361494605745">Netscape tanúsítványkibocsátó -- irányelv URL</translation>
 <translation id="7717014941119698257">Letöltés: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Frissítések keresése</translation>
+<translation id="7719070594859855691">Hozzáférés biztosítása a kamerához</translation>
 <translation id="7719367874908701697">Oldal nagyítása/kicsinyítése</translation>
 <translation id="7721179060400456005">Engedélyezi az ablakok több kijelzőre való kiterjesztését</translation>
 <translation id="7722040605881499779">A frissítéshez szükséges tárhely: <ph name="NECESSARY_SPACE" /></translation>
@@ -4979,7 +4992,6 @@
 <translation id="7744047395460924128">Nyomtatási előzmények megtekintése</translation>
 <translation id="7744192722284567281">Megtalálható adatvédelmi incidensben</translation>
 <translation id="7750228210027921155">Kép a képben</translation>
-<translation id="7751229152614300329">A Biztonságos Böngészés naprakész, és védelmet nyújt Önnek a kártékony webhelyekkel és letöltésekkel szemben</translation>
 <translation id="7751260505918304024">Összes megjelenítése</translation>
 <translation id="7754704193130578113">A letöltés előtt kérdezze meg, hová mentse az adott fájlokat</translation>
 <translation id="7755287808199759310">A letiltást a szülő oldhatja fel</translation>
@@ -5067,6 +5079,7 @@
     <ph name="BEGIN_BOLD" />Megjegyzés:<ph name="END_BOLD" /> A rendszer újraindul a folyamat során.</translation>
 <translation id="7828731929332799387">Ezzel törli a harmadik felek kontextusaiban rendelkezésre álló cookie-kat és webhelyadatokat. Biztosan folytatja?</translation>
 <translation id="7829298379596169484">Hozzáférés a hangbemenethez</translation>
+<translation id="7829528495815477379">A(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> nem tudja ellenőrizni a jelszavait. Ellenőrizze az internetkapcsolatot.</translation>
 <translation id="7829877209233347340">Kérd meg az egyik szülődet, hogy jelentkezzen be, és adjon engedélyt iskolai fiók hozzáadásához</translation>
 <translation id="7830594666202422257">Csatlakoztatás Linuxhoz</translation>
 <translation id="7831491651892296503">Hiba történt a hálózat konfigurálásakor</translation>
@@ -5289,6 +5302,7 @@
 <translation id="8107015733319732394">Folyamatban van a Google Play Áruház telepítése a(z) <ph name="DEVICE_TYPE" /> eszközre. Ez eltarthat néhány percig.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Nem találhatók harmadik féltől származó cookie-k}=1{1 harmadik féltől származó cookie letiltva}other{# harmadik féltől származó cookie letiltva}}</translation>
 <translation id="810875025413331850">Nem található közeli eszköz.</translation>
+<translation id="8114199541033039755">Táblagép módban gombok segítségével válthat alkalmazásokat, illetve léphet vissza és a kezdőképernyőre. A ChromeVox (hangos visszajelzés) vagy az automatikus kattintások engedélyezése esetén be van kapcsolva.</translation>
 <translation id="8114875720387900039">Felosztás vízszintesen</translation>
 <translation id="8116972784401310538">&amp;Könyvjelzőkezelő</translation>
 <translation id="8117620576188476503">Kapcsolatok, frissítések és beállítások kezelése az állapottálca segítségével. Ha a billentyűzet segítségével szeretne ide eljutni, használja az Alt+Shift+s billentyűparancsot.</translation>
@@ -5408,6 +5422,7 @@
 <translation id="8263744495942430914">A(z) <ph name="FULLSCREEN_ORIGIN" /> letiltotta az egérmutatót.</translation>
 <translation id="8264024885325823677">Ezt a beállítást a rendszergazdája kezeli.</translation>
 <translation id="8264718194193514834">A(z) „<ph name="EXTENSION_NAME" />” aktiválta a teljes képernyős módot.</translation>
+<translation id="826511437356419340">Ablakáttekintési módba lépett. A navigáció csúsztatással – illetve billentyűzet használata esetén – a Tab gombbal lehetséges.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Általános információ az eszközről és használatáról (például az akkumulátor töltöttségi szintjéről, a rendszer- és alkalmazástevékenységekről, valamint a hibákról). Az adatokat arra használjuk fel, hogy továbbfejlesszük az Androidot, bizonyos összesített adatok pedig a Google-alkalmazásoknak és -partnereknek, például az Android-fejlesztőknek segítenek alkalmazásaik és termékeik fejlesztésében.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />A funkció kikapcsolása nem korlátozza az eszközt abban, hogy elküldje az alapvető fontosságú szolgáltatásokkal (pl. a rendszerfrissítésekkel és -biztonsággal) kapcsolatos információkat.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />A tulajdonos a következő menüben módosíthatja ezt a funkciót: Beállítások &gt; Speciális &gt; Diagnosztikai és használati adatok automatikus elküldése a Google-nak.<ph name="END_PARAGRAPH3" />
@@ -5516,6 +5531,7 @@
 <translation id="8426713856918551002">Engedélyezés</translation>
 <translation id="8427292751741042100">beágyazva bármilyen más gazdagépen</translation>
 <translation id="8428213095426709021">Beállítások</translation>
+<translation id="8428271547607112339">Iskolai fiók felvétele</translation>
 <translation id="8428628598981198790">Biztonsági hardverkulcsa nem használható ezzel a webhellyel</translation>
 <translation id="84297032718407999"><ph name="LOGOUT_TIME_LEFT" /> múlva kijelentkezteti a rendszer</translation>
 <translation id="8431190899827883166">Koppintások megjelenítése</translation>
@@ -5579,6 +5595,7 @@
 <translation id="851263357009351303"><ph name="HOST" /> mindig mutathasson képeket</translation>
 <translation id="8513108775083588393">Automatikus forgatás</translation>
 <translation id="8514746246728959655">Próbálkozzon másik biztonsági hardverkulccsal</translation>
+<translation id="851960115758509829">Az Ön alkalmazásai, beállításai és egyéb személyre szabott elemei szinkronizálódnak minden olyan Chrome OS-eszközön, amelyen Google-fiókjával van bejelentkezve.</translation>
 <translation id="8521475323816527629">Gyorsan eljuthat alkalmazásaihoz</translation>
 <translation id="8523493869875972733">Módosítások megtartása</translation>
 <translation id="8523849605371521713">Házirend adta hozzá</translation>
@@ -5860,11 +5877,13 @@
 <translation id="885701979325669005">Tárolás</translation>
 <translation id="8859057652521303089">Nyelv kiválasztása:</translation>
 <translation id="8859174528519900719">Subframe: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Szülői fiók</translation>
 <translation id="8862003515646449717">Váltás gyors böngészőre</translation>
 <translation id="8863753581171631212">Link megnyitása új <ph name="APP" />-ablakban</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> megosztása a következővel: <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">A(z) <ph name="EMAIL" /> fiókot eltávolítottuk erről az eszközről</translation>
 <translation id="8867228703146808825">Buildadatok másolása a vágólapra</translation>
+<translation id="8868333925931032127">Demó mód indítása…</translation>
 <translation id="8868626022555786497">Használatban</translation>
 <translation id="8870413625673593573">Mostanában bezárt</translation>
 <translation id="8871551568777368300">A rendszergazda rögzítette</translation>
@@ -5943,6 +5962,7 @@
 <translation id="8966870118594285808">Lap újramegnyitása, ha véletlenül bezárja</translation>
 <translation id="8967866634928501045">A megjelenítéshez nyomja le az Alt+Shift+A billentyűparancsot</translation>
 <translation id="8968766641738584599">Kártya mentése</translation>
+<translation id="8971800409073702505">A(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> nem tudja ellenőrizni a jelszavait. Próbálja újra 24 óra múlva, vagy <ph name="BEGIN_LINK" />ellenőrizze jelszavait a Google-fiókjában<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Vezérlő</translation>
 <translation id="8972513834460200407">Kérdezze meg a hálózati rendszergazdától, hogy a tűzfal nem tiltja-e le a Google szervereiről érkező letöltéseket.</translation>
 <translation id="8973557916016709913">Nagyítási szint eltávolítása</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index 7326c03..2edd842 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Հասանելի սարքեր</translation>
 <translation id="1042174272890264476">Ձեր համակարգչում նաև առկա է <ph name="SHORT_PRODUCT_NAME" />-ի ներկառուցված RLZ գրադարանը: RLZ-ը նշանակում է ոչ եզակի, անձը չնույնացնող ներդիր` որոնումների և <ph name="SHORT_PRODUCT_NAME" />-ի օգտագործման չափումների համար` նախագծված հատուկ գովազդային արշավի կողմից: Այս պիտակները երբեմն ցուցադրվում են Google որոնման հարցումների մեջ <ph name="PRODUCT_NAME" />-ում:</translation>
 <translation id="1043818413152647937">Նաև մաքրե՞լ այս հավելվածների տվյալները</translation>
+<translation id="1045448422538531528">Ավելացնել խմբում</translation>
 <translation id="1046635659603195359">Դուք արդեն կարգավորել եք Voice Match-ը այլ սարքում: Նախորդ ձայնագրությունները կարող են օգտագործվել ձեր ձայնի նմուշն այս սարքում ստեղծելու համար: Կարգավորումը կխլի մոտ մեկ րոպե:</translation>
 <translation id="104710386808485638">Վերագործարկե՞լ Լինուքսը</translation>
 <translation id="1047431265488717055">Պատճենել հղման տեքստը</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Միշտ արգելափակել տեսախցիկի մուտքը</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" />-ը ցանկանում է վերականգնել ձեր Chrome-ի կարգավորումները իրենց բնօրինակ կանխադրվածների: Այս գործողության հետևանքով կվերակայվի ձեր գլխավոր էջը, նոր ներդիրի էջը և որոնման համակարգը, կանջատվեն ընդլայնումները, և բոլոր ներդիրները կապաամրացվեն: Կջնջվեն նաև այլ ժամանակավոր և քեշավորված տվյալներ, ինչպես օրինակ՝ քուքիները, բովանդակության և կայքի տվյալները:</translation>
+<translation id="1084096383128641877">Եթե հեռացնեք այս գաղտնաբառը, ձեր հաշիվը չի ջնջվի <ph name="DOMAIN" /> կայքից։ Անվտանգության նկատառումներով փոխեք գաղտնաբառը կամ ջնջեք հաշիվը <ph name="DOMAIN_LINK" /> կայքում։</translation>
 <translation id="1084824384139382525">Պատճենել հղումների հաս&amp;ցեները</translation>
 <translation id="1085697365578766383">Չհաջողվեց մեկնարկել վիրտուալ մեքենան: Նորից փորձեք:</translation>
 <translation id="1090126737595388931">Հետնաշերտում աշխատող հավելվածներ չկան</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Անվտանգության ստուգումը երեկ է արվել</translation>
 <translation id="1260451001046713751">Միշտ թույլ տալ ելնող պատուհաններն ու վերահասցեավորումը <ph name="HOST" /> կայքում</translation>
 <translation id="126156426083987769">Դեմո ռեժիմում աշխատող սարքերի արտոնագրերի հետ խնդիր է առաջացել։</translation>
+<translation id="1263490604593716556">Հաշվի կառավարիչներ՝ <ph name="FIRST_PARENT_EMAIL" /> և <ph name="SECOND_PARENT_EMAIL" />։ Այս սարքում հիմնական հաշվից դուրս գրվելու համար սեղմեք ժամի վրա ձեր էկրանին։ Բացվող ընտրացանկում սեղմեք «Դուրս գալ»։</translation>
 <translation id="126710816202626562">Թարգմանության լեզուն՝</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Դադարեցնել</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Կայք</translation>
 <translation id="15662109988763471">Նշված տպիչը հասանելի չէ կամ ճիշտ չէ տեղադրված: Ստուգեք ձեր տպիչը կամ փորձեք ընտրել մեկ այլ տպիչ:</translation>
 <translation id="1567387640189251553">Գաղտնաբառի մուտքագրումից հետո այլ ստեղնաշար է միացվել։ Հնարավոր է՝ ինչ-որ մեկը փորձում է իմանալ, թե ինչ ստեղներ եք սեղմում։</translation>
-<translation id="1567750922576943685">Ձեր ինքնության հաստատումն օգնում է պաշտպանել ձեր անձնական տվյալները</translation>
 <translation id="1567993339577891801">JavaScript Console</translation>
 <translation id="1568323446248056064">Բացել էկրանի կարգավորումները</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (հյուր)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Արվեստ</translation>
 <translation id="1697686431566694143">Փոփոխել ֆայլը</translation>
 <translation id="1698122934742150150">Միայն ընթացիկ ինկոգնիտո աշխատաշրջանում</translation>
-<translation id="1698650002254827833">Չհաջողվեց բեռնել հավելվածների ցանկը։ Նորից փորձեք:</translation>
 <translation id="1700079447639026019">Կայքեր, որոնք երբեք չեն կարող օգտագործել քուքիներ</translation>
 <translation id="1701062906490865540">Հեռացնել այս անձին</translation>
 <translation id="1703331064825191675">Երբեք մի՛ անհանգստացեք ձեր գաղտնաբառերի համար</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Շարունակել</translation>
 <translation id="2173302385160625112">Ստուգեք կապը</translation>
 <translation id="2173801458090845390">Ավելացնել սարքին հայտի ID-ն</translation>
+<translation id="2174948148799307353">Հաշվի կառավարիչ՝ <ph name="PARENT_EMAIL" />։ Այս սարքում հիմնական հաշվից դուրս գրվելու համար սեղմեք ժամի վրա ձեր էկրանին։ Բացվող ընտրացանկում սեղմեք «Դուրս գալ»։</translation>
 <translation id="2175607476662778685">Արագ գործարկման գոտի</translation>
 <translation id="217576141146192373">Չհաջողվեց ավելացնել տպիչը: Ստուգեք դրա կարգավորումները և նորից փորձեք:</translation>
 <translation id="2177950615300672361">Ինկոգնիտո ներդիր` <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Տեքստի ստվերը</translation>
 <translation id="2445081178310039857">Հարկավոր է ընդլայնման արմատային գրացուցակը:</translation>
 <translation id="2445484935443597917">Ստեղծել նոր պրոֆիլ</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> հավելվածն ուզում է հաստատել ձեր ինքնությունը</translation>
 <translation id="2448312741937722512">Տեսակ</translation>
 <translation id="2450223707519584812">Դուք չեք կարող օգտատերեր ավելացնել, քանի որ Google API-ի բանալիները բացակայում են: Մանրամասների համար անցեք <ph name="DETAILS_URL" />:</translation>
 <translation id="2450849356604136918">Դիտման ակտիվ ռեժիմներ չկան</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Անցնել <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Արագ և ապահով դիտարկիչ՝ ստեղծված ժամանակակից համացանցի համար:</translation>
 <translation id="2949289451367477459">Տեղորոշման տվյալների օգտագործում: Թույլ տվեք հավելվածներին և ծառայություններին օգտագործել սարքի գտնվելու վայրի մասին տվյալները: Google-ը պարբերաբար հավաքում և անանուն օգտագործում է տեղադրության մասին տվյալները՝ տեղորոշման ճշգրտությունը բարելավելու համար: <ph name="BEGIN_LINK1" />Իմանալ ավելին<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Գրանցել ինձ</translation>
 <translation id="2956070239128776395">Բաժինը տեղակայված է խմբում՝ <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Որևէ կայքի թույլ չտալ փոփոխել ձեր սարքի ֆայլերը և պանակները</translation>
 <translation id="2958721676848865875">Նախազգուշացում ընդլայնման մասին</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Կանխադրված դեղին ավատար</translation>
 <translation id="3141318088920353606">Խոսեք...</translation>
 <translation id="3141917231319778873">Տվյալ հարցումը հետևյալ սարքում չի աջակցվում՝ «<ph name="DEVICE_NAME" />»:</translation>
+<translation id="3142562627629111859">Նոր խումբ</translation>
 <translation id="3143515551205905069">Չեղարկել համաժամացումը</translation>
 <translation id="3143754809889689516">Նվագարկել սկզբից</translation>
 <translation id="3144647712221361880">Բացել հղումը որպես</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Բեժ</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ապարատային աջակցում)</translation>
 <translation id="3161522574479303604">Բոլոր լեզուները</translation>
+<translation id="3162853326462195145">Ուսումնական հաշիվ</translation>
 <translation id="3162899666601560689">Ձեր աշխատանքը բարելավելու նպատակով կայքերը կարող են օգտագործել քուքիներ, օրինակ, որպեսզի պահեն ձեր ընտրած ապրանքները զամբյուղում կամ հիշեն ձեր մուտքը հաշիվ։</translation>
 <translation id="3163201441334626963">Անհայտ <ph name="PRODUCT_ID" /> արտադրանք <ph name="VENDOR_ID" /> վաճառողի կողմից</translation>
 <translation id="3164329792803560526"><ph name="APP_NAME" />-ին հասանելի է այս ներդիրը</translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Թարմացրեք սարքը մեկ օրվա ընթացքում}one{Թարմացրեք սարքը # օրվա ընթացքում}other{Թարմացրեք սարքը # օրվա ընթացքում}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – Ցանցի սխալ</translation>
 <translation id="3248902735035392926">Անվտանգությունը կարևոր է: <ph name="BEGIN_LINK" />Ստուգեք ձեր ընդլայնումները<ph name="END_LINK" />:</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Վկայագրի մաս չի կազմում&gt;</translation>
 <translation id="3253225298092156258">Հասանելի չէ</translation>
 <translation id="3253448572569133955">Անհայտ հաշիվ</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Սեղմելով «Ընդունել և շարունակել» կոճակը՝ դուք ընդունում եք Google-ի վերոնշյալ ծառայությունների մշակման պայմանները։</translation>
 <translation id="3399432415385675819">Ծանուցումները կանջատվեն</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" />x<ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Հց), միահյուսված</translation>
+<translation id="3402585168444815892">Գրանցում դեմո ռեժիմում</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Այս կայքի համար գաղտնաբառեր չեն պահվել</translation>
 <translation id="3405664148539009465">Հարմարեցնել տառատեսակները</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android հեռախոս</translation>
 <translation id="3470442499439619530">Հեռացնել այս պրոֆիլը</translation>
 <translation id="3471876058939596279">HDMI և USB Type-C միացքները միաժամանակ չեն կարող օգտագործվել տեսապատկերի համար։ Օգտագործեք այլ տեսամիացք։</translation>
+<translation id="3473241910002674503">Պլանշետի ռեժիմում կոճակների օգնությամբ անցեք սկիզբ, հետ և մի հավելվածից մյուսը։</translation>
 <translation id="3473479545200714844">Էկրանի խոշորացույց</translation>
 <translation id="3475843873335999118">Ձեր մատնահետքը չի ճանաչվում։ Մուտքագրեք ձեր գաղտնաբառը։</translation>
 <translation id="3476303763173086583">Օգտագործման և ախտորոշման տվյալների ուղարկում Օգնեք բարելավել ձեր երեխայի Android-ի աշխատանքը՝ Google-ին ավտոմատ ուղարկելով ախտորոշման, ինչպես նաև սարքի ու հավելվածի օգտագործման տվյալներ: Այս տեղեկությունները չեն օգտագործվի ձեր երեխային նույնականացնելու համար և կօգնեն բարելավել համակարգի ու հավելվածի աշխատանքի կայունությունը: Հավաքված տեղեկությունների մի մասը օգտակար կլինի Android մշակողների և այլ գործընկերների համար։ Այս <ph name="BEGIN_LINK1" />կարգավորումը<ph name="END_LINK1" /> պարտադրված է սեփականատիրոջ կողմից: Սեփականատերը կարող է թույլատրել, որ այս սարքի ախտորոշման և օգտագործման տվյալներն ուղարկվեն Google-ին: Եթե Վեբ որոնման և հավելվածների պատմությունը միացված է, այս տվյալները կպահվեն երեխայի Google հաշվում։ <ph name="BEGIN_LINK2" />Մանրամասն<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Այս անվտանգության բանալու մատնահետքերը</translation>
 <translation id="3973660817924297510">Գաղտնաբառերը ստուգվում են (<ph name="CHECKED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Չհաջողվեց կապվել սերվերի հետ այս տիրույթի համար</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" />-ը չի կարող ստուգել ձեր գաղտնաբառերը։ Փորձեք ավելի ուշ։</translation>
 <translation id="3976108569178263973">Հասանելի տպիչներ չկան</translation>
 <translation id="397703832102027365">Ավարտվում է…</translation>
 <translation id="3977886311744775419">Ավտոմատ թարմացումները այս տեսակի ցանցում չեն ներբեռնվում, սակայն դուք կարող եք ձեռքով ստուգել թարմացումների առկայությունը:</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Այս էջը պարունակում է տարրեր հետևյալ կայքերից, որոնք հետագծում են ձեր տեղադրությունը՝</translation>
 <translation id="4068776064906523561">Պահված մատնահետքեր</translation>
 <translation id="407173827865827707">Սեղմելուց հետո</translation>
+<translation id="4073520450811433493">Կարգավորումների համաժամացում</translation>
 <translation id="4074900173531346617">Էլփոստի ստորագրման վկայագիր</translation>
 <translation id="407520071244661467">Մասշտաբ</translation>
 <translation id="4075639477629295004">Չհաջողվեց հեռարձակել <ph name="FILE_NAME" /> ֆայլը</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Փափկամազիկ</translation>
 <translation id="4423376891418188461">Վերականգնել կարգավորումները</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, ձեր ադմինիստրատորը պահանջում է, որ փոխեք ձեր գաղտնաբառը:</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" />-ը չի կարող ստուգել ձեր գաղտնաբառերը։ 24 ժամ հետո նորից փորձեք։</translation>
 <translation id="4429030830601238961">Այս տվյալները չեն տեղադրվի, քանի որ խախտում են կազմակերպության անվտանգության կանոնները։</translation>
 <translation id="4430019312045809116">Ձայնի ուժգնություն</translation>
 <translation id="4430369329743628066">Էջանիշն ավելացվեց</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Ուզո՞ւմ եք, որ այս հավելվածն ավտոմատ մեկնարկվի համակարգիչը միացնելիս:</translation>
 <translation id="4441147046941420429">Շարունակելու համար հանեք անվտանգության բանալին սարքից, ապա նորից տեղադրեք ու հպեք դրան:</translation>
 <translation id="444134486829715816">Ընդարձակել…</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" />-ը կարող է ստուգել ձեր գաղտնաբառերը, երբ մտնեք Google հաշիվ։</translation>
 <translation id="4442424173763614572">DNS սերվերը որոնելիս սխալ տեղի ունեցավ</translation>
 <translation id="4443536555189480885">&amp;Օգնություն</translation>
 <translation id="4444304522807523469">Մուտք գործել փաստաթղթի տեսածրիչներ, որոնց կցված են USB-ի կամ տեղային ցանցի միջոցով</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Դուք կարող եք սկանավորել այս կոդը հեռախոսի QR սկաների կամ տեսախցիկի որոշ հավելվածների միջոցով:</translation>
 <translation id="4477015793815781985">Սկզբում սեղմեք Ctrl, Alt կամ ⌘</translation>
 <translation id="4478664379124702289">Պահել հղում&amp;ը որպես…</translation>
+<translation id="4478777936860197922">Պահված գաղտնաբառեր չկան։ <ph name="IDS_SHORT_PRODUCT_NAME" />-ը կարող է ստուգել ձեր գաղտնաբառերը, երբ պահում եք դրանք։</translation>
 <translation id="4479424953165245642">Կարգավորել կրպակ-հավելվածները</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Վիրտուալ մեքենան կարգավորվում է: Սա կարող է մի քանի րոպե տևել։</translation>
 <translation id="4480590691557335796">Chrome-ը կարող է գտնել վնասաբեր ծրագիրը ձեր համակարգչում և ջնջել այն</translation>
 <translation id="4481530544597605423">Ապազուգակցված սարքեր</translation>
+<translation id="4488107067273194838">Կարգավորումից հետո բացել դիտարկիչի համաժամացման կարգավորումները</translation>
 <translation id="4488502501195719518">Ջնջե՞լ բոլոր տվյալները</translation>
 <translation id="4495419450179050807">Ցույց չտալ այս էջում</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" />՝ ավտոմատ արգելափակվել է</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Չտեղադրել</translation>
 <translation id="4850669014075537160">Ոլորում</translation>
 <translation id="4850886885716139402">Տեսք</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" />-ը կտեղեկացնի ձեզ, երբ կոտրված գաղտնաբառ օգտագործեք։</translation>
 <translation id="4853020600495124913">Բացել &amp;նոր պատուհանում</translation>
 <translation id="4854317507773910281">Հաստատման համար ընտրեք ծնողի հաշիվը</translation>
 <translation id="485480310608090163">Այլ կարգավորումներ և թույլտվություններ</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN կոդում անվավեր նիշեր կան</translation>
 <translation id="4871370605780490696">Ավելացնել էջանիշ</translation>
 <translation id="4871719318659334896">Փակել խումբը</translation>
+<translation id="4871852311166078968">Ավելացնել խմբում</translation>
 <translation id="4873312501243535625">Մեդիա ֆայլի ստուգիչ</translation>
 <translation id="4876273079589074638">Օգնեք մեր մշակողներին ուսումնասիրել և շտկել այս խափանումը: 
 Նկարագրեք ձեր գործողությունները: Յուրաքանչյուր դետալ կարևոր է:</translation>
@@ -2968,7 +2981,6 @@
 <translation id="4992473555164495036">Ադմինիստրատորն սահմանափակել է հասանելի ներածման եղանակները։</translation>
 <translation id="4994474651455208930">Թույլ տալ կայքերի գրանցումը որպես հաղորդակարգերի կանխադրված մշակիչներ</translation>
 <translation id="4994754230098574403">Կարգավորում</translation>
-<translation id="4996978546172906250">Համօգտագործման միջոցը`</translation>
 <translation id="4997086284911172121">Կապ չկա</translation>
 <translation id="4997384734315285248">Հեռացնել Plugin VM-ը</translation>
 <translation id="4998430619171209993">Միացված է</translation>
@@ -3068,7 +3080,6 @@
 <translation id="5135085122826131075">Օգտագործեք Օգնականը՝ ասելով «Ok Google»:</translation>
 <translation id="5135533361271311778">Չհաջողվեց էջանիշ ստեղծել:</translation>
 <translation id="5137501176474113045">Ջնջել այս կետը</translation>
-<translation id="5138982052046316113">Փոխել Լինուքսի սկավառակի չափը</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, որոնում <ph name="DEFAULT_SEARCH_ENGINE_NAME" />-ում</translation>
 <translation id="5139823398361067371">Մուտքագրեք անվտանգության բանալու PIN կոդը: Եթե չգիտեք PIN կոդը, զրոյացրեք անվտանգության բանալու կարգավորումները:</translation>
 <translation id="5139955368427980650">&amp;Բացել</translation>
@@ -3522,6 +3533,7 @@
 <translation id="5739235828260127894">Պահանջվում է հաստատում: <ph name="LINK_BEGIN" />Մանրամասն<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Շատ մեծ</translation>
 <translation id="574209121243317957">Ձայնի մակարդակը</translation>
+<translation id="5745136023067925867">Ստացեք <ph name="DEVICE_TYPE" />-ի հետ կապված խորհուրդներ, առաջարկներ և նորություններ, ինչպես նաև կիսվեք ձեր դիտողություններով։</translation>
 <translation id="5746169159649715125">Պահել որպես PDF</translation>
 <translation id="5747552184818312860">Սպառվում է</translation>
 <translation id="5747785204778348146">Մշակողների վարկած - անկայուն</translation>
@@ -3934,7 +3946,6 @@
 <translation id="6291953229176937411">&amp;Ցույց տալ Finder-ում</translation>
 <translation id="6295158916970320988">Բոլոր կայքերը</translation>
 <translation id="6295855836753816081">Պահում...</translation>
-<translation id="629730747756840877">Հաշիվ</translation>
 <translation id="6298962879096096191">Android հավելվածներ տեղադրելու համար օգտագործել Google Play-ը</translation>
 <translation id="630065524203833229">Ե&amp;լք</translation>
 <translation id="6300718114348072351">Չհաջողվեց ավտոմատ կարգավորել <ph name="PRINTER_NAME" /> տպիչը։ Նշեք տպիչի վերաբերյալ լրացուցիչ մանրամասներ։ <ph name="LINK_BEGIN" />Իմանալ ավելին<ph name="LINK_END" /></translation>
@@ -4340,7 +4351,6 @@
 <translation id="6865598234501509159">Էջը <ph name="LANGUAGE" /> չէ</translation>
 <translation id="6865708901122695652">WebRTC իրադարձությունների մատյաններ (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Գունային ջերմություն</translation>
-<translation id="6870888490422746447">Ընտրեք, թե որ հավելվածին ուղարկել`</translation>
 <translation id="6871644448911473373">OCSP պատասխանիչ՝ <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Ձեր մուտքագրած գաղտնաբառը չի ընդունվում սերվերի կողմից:</translation>
 <translation id="6876155724392614295">Հեծանիվ</translation>
@@ -4433,6 +4443,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – Գործողությունների մատյան</translation>
 <translation id="6997707937646349884">Ձեր սարքերում՝</translation>
 <translation id="6998793565256476099">Սարքը գրանցել տեսակոնֆերանսների համար</translation>
+<translation id="6999956497249459195">Նոր խումբ</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> տպիչը միացել է, բայց այն հարկավոր է կարգավորել</translation>
 <translation id="7000347579424117903">Սկզբում սեղմեք Ctrl, Alt, կամ Search</translation>
 <translation id="7001036685275644873">Լինուքսի հավելվածների ու ֆայլերի պահուստավորում</translation>
@@ -4731,6 +4742,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Ստեղծեք թեժ կետ <ph name="PHONE_NAME" /> հեռախոսում</translation>
 <translation id="7401778920660465883">Փակել այս հաղորդագրությունը</translation>
+<translation id="7403642243184989645">Ռեսուրսների ներբեռնում</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Անվտանգության ստուգումն արվել է 1 ժամ առաջ}one{Անվտանգության ստուգումն արվել է {NUM_HOURS} ժամ առաջ}other{Անվտանգության ստուգումն արվել է {NUM_HOURS} ժամ առաջ}}</translation>
 <translation id="740624631517654988">Ելնող պատուհանն արգելափակված է</translation>
 <translation id="7407430846095439694">Ներմուծել և կապակցել</translation>
@@ -4967,6 +4979,7 @@
 <translation id="7716781361494605745">Netscape-ի հավաստագրման կենտրոնի քաղաքականության URL</translation>
 <translation id="7717014941119698257">Ներբեռնում` <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Ստուգել թարմացումները</translation>
+<translation id="7719070594859855691">Հասանելի դարձնել տեսախցիկը</translation>
 <translation id="7719367874908701697">Էջի մասշտաբավորում</translation>
 <translation id="7721179060400456005">Թույլատրել պատուհանի ցուցադրումը տարբեր սարքերում</translation>
 <translation id="7722040605881499779">Թարմացման համար հարկավոր է <ph name="NECESSARY_SPACE" /></translation>
@@ -4981,7 +4994,6 @@
 <translation id="7744047395460924128">Տեսնել ձեր տպումների պատմությունը</translation>
 <translation id="7744192722284567281">Հայտնաբերվել է տվյալների արտահոսքում</translation>
 <translation id="7750228210027921155">Նկար նկարի մեջ</translation>
-<translation id="7751229152614300329">Անվտանգ դիտարկումը թարմացված է և պաշտպանում է ձեզ վտանգավոր կայքերից ու ներբեռնումներից</translation>
 <translation id="7751260505918304024">Ցույց տալ բոլորը</translation>
 <translation id="7754704193130578113">Յուրաքանչյուր ֆայլ ներբեռնելուց առաջ հարցնել որտեղ պահել</translation>
 <translation id="7755287808199759310">Այն կարող է արգելահանել ձեր ծնողը</translation>
@@ -5068,6 +5080,7 @@
     <ph name="BEGIN_BOLD" />Ուշադրություն.<ph name="END_BOLD" /> գործողության ժամանակ համակարգը կվերաբեռնվի:</translation>
 <translation id="7828731929332799387">Երրորդ կողմի բոլոր քուքիներն ու կայքերի տվյալները կջնջվեն։ Շարունակե՞լ։</translation>
 <translation id="7829298379596169484">Ձայնային մուտքի մատչում</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" />-ը չի կարող ստուգել ձեր գաղտնաբառերը։ Ստուգեք ինտերնետ կապը։</translation>
 <translation id="7829877209233347340">Խնդրեք ծնողին մուտք գործել հաշիվ և ուսումնական հաշիվ ավելացնելու թույլտվություն տալ</translation>
 <translation id="7830594666202422257">Միացնել Լինուքսին</translation>
 <translation id="7831491651892296503">Չհաջողվեց կազմաձևել ցանցը</translation>
@@ -5289,6 +5302,7 @@
 <translation id="8107015733319732394">Google Play Խանութը տեղադրվում է <ph name="DEVICE_TYPE" /> սարքում։ Սա կարող է մի քանի րոպե տևել։</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Երրորդ կողմի քուքիներ չկան}=1{Երրորդ կողմի 1 քուքի արգելափակված է}one{Երրորդ կողմի # քուքի արգելափակված է}other{Երրորդ կողմի # քուքի արգելափակված է}}</translation>
 <translation id="810875025413331850">Մոտակա սարքեր չեն գտնվել:</translation>
+<translation id="8114199541033039755">Պլանշետի ռեժիմում կոճակների օգնությամբ անցեք սկիզբ, հետ և մի հավելվածից մյուսը։ Ակտիվ է, երբ ChromeVox-ը կամ «Ավտոմատ սեղմումներ» գործառույթը միացված է։</translation>
 <translation id="8114875720387900039">Հորիզոնական տրոհում</translation>
 <translation id="8116972784401310538">&amp;Էջանիշերի կառավարիչ</translation>
 <translation id="8117620576188476503">Կառավարեք միացումները, թարմացումներն ու կարգավորումները՝ օգտագործելով կարգավիճակի տողը: Ստեղնաշարի միջոցով անցնելու համար սեղմեք Alt + Shift + S:</translation>
@@ -5408,6 +5422,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" />-ն անջատել է մկնիկի նշորդը:</translation>
 <translation id="8264024885325823677">Այս կարգավորումը կառավարվում է ձեր ադմինիստրատորի կողմից։</translation>
 <translation id="8264718194193514834">«<ph name="EXTENSION_NAME" />» ընդլայնումը գործարկվել է լիաէկրան ռեժիմում:</translation>
+<translation id="826511437356419340">Միացվել է համատեսքի ռեժիմը։ Նավարկելու համար սահեցրեք մատը կամ սեղմեք Tab (եթե օգտագործում եք ստեղնաշար)։</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Սրանք ընդհանուր տեղեկություններ են ձեր սարքի և դրա օգտագործման (օրինակ՝ մարտկոցի լիցքի, համակարգի ու հավելվածների օգտագործման և սխալների) մասին: Տեղեկություններն օգտագործվելու են Android-ի ծառայությունների աշխատանքը բարելավելու համար: Հավաքած տեղեկությունների մի մասը օգտակար կլինի Android մշակողների և այլ գործընկերների համար և կօգնի բարելավել նաև նրանց հավելվածներն ու արտադրանքները:<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Այս գործառույթն անջատելու դեպքում ձեր սարքը նախկինի պես կուղարկի տվյալներ, որոնք անհրաժեշտ են հիմնական ծառայություններին (օրինակ՝ համակարգային թարմացումներին ու անվտանգությանը):<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Սարքի օգտատերը կարող է կառավարել այս գործառույթը՝ անցնելով Կարգավորումներ &gt; Լրացուցիչ &gt; Ավտոմատ ուղարկել ախտորոշման և օգտագործման տվյալները Google-ին:<ph name="END_PARAGRAPH3" />
@@ -5516,6 +5531,7 @@
 <translation id="8426713856918551002">Միացում</translation>
 <translation id="8427292751741042100">ներկառուցված է ցանկացած խնամորդում</translation>
 <translation id="8428213095426709021">Կարգավորումներ</translation>
+<translation id="8428271547607112339">Ավելացնել ուսումնական հաշիվ</translation>
 <translation id="8428628598981198790">Անվտանգության ձեր բանալին չի կարող օգտագործվել այս կայքի հետ</translation>
 <translation id="84297032718407999">Դուք դուրս կգրվեք <ph name="LOGOUT_TIME_LEFT" />ից</translation>
 <translation id="8431190899827883166">Ցույց տալ հպումները</translation>
@@ -5579,6 +5595,7 @@
 <translation id="851263357009351303">Միշտ թույլատրել <ph name="HOST" />-ին ցուցադրել պատկերները</translation>
 <translation id="8513108775083588393">Ինքնապտտում</translation>
 <translation id="8514746246728959655">Օգտագործեք անվտանգության մեկ այլ բանալի</translation>
+<translation id="851960115758509829">Ձեր հավելվածները, կարգավորումներն ու մյուս անհատականացումները կհամաժամացվեն բոլոր Chrome OS սարքերում, որոնցում մտած եք ձեր Google հաշիվ։</translation>
 <translation id="8521475323816527629">Արագ հասանելիություն ձեր հավելվածներին</translation>
 <translation id="8523493869875972733">Պահել փոփոխությունները</translation>
 <translation id="8523849605371521713">Ավելացվել է կորպորատիվ քաղաքականության համաձայն</translation>
@@ -5860,11 +5877,13 @@
 <translation id="885701979325669005">Պահեստ</translation>
 <translation id="8859057652521303089">Ընտրեք լեզուն`</translation>
 <translation id="8859174528519900719">Ենթաշրջանակ՝ <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Ծնողի հաշիվը</translation>
 <translation id="8862003515646449717">Ընտրեք արագ դիտարկիչ</translation>
 <translation id="8863753581171631212">Բացել հղումը <ph name="APP" />-ի նոր պատուհանում</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> ներդիրն ուղարկվում է <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> հասցեն հեռացվեց այս սարքից</translation>
 <translation id="8867228703146808825">Պատճենել կառուցման տվյալները սեղմատախտակին</translation>
+<translation id="8868333925931032127">Դեմո ռեժիմի մեկնարկ</translation>
 <translation id="8868626022555786497">Օգտագործվող</translation>
 <translation id="8870413625673593573">Վերջին փակվածները</translation>
 <translation id="8871551568777368300">Ամրացված է ադմինիստրատորի կողմից</translation>
@@ -5943,6 +5962,7 @@
 <translation id="8966870118594285808">Նորից բացեք ներդիրը, եթե այն պատահաբար փակել եք</translation>
 <translation id="8967866634928501045">Ցուցադրելու համար սեղմեք Alt + Shift + A ստեղները</translation>
 <translation id="8968766641738584599">Պահել քարտը</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" />-ը չի կարող ստուգել ձեր գաղտնաբառերը։ 24 ժամ հետո նորից փորձեք կամ <ph name="BEGIN_LINK" />ստուգեք ձեր Google հաշվի գաղտնաբառերը<ph name="END_LINK" />։</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Ճշտեք ձեր ցանցի ադմինիստրատորից՝ արդյոք հրապատը չի արգելափակում ներբեռնումները Google սերվերներից:</translation>
 <translation id="8973557916016709913">Չեղարկել մասշտաբավորումը</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 8774ec5..eb17f9f1 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Perangkat yang tersedia</translation>
 <translation id="1042174272890264476">Komputer Anda juga dilengkapi dengan perpustakaan RLZ <ph name="SHORT_PRODUCT_NAME" /> yang tertanam di dalamnya. RLZ menetapkan tag tak unik dan tidak dapat diidentifikasi secara pribadi untuk mengukur penelusuran dan penggunaan <ph name="SHORT_PRODUCT_NAME" /> yang didorong oleh kampanye promosi tertentu. Biasanya label ini muncul di kueri Google Penelusuran di <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Hapus data dari aplikasi ini juga?</translation>
+<translation id="1045448422538531528">Tambahkan ke grup</translation>
 <translation id="1046635659603195359">Sepertinya Anda sudah menyiapkan Voice Match dengan Asisten Google di perangkat lainnya. Rekaman sebelumnya tersebut dapat digunakan untuk membuat model suara di perangkat ini. Tindakan ini perlu waktu kurang dari satu menit.</translation>
 <translation id="104710386808485638">Mulai ulang Linux?</translation>
 <translation id="1047431265488717055">Salin Te&amp;ks Tautan</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Selalu blokir akses kamera</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> ingin memulihkan setelan Chrome ke default aslinya. Tindakan ini akan menyetel ulang beranda, halaman tab baru dan mesin telusur, menonaktfikan ekstensi, dan melepas pin semua tab. Tindakan ini juga akan menghapus data sementara dan data yang tersimpan dalam cache seperti cookie, konten, dan data situs.</translation>
+<translation id="1084096383128641877">Menghapus sandi ini tidak akan menghapus akun Anda di <ph name="DOMAIN" />. Ubah sandi Anda atau hapus akun Anda di <ph name="DOMAIN_LINK" /> untuk menjaganya tetap aman dari orang lain.</translation>
 <translation id="1084824384139382525">Salin ala&amp;mat link</translation>
 <translation id="1085697365578766383">Error saat memulai mesin virtual. Harap coba lagi.</translation>
 <translation id="1090126737595388931">Tidak Ada Apl Latar Belakang yang Sedang Berjalan</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Pemeriksaan keselamatan berjalan kemarin</translation>
 <translation id="1260451001046713751">Selalu izinkan pop-up dan pengalihan dari <ph name="HOST" /></translation>
 <translation id="126156426083987769">Terjadi masalah dengan lisensi perangkat mode demo.</translation>
+<translation id="1263490604593716556">Akun dikelola oleh <ph name="FIRST_PARENT_EMAIL" /> dan <ph name="SECOND_PARENT_EMAIL" />. Untuk logout dari akun utama di perangkat ini, klik waktu di layar Anda. Di menu yang muncul, klik "Logout".</translation>
 <translation id="126710816202626562">Bahasa terjemahan:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Berhenti</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Situs web</translation>
 <translation id="15662109988763471">Printer yang dipilih tidak tersedia atau tidak diinstal dengan benar. Periksa printer Anda atau coba pilih printer lainnya.</translation>
 <translation id="1567387640189251553">Keyboard yang berbeda telah terhubung sejak Anda terakhir memasukkan sandi. Keyboard tersebut mungkin mencoba mencuri ketukan tombol Anda.</translation>
-<translation id="1567750922576943685">Memverifikasi identitas membantu melindungi informasi pribadi Anda</translation>
 <translation id="1567993339577891801">Konsol JavaScript</translation>
 <translation id="1568323446248056064">Buka setelan perangkat layar</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Tamu)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Seni</translation>
 <translation id="1697686431566694143">Edit file</translation>
 <translation id="1698122934742150150">Sesi samaran saat ini saja</translation>
-<translation id="1698650002254827833">Daftar aplikasi tidak dapat dimuat. Coba lagi.</translation>
 <translation id="1700079447639026019">Situs yang tidak boleh menggunakan cookie</translation>
 <translation id="1701062906490865540">Hapus orang ini</translation>
 <translation id="1703331064825191675">Tidak perlu mengkhawatirkan sandi Anda</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Lanjutkan</translation>
 <translation id="2173302385160625112">Periksa koneksi internet Anda</translation>
 <translation id="2173801458090845390">Tambahkan ID permintaan untuk perangkat ini</translation>
+<translation id="2174948148799307353">Akun dikelola oleh <ph name="PARENT_EMAIL" />. Untuk logout dari akun utama di perangkat ini, klik waktu di layar Anda. Di menu yang muncul, klik "Logout".</translation>
 <translation id="2175607476662778685">Bilah luncur cepat</translation>
 <translation id="217576141146192373">Tidak dapat menambahkan printer. Harap periksa konfigurasi printer Anda, lalu coba lagi.</translation>
 <translation id="2177950615300672361">Tab Samaran: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Bayangan teks</translation>
 <translation id="2445081178310039857">Diperlukan direktori akar ekstensi.</translation>
 <translation id="2445484935443597917">Buat Profil Baru</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> ingin memverifikasi identitas Anda</translation>
 <translation id="2448312741937722512">Jenis</translation>
 <translation id="2450223707519584812">Anda tidak dapat menambahkan pengguna karena kunci API Google tidak ada. Buka <ph name="DETAILS_URL" /> untuk melihat detailnya.</translation>
 <translation id="2450849356604136918">Tidak ada tampilan aktif</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Buka <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Browser web yang cepat, sederhana, dan aman, yang diciptakan untuk web modern.</translation>
 <translation id="2949289451367477459">Gunakan lokasi. Izinkan aplikasi dan layanan yang memiliki izin akses lokasi untuk menggunakan lokasi perangkat ini. Google dapat mengumpulkan data lokasi secara berkala dan menggunakan data ini secara anonim untuk meningkatkan akurasi lokasi dan layanan berdasarkan lokasi. <ph name="BEGIN_LINK1" />Pelajari Lebih Lanjut<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Daftar</translation>
 <translation id="2956070239128776395">Bagian tersarang dalam grup: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Jangan izinkan situs apa pun mengedit file atau folder di perangkat Anda</translation>
 <translation id="2958721676848865875">Peringatan ekstensi pack</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Avatar kuning default</translation>
 <translation id="3141318088920353606">Mendengarkan...</translation>
 <translation id="3141917231319778873">Permintaan yang diberikan tidak didukung di: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Grup Baru</translation>
 <translation id="3143515551205905069">Batalkan sinkronisasi</translation>
 <translation id="3143754809889689516">Putar dari awal</translation>
 <translation id="3144647712221361880">Buka link sebagai</translation>
@@ -1625,6 +1628,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (dilindungi hardware)</translation>
 <translation id="3161522574479303604">Semua bahasa</translation>
+<translation id="3162853326462195145">Akun sekolah</translation>
 <translation id="3162899666601560689">Situs dapat menggunakan cookie untuk menyempurnakan pengalaman penjelajahan Anda, misalnya untuk membuat Anda tetap login atau untuk mengingat item di keranjang belanja Anda</translation>
 <translation id="3163201441334626963">Produk <ph name="PRODUCT_ID" /> tak dikenal dari vendor <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Membagikan tab ini ke <ph name="APP_NAME" /></translation>
@@ -1683,7 +1687,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Update perangkat dalam satu hari}other{Update perangkat dalam # hari}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Jaringan error</translation>
 <translation id="3248902735035392926">Keamanan adalah hal utama. Sempatkan untuk <ph name="BEGIN_LINK" />memeriksa ekstensi Anda sekarang<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Bukan Bagian Dari Sertifikat&gt;</translation>
 <translation id="3253225298092156258">Tidak tersedia</translation>
 <translation id="3253448572569133955">Akun tidak dikenal</translation>
@@ -1788,6 +1791,7 @@
 <translation id="3396800784455899911">Dengan mengklik tombol "Setuju dan lanjutkan", Anda menyetujui pemrosesan yang dijelaskan di atas terkait layanan Google ini.</translation>
 <translation id="3399432415385675819">Notifikasi akan dinonaktifkan</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - saling bertautan</translation>
+<translation id="3402585168444815892">Mendaftar dalam Mode Demo</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Tidak ada sandi yang tersimpan untuk situs ini</translation>
 <translation id="3405664148539009465">Sesuaikan font</translation>
@@ -1849,6 +1853,7 @@
 <translation id="3468999815377931311">Ponsel Android</translation>
 <translation id="3470442499439619530">Hapus Pengguna Ini</translation>
 <translation id="3471876058939596279">Port HDMI dan USB Type-C tidak dapat digunakan untuk video secara bersamaan. Gunakan port video yang berbeda.</translation>
+<translation id="3473241910002674503">Buka layar utama, kembali, dan alihkan aplikasi dengan tombol dalam mode tablet.</translation>
 <translation id="3473479545200714844">Kaca pembesar layar</translation>
 <translation id="3475843873335999118">Maaf, sidik jari Anda masih tidak dapat dikenali. Masukkan sandi Anda.</translation>
 <translation id="3476303763173086583">Kirim data penggunaan dan diagnostik. Bantu sempurnakan pengalaman Android Anak Anda dengan otomatis mengirim data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini tidak akan digunakan untuk mengidentifikasi anak Anda serta akan membantu sistem dan stabilitas aplikasi serta penyempurnaan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. <ph name="BEGIN_LINK1" />Setelan<ph name="END_LINK1" /> ini diterapkan oleh pemilik. Pemilik dapat memilih untuk mengirim data diagnostik dan penggunaan untuk perangkat ini ke Google. Jika setelan Aktivitas Web &amp; Aplikasi tambahan diaktifkan untuk anak Anda, data ini mungkin akan disimpan ke akun Google miliknya. <ph name="BEGIN_LINK2" />Pelajari Lebih Lanjut<ph name="END_LINK2" /></translation>
@@ -2273,6 +2278,7 @@
 <translation id="3971764089670057203">Sidik jari pada kunci keamanan ini</translation>
 <translation id="3973660817924297510">Memeriksa sandi (<ph name="CHECKED_PASSWORDS" /> dari <ph name="TOTAL_PASSWORDS" />) …</translation>
 <translation id="3975565978598857337">Menghubungi server untuk area yang gagal</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> tidak dapat memeriksa sandi Anda. Coba lagi nanti.</translation>
 <translation id="3976108569178263973">Tidak ada printer yang tersedia.</translation>
 <translation id="397703832102027365">Mengakhiri...</translation>
 <translation id="3977886311744775419">Update otomatis tidak didownload pada jenis jaringan ini, namun Anda dapat memeriksa update secara manual.</translation>
@@ -2336,6 +2342,7 @@
 <translation id="4068506536726151626">Halaman ini berisi elemen dari situs berikut yang melacak lokasi Anda:</translation>
 <translation id="4068776064906523561">Sidik jari yang disimpan</translation>
 <translation id="407173827865827707">Saat diklik</translation>
+<translation id="4073520450811433493">Sinkronisasi setelan</translation>
 <translation id="4074900173531346617">Sertifikat Penandatangan Email</translation>
 <translation id="407520071244661467">Skala</translation>
 <translation id="4075639477629295004">Tidak dapat mentransmisikan <ph name="FILE_NAME" />.</translation>
@@ -2572,6 +2579,7 @@
 <translation id="4421932782753506458">Si Manis</translation>
 <translation id="4423376891418188461">Pulihkan Setelan</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, administrator mewajibkan Anda untuk mengganti sandi.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> tidak dapat memeriksa sandi Anda. Coba lagi setelah 24 jam.</translation>
 <translation id="4429030830601238961">Data ini melanggar kebijakan keamanan organisasi Anda dan tidak dapat ditempel.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Bookmark ditambahkan</translation>
@@ -2584,6 +2592,7 @@
 <translation id="4441124369922430666">Ingin memulai aplikasi ini secara otomatis saat komputer diaktifkan?</translation>
 <translation id="4441147046941420429">Untuk melanjutkan, hapus kunci keamanan Anda dari perangkat, lalu masukkan kembali dan sentuh tombol</translation>
 <translation id="444134486829715816">Luaskan...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> dapat memeriksa sandi saat Anda login dengan Akun Google.</translation>
 <translation id="4442424173763614572">Pencarian DNS gagal</translation>
 <translation id="4443536555189480885">&amp;Bantuan</translation>
 <translation id="4444304522807523469">Mengakses pemindai dokumen yang terpasang melalui USB atau pada jaringan lokal</translation>
@@ -2610,11 +2619,13 @@
 <translation id="4476659815936224889">Untuk memindai kode ini, Anda dapat menggunakan aplikasi pemindai QR di ponsel, atau beberapa aplikasi kamera.</translation>
 <translation id="4477015793815781985">Sertakan Ctrl, Alt, atau ⌘</translation>
 <translation id="4478664379124702289">Simpan Tauta&amp;n Sebagai...</translation>
+<translation id="4478777936860197922">Tidak ada sandi yang tersimpan. <ph name="IDS_SHORT_PRODUCT_NAME" /> dapat memeriksa sandi Anda saat menyimpannya.</translation>
 <translation id="4479424953165245642">Kelola aplikasi kios</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Mengonfigurasi mesin virtual. Proses ini mungkin memerlukan waktu beberapa menit.</translation>
 <translation id="4480590691557335796">Chrome dapat menemukan software berbahaya di komputer dan menghapusnya</translation>
 <translation id="4481530544597605423">Perangkat tidak tersambung</translation>
+<translation id="4488107067273194838">Tinjau opsi sinkronisasi browser setelah penyiapan</translation>
 <translation id="4488502501195719518">Hapus semua data?</translation>
 <translation id="4495419450179050807">Jangan tampilkan pada halaman ini</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> diblokir secara otomatis</translation>
@@ -2856,6 +2867,7 @@
 <translation id="4849517651082200438">Jangan Dipasang</translation>
 <translation id="4850669014075537160">Gulir</translation>
 <translation id="4850886885716139402">Lihat</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> akan memberi tahu Anda saat Anda login dengan sandi yang telah dibobol</translation>
 <translation id="4853020600495124913">Buka di &amp;jendela baru</translation>
 <translation id="4854317507773910281">Pilih akun orang tua yang akan memberi persetujuan</translation>
 <translation id="485480310608090163">Setelan dan izin lainnya</translation>
@@ -2874,6 +2886,7 @@
 <translation id="4871322859485617074">PIN berisi karakter yang tidak valid</translation>
 <translation id="4871370605780490696">Tambahkan bookmark</translation>
 <translation id="4871719318659334896">Tutup grup</translation>
+<translation id="4871852311166078968">Tambahkan ke Grup</translation>
 <translation id="4873312501243535625">Pemeriksa File Media</translation>
 <translation id="4876273079589074638">Bantu engineer kami menyelidiki dan memperbaiki error ini. Cantumkan langkah-langkah yang tepat jika Anda bisa. Tidak ada detail yang sepele.</translation>
 <translation id="4876895919560854374">Kunci dan buka kunci layar</translation>
@@ -2965,7 +2978,6 @@
 <translation id="4992473555164495036">Administrator membatasi metode masukan yang tersedia.</translation>
 <translation id="4994474651455208930">Izinkan situs meminta untuk menjadi penangan default bagi protokol</translation>
 <translation id="4994754230098574403">Menyiapkan</translation>
-<translation id="4996978546172906250">Bagikan dengan</translation>
 <translation id="4997086284911172121">Tidak ada koneksi internet.</translation>
 <translation id="4997384734315285248">Uninstal Plugin VM</translation>
 <translation id="4998430619171209993">Aktif</translation>
@@ -3065,7 +3077,6 @@
 <translation id="5135085122826131075">Akses Asisten saat Anda mengucapkan "Ok Google".</translation>
 <translation id="5135533361271311778">Tidak dapat membuat item bookmark.</translation>
 <translation id="5137501176474113045">Hapus item ini</translation>
-<translation id="5138982052046316113">Mengubah Ukuran Disk Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, Penelusuran <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Masukkan PIN untuk kunci keamanan Anda. Jika tidak mengetahui PIN-nya, Anda perlu menyetel ulang kunci keamanan.</translation>
 <translation id="5139955368427980650">&amp;Buka</translation>
@@ -3517,6 +3528,7 @@
 <translation id="5739235828260127894">Menunggu verifikasi. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Sangat besar</translation>
 <translation id="574209121243317957">Tinggi nada</translation>
+<translation id="5745136023067925867">Dapatkan tips, penawaran, dan update <ph name="DEVICE_TYPE" />, serta berikan masukan</translation>
 <translation id="5746169159649715125">Simpan sebagai PDF</translation>
 <translation id="5747552184818312860">Kedaluwarsa</translation>
 <translation id="5747785204778348146">Pengembang - tidak stabil</translation>
@@ -3929,7 +3941,6 @@
 <translation id="6291953229176937411">&amp;Tampilkan di Penemu</translation>
 <translation id="6295158916970320988">Semua situs</translation>
 <translation id="6295855836753816081">Menyimpan...</translation>
-<translation id="629730747756840877">Akun</translation>
 <translation id="6298962879096096191">Menggunakan Google Play untuk memasang aplikasi Android</translation>
 <translation id="630065524203833229">K&amp;eluar</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> tidak dapat dikonfigurasi secara otomatis. Harap tentukan detail printer lanjutan. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation>
@@ -4335,7 +4346,6 @@
 <translation id="6865598234501509159">Halaman Tidak dalam Bahasa <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Log aktivitas WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Suhu warna</translation>
-<translation id="6870888490422746447">Pilih aplikasi untuk membagikan:</translation>
 <translation id="6871644448911473373">Penanggap OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Sandi yang Anda masukkan ditolak oleh server.</translation>
 <translation id="6876155724392614295">Sepeda</translation>
@@ -4428,6 +4438,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Log Aktivitas</translation>
 <translation id="6997707937646349884">Di perangkat Anda:</translation>
 <translation id="6998793565256476099">Daftarkan perangkat untuk konferensi video</translation>
+<translation id="6999956497249459195">Grup baru</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> terhubung namun membutuhkan konfigurasi</translation>
 <translation id="7000347579424117903">Sertakan Ctrl, Alt, atau Search</translation>
 <translation id="7001036685275644873">Mencadangkan file &amp; aplikasi Linux</translation>
@@ -4726,6 +4737,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Siapkan koneksi di <ph name="PHONE_NAME" /> Anda</translation>
 <translation id="7401778920660465883">Abaikan pesan ini</translation>
+<translation id="7403642243184989645">Mendownload Materi</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Pemeriksaan keselamatan berjalan 1 jam lalu}other{Pemeriksaan keselamatan berjalan {NUM_HOURS} jam lalu}}</translation>
 <translation id="740624631517654988">Pop-up diblokir</translation>
 <translation id="7407430846095439694">Impor dan Kaitkan</translation>
@@ -4962,6 +4974,7 @@
 <translation id="7716781361494605745">URL Kebijakan Otoritas Sertifikasi Netscape</translation>
 <translation id="7717014941119698257">Mendownload: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Periksa pembaruan</translation>
+<translation id="7719070594859855691">Beri akses untuk kamera</translation>
 <translation id="7719367874908701697">Perkecil/perbesar halaman</translation>
 <translation id="7721179060400456005">Izinkan jendela untuk meluaskan tampilan</translation>
 <translation id="7722040605881499779">Perlu mengupdate: <ph name="NECESSARY_SPACE" /></translation>
@@ -4976,7 +4989,6 @@
 <translation id="7744047395460924128">Lihat histori pencetakan Anda</translation>
 <translation id="7744192722284567281">Ditemukan di pelanggaran data</translation>
 <translation id="7750228210027921155">Picture-in-picture</translation>
-<translation id="7751229152614300329">Safe Browsing sudah versi terbaru dan melindungi Anda dari situs dan download berbahaya</translation>
 <translation id="7751260505918304024">Tampilkan semua</translation>
 <translation id="7754704193130578113">Tanyakan lokasi penyimpanan setiap file sebelum mendownload</translation>
 <translation id="7755287808199759310">Orang tua dapat membuka blokirnya untukmu</translation>
@@ -5064,6 +5076,7 @@
     <ph name="BEGIN_BOLD" />Catatan:<ph name="END_BOLD" />  Sistem akan reboot selama proses berlangsung.</translation>
 <translation id="7828731929332799387">Ini akan menghapus semua cookie dan data situs yang tersedia dalam konteks pihak ketiga. Ingin melanjutkan?</translation>
 <translation id="7829298379596169484">Mengakses masukan audio</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> tidak dapat memeriksa sandi Anda. Coba periksa koneksi internet Anda.</translation>
 <translation id="7829877209233347340">Minta orang tua login dan memberikan izin untuk menambahkan akun sekolah</translation>
 <translation id="7830594666202422257">Sambungkan ke Linux</translation>
 <translation id="7831491651892296503">Terjadi error saat mengonfigurasi jaringan</translation>
@@ -5286,6 +5299,7 @@
 <translation id="8107015733319732394">Menginstal Google Play Store di <ph name="DEVICE_TYPE" />. Tindakan ini dapat memakan waktu beberapa menit.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Tidak ada cookie pihak ketiga}=1{1 cookie pihak ketiga diblokir}other{# cookie pihak ketiga diblokir}}</translation>
 <translation id="810875025413331850">Tidak ditemukan perangkat di sekitar.</translation>
+<translation id="8114199541033039755">Buka layar utama, kembali, dan alihkan aplikasi dengan tombol dalam mode tablet. Diaktifkan saat ChromeVox atau Klik otomatis aktif.</translation>
 <translation id="8114875720387900039">Pisahkan horizontal</translation>
 <translation id="8116972784401310538">&amp;Pengelola bookmark</translation>
 <translation id="8117620576188476503">Kelola sambungan, update, dan setelan dengan menu status. Untuk membukanya dengan keyboard, tekan Alt + Shift + S.</translation>
@@ -5405,6 +5419,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> telah menonaktifkan kursor mouse Anda.</translation>
 <translation id="8264024885325823677">Setelan ini dikelola oleh administrator Anda.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" memicu layar penuh.</translation>
+<translation id="826511437356419340">Masuk ke mode ringkasan jendela. Geser untuk membuka, atau tekan tab jika menggunakan keyboard.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ini adalah informasi umum tentang perangkat ini dan cara penggunaannya (seperti tingkat daya baterai, aktivitas sistem dan aplikasi, serta error). Data ini akan digunakan untuk menyempurnakan Android. Beberapa informasi gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android, membuat aplikasi dan produk mereka menjadi lebih baik.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Menonaktifkan fitur ini tidak memengaruhi kemampuan perangkat ini dalam mengirim informasi yang diperlukan untuk layanan penting seperti keamanan dan update sistem.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Pemilik dapat mengontrol fitur ini dari Setelan &gt; Lanjutan &gt; Otomatis kirimkan data diagnostik dan penggunaan ke Google.<ph name="END_PARAGRAPH3" />
@@ -5513,6 +5528,7 @@
 <translation id="8426713856918551002">Mengaktifkan</translation>
 <translation id="8427292751741042100">disematkan di host mana saja</translation>
 <translation id="8428213095426709021">Setelan</translation>
+<translation id="8428271547607112339">Tambahkan akun sekolah</translation>
 <translation id="8428628598981198790">Kunci keamanan Anda tidak dapat digunakan dengan situs ini</translation>
 <translation id="84297032718407999">Anda akan logout dalam <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Show taps</translation>
@@ -5576,6 +5592,7 @@
 <translation id="851263357009351303">Selalu izinkan <ph name="HOST" /> menampilkan gambar</translation>
 <translation id="8513108775083588393">Putar otomatis</translation>
 <translation id="8514746246728959655">Coba kunci keamanan lain</translation>
+<translation id="851960115758509829">Aplikasi, setelan, dan penyesuaian Anda yang lain akan disinkronkan di semua perangkat Chrome OS yang login dengan Akun Google Anda.</translation>
 <translation id="8521475323816527629">Buka aplikasi dengan cepat</translation>
 <translation id="8523493869875972733">Simpan Perubahan</translation>
 <translation id="8523849605371521713">Ditambahkan sesuai kebijakan</translation>
@@ -5857,11 +5874,13 @@
 <translation id="885701979325669005">Penyimpanan</translation>
 <translation id="8859057652521303089">Pilih bahasa Anda:</translation>
 <translation id="8859174528519900719">Subframe: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Akun orang tua</translation>
 <translation id="8862003515646449717">Beralih ke browser cepat</translation>
 <translation id="8863753581171631212">Buka link di <ph name="APP" /> baru</translation>
 <translation id="8864055848767439877">Membagikan <ph name="TAB_NAME" /> ke <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> dihapus dari perangkat ini</translation>
 <translation id="8867228703146808825">Salin detail build ke papan klip</translation>
+<translation id="8868333925931032127">Memulai Mode Demo</translation>
 <translation id="8868626022555786497">Terpakai</translation>
 <translation id="8870413625673593573">Baru Saja Ditutup</translation>
 <translation id="8871551568777368300">Diberi pin oleh administrator</translation>
@@ -5940,6 +5959,7 @@
 <translation id="8966870118594285808">Membuka kembali tab jika Anda menutupnya secara tidak sengaja</translation>
 <translation id="8967866634928501045">Tekan Alt Shift A untuk menampilkan</translation>
 <translation id="8968766641738584599">Simpan kartu</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> tidak dapat memeriksa sandi Anda. Coba lagi setelah 24 jam atau <ph name="BEGIN_LINK" />periksa sandi di Akun Google Anda<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Hubungi administrator jaringan Anda untuk memastikan bahwa firewall tidak memblokir download dari server Google.</translation>
 <translation id="8973557916016709913">Menghapus tingkat zoom</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index f4d4c11..356d606 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Tæki í boði</translation>
 <translation id="1042174272890264476">RLZ-safn <ph name="SHORT_PRODUCT_NAME" /> er einnig innbyggt í tölvuna. RLZ úthlutar merki sem er ekki einkvæmt og ekki persónugreinanlegt til að mæla leitarvirkni og notkun <ph name="SHORT_PRODUCT_NAME" /> hjá tiltekinni auglýsingaherferð. Þessi merki birtast stundum í leitarfyrirspurnum á Google í <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Viltu líka hreinsa gögn úr þessum forritum?</translation>
+<translation id="1045448422538531528">Setja í hóp</translation>
 <translation id="1046635659603195359">Þú virðist þegar hafa sett upp Voice Match með Google hjálparanum í öðru tæki. Hægt er að nota þessar upptökur til að búa til raddlíkan í þessu tæki. Þetta ætti að taka innan við mínútu.</translation>
 <translation id="104710386808485638">Viltu endurræsa Linux?</translation>
 <translation id="1047431265488717055">Afrita tenglate&amp;xta</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Loka alltaf á myndavélaraðgang</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> vill endurstilla Chrome stillingarnar þínar í upprunaleg gildi. Þetta endurstillir upphafssíðuna, síðu nýrra flipa og leitarvélina, gerir viðbætur óvirkar og fjarlægir alla festa flipa. Þetta hreinsar líka skammtímagögn á borð við fótspor, innihald og vefsvæðagögn.</translation>
+<translation id="1084096383128641877">Reikningnum þínum á <ph name="DOMAIN" /> verður ekki eytt þó að þetta aðgangsorð verði fjarlægt. Breyttu aðgangsorðinu eða eyddu reikningnum þínum á <ph name="DOMAIN_LINK" /> til að halda honum öruggum fyrir öðrum.</translation>
 <translation id="1084824384139382525">Afrita slóð t&amp;engils</translation>
 <translation id="1085697365578766383">Villa við að ræsa sýndarvél. Reyndu aftur.</translation>
 <translation id="1090126737595388931">Engin bakgrunnsforrit í gangi</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Öryggisathugun var keyrð í gær</translation>
 <translation id="1260451001046713751">Leyfa alltaf sprettiglugga og framsendingar frá <ph name="HOST" /></translation>
 <translation id="126156426083987769">Vandamál með tækjaleyfi fyrir prufustillingu kom upp.</translation>
+<translation id="1263490604593716556"><ph name="FIRST_PARENT_EMAIL" /> og <ph name="SECOND_PARENT_EMAIL" /> stjórna þessum reikningi. Smelltu á tímann á skjánum til að skrá þig út af aðalreikningi þessa tækis. Á valmyndinni sem birtist smellirðu á „Skrá út“.</translation>
 <translation id="126710816202626562">Þýðingartungumál:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Stöðva</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Vefsvæði</translation>
 <translation id="15662109988763471">Valinn prentari er ekki í boði eða ekki rétt uppsettur. Athugaðu prentarann eða prófaðu að velja annan prentara.</translation>
 <translation id="1567387640189251553">Annað lyklaborð var tengt eftir að þú færðir síðast inn aðgangsorð. Það gæti verið að reyna að stela lyklaborðsinnslætti.</translation>
-<translation id="1567750922576943685">Staðfesting á auðkenni eykur vernd persónulegra upplýsinga</translation>
 <translation id="1567993339577891801">JavaScript-stjórnborð</translation>
 <translation id="1568323446248056064">Opna skjástillingar tækis</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (gestur)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">List</translation>
 <translation id="1697686431566694143">Breyta skrá</translation>
 <translation id="1698122934742150150">Aðeins yfirstandandi huliðslota</translation>
-<translation id="1698650002254827833">Ekki er hægt að sækja lista yfir forrit. Reyndu aftur.</translation>
 <translation id="1700079447639026019">Vefsvæði sem geta aldrei notað fótspor</translation>
 <translation id="1701062906490865540">Fjarlægja þennan notanda</translation>
 <translation id="1703331064825191675">Losnaðu undan áhyggjum af aðgangsorðum</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Áfram</translation>
 <translation id="2173302385160625112">Athugaðu nettenginguna</translation>
 <translation id="2173801458090845390">Bæta úthlutunarauðkenni við þetta tæki</translation>
+<translation id="2174948148799307353"><ph name="PARENT_EMAIL" /> stjórnar þessum reikningi. Smelltu á tímann á skjánum til að skrá þig út af aðalreikningi þessa tækis. Á valmyndinni sem birtist smellirðu á „Skrá út“.</translation>
 <translation id="2175607476662778685">Flýtiræsistika</translation>
 <translation id="217576141146192373">Ekki er hægt að bæta við prentara. Athugaðu stillingu prentarans og reyndu aftur.</translation>
 <translation id="2177950615300672361">Huliðsflipi: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Skuggi texta</translation>
 <translation id="2445081178310039857">Rótarmöppu viðbóta er krafist.</translation>
 <translation id="2445484935443597917">Búa til nýjan prófíl</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> vill staðfesta auðkenni þitt</translation>
 <translation id="2448312741937722512">Gerð</translation>
 <translation id="2450223707519584812">Þú getur ekki bætt inn notendum vegna þess að það vantar Google forritaskil. Sjá frekari upplýsingar á <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Engin virk yfirlit</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Fara á <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Fljótvirkur, einfaldur og öruggur vafri fyrir nútíma vefnotkun.</translation>
 <translation id="2949289451367477459">Nota staðsetningu. Leyfa forritum og þjónustu sem hafa staðsetningarheimild að nota staðsetningu þessa tækis. Google kann að safna staðsetningargögnum öðru hverju og nota þau gögn á nafnlausan hátt til að gera staðsetningar nákvæmari og bæta þjónustu sem styðst við staðsetningar. <ph name="BEGIN_LINK1" />Frekari upplýsingar<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Skrá mig</translation>
 <translation id="2956070239128776395">Hluti faldaður í hópi: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Ekki leyfa neinum vefsvæðum að breyta skrám eða möppum í tækinu</translation>
 <translation id="2958721676848865875">Viðvörun pakkaviðbótar</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Sjálfgefin gul notandamynd</translation>
 <translation id="3141318088920353606">Hlustar...</translation>
 <translation id="3141917231319778873">Beiðnin er ekki studd í: „<ph name="DEVICE_NAME" />“.</translation>
+<translation id="3142562627629111859">Nýr hópur</translation>
 <translation id="3143515551205905069">Hætta við samstillingu</translation>
 <translation id="3143754809889689516">Spila frá byrjun</translation>
 <translation id="3144647712221361880">Opna tengil sem</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Drapplitaður</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (byggist á vélbúnaði)</translation>
 <translation id="3161522574479303604">Öll tungumál</translation>
+<translation id="3162853326462195145">Skólareikningur</translation>
 <translation id="3162899666601560689">Vefsvæði geta notað fótspor til að bjóða þér upp á betri vefnotkun, til dæmis að vera áfram skráð(ur) inn eða muna hvað þú setur í innkaupakörfuna</translation>
 <translation id="3163201441334626963">Óþekkt vara <ph name="PRODUCT_ID" /> frá framleiðandanum <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Deilir þessum flipa með <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Uppfærðu tækið innan eins dags}one{Uppfærðu tækið innan # dags}other{Uppfærðu tækið innan # daga}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – netvilla</translation>
 <translation id="3248902735035392926">Öryggi skiptir máli. Gefðu þér tíma til að <ph name="BEGIN_LINK" />athuga með viðbæturnar þínar núna<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Ekki hluti af vottorði&gt;</translation>
 <translation id="3253225298092156258">Ekki tiltækt</translation>
 <translation id="3253448572569133955">Óþekktur reikningur</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Með því að smella á hnappinn „Samþykkja og halda áfram“ samþykkir þú þá úrvinnslu sem lýst er hér að ofan fyrir þessa Google þjónustu.</translation>
 <translation id="3399432415385675819">Tilkynningar verða gerðar óvirkar</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> herts) – samfléttað</translation>
+<translation id="3402585168444815892">Skráning í prufustillingu</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Engin aðgangsorð hafa verið vistuð fyrir þetta vefsvæði</translation>
 <translation id="3405664148539009465">Sérsníða letur</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android sími</translation>
 <translation id="3470442499439619530">Fjarlægja þennan notanda</translation>
 <translation id="3471876058939596279">Ekki er hægt að nota HDMI- og USB-tengi (C-gerð) fyrir vídeó á saman tíma. Nota annað vídeótengi.</translation>
+<translation id="3473241910002674503">Fara heim og til baka og skipta um forrit með hnöppum í spjaldtölvustillingu.</translation>
 <translation id="3473479545200714844">Skjástækkun</translation>
 <translation id="3475843873335999118">Ennþá tekst ekki að bera kennsl á fingrafarið þitt. Sláðu inn aðgangsorðið þitt.</translation>
 <translation id="3476303763173086583">Senda notkunar- og greiningargögn. Hjálpaðu okkur að bæta Android fyrir barnið þitt með því að senda sjálfkrafa greiningargögn, tækisgögn og upplýsingar um forritanotkun til Google. Þetta verður ekki notað til að bera kennsl á barnið þitt og mun stuðla að því að bæta stöðugleika kerfa og forrita auk annarra endurbóta. Sum uppsöfnuð gögn munu einnig gagnast forritum og samstarfsaðilum Google, til dæmis þróunaraðilum Android. Eigandi valdi þessa <ph name="BEGIN_LINK1" />stillingu<ph name="END_LINK1" />. Eigandi getur kosið að senda greiningar- og notkunargögn þessa tækis til Google. Ef kveikt er á ítarlegri vef- og forritavirkni fyrir barnið geta þessi gögn verið vistuð á Google reikningi barnsins. <ph name="BEGIN_LINK2" />Frekari upplýsingar<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Fingraför á þessum öryggislykli</translation>
 <translation id="3973660817924297510">Athugar aðgangsorð (<ph name="CHECKED_PASSWORDS" /> af <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Ekki náðist samband við þjón svæðis</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> getur ekki athugað aðgangsorðin þín. Reyndu aftur síðar.</translation>
 <translation id="3976108569178263973">Engir prentarar eru til staðar.</translation>
 <translation id="397703832102027365">Lýkur...</translation>
 <translation id="3977886311744775419">Þessi tegund netkerfis styður ekki sjálfvirkar uppfærslur en þú getur leitað að uppfærslum handvirkt.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Þessi síða inniheldur einingar af eftirfarandi vefsvæðum sem fylgjast með staðsetningu þinni:</translation>
 <translation id="4068776064906523561">Vistuð fingraför</translation>
 <translation id="407173827865827707">Við smell</translation>
+<translation id="4073520450811433493">Samstilling stillinga</translation>
 <translation id="4074900173531346617">Vottorð tölvupóstsundirritunar</translation>
 <translation id="407520071244661467">Breyta stærð</translation>
 <translation id="4075639477629295004">Ekki er hægt að senda <ph name="FILE_NAME" /> út.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Flippkisi</translation>
 <translation id="4423376891418188461">Endurheimta stillingar</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, kerfisstjóri krefst þess að þú breytir aðgangsorðinu þínu.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> getur ekki athugað aðgangsorðin þín. Reyndu aftur eftir sólarhring.</translation>
 <translation id="4429030830601238961">Þessi gögn brjóta gegn öryggisreglum fyrirtækisins þíns og því ekki hægt að líma þau.</translation>
 <translation id="4430019312045809116">Hljóðstyrkur</translation>
 <translation id="4430369329743628066">Bókamerki bætt við</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Viltu ræsa þetta forrit sjálfkrafa þegar kveikt er á vélinni?</translation>
 <translation id="4441147046941420429">Til að halda áfram skaltu fjarlægja öryggislykilinn úr tækinu, setja hann svo aftur inn og snerta hann</translation>
 <translation id="444134486829715816">Stækka...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> getur athugað aðgangsorðin þín þegar þú skráir þig inn með Google reikningnum þínum</translation>
 <translation id="4442424173763614572">DNS-uppfletting mistókst</translation>
 <translation id="4443536555189480885">&amp;Hjálp</translation>
 <translation id="4444304522807523469">Fá aðgang að skjalaskönnum sem tengdir eru um USB eða á staðarnetinu</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Þú getur notað QR-skönnunarforrit í símanum þínum eða ýmis myndavélaforrit til að skanna þennan kóða.</translation>
 <translation id="4477015793815781985">Notaðu Ctrl, Alt eða ⌘</translation>
 <translation id="4478664379124702289">Vista tengil sem...</translation>
+<translation id="4478777936860197922">Engin vistuð aðgangsorð. <ph name="IDS_SHORT_PRODUCT_NAME" /> getur athugað aðgangsorðin þín þegar þú vistar þau.</translation>
 <translation id="4479424953165245642">Stjórna sjálfsalaforritum</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Stillir sýndarvélina. Þetta getur tekið nokkrar mínútur.</translation>
 <translation id="4480590691557335796">Chrome getur leitað að skaðlegum hugbúnaði á tölvunni og fjarlægt hann</translation>
 <translation id="4481530544597605423">Aftengd tæki</translation>
+<translation id="4488107067273194838">Fara yfir valkosti fyrir samstillingu vafra eftir uppsetningu</translation>
 <translation id="4488502501195719518">Hreinsa öll gögn?</translation>
 <translation id="4495419450179050807">Ekki sýna á þessari síðu</translation>
 <translation id="4496054781541092778">lokaði sjálfkrafa á <ph name="PERMISSION" /></translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Ekki setja upp</translation>
 <translation id="4850669014075537160">Fletting</translation>
 <translation id="4850886885716139402">Yfirlit</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> lætur þig vita þegar þú skráir þig inn með aðgangsorði í hættu</translation>
 <translation id="4853020600495124913">Opna í &amp;nýjum glugga</translation>
 <translation id="4854317507773910281">Veldu reikning foreldris sem á að samþykkja</translation>
 <translation id="485480310608090163">Fleiri stillingar og heimildir</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN-númerið inniheldur ógilda stafi</translation>
 <translation id="4871370605780490696">Bæta við bókamerki</translation>
 <translation id="4871719318659334896">Loka hópi</translation>
+<translation id="4871852311166078968">Setja í hóp</translation>
 <translation id="4873312501243535625">Athugun efnisskráa</translation>
 <translation id="4876273079589074638">Hjálpaðu hugbúnaðarverkfræðingum okkar að rannsaka og lagfæra ástæðu þess að þetta hrun átti sér stað. Lýstu nákvæmum skrefum eins vel og þú getur. Lýsingin getur ekki verið of ítarleg!</translation>
 <translation id="4876895919560854374">Læsa skjánum og taka hann úr lás</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Stjórnandi þinn hefur takmarkað tiltækar innsláttaraðferðir.</translation>
 <translation id="4994474651455208930">Leyfa vefsvæðum að óska eftir að verða sjálfgefin hjálparforrit fyrir samskiptareglur</translation>
 <translation id="4994754230098574403">Setur upp</translation>
-<translation id="4996978546172906250">Deila með</translation>
 <translation id="4997086284911172121">Engin tenging við internetið.</translation>
 <translation id="4997384734315285248">Fjarlægja Plugin VM</translation>
 <translation id="4998430619171209993">Kveikt</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Opnaðu hjálparann með því að segja „Ok Google“.</translation>
 <translation id="5135533361271311778">Ekki var hægt að búa til bókamerkjaatriði.</translation>
 <translation id="5137501176474113045">Eyða þessu atriði</translation>
-<translation id="5138982052046316113">Breyta diskstærð fyrir Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> leit</translation>
 <translation id="5139823398361067371">Sláðu inn PIN-númer fyrir öryggislykilinn. Ef þú veist ekki hvert PIN-númerið er þarftu að endurstilla öryggislykilinn.</translation>
 <translation id="5139955368427980650">&amp;Opna</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Bíður eftir staðfestingu. <ph name="LINK_BEGIN" />Frekari upplýsingar<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Mjög stórt</translation>
 <translation id="574209121243317957">Tónhæð</translation>
+<translation id="5745136023067925867">Fáðu ábendingar, tilboð og uppfærslur fyrir <ph name="DEVICE_TYPE" /> og komdu ábendingum á framfæri</translation>
 <translation id="5746169159649715125">Vista sem PDF</translation>
 <translation id="5747552184818312860">Rennur út</translation>
 <translation id="5747785204778348146">Forritari – óstöðugt</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Sýna í Finder</translation>
 <translation id="6295158916970320988">Öll vefsvæði</translation>
 <translation id="6295855836753816081">Vistar...</translation>
-<translation id="629730747756840877">Reikningur</translation>
 <translation id="6298962879096096191">Notaðu Google Play til að setja upp Android forrit</translation>
 <translation id="630065524203833229">Hætta</translation>
 <translation id="6300718114348072351">Ekki tókst að stilla <ph name="PRINTER_NAME" /> sjálfvirkt. Tilgreindu ítarlegar prentaraupplýsingar. <ph name="LINK_BEGIN" />Frekari upplýsingar<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Tungumál síðunnar er ekki <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC-atburðaannálar (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Lithiti</translation>
-<translation id="6870888490422746447">Veldu forrit til að deila með:</translation>
 <translation id="6871644448911473373">OCSP-svörun: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Þjónninn hafnaði aðgangsorðinu sem þú slóst inn.</translation>
 <translation id="6876155724392614295">Hjól</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – notkunarskrá</translation>
 <translation id="6997707937646349884">Í tækjunum þínum:</translation>
 <translation id="6998793565256476099">Skrá tæki í myndfundi</translation>
+<translation id="6999956497249459195">Nýr hópur</translation>
 <translation id="7000206553895739324">Prentarinn <ph name="PRINTER_NAME" /> er tengdur en hann þarfnast stillingar</translation>
 <translation id="7000347579424117903">Hafðu Ctrl, Alt eða Search með</translation>
 <translation id="7001036685275644873">Afritar Linux-forrit og -skrár</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">Vefslóð</translation>
 <translation id="7400839060291901923">Settu upp tengingu í <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Hunsa þessi skilaboð</translation>
+<translation id="7403642243184989645">Sækir tilföng</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Öryggisathugun var gerð fyrir 1 klukkustund}one{Öryggisathugun var gerð fyrir {NUM_HOURS} klukkustund}other{Öryggisathugun var gerð fyrir {NUM_HOURS} klukkustundum}}</translation>
 <translation id="740624631517654988">Sprettigluggi útilokaður</translation>
 <translation id="7407430846095439694">Flytja inn og binda</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">Stefnuvefslóð Netscape-vottunarstöðvar</translation>
 <translation id="7717014941119698257">Sækir: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Leita að uppfærslum</translation>
+<translation id="7719070594859855691">Veita aðgang að myndavél</translation>
 <translation id="7719367874908701697">Síðuaðdráttur</translation>
 <translation id="7721179060400456005">Leyfa gluggum að ná á milli skjáa</translation>
 <translation id="7722040605881499779">Krafist fyrir uppfærslu: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Sjá prentferilinn þinn</translation>
 <translation id="7744192722284567281">Fannst í öryggisbroti</translation>
 <translation id="7750228210027921155">Mynd í mynd</translation>
-<translation id="7751229152614300329">Örugg vefskoðun hefur fengið allar nýjustu uppfærslur og ver þig gegn skaðlegum vefsvæðum og niðurhali</translation>
 <translation id="7751260505918304024">Sýna allt</translation>
 <translation id="7754704193130578113">Spyrja hvar á að vista hverja skrá áður en niðurhal hefst</translation>
 <translation id="7755287808199759310">Foreldri þitt getur opnað fyrir þetta</translation>
@@ -5066,6 +5078,7 @@
 <ph name="BEGIN_BOLD" />Athugaðu:<ph name="END_BOLD" />  Kerfið mun endurræsa sig í ferlinu.</translation>
 <translation id="7828731929332799387">Þetta mun eyða öllum fótsporum og vefsvæðisgögnum frá þriðju aðilum. Ertu viss um að þú viljir halda áfram?</translation>
 <translation id="7829298379596169484">Fær aðgang að hljóðinntaki</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> getur ekki athugað aðgangsorðin þín. Athugaðu nettenginguna þína.</translation>
 <translation id="7829877209233347340">Biddu foreldri þitt að skrá sig inn og gefa þér heimild til að bæta við skólareikningi</translation>
 <translation id="7830594666202422257">Tengja við Linux</translation>
 <translation id="7831491651892296503">Villa við að stilla netkerfi</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">Setur Google Play Store upp á <ph name="DEVICE_TYPE" />. Þetta gæti tekið nokkrar mínútur.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Engin fótspor frá þriðju aðilum}=1{Lokað á eitt fótspor frá þriðja aðila}one{Lokað er á # fótspor frá þriðju aðilum}other{Lokað er á # fótspor frá þriðju aðilum}}</translation>
 <translation id="810875025413331850">Engin nálæg tæki fundust.</translation>
+<translation id="8114199541033039755">Fara heim og til baka og skipta um forrit með hnöppum í spjaldtölvustillingu. Þessi stilling er virk þegar kveikt er á ChromeVox eða sjálfvirkum smellum.</translation>
 <translation id="8114875720387900039">Lárétt skipting</translation>
 <translation id="8116972784401310538">&amp;Bókamerkjastjórnun</translation>
 <translation id="8117620576188476503">Stjórnaðu tengingum, uppfærslum og stillingum með stöðusvæðinu. Ýttu á Alt + Shift + S til að gera þetta með lyklaborðinu.</translation>
@@ -5406,6 +5420,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> hefur slökkt á músarbendlinum.</translation>
 <translation id="8264024885325823677">Kerfisstjórinn þinn stjórnar þessari stillingu.</translation>
 <translation id="8264718194193514834">„<ph name="EXTENSION_NAME" />“ notaði allan skjáinn.</translation>
+<translation id="826511437356419340">Gluggayfirlitsstilling opnuð. Strjúktu til að fletta eða ýttu á dálkalykilinn ef þú notar lyklaborð.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Þetta eru almennar upplýsingar um tækið þitt og notkun þína á því (til dæmis stöðu rafhlöðunnar, virkni kerfis og forrita og villur). Gögnin verða notuð til að betrumbæta Android stýrikerfið og sumar uppsafnaðar upplýsingar geta gagnast samstarfsaðilum okkar, svo sem þróunaraðilum fyrir Android, við að bæta forrit og vörur.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Ef slökkt er á þessum eiginleika hefur það ekki áhrif á getu tækisins til að senda þær upplýsingar sem þarf fyrir nauðsynlega þjónustu á borð við uppfærslur á stýrikerfi og öryggisráðstafanir.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Eigandinn getur stjórnað þessum eiginleika með því að fara í Stillingar &gt; Ítarlegt &gt; Senda greiningar- og notkunargögn sjálfkrafa til Google.<ph name="END_PARAGRAPH3" />
@@ -5514,6 +5529,7 @@
 <translation id="8426713856918551002">Virkjar</translation>
 <translation id="8427292751741042100">fellt inn í hvaða hýsli sem er</translation>
 <translation id="8428213095426709021">Stillingar</translation>
+<translation id="8428271547607112339">Bæta við skólareikningi</translation>
 <translation id="8428628598981198790">Ekki er hægt að nota öryggislykilinn þinn með þessu vefsvæði</translation>
 <translation id="84297032718407999">Þú verður skráð(ur) út eftir <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Sýna snertingar</translation>
@@ -5577,6 +5593,7 @@
 <translation id="851263357009351303">Leyfa <ph name="HOST" /> alltaf að sýna myndir</translation>
 <translation id="8513108775083588393">Sjálfvirkur snúningur</translation>
 <translation id="8514746246728959655">Prófaðu annan öryggislykil</translation>
+<translation id="851960115758509829">Forritin þín, stillingarnar og aðrar sérstillingar verða samstillt í öllum Chrome OS tækjum þar sem Google reikningurinn þinn er skráður inn.</translation>
 <translation id="8521475323816527629">Fáðu forrit með hraði</translation>
 <translation id="8523493869875972733">Halda breytingum</translation>
 <translation id="8523849605371521713">Bætt við af stefnu</translation>
@@ -5858,11 +5875,13 @@
 <translation id="885701979325669005">Geymslurými</translation>
 <translation id="8859057652521303089">Veldu tungumál:</translation>
 <translation id="8859174528519900719">Undirrammi: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Reikningur foreldris</translation>
 <translation id="8862003515646449717">Skiptu yfir í hraðvirkari vafra</translation>
 <translation id="8863753581171631212">Opna tengil í <ph name="APP" /> í nýjum glugga</translation>
 <translation id="8864055848767439877">Deilir <ph name="TAB_NAME" /> í <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> var fjarlægt úr þessu tæki</translation>
 <translation id="8867228703146808825">Afrita upplýsingar um smíði á klippiborð</translation>
+<translation id="8868333925931032127">Undirbýr prufustillingu</translation>
 <translation id="8868626022555786497">Í notkun</translation>
 <translation id="8870413625673593573">Nýlega lokað</translation>
 <translation id="8871551568777368300">Fest af stjórnanda</translation>
@@ -5941,6 +5960,7 @@
 <translation id="8966870118594285808">Opnaðu flipann aftur ef þú lokaðir honum óvart</translation>
 <translation id="8967866634928501045">Ýttu á Alt Shift A til að sýna</translation>
 <translation id="8968766641738584599">Viltu vista kort?</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> getur ekki athugað aðgangsorðin þín. Reyndu aftur eftir sólarhring eða <ph name="BEGIN_LINK" />athugaðu aðgangsorðin á Google reikningnum þínum<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Esc</translation>
 <translation id="8972513834460200407">Hafðu samband við kerfisstjórann til að ganga úr skugga um að eldveggur hindri ekki niðurhal frá þjónum Google.</translation>
 <translation id="8973557916016709913">Fjarlægja aðdráttarstig</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 24ffd1e..ceed89ca 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dispositivi disponibili</translation>
 <translation id="1042174272890264476">Sul computer è integrata anche la libreria RLZ di <ph name="SHORT_PRODUCT_NAME" />. RLZ assegna un tag non univoco che non consente l'identificazione personale per valutare le ricerche e l'utilizzo di <ph name="SHORT_PRODUCT_NAME" /> promosso da una determinata campagna promozionale. Talvolta queste etichette vengono visualizzate in query della Ricerca Google in <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Vuoi cancellare anche i dati di queste app?</translation>
+<translation id="1045448422538531528">Aggiungi al gruppo</translation>
 <translation id="1046635659603195359">Sembra che tu abbia già configurato Voice Match con l'Assistente Google su un altro dispositivo. Le registrazioni precedenti potrebbero essere usate per creare un modello vocale su questo dispositivo. L'operazione dovrebbe richiedere meno di un minuto.</translation>
 <translation id="104710386808485638">Riavviare Linux?</translation>
 <translation id="1047431265488717055">Copia testo del lin&amp;k</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Impedisci sempre l'accesso alla webcam</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> vuole ripristinare le impostazioni predefinite originali di Chrome. Questa operazione comporta la reimpostazione di pagina iniziale, pagina Nuova scheda e motore di ricerca, oltre alla disattivazione delle estensioni e allo sblocco di tutte le schede. Verranno inoltre cancellati altri dati temporanei e memorizzati nella cache, come cookie e dati relativi a contenuti e siti.</translation>
+<translation id="1084096383128641877">La rimozione di questa password non comporta l'eliminazione del tuo account su <ph name="DOMAIN" />. Cambia la password o elimina il tuo account su <ph name="DOMAIN_LINK" /> per proteggerlo dagli altri.</translation>
 <translation id="1084824384139382525">Copia indi&amp;rizzo link</translation>
 <translation id="1085697365578766383">Errore durante l'avvio della macchina virtuale. Riprova.</translation>
 <translation id="1090126737595388931">Nessuna applicazione in esecuzione in background</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Il controllo di sicurezza è stato eseguito ieri</translation>
 <translation id="1260451001046713751">Consenti sempre popup e reindirizzamenti da <ph name="HOST" /></translation>
 <translation id="126156426083987769">Si è verificato un problema con le licenze del dispositivo per la modalità demo.</translation>
+<translation id="1263490604593716556">Account gestito da <ph name="FIRST_PARENT_EMAIL" /> e <ph name="SECOND_PARENT_EMAIL" />. Per uscire dall'account principale su questo dispositivo, fai clic sull'ora sullo schermo. Fai clic su "Esci" nel menu visualizzato.</translation>
 <translation id="126710816202626562">Lingua della traduzione:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Interrompi</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Sito web</translation>
 <translation id="15662109988763471">La stampante selezionata non è disponibile o non è installata correttamente. Controlla la stampante o prova a selezionarne un'altra.</translation>
 <translation id="1567387640189251553">È stata collegata una tastiera diversa dall'ultimo inserimento della password. Potrebbe essere un tentativo di rubare i tasti premuti.</translation>
-<translation id="1567750922576943685">La verifica della tua identità aiuta a proteggere le tue informazioni personali</translation>
 <translation id="1567993339577891801">Console JavaScript</translation>
 <translation id="1568323446248056064">Apri le impostazioni dello schermo</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Ospite)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Arte</translation>
 <translation id="1697686431566694143">Modifica file</translation>
 <translation id="1698122934742150150">Solo per la sessione di navigazione in incognito corrente</translation>
-<translation id="1698650002254827833">Impossibile caricare l'elenco delle app. Riprova.</translation>
 <translation id="1700079447639026019">Siti che non possono mai usare i cookie</translation>
 <translation id="1701062906490865540">Rimuovi questa persona</translation>
 <translation id="1703331064825191675">Non preoccuparti delle tue password</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Continua</translation>
 <translation id="2173302385160625112">Controlla la connessione a Internet</translation>
 <translation id="2173801458090845390">Aggiungi ID richiesta a questo dispositivo</translation>
+<translation id="2174948148799307353">Account gestito da <ph name="PARENT_EMAIL" />. Per uscire dall'account principale su questo dispositivo, fai clic sull'ora sullo schermo. Fai clic su "Esci" nel menu visualizzato.</translation>
 <translation id="2175607476662778685">Barra Avvio veloce</translation>
 <translation id="217576141146192373">Impossibile aggiungere la stampante. Controlla la configurazione della stampante e riprova.</translation>
 <translation id="2177950615300672361">Scheda di navigazione in incognito: <ph name="TAB_NAME" /></translation>
@@ -1080,7 +1082,6 @@
 <translation id="2442916515643169563">Ombreggiatura testo</translation>
 <translation id="2445081178310039857">La directory principale dell'estensione è obbligatoria.</translation>
 <translation id="2445484935443597917">Crea un nuovo profilo</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> vuole verificare la tua identità</translation>
 <translation id="2448312741937722512">Tipo</translation>
 <translation id="2450223707519584812">Non potrai aggiungere utenti perché mancano le chiavi dell'API di Google. Per informazioni dettagliate, visita la pagina <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Nessuna visualizzazione attiva</translation>
@@ -1478,6 +1479,7 @@
 <translation id="2948300991547862301">Vai a <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Un browser web veloce, semplice e sicuro, ideato per il Web moderno.</translation>
 <translation id="2949289451367477459">Utilizza la geolocalizzazione. Consenti ad app e servizi che dispongono dell'autorizzazione di accesso alla posizione di usare la posizione del dispositivo. Google potrebbe raccogliere periodicamente dati sulla posizione da usare in forma anonima per migliorare la precisione della geolocalizzazione e i servizi basati sulla posizione. <ph name="BEGIN_LINK1" />Ulteriori informazioni<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Registrami</translation>
 <translation id="2956070239128776395">Sezione nidificata nel gruppo: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Non consentire ad alcun sito di modificare file o cartelle sul dispositivo</translation>
 <translation id="2958721676848865875">Avviso sul pacchetto estensione</translation>
@@ -1602,6 +1604,7 @@
 <translation id="3139925690611372679">Avatar giallo predefinito</translation>
 <translation id="3141318088920353606">In ascolto…</translation>
 <translation id="3141917231319778873">La richiesta indicata non è supportata su: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Nuovo gruppo</translation>
 <translation id="3143515551205905069">Annulla sincronizzazione</translation>
 <translation id="3143754809889689516">Riproduci dall'inizio</translation>
 <translation id="3144647712221361880">Apri link come</translation>
@@ -1626,6 +1629,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (con supporto hardware)</translation>
 <translation id="3161522574479303604">Tutte le lingue</translation>
+<translation id="3162853326462195145">Account della scuola</translation>
 <translation id="3162899666601560689">I siti possono utilizzare i cookie per migliorare la tua esperienza di navigazione, ad esempio per mantenere l'accesso o memorizzare gli articoli aggiunti al carrello</translation>
 <translation id="3163201441334626963">Prodotto sconosciuto <ph name="PRODUCT_ID" /> del fornitore <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Condivisione di questa scheda con <ph name="APP_NAME" /></translation>
@@ -1684,7 +1688,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Aggiorna il dispositivo entro un giorno}other{Aggiorna il dispositivo entro # giorni}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Errore di rete</translation>
 <translation id="3248902735035392926">La sicurezza è importante. Prenditi un attimo per <ph name="BEGIN_LINK" />controllare ora le tue estensioni<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Non parte del certificato&gt;</translation>
 <translation id="3253225298092156258">Non disponibile</translation>
 <translation id="3253448572569133955">Account sconosciuto</translation>
@@ -1789,6 +1792,7 @@
 <translation id="3396800784455899911">Se fai clic sul pulsante "Accetta e continua", accetti l'elaborazione descritta in precedenza per questi servizi Google.</translation>
 <translation id="3399432415385675819">Le notifiche verranno disattivate</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz) - interlacciata</translation>
+<translation id="3402585168444815892">Registrazione alla modalità demo</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Nessuna password salvata per questo sito</translation>
 <translation id="3405664148539009465">Personalizza caratteri</translation>
@@ -1850,6 +1854,7 @@
 <translation id="3468999815377931311">Telefono Android</translation>
 <translation id="3470442499439619530">Rimuovi questo utente</translation>
 <translation id="3471876058939596279">Non è possibile usare contemporaneamente le porte HDMI e USB Type-C per i video. Usa una porta video diversa.</translation>
+<translation id="3473241910002674503">Torna alla schermata Home, vai indietro e cambia app usando i pulsanti in modalità tablet.</translation>
 <translation id="3473479545200714844">Ingrandimento dello schermo</translation>
 <translation id="3475843873335999118">La tua impronta digitale non è stata ancora riconosciuta. Inserisci la password.</translation>
 <translation id="3476303763173086583">Invia dati diagnostici e sull'utilizzo. Contribuisci a migliorare l'esperienza Android di tuo figlio tramite l'invio automatico a Google di dati diagnostici e sull'utilizzo delle app e del dispositivo. Non verranno utilizzati per identificare tuo figlio e contribuiranno alla stabilità di app e sistema, nonché ad altri miglioramenti. Alcuni dati aggregati saranno utili anche alle app e ai partner di Google, ad esempio agli sviluppatori Android. Questa <ph name="BEGIN_LINK1" />impostazione<ph name="END_LINK1" /> è applicata dal proprietario. Il proprietario potrebbe decidere di inviare a Google dati di diagnostica e utilizzo relativi a questo dispositivo. Se l'impostazione Attività web e app aggiuntiva è attiva per tuo figlio, questi dati potrebbero essere salvati nel suo Account Google. <ph name="BEGIN_LINK2" />Ulteriori informazioni<ph name="END_LINK2" /></translation>
@@ -2274,6 +2279,7 @@
 <translation id="3971764089670057203">Impronte registrate con questo token di sicurezza</translation>
 <translation id="3973660817924297510">Verifica delle password (<ph name="CHECKED_PASSWORDS" /> di <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Tentativo di contatto del server per area di autenticazione non riuscito</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> non può controllare le tue password. Riprova più tardi.</translation>
 <translation id="3976108569178263973">Non ci sono stampanti disponibili.</translation>
 <translation id="397703832102027365">Finalizzazione in corso...</translation>
 <translation id="3977886311744775419">Gli aggiornamenti automatici non vengono scaricati su questo tipo di rete, ma puoi verificare la presenza di aggiornamenti manualmente.</translation>
@@ -2337,6 +2343,7 @@
 <translation id="4068506536726151626">Questa pagina contiene elementi dai seguenti siti che stanno rilevando la tua posizione:</translation>
 <translation id="4068776064906523561">Impronte digitali salvate</translation>
 <translation id="407173827865827707">Al clic</translation>
+<translation id="4073520450811433493">Sincronizzazione delle impostazioni</translation>
 <translation id="4074900173531346617">Certificato del firmatario email</translation>
 <translation id="407520071244661467">Scala</translation>
 <translation id="4075639477629295004">Impossibile trasmettere <ph name="FILE_NAME" />.</translation>
@@ -2573,6 +2580,7 @@
 <translation id="4421932782753506458">Micio</translation>
 <translation id="4423376891418188461">Ripristina impostazioni</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, il tuo amministratore ti chiede di cambiare la password.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> non può controllare le tue password. Riprova tra 24 ore.</translation>
 <translation id="4429030830601238961">Questi dati violano le norme di sicurezza della tua organizzazione e non possono essere incollati.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Aggiunto ai preferiti</translation>
@@ -2585,6 +2593,7 @@
 <translation id="4441124369922430666">Vuoi avviare automaticamente questa app all'accensione del computer?</translation>
 <translation id="4441147046941420429">Per continuare, rimuovi il token di sicurezza dal dispositivo, quindi inseriscilo nuovamente e toccalo</translation>
 <translation id="444134486829715816">Espandi...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> può controllare le tue password quando accedi con il tuo Account Google</translation>
 <translation id="4442424173763614572">Ricerca DNS non riuscita</translation>
 <translation id="4443536555189480885">&amp;Guida</translation>
 <translation id="4444304522807523469">Accesso a scanner di documenti aggiunti tramite USB o sulla rete locale</translation>
@@ -2611,11 +2620,13 @@
 <translation id="4476659815936224889">Per eseguire la scansione di questo codice, puoi usare un'app scanner QR sul telefono oppure alcune app fotocamera.</translation>
 <translation id="4477015793815781985">Includi CTRL, ALT o ⌘</translation>
 <translation id="4478664379124702289">Salva lin&amp;k con nome...</translation>
+<translation id="4478777936860197922">Nessuna password salvata. <ph name="IDS_SHORT_PRODUCT_NAME" /> può controllare le password quando le salvi.</translation>
 <translation id="4479424953165245642">Gestisci applicazioni kiosk</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Configurazione della macchina virtuale. Questa operazione potrebbe richiedere alcuni minuti.</translation>
 <translation id="4480590691557335796">Chrome può trovare software dannoso sul computer e rimuoverlo</translation>
 <translation id="4481530544597605423">Dispositivi disaccoppiati</translation>
+<translation id="4488107067273194838">Controlla le opzioni di sincronizzazione del browser dopo la configurazione</translation>
 <translation id="4488502501195719518">Vuoi cancellare tutti i dati?</translation>
 <translation id="4495419450179050807">Non visualizzare in questa pagina</translation>
 <translation id="4496054781541092778">autorizzazione <ph name="PERMISSION" /> bloccata automaticamente</translation>
@@ -2857,6 +2868,7 @@
 <translation id="4849517651082200438">Non installare</translation>
 <translation id="4850669014075537160">Scorrimento</translation>
 <translation id="4850886885716139402">Visualizza</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> ti invierà una notifica quando accederai con una password compromessa</translation>
 <translation id="4853020600495124913">Apri in &amp;un'altra finestra</translation>
 <translation id="4854317507773910281">Scegli un account genitore per l'approvazione</translation>
 <translation id="485480310608090163">Altre impostazioni e autorizzazioni</translation>
@@ -2875,6 +2887,7 @@
 <translation id="4871322859485617074">Il PIN contiene caratteri non validi</translation>
 <translation id="4871370605780490696">Aggiungi preferito</translation>
 <translation id="4871719318659334896">Chiudi gruppo</translation>
+<translation id="4871852311166078968">Aggiungi al gruppo</translation>
 <translation id="4873312501243535625">Media File Checker</translation>
 <translation id="4876273079589074638">Aiuta i nostri ingegneri a effettuare accertamenti e risolvere il problema che causa l'arresto anomalo. Se puoi, elenca i passaggi esatti fornendo il maggior numero possibile di dettagli.</translation>
 <translation id="4876895919560854374">Blocco e sblocco dello schermo</translation>
@@ -2966,7 +2979,6 @@
 <translation id="4992473555164495036">L'amministratore ha limitato i metodi di immissione disponibili.</translation>
 <translation id="4994474651455208930">Consenti ai siti di chiedere di diventare gestori predefiniti dei protocolli</translation>
 <translation id="4994754230098574403">Configurazione in corso</translation>
-<translation id="4996978546172906250">Condividi tramite</translation>
 <translation id="4997086284911172121">Nessuna connessione Internet.</translation>
 <translation id="4997384734315285248">Disinstalla Plugin VM</translation>
 <translation id="4998430619171209993">On</translation>
@@ -3066,7 +3078,6 @@
 <translation id="5135085122826131075">Accedi all'assistente quando dici "Ok Google".</translation>
 <translation id="5135533361271311778">Impossibile creare l'elemento nei Preferiti.</translation>
 <translation id="5137501176474113045">Elimina questa voce</translation>
-<translation id="5138982052046316113">Ridimensiona disco Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, ricerca in <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Inserisci il PIN del token di sicurezza. Se non conosci il PIN, devi reimpostare il token di sicurezza.</translation>
 <translation id="5139955368427980650">&amp;Apri</translation>
@@ -3518,6 +3529,7 @@
 <translation id="5739235828260127894">In attesa di verifica. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Molto grandi</translation>
 <translation id="574209121243317957">Tono</translation>
+<translation id="5745136023067925867">Ricevi suggerimenti, offerte e aggiornamenti per <ph name="DEVICE_TYPE" /> e condividi il tuo feedback</translation>
 <translation id="5746169159649715125">Salva come PDF</translation>
 <translation id="5747552184818312860">Scadenza</translation>
 <translation id="5747785204778348146">Sviluppatore - non stabile</translation>
@@ -3930,7 +3942,6 @@
 <translation id="6291953229176937411">Mo&amp;stra nel Finder</translation>
 <translation id="6295158916970320988">Tutti i siti</translation>
 <translation id="6295855836753816081">Salvataggio in corso...</translation>
-<translation id="629730747756840877">Account</translation>
 <translation id="6298962879096096191">Utilizza Google Play per installare le app Android</translation>
 <translation id="630065524203833229">E&amp;sci</translation>
 <translation id="6300718114348072351">Impossibile configurare automaticamente la stampante <ph name="PRINTER_NAME" />. Specifica dettagli avanzati della stampante. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" /></translation>
@@ -4336,7 +4347,6 @@
 <translation id="6865598234501509159">La pagina non è in <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Log eventi WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura del colore</translation>
-<translation id="6870888490422746447">Scegli un'app per la condivisione:</translation>
 <translation id="6871644448911473373">Risponditore OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">La password inserita è stata rifiutata dal server.</translation>
 <translation id="6876155724392614295">Bicicletta</translation>
@@ -4429,6 +4439,7 @@
 <translation id="6997642619627518301">Log delle attività - <ph name="NAME_PH" /></translation>
 <translation id="6997707937646349884">Sui tuoi dispositivi:</translation>
 <translation id="6998793565256476099">Registra il dispositivo per le videoconferenze</translation>
+<translation id="6999956497249459195">Nuovo gruppo</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> è connessa ma deve essere configurata</translation>
 <translation id="7000347579424117903">Includi CTRL, ALT o tasto per la ricerca</translation>
 <translation id="7001036685275644873">Backup app e file Linux in corso</translation>
@@ -4727,6 +4738,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Configura la connessione sul tuo <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Elimina questo messaggio</translation>
+<translation id="7403642243184989645">Download delle risorse</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Il controllo di sicurezza è stato eseguito 1 ora fa}other{Il controllo di sicurezza è stato eseguito {NUM_HOURS} ore fa}}</translation>
 <translation id="740624631517654988">Popup bloccato</translation>
 <translation id="7407430846095439694">Importa e associa</translation>
@@ -4963,6 +4975,7 @@
 <translation id="7716781361494605745">URL dei criteri dell'autorità di certificazione Netscape</translation>
 <translation id="7717014941119698257">Download in corso: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Verifica disponibilità di aggiornamenti</translation>
+<translation id="7719070594859855691">Concedi accesso alla fotocamera</translation>
 <translation id="7719367874908701697">Zoom delle pagine</translation>
 <translation id="7721179060400456005">Consenti alle finestre di estendersi su più schermi</translation>
 <translation id="7722040605881499779">Spazio necessario per l'aggiornamento: <ph name="NECESSARY_SPACE" /></translation>
@@ -4977,7 +4990,6 @@
 <translation id="7744047395460924128">Visualizzazione della cronologia di stampa</translation>
 <translation id="7744192722284567281">Rilevata in una violazione dei dati</translation>
 <translation id="7750228210027921155">Picture in picture</translation>
-<translation id="7751229152614300329">Navigazione sicura è aggiornata e ti protegge da siti e download pericolosi</translation>
 <translation id="7751260505918304024">Mostra tutto</translation>
 <translation id="7754704193130578113">Chiedi dove salvare il file prima di scaricarlo</translation>
 <translation id="7755287808199759310">Il tuo genitore può sbloccarlo per te</translation>
@@ -5065,6 +5077,7 @@
     <ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> il sistema viene riavviato durante la procedura.</translation>
 <translation id="7828731929332799387">Verranno eliminati tutti i cookie e i dati dei siti disponibili in contesti di terze parti. Vuoi continuare?</translation>
 <translation id="7829298379596169484">Accesso all'input audio in corso</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> non può controllare le tue password. Prova a controllare la connessione a Internet.</translation>
 <translation id="7829877209233347340">Chiedi a un genitore di accedere per autorizzare l'aggiunta di un account della scuola</translation>
 <translation id="7830594666202422257">Connetti a Linux</translation>
 <translation id="7831491651892296503">Errore durante la configurazione della rete</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">Installazione in corso del Google Play Store sul tuo dispositivo <ph name="DEVICE_TYPE" />. L'operazione potrebbe richiedere alcuni minuti.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Nessun cookie di terze parti}=1{È stato bloccato 1 cookie di terze parti}other{Sono stati bloccati # cookie di terze parti}}</translation>
 <translation id="810875025413331850">Nessun dispositivo trovato nelle vicinanze.</translation>
+<translation id="8114199541033039755">Torna alla schermata Home, vai indietro e cambia app usando i pulsanti in modalità tablet. Questa impostazione viene attivata quando vengono abilitate le funzionalità ChromeVox o Clic automatici.</translation>
 <translation id="8114875720387900039">Divisione in orizzontale</translation>
 <translation id="8116972784401310538">Gestione &amp;Preferiti</translation>
 <translation id="8117620576188476503">Gestisci connessioni, aggiornamenti e impostazioni dalla barra di stato. Per accedere usando la tastiera, premi ALT + MAIUSC + S.</translation>
@@ -5405,6 +5419,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ha disattivato il puntatore del mouse.</translation>
 <translation id="8264024885325823677">Questa impostazione è gestita dall'amministratore.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ha attivato lo schermo intero.</translation>
+<translation id="826511437356419340">Modalità panoramica finestre attivata. Scorri per spostarti oppure premi Tab se usi una tastiera.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Queste sono informazioni generali sul dispositivo e sulla relativa modalità di utilizzo (ad esempio il livello della batteria, l'attività nelle app e nel sistema e gli errori). I dati vengono utilizzati per migliorare Android e alcune informazioni aggregate sono utili anche per app e partner di Google, ad esempio gli sviluppatori Android, che possono utilizzarle per migliorare i propri prodotti e le proprie app.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />La disattivazione di questa funzione non influisce sulla capacità del dispositivo di inviare le informazioni necessarie per i servizi essenziali, ad esempio gli aggiornamenti di sistema e sicurezza.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Il proprietario può controllare questa funzione da Impostazioni &gt; Avanzate &gt; Invia automaticamente a Google dati di diagnostica e utilizzo.<ph name="END_PARAGRAPH3" />
@@ -5513,6 +5528,7 @@
 <translation id="8426713856918551002">Attivazione in corso</translation>
 <translation id="8427292751741042100">incorporata su qualsiasi host</translation>
 <translation id="8428213095426709021">Impostazioni</translation>
+<translation id="8428271547607112339">Aggiungi account della scuola</translation>
 <translation id="8428628598981198790">Impossibile utilizzare il tuo token di sicurezza con questo sito</translation>
 <translation id="84297032718407999">Verrai disconnesso tra <ph name="LOGOUT_TIME_LEFT" />.</translation>
 <translation id="8431190899827883166">Mostra tocchi</translation>
@@ -5576,6 +5592,7 @@
 <translation id="851263357009351303">Consenti sempre la visualizzazione di immagini in <ph name="HOST" /></translation>
 <translation id="8513108775083588393">Rotazione automatica</translation>
 <translation id="8514746246728959655">Prova a usare un altro token di sicurezza</translation>
+<translation id="851960115758509829">Le app, le impostazioni e le altre personalizzazioni verranno sincronizzate su tutti i dispositivi Chrome OS su cui hai eseguito l'accesso con il tuo Account Google.</translation>
 <translation id="8521475323816527629">Accedi velocemente alle tue app</translation>
 <translation id="8523493869875972733">Mantieni le modifiche</translation>
 <translation id="8523849605371521713">Aggiunta in base alle norme</translation>
@@ -5857,11 +5874,13 @@
 <translation id="885701979325669005">Dati memorizzati dai siti</translation>
 <translation id="8859057652521303089">Seleziona la tua lingua:</translation>
 <translation id="8859174528519900719">Frame secondario: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Account genitore</translation>
 <translation id="8862003515646449717">Passa a un browser veloce</translation>
 <translation id="8863753581171631212">Apri link in nuova finestra di <ph name="APP" /></translation>
 <translation id="8864055848767439877">Condivisione di <ph name="TAB_NAME" /> con <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">L'account <ph name="EMAIL" /> è stato rimosso da questo dispositivo</translation>
 <translation id="8867228703146808825">Copia dettagli build negli appunti</translation>
+<translation id="8868333925931032127">Avvio della modalità demo</translation>
 <translation id="8868626022555786497">In uso</translation>
 <translation id="8870413625673593573">Chiusi di recente</translation>
 <translation id="8871551568777368300">Bloccata dall'amministratore</translation>
@@ -5940,6 +5959,7 @@
 <translation id="8966870118594285808">Riapri una scheda chiusa accidentalmente</translation>
 <translation id="8967866634928501045">Premi ALT + MAIUSC + A per mostrare</translation>
 <translation id="8968766641738584599">Salva carta</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> non può controllare le tue password. Riprova tra 24 ore oppure <ph name="BEGIN_LINK" />controlla le password nel tuo Account Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Esc</translation>
 <translation id="8972513834460200407">Rivolgiti al tuo amministratore di rete per verificare che il firewall non blocchi i download dai server di Google.</translation>
 <translation id="8973557916016709913">Rimuovi livello di zoom</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index a3cd1722..aeda456 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">מכשירים זמינים</translation>
 <translation id="1042174272890264476">‏המחשב שלך מגיע גם עם ספריית ה-RLZ המובנה של <ph name="SHORT_PRODUCT_NAME" />‏. RLZ מקצה תג שאינו ייחודי ואינו ניתן לזיהוי על מנת למדוד את החיפוש ואת השימוש ב-<ph name="SHORT_PRODUCT_NAME" /> המונעים על ידי קמפיין ספציפי לקידום מכירות. התוויות האלה מופיעות לעתים בשאילתות החיפוש של Google ב-<ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">לנקות נתונים גם מהאפליקציות הבאות?</translation>
+<translation id="1045448422538531528">הוספה לקבוצה</translation>
 <translation id="1046635659603195359">‏נראה שכבר הגדרת את Voice Match עם Google Assistant במכשיר אחר. אפשר להשתמש בהקלטות הקודמות כדי ליצור תבנית קול במכשיר זה. הפעולה אמורה לקחת פחות מדקה.</translation>
 <translation id="104710386808485638">‏האם להפעיל מחדש את Linux?</translation>
 <translation id="1047431265488717055">העתקת ט&amp;קסט קישור</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">חסום תמיד גישה למצלמה</translation>
 <translation id="1082398631555931481">‏<ph name="THIRD_PARTY_TOOL_NAME" /> רוצה לשחזר את הגדרות Chrome לברירת המחדל המקורית שלהן. הפעולה הזו תגרום לאיפוס דף הבית, דף הכרטיסייה החדשה ומנוע החיפוש, תשבית את התוספים, ותבטל את ההצמדה של כל הכרטיסיות. כתוצאה מכך יימחקו גם נתונים אחרים מאחסון זמני ומהקובץ השמור, כמו נתונים של קובצי cookie, תוכן ואתרים.</translation>
+<translation id="1084096383128641877">הסרת הסיסמה הזו לא תגרום למחיקת החשבון שלך ב-<ph name="DOMAIN" />. כדי למנוע את החשיפה של הסיסמה, כדאי לשנות אותה או למחוק את החשבון שלך ב-<ph name="DOMAIN_LINK" />.</translation>
 <translation id="1084824384139382525">העתק כתו&amp;בת קישור</translation>
 <translation id="1085697365578766383">קרתה שגיאה בהפעלת המכונה הווירטואלית. יש לנסות שוב.</translation>
 <translation id="1090126737595388931">אין יישומים פועלים ברקע</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">בדיקת הבטיחות פעלה אתמול</translation>
 <translation id="1260451001046713751">אפשר תמיד חלונות קופצים והפניות אוטומטיות מ-<ph name="HOST" /></translation>
 <translation id="126156426083987769">התרחשה בעיה שקשורה להרשאות המכשירים של מצב ההדגמה.</translation>
+<translation id="1263490604593716556">החשבון מנוהל על ידי <ph name="FIRST_PARENT_EMAIL" /> ועל ידי <ph name="SECOND_PARENT_EMAIL" />. כדי לצאת מהחשבון הראשי במכשיר הזה, יש ללחוץ על השעה במסך. בתפריט שיופיע יש ללחוץ על "יציאה".</translation>
 <translation id="126710816202626562">שפת תרגום:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">הפסק</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">אתר</translation>
 <translation id="15662109988763471">המדפסת שנבחרה אינה זמינה או שאינה מותקנת כראוי. יש לבדוק את המדפסת או לנסות לבחור מדפסת אחרת.</translation>
 <translation id="1567387640189251553">חוברה מקלדת אחרת מאז שהזנת את הסיסמה בפעם האחרונה. ייתכן שהיא מנסה לתעד את ההקשות שלך.</translation>
-<translation id="1567750922576943685">אימות הזהות עוזר להגן על המידע האישי</translation>
 <translation id="1567993339577891801">‏קונסולת JavaScript</translation>
 <translation id="1568323446248056064">פתח את הגדרות המכשיר של התצוגה</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (אורח)</translation>
@@ -516,7 +518,6 @@
 <translation id="1697150536837697295">אומנות</translation>
 <translation id="1697686431566694143">אישור לערוך את הקובץ</translation>
 <translation id="1698122934742150150">הפעלה נוכחית בלבד במצב גלישה בסתר</translation>
-<translation id="1698650002254827833">אי אפשר לטעון את רשימת האפליקציות. צריך לנסות שוב.</translation>
 <translation id="1700079447639026019">‏אתרים שאף פעם לא יכולים להשתמש בקובצי cookie</translation>
 <translation id="1701062906490865540">הסרת משתמש זה</translation>
 <translation id="1703331064825191675">אין יותר צורך לדאוג לגבי הסיסמאות שלך</translation>
@@ -870,6 +871,7 @@
 <translation id="2172784515318616985">המשך</translation>
 <translation id="2173302385160625112">יש לבדוק את החיבור לאינטרנט</translation>
 <translation id="2173801458090845390">הוספת מזהה דרישה למכשיר זה</translation>
+<translation id="2174948148799307353">החשבון מנוהל על ידי <ph name="PARENT_EMAIL" />. כדי לצאת מהחשבון הראשי במכשיר הזה, יש ללחוץ על השעה במסך. בתפריט שיופיע יש ללחוץ על "יציאה".</translation>
 <translation id="2175607476662778685">סרגל הפעלה מהירה</translation>
 <translation id="217576141146192373">לא ניתן להוסיף מדפסת. יש לבדוק את הגדרת המדפסת ולנסות שוב.</translation>
 <translation id="2177950615300672361">כרטיסיית גלישה בסתר: <ph name="TAB_NAME" /></translation>
@@ -1078,7 +1080,6 @@
 <translation id="2442916515643169563">צללית טקסט</translation>
 <translation id="2445081178310039857">ספריית הבסיס של ההרחבה נחוצה.</translation>
 <translation id="2445484935443597917">יצירת פרופיל חדש</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> רוצה לאמת את הזהות שלך</translation>
 <translation id="2448312741937722512">סוג</translation>
 <translation id="2450223707519584812">‏לא תוכל להוסיף משתמשים מפני שהמפתחות של Google API חסרים. לפרטים, עבור אל <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">אין תצוגות פעילות</translation>
@@ -1477,6 +1478,7 @@
 <translation id="2948300991547862301">עבור אל <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">דפדפן אינטרנט מהיר, פשוט ובטוח, המותאם לאינטרנט המודרני.</translation>
 <translation id="2949289451367477459">‏שימוש במיקום. מתן רשות לשירותים עם הרשאות מיקום להשתמש במיקום המכשיר הזה. Google עשויה לאסוף מדי פעם נתוני מיקום ולהשתמש בהם באופן אנונימי כדי לשפר את דיוק המיקום ושירותים מבוססי-מיקום. <ph name="BEGIN_LINK1" />מידע נוסף<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">אני רוצה להירשם</translation>
 <translation id="2956070239128776395">הקטע מוצב בתוך קבוצה: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">לאף אתר אין הרשאה לערוך קבצים או תיקיות במכשיר שלך</translation>
 <translation id="2958721676848865875">אזהרת 'ארוז תוסף'</translation>
@@ -1601,6 +1603,7 @@
 <translation id="3139925690611372679">דמות ברירת מחדל צהובה</translation>
 <translation id="3141318088920353606">המערכת מקשיבה...</translation>
 <translation id="3141917231319778873">הבקשה הנתונה אינה נתמכת במכשיר: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">קבוצה חדשה</translation>
 <translation id="3143515551205905069">ביטול סנכרון</translation>
 <translation id="3143754809889689516">הפעלה מההתחלה</translation>
 <translation id="3144647712221361880">פתח קישור בתור</translation>
@@ -1625,6 +1628,7 @@
 <translation id="3159493096109238499">בז'</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (בגיבוי חומרה)</translation>
 <translation id="3161522574479303604">כל השפות</translation>
+<translation id="3162853326462195145">חשבון בית ספרי</translation>
 <translation id="3162899666601560689">‏אתרים יכולים להשתמש בקובצי cookie כדי לשפר את חוויית הגלישה – למשל, כדי למנוע ניתוק שלך מהחשבון או כדי לזכור את הפריטים שהוספת לעגלת הקניות</translation>
 <translation id="3163201441334626963">מוצר לא ידוע <ph name="PRODUCT_ID" /> מהספק <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">המערכת משתפת את הכרטיסייה הזו עם <ph name="APP_NAME" /></translation>
@@ -1683,7 +1687,6 @@
 <translation id="3246107497225150582">{0,plural, =1{יש לעדכן את המכשיר בתוך יום אחד}two{יש לעדכן את המכשיר בתוך # ימים}many{יש לעדכן את המכשיר בתוך # ימים}other{יש לעדכן את המכשיר בתוך # ימים}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - שגיאת רשת</translation>
 <translation id="3248902735035392926">חשוב להתנהל בצורה בטוחה. כדאי להקדיש כמה רגעים כדי <ph name="BEGIN_LINK" />לבדוק עכשיו את התוספים<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;לא חלק מהאישור&gt;</translation>
 <translation id="3253225298092156258">רשת לא זמינה</translation>
 <translation id="3253448572569133955">חשבון לא ידוע</translation>
@@ -1788,6 +1791,7 @@
 <translation id="3396800784455899911">‏לחיצה על הלחצן "קבלה והמשך" מבטאת את הסכמתך לעיבוד שתואר קודם לכן לגבי השירותים האלה של Google.</translation>
 <translation id="3399432415385675819">הודעות יושבתו</translation>
 <translation id="3400390787768057815">‏<ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> הרץ) – סריקה שזורה (Interlaced)</translation>
+<translation id="3402585168444815892">מתבצעת הרשמה למצב הדגמה</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">לא נשמרו סיסמאות לאתר הזה</translation>
 <translation id="3405664148539009465">התאם אישית גופנים</translation>
@@ -1849,6 +1853,7 @@
 <translation id="3468999815377931311">‏טלפון Android</translation>
 <translation id="3470442499439619530">הסר משתמש זה</translation>
 <translation id="3471876058939596279">‏אי אפשר להשתמש בו-זמנית ביציאות HDMI ו-USB C לווידאו. עליך לבחור יציאת וידאו אחרת.</translation>
+<translation id="3473241910002674503">במצב טאבלט אפשר להשתמש בלחצנים כדי לעבור אל דף הבית, לחזור לדף הקודם ולעבור בין אפליקציות.</translation>
 <translation id="3473479545200714844">מגדיל התצוגה</translation>
 <translation id="3475843873335999118">המערכת עדיין לא מזהה את טביעת האצבע. הזן את הסיסמה שלך.</translation>
 <translation id="3476303763173086583">‏שליחה של נתוני אבחון ונתונים על השימוש. אפשר לעזור בשיפור החוויה של הילד/ה שלך ב-Android. לשם כך יש לשלוח אל Google באופן אוטומטי נתוני אבחון ונתונים לגבי השימוש במכשיר ובאפליקציות. נתונים אלה לא ישמשו כדי לזהות את הילד/ה שלך, והם יעזרו לשמור על יציבות המערכת והאפליקציות, כמו גם לביצוע שיפורים אחרים. חלק מהנתונים הנצברים יעזרו גם לאפליקציות ולשותפים של Google, כמו מפתחי Android. ה<ph name="BEGIN_LINK1" />הגדרה<ph name="END_LINK1" /> הזו נאכפת על-ידי הבעלים. ייתכן שהבעלים יבחרו לשלוח אל Google נתוני אבחון ונתונים לגבי אופן השימוש במכשיר הזה. אם הופעלה בשביל הילד/ה שלך האפשרות 'פעילות באתרי אינטרנט ובאפליקציות נוספים', ייתכן שהנתונים יישמרו בחשבון Google שלו/ה. <ph name="BEGIN_LINK2" />מידע נוסף<ph name="END_LINK2" /></translation>
@@ -2273,6 +2278,7 @@
 <translation id="3971764089670057203">טביעות אצבעות במפתח האבטחה הזה</translation>
 <translation id="3973660817924297510">המערכת בודקת סיסמאות (<ph name="CHECKED_PASSWORDS" /> מתוך <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">יצירת הקשר עם השרת של התחום נכשלה</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> לא יכול לבדוק את הסיסמאות. כדאי לנסות שוב מאוחר יותר.</translation>
 <translation id="3976108569178263973">אין מדפסות זמינות.</translation>
 <translation id="397703832102027365">מסיים...</translation>
 <translation id="3977886311744775419">ברשת מסוג זה לא יכולים להתבצע עדכונים אוטומטיים, אבל אפשר לבדוק ידנית אם יש עדכונים.</translation>
@@ -2336,6 +2342,7 @@
 <translation id="4068506536726151626">דף זה מכיל אלמנטים מהאתרים הבאים העוקבים אחר המיקום שלך:</translation>
 <translation id="4068776064906523561">טביעות אצבע שמורות</translation>
 <translation id="407173827865827707">בזמן לחיצה</translation>
+<translation id="4073520450811433493">סנכרון הגדרות</translation>
 <translation id="4074900173531346617">אישור חותם אימייל</translation>
 <translation id="407520071244661467">שנה קנה מידה</translation>
 <translation id="4075639477629295004">לא ניתן להעביר את <ph name="FILE_NAME" />.</translation>
@@ -2572,6 +2579,7 @@
 <translation id="4421932782753506458">לקיק</translation>
 <translation id="4423376891418188461">שחזר הגדרות</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, מנהל המערכת מבקש ממך לשנות את הסיסמה שלך.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> לא יכול לבדוק את הסיסמאות. אפשר לנסות שוב בעוד 24 שעות.</translation>
 <translation id="4429030830601238961">הנתונים האלה מפרים את מדיניות האבטחה של הארגון שלך ולא ניתן להדביק אותם.</translation>
 <translation id="4430019312045809116">עוצמת קול</translation>
 <translation id="4430369329743628066">הסימנייה נוספה</translation>
@@ -2584,6 +2592,7 @@
 <translation id="4441124369922430666">האם ברצונך להפעיל יישום זה באופן אוטומטי בעת הפעלת המחשב?</translation>
 <translation id="4441147046941420429">כדי להמשיך, יש לנתק את מפתח האבטחה מהמכשיר, לחבר אותו מחדש ולגעת בו</translation>
 <translation id="444134486829715816">הרחב...</translation>
+<translation id="4442329324652245220">‏<ph name="IDS_SHORT_PRODUCT_NAME" /> יכול לבדוק את הסיסמאות כשנכנסים באמצעות חשבון Google</translation>
 <translation id="4442424173763614572">‏חיפוש ה-DNS נכשל</translation>
 <translation id="4443536555189480885">&amp;עזרה</translation>
 <translation id="4444304522807523469">‏גישה לסורקי מסמכים המחוברים באמצעות USB או ברשת המקומית</translation>
@@ -2610,11 +2619,13 @@
 <translation id="4476659815936224889">‏כדי לסרוק את הקוד הזה, ניתן להשתמש באפליקציה של סורק קודי ה-QR בטלפון או באפליקציות מצלמה מתאימות.</translation>
 <translation id="4477015793815781985">‏צריך לכלול Ctrl, ‏Alt או ⌘</translation>
 <translation id="4478664379124702289">שמור קישו&amp;ר כ...</translation>
+<translation id="4478777936860197922">אין סיסמאות שמורות. <ph name="IDS_SHORT_PRODUCT_NAME" /> יכול לבדוק את הסיסמאות שלך רק אם שמרת אותן.</translation>
 <translation id="4479424953165245642">נהל יישומי קיוסק</translation>
 <translation id="4479639480957787382">אתרנט</translation>
 <translation id="4479877282574735775">המערכת מגדירה את המכונה הוירטואלית. הפעולה עשויה להימשך כמה דקות.</translation>
 <translation id="4480590691557335796">‏Chrome יכול לאתר תוכנות מזיקות במחשב ולהסיר אותן</translation>
 <translation id="4481530544597605423">מכשירים לא מותאמים</translation>
+<translation id="4488107067273194838">יש לבדוק את אפשרויות הסנכרון של הדפדפן אחרי ההגדרה</translation>
 <translation id="4488502501195719518">לנקות את כל הנתונים?</translation>
 <translation id="4495419450179050807">אל תציג בדף זה</translation>
 <translation id="4496054781541092778">ההרשאה <ph name="PERMISSION" /> נחסמה אוטומטית</translation>
@@ -2856,6 +2867,7 @@
 <translation id="4849517651082200438">אל תתקין</translation>
 <translation id="4850669014075537160">גלילה</translation>
 <translation id="4850886885716139402">הצגה</translation>
+<translation id="485197095346966382">אם מערכת <ph name="IDS_SHORT_PRODUCT_NAME" /> תזהה שנכנסת עם סיסמה שנחשפה, היא תתריע לך על כך</translation>
 <translation id="4853020600495124913">פתח ב&amp;חלון חדש</translation>
 <translation id="4854317507773910281">בחירת חשבון הורה לשליחת בקשת אישור</translation>
 <translation id="485480310608090163">עוד הגדרות והרשאות</translation>
@@ -2874,6 +2886,7 @@
 <translation id="4871322859485617074">קוד האימות מכיל תווים לא חוקיים</translation>
 <translation id="4871370605780490696">הוסף סימניה</translation>
 <translation id="4871719318659334896">סגירת הקבוצה</translation>
+<translation id="4871852311166078968">הוספה לקבוצה</translation>
 <translation id="4873312501243535625">בודק קובצי המדיה</translation>
 <translation id="4876273079589074638">עזור למהנדסים שלנו לחקור את הקריסה הזו ולתקן אותה. מומלץ לרשום את השלבים בצורה כמה שיותר מדויקת, גם הפרטים הקטנים ביותר יכולים לעזור.</translation>
 <translation id="4876895919560854374">נעילה ושחרור של המסך</translation>
@@ -2965,7 +2978,6 @@
 <translation id="4992473555164495036">מנהל המערכת הגביל את שיטות הקלט הזמינות.</translation>
 <translation id="4994474651455208930">אפשר לאתרים לבקש להפוך למטפלי ברירת המחדל עבור פרוטוקולים</translation>
 <translation id="4994754230098574403">בתהליך הגדרה</translation>
-<translation id="4996978546172906250">שיתוף באמצעות</translation>
 <translation id="4997086284911172121">אין חיבור לאינטרנט.</translation>
 <translation id="4997384734315285248">‏הסרת Plugin VM</translation>
 <translation id="4998430619171209993">מופעל</translation>
@@ -3065,7 +3077,6 @@
 <translation id="5135085122826131075">‏כשאומרים "Ok Google", מתבצעת גישה ל-Assistant.</translation>
 <translation id="5135533361271311778">לא ניתן ליצור פריט סימניה.</translation>
 <translation id="5137501176474113045">מחק את הפריט הזה</translation>
-<translation id="5138982052046316113">‏שינוי הגודל של כונן Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, חיפוש ב-<ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">יש להזין את קוד האימות של מפתח האבטחה. אם לא ידוע לך מהו קוד האימות, יהיה עליך לאפס את מפתח האבטחה.</translation>
 <translation id="5139955368427980650">&amp;פתח</translation>
@@ -3517,6 +3528,7 @@
 <translation id="5739235828260127894">בהמתנה לאימות. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">גדול מאוד</translation>
 <translation id="574209121243317957">גובה צליל</translation>
+<translation id="5745136023067925867">אפשר לקבל טיפים, מידע על מבצעים ועדכונים בנוגע ל-<ph name="DEVICE_TYPE" /> ולשתף משוב</translation>
 <translation id="5746169159649715125">‏שמור כקובץ PDF</translation>
 <translation id="5747552184818312860">מועד תפוגה</translation>
 <translation id="5747785204778348146">מפתח - לא יציב</translation>
@@ -3929,7 +3941,6 @@
 <translation id="6291953229176937411">‏&amp;הצג ב-Finder</translation>
 <translation id="6295158916970320988">כל האתרים</translation>
 <translation id="6295855836753816081">שומר...</translation>
-<translation id="629730747756840877">חשבון</translation>
 <translation id="6298962879096096191">‏התקן אפליקציות ל-Android באמצעות Google Play</translation>
 <translation id="630065524203833229">צ&amp;א</translation>
 <translation id="6300718114348072351">לא ניתן היה להגדיר את <ph name="PRINTER_NAME" /> באופן אוטומטי. יש לקבוע את ההגדרות המתקדמות של המדפסת. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
@@ -4335,7 +4346,6 @@
 <translation id="6865598234501509159">הדף לא ב<ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">‏יומני אירועים של WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">טמפרטורת צבע</translation>
-<translation id="6870888490422746447">בחר אפליקציה לשיתוף:</translation>
 <translation id="6871644448911473373">‏מגיב OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">השרת דחה את הסיסמה שהזנת.</translation>
 <translation id="6876155724392614295">אופניים</translation>
@@ -4428,6 +4438,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - יומן פעילות</translation>
 <translation id="6997707937646349884">במכשירים שלך:</translation>
 <translation id="6998793565256476099">רישום של מכשיר לשיחות ועידה בטלפון</translation>
+<translation id="6999956497249459195">קבוצה חדשה</translation>
 <translation id="7000206553895739324">המדפסת <ph name="PRINTER_NAME" /> מחוברת אבל יש להגדיר אותה</translation>
 <translation id="7000347579424117903">‏יש לכלול את Ctrl,‏ Alt או מקש החיפוש</translation>
 <translation id="7001036685275644873">‏מתבצע גיבוי קבצים ואפליקציות של Linux</translation>
@@ -4726,6 +4737,7 @@
 <translation id="7400418766976504921">כתובת אתר</translation>
 <translation id="7400839060291901923">הגדר את החיבור בטלפון <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">סגירת ההודעה</translation>
+<translation id="7403642243184989645">מתבצעת הורדת משאבים</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{בדיקת הבטיחות פעלה לפני שעה}two{בדיקת הבטיחות פעלה לפני {NUM_HOURS} שעות}many{בדיקת הבטיחות פעלה לפני {NUM_HOURS} שעות}other{בדיקת הבטיחות פעלה לפני {NUM_HOURS} שעות}}</translation>
 <translation id="740624631517654988">חלונות קופצים חסומים</translation>
 <translation id="7407430846095439694">ייבא ושייך</translation>
@@ -4962,6 +4974,7 @@
 <translation id="7716781361494605745">‏כתובת אתר של מדיניות רשות אישורים של Netscape</translation>
 <translation id="7717014941119698257">מוריד: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">חפש עדכונים</translation>
+<translation id="7719070594859855691">הענקת גישה למצלמה</translation>
 <translation id="7719367874908701697">מרחק מתצוגה בדף</translation>
 <translation id="7721179060400456005">חלונות יכולים לסובב את התצוגות</translation>
 <translation id="7722040605881499779">השטח שנדרש כדי לעדכן: <ph name="NECESSARY_SPACE" /></translation>
@@ -4976,7 +4989,6 @@
 <translation id="7744047395460924128">הצגת היסטוריית ההדפסות שלך</translation>
 <translation id="7744192722284567281">נמצאה בפרצה באבטחת מידע</translation>
 <translation id="7750228210027921155">תמונה בתוך תמונה</translation>
-<translation id="7751229152614300329">הגלישה הבטוחה מעודכנת. היא מגינה עליך מפני אתרים והורדות שעלולים לגרום נזק.</translation>
 <translation id="7751260505918304024">הצג הכל</translation>
 <translation id="7754704193130578113">שאל היכן לשמור כל קובץ לפני הורדתו</translation>
 <translation id="7755287808199759310">אחד מההורים שלך יכול לבטל בשבילך את החסימה</translation>
@@ -5063,6 +5075,7 @@
     <ph name="BEGIN_BOLD" />הערה:<ph name="END_BOLD" /> המערכת תבצע הפעלה מחדש בזמן התהליך.</translation>
 <translation id="7828731929332799387">‏הפעולה הזו תמחק את כל קובצי ה-cookie ונתוני האתרים הזמינים בהקשרים של צד שלישי. להמשיך?</translation>
 <translation id="7829298379596169484">גישה לקלט אודיו</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> לא יכול לבדוק את הסיסמאות. כדאי לבדוק את החיבור לאינטרנט.</translation>
 <translation id="7829877209233347340">צריך לבקש מהורה להיכנס לחשבון כדי לאשר הוספה של חשבון בית ספרי</translation>
 <translation id="7830594666202422257">‏חיבור ל-Linux</translation>
 <translation id="7831491651892296503">אירעה שגיאה בהגדרת הרשת</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">‏מתקין את חנות Google Play במכשיר <ph name="DEVICE_TYPE" />. ייתכן שההתקנה תימשך כמה דקות.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{‏אין קובצי cookie של צד שלישי}=1{‏קובץ cookie אחד של צד שלישי נחסם}two{‏# קובצי cookie של צד שלישי נחסמו}many{‏# קובצי cookie של צד שלישי נחסמו}other{‏# קובצי cookie של צד שלישי נחסמו}}</translation>
 <translation id="810875025413331850">לא נמצאו מכשירים קרובים.</translation>
+<translation id="8114199541033039755">‏במצב טאבלט אפשר להשתמש בלחצנים כדי לעבור אל דף הבית, לחזור לדף הקודם ולעבור בין אפליקציות. האפשרות מופעלת כשמפעילים את ChromeVox או את 'קליקים אוטומטיים'.</translation>
 <translation id="8114875720387900039">פיצול אופקי</translation>
 <translation id="8116972784401310538">&amp;מנהל הסימניות</translation>
 <translation id="8117620576188476503">‏מגש הסטטוס מאפשר לך לנהל חיבורים, עדכונים והגדרות. כדי להגיע לכאן בעזרת המקלדת יש להקיש Alt + Shift + S.</translation>
@@ -5406,6 +5420,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> השבית את סמן העכבר.</translation>
 <translation id="8264024885325823677">ההגדרה הזו מנוהלת על-ידי מנהל המערכת שלך.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" הפעיל מסך מלא.</translation>
+<translation id="826511437356419340">‏נכנסת למצב סקירה כללית של חלון. כדי לנווט, יש להחליק על המסך, או להקיש על מקש Tab אם משתמשים במקלדת.</translation>
 <translation id="8267961145111171918">‏<ph name="BEGIN_PARAGRAPH1" />זהו מידע כללי על המכשיר ועל אופן השימוש בו (כמו רמת טעינת הסוללה, פעילות במערכת ובאפליקציות ושגיאות). הנתונים ישמשו כדי לשפר את Android. כמו כן, חלק מהמידע שיצטבר יעזור ל-Google ולשותפיה, כמו מפתחי Android, לשפר את האפליקציות והמוצרים שלהם.<ph name="END_PARAGRAPH1" />
 <ph name="BEGIN_PARAGRAPH2" />כיבוי תכונה זו לא ישפיע על יכולת המכשיר לשלוח את המידע הנדרש לשירותים חיוניים, כמו עדכוני מערכת ואבטחה.<ph name="END_PARAGRAPH2" />
 <ph name="BEGIN_PARAGRAPH3" />הבעלים יכול לשלוט בתכונה הזו דרך 'הגדרות' &gt; 'מתקדם' &gt; 'שליחה אוטומטית של נתוני אבחון ושימוש אל Google'.<ph name="END_PARAGRAPH3" />
@@ -5514,6 +5529,7 @@
 <translation id="8426713856918551002">מפעיל</translation>
 <translation id="8427292751741042100">מוטמע במארח כלשהו</translation>
 <translation id="8428213095426709021">הגדרות</translation>
+<translation id="8428271547607112339">הוספת חשבון בית ספרי</translation>
 <translation id="8428628598981198790">לא ניתן להשתמש במפתח האבטחה שלך באתר הזה</translation>
 <translation id="84297032718407999">בעוד <ph name="LOGOUT_TIME_LEFT" /> תבוצע יציאה מהחשבון</translation>
 <translation id="8431190899827883166">הצגת הקשות</translation>
@@ -5577,6 +5593,7 @@
 <translation id="851263357009351303">אפשר ל-<ph name="HOST" /> להציג תמונות תמיד</translation>
 <translation id="8513108775083588393">סיבוב אוטומטי</translation>
 <translation id="8514746246728959655">יש לנסות מפתח אבטחה שונה</translation>
+<translation id="851960115758509829">‏האפליקציות, ההגדרות ופריטים שהתאמת אישית יסונכרנו בין כל מכשירי Chrome OS שמחוברים באמצעות חשבון Google שלך.</translation>
 <translation id="8521475323816527629">גישה מהירה לאפליקציות</translation>
 <translation id="8523493869875972733">שמור את השינויים</translation>
 <translation id="8523849605371521713">נוסף על-ידי מדיניות</translation>
@@ -5858,11 +5875,13 @@
 <translation id="885701979325669005">אחסון</translation>
 <translation id="8859057652521303089">בחר שפה:</translation>
 <translation id="8859174528519900719">תת-מסגרת: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">חשבון הורה</translation>
 <translation id="8862003515646449717">החלף לדפדפן מהיר</translation>
 <translation id="8863753581171631212">פתח את הקישור ב-<ph name="APP" /></translation>
 <translation id="8864055848767439877">המערכת משתפת את <ph name="TAB_NAME" /> עם <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> הוסר מהמכשיר הזה</translation>
 <translation id="8867228703146808825">‏העתקה של פרטי ה-build אל הלוח</translation>
+<translation id="8868333925931032127">מתבצעת הפעלה של מצב הדגמה</translation>
 <translation id="8868626022555786497">בשימוש</translation>
 <translation id="8870413625673593573">נסגרו לאחרונה</translation>
 <translation id="8871551568777368300">הוצמד על ידי מנהל המערכת</translation>
@@ -5941,6 +5960,7 @@
 <translation id="8966870118594285808">ניתן לפתוח כרטיסייה מחדש אם סגרת אותה בטעות</translation>
 <translation id="8967866634928501045">‏כדי להציג, יש להקיש על Alt+Shift+A</translation>
 <translation id="8968766641738584599">שמירת הכרטיס</translation>
+<translation id="8971800409073702505">‏<ph name="IDS_SHORT_PRODUCT_NAME" /> לא יכול לבדוק את הסיסמאות. אפשר לנסות שוב בעוד 24 שעות או <ph name="BEGIN_LINK" />לבדוק את הסיסמאות בחשבון Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Esc</translation>
 <translation id="8972513834460200407">‏פנה אל מנהל המערכת של הרשת שלך כדי לוודא שחומת האש אינה חוסמת הורדות משרתי Google.</translation>
 <translation id="8973557916016709913">הסר את רמת המרחק מהתצוגה</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 7ae4135..ddd7cef 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">使用可能なデバイス</translation>
 <translation id="1042174272890264476">お使いのパソコンには <ph name="SHORT_PRODUCT_NAME" /> の RLZ ライブラリも組み込まれています。RLZ は、個人を特定できないタグを割り当てて、特定の販促キャンペーンで生じた検索や <ph name="SHORT_PRODUCT_NAME" /> の利用状況を計測します。これらのラベルは <ph name="PRODUCT_NAME" /> で Google 検索キーワード内に表示されることがあります。</translation>
 <translation id="1043818413152647937">次のアプリのデータも削除しますか?</translation>
+<translation id="1045448422538531528">グループに追加</translation>
 <translation id="1046635659603195359">別のデバイスの Google アシスタントで Voice Match をすでに設定しているようです。そこですでに登録してある音声を使ってこのデバイスで音声モデルを作成できます。処理にかかる時間は 1 分以内です。</translation>
 <translation id="104710386808485638">Linux を再起動しますか?</translation>
 <translation id="1047431265488717055">リンクテキストをコピー(&amp;X)</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">カメラへのアクセスを常にブロックする</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> が Chrome 設定を元のデフォルトに戻すことを求めています。これにより、ホームページ、新しいタブの画面、検索エンジンがリセットされ、拡張機能が無効となり、すべてのタブの固定が解除されます。また、その他の一時的なキャッシュ データ(Cookie、コンテンツ データ、サイトデータなど)も消去されます。</translation>
+<translation id="1084096383128641877">このパスワードを削除しても、<ph name="DOMAIN" /> のアカウントは削除されません。セキュリティを確保するため、パスワードを変更するか、<ph name="DOMAIN_LINK" /> のアカウントを削除してください。</translation>
 <translation id="1084824384139382525">リンクのアドレスをコピー(&amp;E)</translation>
 <translation id="1085697365578766383">仮想マシンの起動中にエラーが発生しました。もう一度お試しください。</translation>
 <translation id="1090126737595388931">実行中のバックグラウンド アプリはありません</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">安全確認を昨日実行しました</translation>
 <translation id="1260451001046713751"><ph name="HOST" /> のポップアップとリダイレクトを常に許可する</translation>
 <translation id="126156426083987769">デモモードデバイスライセンスで問題が発生しました。</translation>
+<translation id="1263490604593716556">アカウントは <ph name="FIRST_PARENT_EMAIL" /> と <ph name="SECOND_PARENT_EMAIL" /> によって管理されています。このデバイスでメイン アカウントからログアウトするには、画面上にある時間をクリックして表示されるメニューで [ログアウト] をクリックします。</translation>
 <translation id="126710816202626562">翻訳言語:</translation>
 <translation id="126768002343224824">16 倍</translation>
 <translation id="1272079795634619415">中止</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">ウェブサイト</translation>
 <translation id="15662109988763471">選択したプリンタは利用できないか、正しくインストールされていません。プリンタを確認するか、別のプリンタを選択してみてください。</translation>
 <translation id="1567387640189251553">前回のパスワード入力時以降に別のキーボードが接続されました。キー入力が読み取られる可能性があります。</translation>
-<translation id="1567750922576943685">本人確認をすることで個人情報を保護できます</translation>
 <translation id="1567993339577891801">JavaScript コンソール</translation>
 <translation id="1568323446248056064">ディスプレイのデバイス設定を開く</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" />(ゲスト)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">アート</translation>
 <translation id="1697686431566694143">ファイルを編集</translation>
 <translation id="1698122934742150150">現在のシークレット モード セッションのみ</translation>
-<translation id="1698650002254827833">アプリのリストを読み込めません。もう一度お試しください。</translation>
 <translation id="1700079447639026019">Cookie を使用できないサイト</translation>
 <translation id="1701062906490865540">このユーザーを削除</translation>
 <translation id="1703331064825191675">パスワードを気にする必要はありません</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">次へ</translation>
 <translation id="2173302385160625112">インターネット接続を確認してください</translation>
 <translation id="2173801458090845390">登録 ID をこのデバイスに追加します</translation>
+<translation id="2174948148799307353">アカウントは <ph name="PARENT_EMAIL" /> によって管理されています。このデバイスでメイン アカウントからログアウトするには、画面上にある時間をクリックして表示されるメニューで [ログアウト] をクリックします。</translation>
 <translation id="2175607476662778685">クイック起動バー</translation>
 <translation id="217576141146192373">プリンタを追加できません。プリンタの設定を確認して、もう一度お試しください。</translation>
 <translation id="2177950615300672361">シークレット タブ: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">テキストの影</translation>
 <translation id="2445081178310039857">拡張機能のルート ディレクトリを指定してください。</translation>
 <translation id="2445484935443597917">新しいプロフィールを作成</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> が本人確認を求めています</translation>
 <translation id="2448312741937722512">種類</translation>
 <translation id="2450223707519584812">Google API キーがないため、ユーザーを追加できません。詳しくは、<ph name="DETAILS_URL" /> をご覧ください。</translation>
 <translation id="2450849356604136918">アクティブ ビューなし</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" /> へ移動</translation>
 <translation id="29488703364906173">最新のウェブ環境に対応した高速、シンプル、安全なウェブブラウザです。</translation>
 <translation id="2949289451367477459">位置情報を使用するとともに、位置情報の利用を許可されているアプリやサービスがこのデバイスの位置情報を使用することを許可します。Google は位置情報を定期的に収集し、これを匿名のデータとして、位置情報の精度向上や位置情報に基づくサービスの改善に使用することがあります。<ph name="BEGIN_LINK1" />詳細<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">登録</translation>
 <translation id="2956070239128776395">セクションがグループにネストされています: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">サイトによるデバイスのファイルやフォルダの編集を許可しない</translation>
 <translation id="2958721676848865875">拡張機能のパッケージ化に関する警告</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">デフォルトの黄のアバター</translation>
 <translation id="3141318088920353606">お話しください...</translation>
 <translation id="3141917231319778873">「<ph name="DEVICE_NAME" />」で、指定されたリクエストはサポートされていません。</translation>
+<translation id="3142562627629111859">新しいグループ</translation>
 <translation id="3143515551205905069">同期をキャンセル</translation>
 <translation id="3143754809889689516">最初から再生</translation>
 <translation id="3144647712221361880">別のユーザーとしてリンクを開く</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">ベージュ</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />](ハードウェアにより保護を強化)</translation>
 <translation id="3161522574479303604">すべての言語</translation>
+<translation id="3162853326462195145">学校用アカウント</translation>
 <translation id="3162899666601560689">サイトは、Cookie を使用してブラウジングの利便性を改善できます(ログイン状態の維持、ショッピング カートの中身の保存などが行えます)</translation>
 <translation id="3163201441334626963">不明な商品(<ph name="PRODUCT_ID" />、ベンダー: <ph name="VENDOR_ID" />)</translation>
 <translation id="3164329792803560526">このタブを <ph name="APP_NAME" /> に共有しています</translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{1 日以内にデバイスを更新してください}other{# 日以内にデバイスを更新してください}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - ネットワーク エラー</translation>
 <translation id="3248902735035392926">安全性に問題がないか、<ph name="BEGIN_LINK" />拡張機能を確認<ph name="END_LINK" />しましょう</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" />(<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;証明書に含まれていません&gt;</translation>
 <translation id="3253225298092156258">利用できません</translation>
 <translation id="3253448572569133955">不明なアカウント</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">[同意して続行] をクリックすると、これらの Google サービスに関する上記の処理内容に同意したことになります。</translation>
 <translation id="3399432415385675819">通知が無効になります</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" />x<ph name="HEIGHT" />(<ph name="REFRESH_RATE" /> Hz)インターレース</translation>
+<translation id="3402585168444815892">デモモードでの登録</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />、<ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">このサイト用に保存されているパスワードはありません</translation>
 <translation id="3405664148539009465">フォントをカスタマイズ</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android スマートフォン</translation>
 <translation id="3470442499439619530">このユーザーを削除</translation>
 <translation id="3471876058939596279">HDMI ポートと USB Type-C ポートを同時にビデオ出力に使用することはできません。別のビデオポートを使用してください。</translation>
+<translation id="3473241910002674503">タブレット モードで、ボタンを使用してホームに移動したり、戻ったり、アプリを切り替えたりできます。</translation>
 <translation id="3473479545200714844">画面拡大鏡</translation>
 <translation id="3475843873335999118">指紋を認識できません。パスワードを入力してください。</translation>
 <translation id="3476303763173086583">使用状況データや診断データを送信します。診断データやデバイスとアプリの使用状況データを Google に自動送信して、お子様向けの Android 機能の向上にご協力ください。この情報を使ってお子様個人が特定されることはありません。この情報は、システムとアプリの安定性の向上やその他の機能の改善に役立てられます。また、Google のアプリやパートナー(Android デベロッパーなど)も、集計データとしてこの情報を活用します。この<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />は所有者によって管理されています。このデバイスの診断データや使用状況データを Google に送信するよう所有者が設定している可能性があります。お子様の [その他のウェブとアプリのアクティビティ] の設定がオンになっている場合、このデータはお子様の Google アカウントに保存されます。<ph name="BEGIN_LINK2" />詳細<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">このセキュリティ キーのフィンガープリント</translation>
 <translation id="3973660817924297510">パスワードを確認しています(<ph name="CHECKED_PASSWORDS" /> 件目 / <ph name="TOTAL_PASSWORDS" /> 件中)…</translation>
 <translation id="3975565978598857337">レルムのサーバーに接続できませんでした</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> でパスワードを確認できません。しばらくしてからもう一度お試しください。</translation>
 <translation id="3976108569178263973">利用できるプリンタがありません。</translation>
 <translation id="397703832102027365">最終処理中...</translation>
 <translation id="3977886311744775419">このネットワーク タイプでは自動更新はダウンロードされませんが、手動で更新を確認できます。</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">このページには、あなたの現在地を追跡している以下のサイトからの要素が含まれています。</translation>
 <translation id="4068776064906523561">保存した指紋</translation>
 <translation id="407173827865827707">クリックされた場合のみ</translation>
+<translation id="4073520450811433493">設定の同期</translation>
 <translation id="4074900173531346617">メール署名者の証明書</translation>
 <translation id="407520071244661467">倍率</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> をキャストできません。</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">フワフワ</translation>
 <translation id="4423376891418188461">設定を元に戻す</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" /> さん、管理者がパスワードの変更をリクエストしています。</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> でパスワードを確認できません。24 時間後にもう一度お試しください。</translation>
 <translation id="4429030830601238961">このデータは、組織のセキュリティ ポリシーに違反しているため貼り付けできません。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4430369329743628066">ブックマークを追加しました</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">マシンの起動時にこのアプリを自動的に起動しますか?</translation>
 <translation id="4441147046941420429">続行するには、デバイスからセキュリティ キーを取り外し、もう一度差し込んでからタッチしてください</translation>
 <translation id="444134486829715816">展開...</translation>
+<translation id="4442329324652245220">Google アカウントでログインすると、<ph name="IDS_SHORT_PRODUCT_NAME" /> でパスワードを確認できるようになります。</translation>
 <translation id="4442424173763614572">DNS を検索できませんでした</translation>
 <translation id="4443536555189480885">ヘルプ(&amp;H)</translation>
 <translation id="4444304522807523469">USB 接続またはローカル ネットワーク上のドキュメント スキャナーへのアクセス</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">このコードをスキャンするには、スマートフォンの QR スキャンアプリまたはカメラアプリを使用してください。</translation>
 <translation id="4477015793815781985">Ctrl キー、Alt キー、⌘ キーのいずれかが必要です</translation>
 <translation id="4478664379124702289">リンク先を別名で保存(&amp;K)...</translation>
+<translation id="4478777936860197922">保存されているパスワードがありません。パスワードを保存すると、<ph name="IDS_SHORT_PRODUCT_NAME" /> で確認できるようになります。</translation>
 <translation id="4479424953165245642">キオスク アプリケーションを管理</translation>
 <translation id="4479639480957787382">イーサネット</translation>
 <translation id="4479877282574735775">仮想マシンを設定しています。この処理には数分かかることがあります。</translation>
 <translation id="4480590691557335796">Chrome で、パソコン上の有害なソフトウェアを探して削除することができます</translation>
 <translation id="4481530544597605423">ペア設定されていないデバイス</translation>
+<translation id="4488107067273194838">設定後にブラウザの同期オプションを確認する</translation>
 <translation id="4488502501195719518">データをすべて消去しますか?</translation>
 <translation id="4495419450179050807">このページに表示しない</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" />を自動ブロック</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">インストールしない</translation>
 <translation id="4850669014075537160">スクロール</translation>
 <translation id="4850886885716139402">表示</translation>
+<translation id="485197095346966382">不正使用されたパスワードでログインした場合、<ph name="IDS_SHORT_PRODUCT_NAME" /> で通知します</translation>
 <translation id="4853020600495124913">新しいウィンドウで開く(&amp;N)</translation>
 <translation id="4854317507773910281">承認してもらう保護者のアカウントを選択</translation>
 <translation id="485480310608090163">その他の設定と権限</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN に無効な文字が含まれています</translation>
 <translation id="4871370605780490696">ブックマークを追加</translation>
 <translation id="4871719318659334896">グループを閉じる</translation>
+<translation id="4871852311166078968">グループに追加</translation>
 <translation id="4873312501243535625">メディア ファイル チェッカー</translation>
 <translation id="4876273079589074638">このクラッシュについて迅速に調査、解決できるよう、具体的な操作についてできるだけ詳しくご説明ください。</translation>
 <translation id="4876895919560854374">画面のロックとロック解除</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">使用できる入力方法が管理者によって制限されています。</translation>
 <translation id="4994474651455208930">プロトコルのデフォルト ハンドラへのサイトの登録要求を許可する</translation>
 <translation id="4994754230098574403">設定しています</translation>
-<translation id="4996978546172906250">共有方法</translation>
 <translation id="4997086284911172121">インターネットに接続されていません。</translation>
 <translation id="4997384734315285248">Plugin VM をアンインストール</translation>
 <translation id="4998430619171209993">オン</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">「OK Google」と話すとアシスタントにアクセスできます。</translation>
 <translation id="5135533361271311778">ブックマークの項目を作成できませんでした。</translation>
 <translation id="5137501176474113045">このアイテムを削除</translation>
-<translation id="5138982052046316113">Linux ディスクのサイズ変更</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />、<ph name="DEFAULT_SEARCH_ENGINE_NAME" /> 検索</translation>
 <translation id="5139823398361067371">セキュリティ キーの PIN を入力してください。PIN がわからない場合は、セキュリティ キーをリセットする必要があります。</translation>
 <translation id="5139955368427980650">開く(&amp;O)</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">確認を待っています。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">極大</translation>
 <translation id="574209121243317957">高さ</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" /> のご利用のヒント、特典、最新情報を受け取って、フィードバックをお送りいただけます</translation>
 <translation id="5746169159649715125">PDF に保存</translation>
 <translation id="5747552184818312860">有効期限</translation>
 <translation id="5747785204778348146">Dev - 不安定</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">Finder で表示(&amp;S)</translation>
 <translation id="6295158916970320988">すべてのサイト</translation>
 <translation id="6295855836753816081">保存しています...</translation>
-<translation id="629730747756840877">アカウント</translation>
 <translation id="6298962879096096191">Google Play を使用して Android アプリをインストールします</translation>
 <translation id="630065524203833229">終了(&amp;X)</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> を自動的に設定できませんでした。プリンタの詳細設定を指定してください。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159"><ph name="LANGUAGE" />のページではない場合</translation>
 <translation id="6865708901122695652">WebRTC イベントログ(<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">色温度</translation>
-<translation id="6870888490422746447">共有するアプリを選択してください:</translation>
 <translation id="6871644448911473373">OCSP レスポンダ: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">入力したパスワードはサーバーによって拒否されました。</translation>
 <translation id="6876155724392614295">自転車</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - アクティビティ ログ</translation>
 <translation id="6997707937646349884">デバイスで次の操作を行います。</translation>
 <translation id="6998793565256476099">デバイスをビデオ会議用に登録</translation>
+<translation id="6999956497249459195">新しいグループ</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> は接続していますが設定が必要です</translation>
 <translation id="7000347579424117903">Ctrl キー、Alt キー、検索キーのいずれかが必要です</translation>
 <translation id="7001036685275644873">Linux のアプリとファイルをバックアップしています</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">「<ph name="PHONE_NAME" />」で接続設定を行ってください</translation>
 <translation id="7401778920660465883">このメッセージを表示しない</translation>
+<translation id="7403642243184989645">リソースのダウンロード</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{安全確認を 1 時間前に実行しました}other{安全確認を {NUM_HOURS} 時間前に実行しました}}</translation>
 <translation id="740624631517654988">ポップアップがブロックされました</translation>
 <translation id="7407430846095439694">インポートしてバインド</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">Netscape 認証局ポリシー URL</translation>
 <translation id="7717014941119698257">ダウンロード: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">アップデートを確認</translation>
+<translation id="7719070594859855691">カメラへのアクセスを許可する</translation>
 <translation id="7719367874908701697">ページのズーム</translation>
 <translation id="7721179060400456005">ウィンドウを複数のディスプレイで表示できるようにする</translation>
 <translation id="7722040605881499779">更新に必要な空き容量: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">印刷履歴の表示</translation>
 <translation id="7744192722284567281">データ侵害で漏洩</translation>
 <translation id="7750228210027921155">ピクチャー イン ピクチャー</translation>
-<translation id="7751229152614300329">セーフ ブラウジングは最新の状態で、有害なサイトやダウンロードから保護されています</translation>
 <translation id="7751260505918304024">すべて表示</translation>
 <translation id="7754704193130578113">ダウンロード前に各ファイルの保存場所を確認する</translation>
 <translation id="7755287808199759310">ブロックの解除は保護者が行うことができます</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />注:<ph name="END_BOLD" /> この処理中、システムの再起動が行われます。</translation>
 <translation id="7828731929332799387">サードパーティのコンテキストで使用される Cookie とサイトデータがすべて削除されます。続行しますか?</translation>
 <translation id="7829298379596169484">音声入力にアクセスしています</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> でパスワードを確認できません。インターネット接続を確認してみてください。</translation>
 <translation id="7829877209233347340">保護者の方に、ログインして学校用アカウントの追加を許可してもらってください。</translation>
 <translation id="7830594666202422257">Linux に接続</translation>
 <translation id="7831491651892296503">ネットワークの設定中にエラーが発生しました</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394"><ph name="DEVICE_TYPE" /> に Google Play ストアをインストールしています。この処理には数分かかる可能性があります。</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{サードパーティの Cookie はありません}=1{1 個のサードパーティ Cookie がブロックされています}other{# 個のサードパーティ Cookie がブロックされています}}</translation>
 <translation id="810875025413331850">近くにデバイスは見つかりませんでした。</translation>
+<translation id="8114199541033039755">タブレット モードで、ボタンを使用してホームに移動したり、戻ったり、アプリを切り替えたりできます。ChromeVox や自動クリックが有効な場合はオンになります。</translation>
 <translation id="8114875720387900039">横に分割</translation>
 <translation id="8116972784401310538">ブックマーク マネージャ(&amp;B)</translation>
 <translation id="8117620576188476503">ステータス トレイで接続、アップデート、設定を管理できます。キーボードからステータス トレイを表示するには、Alt+Shift+S キーを押します。</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> でマウスカーソルが無効になりました。</translation>
 <translation id="8264024885325823677">この設定は管理者によって管理されています。</translation>
 <translation id="8264718194193514834">「<ph name="EXTENSION_NAME" />」によって全画面表示になりました。</translation>
+<translation id="826511437356419340">ウィンドウ概観モードに切り替わりました。移動するにはスワイプするか、キーボードの場合は Tab キーを押してください。</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />これは、お使いのデバイスとその使用状況(電池残量、システムとアプリのアクティビティ、エラーなど)に関する一般的な情報です。このデータは、Android の改善に使用されます。また一部の集計情報は、Google のアプリのほか、Android デベロッパーなどのパートナーが開発するアプリやサービスの品質改善にも役立てられます。<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />この機能をオフにした場合でも、システム アップデートやセキュリティなどの重要なサービスで必要となる情報は、デバイスからこれまでどおり送信されます。<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />デバイスの所有者は、[設定] &gt; [詳細設定] &gt; [診断と使用状況のデータを Google に自動送信する] でこの機能を管理できます。<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">有効にしています</translation>
 <translation id="8427292751741042100">ホストに埋め込まれたページ</translation>
 <translation id="8428213095426709021">設定</translation>
+<translation id="8428271547607112339">学校用アカウントを追加</translation>
 <translation id="8428628598981198790">お使いのセキュリティ キーはこのサイトでは使用できません</translation>
 <translation id="84297032718407999">あと <ph name="LOGOUT_TIME_LEFT" />でログアウトします</translation>
 <translation id="8431190899827883166">タップを表示</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303"><ph name="HOST" /> の画像を常に表示する</translation>
 <translation id="8513108775083588393">自動回転</translation>
 <translation id="8514746246728959655">別のセキュリティ キーを試す</translation>
+<translation id="851960115758509829">Google アカウントでログインしているすべての Chrome OS デバイス間でアプリや設定、その他のカスタマイズが同期されます。</translation>
 <translation id="8521475323816527629">アプリにすばやく移動</translation>
 <translation id="8523493869875972733">変更を保持</translation>
 <translation id="8523849605371521713">ポリシーにより追加</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">ストレージ</translation>
 <translation id="8859057652521303089">言語の選択:</translation>
 <translation id="8859174528519900719">サブフレーム: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">保護者のアカウント</translation>
 <translation id="8862003515646449717">高速なブラウザをぜひご利用ください</translation>
 <translation id="8863753581171631212">新しい <ph name="APP" /> でリンクを開く</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> を <ph name="APP_NAME" /> に共有しています</translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> はこのデバイスから削除されました</translation>
 <translation id="8867228703146808825">ビルドの詳細をクリップボードにコピーします</translation>
+<translation id="8868333925931032127">デモモードを開始します</translation>
 <translation id="8868626022555786497">使用中</translation>
 <translation id="8870413625673593573">最近閉じたタブ</translation>
 <translation id="8871551568777368300">管理者によって固定</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">間違って閉じたタブをもう一度開きます</translation>
 <translation id="8967866634928501045">Alt+Shift+A キーで表示します</translation>
 <translation id="8968766641738584599">カードを保存</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> でパスワードを確認できません。24 時間後にもう一度お試しいただくか、<ph name="BEGIN_LINK" />Google アカウントのパスワードをご確認ください<ph name="END_LINK" />。</translation>
 <translation id="89720367119469899">Esc</translation>
 <translation id="8972513834460200407">ファイアウォールが Google のサーバーからのダウンロードをブロックしていないかどうかをネットワーク管理者に確認してください。</translation>
 <translation id="8973557916016709913">拡大縮小値の指定を削除</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 2d737ba5..6681208 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">ხელმისაწვდომი მოწყობილობები</translation>
 <translation id="1042174272890264476">თქვენს კომპიუტერში ასევე ჩაშენებულია <ph name="SHORT_PRODUCT_NAME" />-ის RLZ ბიბლიოთეკა. RLZ მიამაგრებს არაუნიკალურ, არაპერსონალურ ტეგს, რომელიც გაზომავს ძიებებს და <ph name="SHORT_PRODUCT_NAME" />-ის გამოყენებას, რომლებიც აქტიურდება გარკვეული სარეკლამო კამპანიის მიერ. ეს წარწერები ზოგჯერ გამოჩნდება Google-ის ძიების მოთხოვნებში <ph name="PRODUCT_NAME" />-ში.</translation>
 <translation id="1043818413152647937">ამ აპებიდანაც გსურთ მონაცემთა გასუფთავება?</translation>
+<translation id="1045448422538531528">ჯგუფში დამატება</translation>
 <translation id="1046635659603195359">როგორც ჩანს, სხვა მოწყობილობაზე Google ასისტენტით უკვე დააყენეთ Voice Match. ეს ძველი ჩანაწერები გამოყენებული იქნება ამ მოწყობილობაზე ხმის მოდელის შესაქმნელად. ამას დასჭირდება წუთზე ნაკლები დრო.</translation>
 <translation id="104710386808485638">გსურთ Linux-ის გადატვირთვა?</translation>
 <translation id="1047431265488717055">ბმულის ტე&amp;ქსტის კოპირება</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">ყოველთვის დაიბლოკოს კამერაზე წვდომა</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" />-ს სურს თქვენი პარამეტრების საწყის მნიშვნელობებზე დაბრუნდება. ეს მოქმედება გადააყენებს თქვენს მთავარ გვერდს, ახალი ჩანართის გვერდსა და საძიებო სისტემას, ასევე გაითიშება გაფართოებები და მოიხსენება ყველა ჩანართის ჩამაგრება. ეს მოქმედება გაასუფთავებს სხვა დროებით და ქეშირებულ მონაცემებსაც, როგორიცაა ქუქი-ჩანაწერები, კონტენტი და საიტების მონაცემები.</translation>
+<translation id="1084096383128641877">ამ პაროლის ამოშლის შემთხვევაში თქვენი ანგარიში <ph name="DOMAIN" />-ზე არ წაიშლება. თქვენი პაროლი სხვის ხელში რომ არ აღმოჩნდეს, შეცვალეთ ან წაშალეთ ის <ph name="DOMAIN_LINK" />-ზე.</translation>
 <translation id="1084824384139382525">&amp;მისამართების ბმულების კოპირება</translation>
 <translation id="1085697365578766383">ვირტუალური მოწყობილობის გაშვება ვერ ხერხდება. გთხოვთ, ცადოთ ხელახლა.</translation>
 <translation id="1090126737595388931">არცერთი ფონური აპი გაშვებული არ არის</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">უსაფრთხოების შემოწმება შესრულდა გუშინ</translation>
 <translation id="1260451001046713751"><ph name="HOST" />-დან გადამისამართებებისა და ამომხტარი ფანჯრების ყოველთვის დაშვება</translation>
 <translation id="126156426083987769">წარმოიქმნა დემო-რეჟიმში მყოფი მოწყობილობის ლიცენზიებთან დაკავშირებული პრობლემა.</translation>
+<translation id="1263490604593716556">ანგარიშს მართავენ <ph name="FIRST_PARENT_EMAIL" /> და <ph name="SECOND_PARENT_EMAIL" />. ამ მოწყობილობაზე ძირითადი ანგარიშიდან რომ გამოხვიდეთ, ეკრანზე დააწკაპუნეთ დროზე. გამოჩენილ მენიუში დააწკაპუნეთ „გასვლაზე“.</translation>
 <translation id="126710816202626562">თარგმანის ენა:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">შეწყვეტა</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">ვებსაიტი</translation>
 <translation id="15662109988763471">არჩეული პრინტერი მიუწვდომელი ან არასწორად დაინსტალირებულია. შეამოწმეთ პრინტერი ან ცადეთ სხვა პრინტერის არჩევა.</translation>
 <translation id="1567387640189251553">თქვენ მიერ პაროლის უკანასკნელად შეყვანის შემდეგ მოწყობილობასთან დაკავშირდა განსხვავებული კლავიატურა. ეს შეიძლება იყოს თქვენ მიერ აკრეფილი ტექსტის მოპარვის მცდელობა.</translation>
-<translation id="1567750922576943685">ვინაობის დადასტურება ხელს უწყობს თქვენი პერსონალური ინფორმაციის დაცვას</translation>
 <translation id="1567993339577891801">JavaScript კონსოლი</translation>
 <translation id="1568323446248056064">ჩვენების მოწყობილობის პარამეტრების გახსნა</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (სტუმარი)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">ხელოვნება</translation>
 <translation id="1697686431566694143">ფაილის რედაქტირება</translation>
 <translation id="1698122934742150150">მხოლოდ მიმდინარე ინკოგნიტო სესია</translation>
-<translation id="1698650002254827833">აპების სია ვერ ჩაიტვირთა. გთხოვთ, ცადოთ ხელახლა.</translation>
 <translation id="1700079447639026019">საიტები, რომლებსაც არასოდეს შეუძლია ქუქი-ჩანაწერების გამოყენება</translation>
 <translation id="1701062906490865540">ამ მომხმარებლის ამოშლა</translation>
 <translation id="1703331064825191675">ნუღარ ინერვიულებთ თქვენს პაროლებზე</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">გაგრძელება</translation>
 <translation id="2173302385160625112">შეამოწმეთ თქვენი ინტერნეტ-კავშირი</translation>
 <translation id="2173801458090845390">ამ მოწყობილობაზე მოთხოვნის იდენტიფიკატორის დამატება</translation>
+<translation id="2174948148799307353">ანგარიშს მართავს <ph name="PARENT_EMAIL" />. ამ მოწყობილობაზე ძირითადი ანგარიშიდან რომ გამოხვიდეთ, ეკრანზე დააწკაპუნეთ დროზე. გამოჩენილ მენიუში დააწკაპუნეთ „გასვლაზე“.</translation>
 <translation id="2175607476662778685">სწრაფი გაშვების ზოლი</translation>
 <translation id="217576141146192373">პრინტერის დამატება ვერ მოხერხდა. შეამოწმეთ პრინტერის კონფიგურაცია და ცადეთ ხელახლა.</translation>
 <translation id="2177950615300672361">ინკოგნიტო ჩანართი: <ph name="TAB_NAME" /></translation>
@@ -1080,7 +1082,6 @@
 <translation id="2442916515643169563">ტექსტის ჩრდილი</translation>
 <translation id="2445081178310039857">საჭიროა გაფართოების ძირეული დირექტორია.</translation>
 <translation id="2445484935443597917">ახალი პროფილის შექმნა</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> ითხოვს თქვენი ვინაობის დადასტურებას</translation>
 <translation id="2448312741937722512">ტიპი</translation>
 <translation id="2450223707519584812">თქვენ ვერ შეძლებთ მომხმარებლების დამატებას, რადგან აკლია Google API გასაღებები. დამატებითი ინფორმაციისათვის იხილეთ <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">აქტიური ხედები არ არის</translation>
@@ -1478,6 +1479,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" />-ზე გადასვლა</translation>
 <translation id="29488703364906173">სწრაფი, მარტივი და უსაფრთხო ვებ-ბრაუზერი, შექმნილი სპეციალურად თანამედროვე ინტერნეტისთვის.</translation>
 <translation id="2949289451367477459">მდებარეობის გამოყენება. დაუშვით ამ მოწყობილობის მდებარეობის გამოყენება იმ აპებისა და სერვისებისთვის, რომლებსაც უკვე მიენიჭა მდებარეობაზე წვდომის ნებართვა. Google-მა შეიძლება პერიოდულად შეაგროვოს მდებარეობის ანონიმური მონაცემები, რაც ხელს შეუწყობს მდებარეობის სიზუსტისა და მდებარეობაზე დაფუძნებული სერვისების გაუმჯობესებას აღნიშნული მონაცემების გამოყენებით. <ph name="BEGIN_LINK1" />შეიტყვეთ მეტი<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">რეგისტრაცია</translation>
 <translation id="2956070239128776395">სექცია ჩადგმულია ჯგუფში: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">არცერთ საიტს არ მიეცეს ნება, დაარედაქტიროს ფაილები ან საქაღალდეები თქვენს მოწყობილობაზე</translation>
 <translation id="2958721676848865875">პაკეტის გაფართოების გაფრთხილება</translation>
@@ -1602,6 +1604,7 @@
 <translation id="3139925690611372679">ნაგულისხმევი ყვითელი ავატარი</translation>
 <translation id="3141318088920353606">მიმდინარეობს მოსმენა…</translation>
 <translation id="3141917231319778873">„<ph name="DEVICE_NAME" />“-ის მიმართ მოცემული მოთხოვნა მხარდაუჭერელია.</translation>
+<translation id="3142562627629111859">ახალი ჯგუფი</translation>
 <translation id="3143515551205905069">სინქრონიზაციის გაუქმება</translation>
 <translation id="3143754809889689516">დასაწყისიდან დაკვრა</translation>
 <translation id="3144647712221361880">ბმულის გახსნა, როგორც</translation>
@@ -1626,6 +1629,7 @@
 <translation id="3159493096109238499">ბეჟისფერი</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (აპარატურულად მხარდაჭერილი)</translation>
 <translation id="3161522574479303604">ყველა ენა</translation>
+<translation id="3162853326462195145">სასწავლებლის ანგარიში</translation>
 <translation id="3162899666601560689">საიტები გამოიყენებს ქუქი-ჩანაწერებს დათვალიერების პროცესის გასაუმჯობესებლად, მაგალითად, სისტემაში შესული მდგომარეობის შესანარჩუნებლად ან საყიდლების კალათაში დამატებული ერთეულების დასამახსოვრებლად</translation>
 <translation id="3163201441334626963">უცნობი პროდუქტი – <ph name="PRODUCT_ID" /> მომწოდებლისგან: <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">მიმდინარეობს ამ ჩანართის გაზიარება <ph name="APP_NAME" />-თან</translation>
@@ -1684,7 +1688,6 @@
 <translation id="3246107497225150582">{0,plural, =1{განაახლეთ მოწყობილობა დღის განმავლობაში}other{განაახლეთ მოწყობილობა # დღის განმავლობაში}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> — ქსელის შეცდომა</translation>
 <translation id="3248902735035392926">უსაფრთხოება მნიშვნელოვანია. დაუთმეთ დრო <ph name="BEGIN_LINK" />გამოყენებული გაფართოებების<ph name="END_LINK" /> შემოწმებას.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;არ არის სერთიფიკატის ნაწილი&gt;</translation>
 <translation id="3253225298092156258">მიუწვდომელია</translation>
 <translation id="3253448572569133955">უცნობი ანგარიში</translation>
@@ -1789,6 +1792,7 @@
 <translation id="3396800784455899911">ღილაკზე „დათანხმება და გაგრძელება“ დაწკაპუნებით თქვენ ეთანხმებით მოცემული Google სერვისებისთვის მონაცემების ზემოაღნიშნული წესით დამუშავებას.</translation>
 <translation id="3399432415385675819">შეტყობინებები გაითიშება</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> ჰერცი) — ინტერლეისით</translation>
+<translation id="3402585168444815892">მიმდინარეობს დემო-რეჟიმში რეგისტრაცია</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">ამ საიტისთვის პაროლები შენახული არ არის</translation>
 <translation id="3405664148539009465">შრიფტების მორგება</translation>
@@ -1850,6 +1854,7 @@
 <translation id="3468999815377931311">Android ტელეფონი</translation>
 <translation id="3470442499439619530">ამ მომხმარებლის წაშლა</translation>
 <translation id="3471876058939596279">ვიდეოსთვის HDMI და USB Type-C პორტების ერთდროულად გამოყენება ვერ მოხერხდება. გამოიყენეთ განსხვავებული ვიდეოპორტი.</translation>
+<translation id="3473241910002674503">ნავიგაცია მთავარზე/უკან და აპებს შორის გადართვა ღილაკების მეშვეობით ტაბლეტის რეჟიმში.</translation>
 <translation id="3473479545200714844">ეკრანის ლუპა</translation>
 <translation id="3475843873335999118">სამწუხაროდ, თქვენი თითის ანაბეჭდის ამოცნობა კვლავ ვერ მოხერხდა. გთხოვთ, შეიყვანოთ პაროლი.</translation>
 <translation id="3476303763173086583">გამოყენებისა და დიაგნოსტიკის მონაცემების გაგზავნა. ხელი შეუწყვეთ Android-ის გაუმჯობესებას თქვენი შვილისთვის, დიაგნოსტიკისა და მოწყობილობის/აპების გამოყენების მონაცემების ავტომატურად გაგზავნით Google-ში. აღნიშნული მონაცემები არ იქნება გამოყენებული თქვენი შვილის ვინაობის დასადგენად, არამედ დაგვეხმარება სისტემის/აპების სტაბილურობისა და სხვა ფუნქციების გაუმჯობესებაში. გარდა ამისა, გაერთიანებული მონაცემების ნაწილი ხელს შეუწყობს Google აპებსა და პარტნიორებს, მაგალითად, Android-ის დეველოპერებს. ეს <ph name="BEGIN_LINK1" />პარამეტრი<ph name="END_LINK1" /> არის იძულებით გააქტიურებული მფლობელის მიერ. მფლობელს შეუძლია ამ მოწყობილობის დიაგნოსტიკისა და გამოყენების მონაცემების Google-ისთვის გაგზავნის დაშვება. თუ თქვენი შვილისთვის ჩართულია ვებსა და აპებში დამატებითი აქტივობის პარამეტრი, აღნიშნული მონაცემები შესაძლოა შეინახოს მის Google ანგარიშში. <ph name="BEGIN_LINK2" />შეიტყვეთ მეტი<ph name="END_LINK2" /></translation>
@@ -2274,6 +2279,7 @@
 <translation id="3971764089670057203">თითის ანაბეჭდები უსაფრთხოების ამ გასაღებზე</translation>
 <translation id="3973660817924297510">მიმდინარეობს პაროლების შემოწმება (<ph name="CHECKED_PASSWORDS" /> / <ph name="TOTAL_PASSWORDS" />-დან)…</translation>
 <translation id="3975565978598857337">სერვერთან არის თაობაზე დაკავშირება ვერ მოხერხდა</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ვერ ახერხებს პაროლების შემოწმებას. ცადეთ მოგვიანებით.</translation>
 <translation id="3976108569178263973">ხელმისაწვდომი პრინტერები არ არის.</translation>
 <translation id="397703832102027365">მიმდინარეობს დასრულება…</translation>
 <translation id="3977886311744775419">ავტომატური განახლებები არ ჩამოიტვირთება ქსელის ამ ტიპის მეშვეობით, თუმცა შეგიძლიათ განახლებების ხელით შემოწმება.</translation>
@@ -2337,6 +2343,7 @@
 <translation id="4068506536726151626">ეს გვერდი შეიცავს ელემენტებს შემდეგი საიტებიდან, რომლებიც ამოწმებენ თქვენს ადგილმდებარეობას:</translation>
 <translation id="4068776064906523561">შენახული თითის ანაბეჭდები</translation>
 <translation id="407173827865827707">დაწკაპუნებისას</translation>
+<translation id="4073520450811433493">პარამეტრების სინქრონიზაცია</translation>
 <translation id="4074900173531346617">ელფოსტის ხელმოწერის სერტიფიკატი</translation>
 <translation id="407520071244661467">მასშტაბირება</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> ვერ ტრანსლირდება.</translation>
@@ -2573,6 +2580,7 @@
 <translation id="4421932782753506458">ბუსუსი</translation>
 <translation id="4423376891418188461">პარამეტრების აღდგენა</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, ადმინისტრატორი თქვენი პაროლის შეცვლას მოითხოვს.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ვერ ახერხებს პაროლების შემოწმებას. ცადეთ 24 საათში.</translation>
 <translation id="4429030830601238961">ეს მონაცემები არღვევს თქვენი ორგანიზაციის უსაფრთხოებასთან დაკავშირებულ წესებს, ამიტომ ჩასმა ვერ მოხერხდება.</translation>
 <translation id="4430019312045809116">ხმა</translation>
 <translation id="4430369329743628066">სანიშნე დამატებულია</translation>
@@ -2585,6 +2593,7 @@
 <translation id="4441124369922430666">გსურთ ავტომატურად გაუშვათ ეს პროგრამა კომპიუტერის ჩართვისას?</translation>
 <translation id="4441147046941420429">გასაგრძელებლად ამოიღეთ უსაფრთხოების გასაღები მოწყობილობიდან, შემდეგ ხელახლა ჩასვით ის და შეეხეთ მას</translation>
 <translation id="444134486829715816">გაშლა…</translation>
+<translation id="4442329324652245220">პაროლების <ph name="IDS_SHORT_PRODUCT_NAME" />-ის მეშვეობით შესამოწმებლად შედით სისტემაში თქვენი Google ანგარიშით</translation>
 <translation id="4442424173763614572">DNS ძიება ვერ განხორციელდა</translation>
 <translation id="4443536555189480885">&amp;დახმარება</translation>
 <translation id="4444304522807523469">მიიღეთ წვდომა დოკუმენტების სკანერებზე, რომლებიც მიმაგრებულია USB-ით ან ლოკალური ქსელის მეშვეობით</translation>
@@ -2611,11 +2620,13 @@
 <translation id="4476659815936224889">ამ კოდის სკანირებისთვის შეგიძლიათ გამოიყენოთ კამერის ზოგიერთი აპი ან QR კოდების სკანირების აპი თქვენს ტელეფონზე.</translation>
 <translation id="4477015793815781985">დაურთეთ Ctrl, Alt ან ⌘</translation>
 <translation id="4478664379124702289">ბმუ&amp;ლების შენახვა როგორც…</translation>
+<translation id="4478777936860197922">შენახული პაროლები არ არის. პაროლების შემოწმებას <ph name="IDS_SHORT_PRODUCT_NAME" /> შეძლებს მათი შენახვის შემდეგ.</translation>
 <translation id="4479424953165245642">kiosk აპლიკაციების მართვა</translation>
 <translation id="4479639480957787382">ეთერნეთი</translation>
 <translation id="4479877282574735775">მიმდინარეობს ვირტუალური მოწყობილობის კონფიგურაცია. ამას შეიძლება რამდენიმე წუთი დასჭირდეს.</translation>
 <translation id="4480590691557335796">Chrome-ს შეუძლია თქვენს კომპიუტერზე საზიანო პროგრამული უზრუნველყოფის პოვნა და ამოშლა</translation>
 <translation id="4481530544597605423">დაწყვილებაგაუქმებული მოწყობილობები</translation>
+<translation id="4488107067273194838">დაყენების შემდეგ ბრაუზერის სინქრონიზაციის ვარიანტების გადახედვა</translation>
 <translation id="4488502501195719518">გასუფთავდეს ყველა მონაცემი?</translation>
 <translation id="4495419450179050807">არ აჩვენო ამ გვერდზე</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> დაბლოკილია ავტომატურად</translation>
@@ -2857,6 +2868,7 @@
 <translation id="4849517651082200438">არ დააინსტალიროთ</translation>
 <translation id="4850669014075537160">გადაადგილება</translation>
 <translation id="4850886885716139402">გადახედვა</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> შეგატყობინებთ, როცა სისტემაში გატეხილი პაროლით შეხვალთ</translation>
 <translation id="4853020600495124913">&amp;ახალ ფანჯარაში გახსნა</translation>
 <translation id="4854317507773910281">აირჩიეთ მშობლის ანგარიში დასადასტურებლად</translation>
 <translation id="485480310608090163">სხვა პარამეტრები და ნებართვები</translation>
@@ -2875,6 +2887,7 @@
 <translation id="4871322859485617074">PIN-კოდი შეიცავს არასწორ სიმბოლოებს</translation>
 <translation id="4871370605780490696">სანიშნის დამატება</translation>
 <translation id="4871719318659334896">ჯგუფის დახურვა</translation>
+<translation id="4871852311166078968">ჯგუფში დამატება</translation>
 <translation id="4873312501243535625">მედია ფაილების შემმოწმებელი</translation>
 <translation id="4876273079589074638">ხელი შეუწყვეთ ჩვენს ინჟინრებს, შეისწავლონ და გამოასწორონ ავარიულად გათიშვის მიზეზი. შეძლებისდაგვარად, ზუსტად ჩამოთვალეთ ყველა ეტაპი. ყოველი დეტალი მნიშვნელოვანია!</translation>
 <translation id="4876895919560854374">ეკრანის ჩაკეტვა და გახსნა</translation>
@@ -2966,7 +2979,6 @@
 <translation id="4992473555164495036">თქვენმა ადმინისტრატორმა შეზღუდა შეყვანის მეთოდების ხელმისაწვდომობა.</translation>
 <translation id="4994474651455208930">საიტების მხრიდან ამა თუ იმ პროტოკოლის ნაგულისხმევ დამმუშავებლად მათი დაყენების მოთხოვნის დაშვება</translation>
 <translation id="4994754230098574403">მიმდინარეობს დაყენება</translation>
-<translation id="4996978546172906250">გაზიარების პროგრამა</translation>
 <translation id="4997086284911172121">ინტერნეტთან კავშირი არ არის.</translation>
 <translation id="4997384734315285248">Plugin VM-ის დეინსტალაცია</translation>
 <translation id="4998430619171209993">ჩართული</translation>
@@ -3066,7 +3078,6 @@
 <translation id="5135085122826131075">იქონიეთ წვდომა ასისტენტზე „Ok Google“-ის წარმოთქმით.</translation>
 <translation id="5135533361271311778">სანიშნის ელემენტი ვერ შეიქმნა.</translation>
 <translation id="5137501176474113045">ამ ელემენტის წაშლა</translation>
-<translation id="5138982052046316113">Linux-ის დისკის ზომის შეცვლა</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> ძიება</translation>
 <translation id="5139823398361067371">შეიყვანეთ PIN-კოდი თქვენი უსაფრთხოების გასაღებისთვის. თუ PIN-კოდი არ იცით, მოგიწევთ უსაფრთხოების გასაღების გადაყენება.</translation>
 <translation id="5139955368427980650">&amp;გახსნა</translation>
@@ -3518,6 +3529,7 @@
 <translation id="5739235828260127894">დადასტურების მოლოდინში. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">ძალიან დიდი</translation>
 <translation id="574209121243317957">სიმაღლე</translation>
+<translation id="5745136023067925867">მიიღეთ <ph name="DEVICE_TYPE" />-თან დაკავშირებული რჩევები, შემოთავაზებები თუ განახლებები და გაგვიზიარეთ გამოხმაურება</translation>
 <translation id="5746169159649715125">შენახვა PDF-ის სახით</translation>
 <translation id="5747552184818312860">ვადა</translation>
 <translation id="5747785204778348146">შემმუშავებელი - არასტაბილური</translation>
@@ -3930,7 +3942,6 @@
 <translation id="6291953229176937411">ჩ&amp;ვენება მაძიებელში</translation>
 <translation id="6295158916970320988">ყველა საიტი</translation>
 <translation id="6295855836753816081">მიმდინარეობს შენახვა…</translation>
-<translation id="629730747756840877">ანგარიში</translation>
 <translation id="6298962879096096191">Android-ის აპების ინსტალაციისთვის Google Play-ს გამოყენება</translation>
 <translation id="630065524203833229">გ&amp;ასვლა</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> ვერ დაკონფიგურირდა ავტომატურად. გთხოვთ, მიუთითოთ პრინტერის გაფართოებული დეტალები. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation>
@@ -4336,7 +4347,6 @@
 <translation id="6865598234501509159">არ არის <ph name="LANGUAGE" /> გვერდი</translation>
 <translation id="6865708901122695652">WebRTC მოვლენათა ჟურნალები (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">ფერთა ტემპერატურა</translation>
-<translation id="6870888490422746447">აირჩიეთ, რომელ აპთან გაზიარდეს:</translation>
 <translation id="6871644448911473373">OCSP რესპონდერი: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">თქვენ მიერ შეყვანილი პაროლი უარყოფილია სერვერის მიერ.</translation>
 <translation id="6876155724392614295">ველოსიპედი</translation>
@@ -4429,6 +4439,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> — აქტივობის ჟურნალი</translation>
 <translation id="6997707937646349884">თქვენს მოწყობილობებზე:</translation>
 <translation id="6998793565256476099">მოწყობილობის რეგისტრაცია ვიდეოკონფერენციებისთვის</translation>
+<translation id="6999956497249459195">ახალი ჯგუფი</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> დაკავშირებულია, თუმცა საჭიროებს კონფიგურაციას</translation>
 <translation id="7000347579424117903">დაურთეთ Ctrl, Alt ან Search</translation>
 <translation id="7001036685275644873">მიმდინარეობს Linux აპებისა და ფაილების სარეზერვო კოპირება</translation>
@@ -4727,6 +4738,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">დააყენეთ კავშირი თქვენს <ph name="PHONE_NAME" />-ზე</translation>
 <translation id="7401778920660465883">ამ შეტყობინების დახურვა</translation>
+<translation id="7403642243184989645">მიმდინარეობს რესურსების ჩამოტვირთვა</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{უსაფრთხოების შემოწმება შესრულდა 1 საათის წინ}other{უსაფრთხოების შემოწმება შესრულდა {NUM_HOURS} საათის წინ}}</translation>
 <translation id="740624631517654988">კონტექსტური ფანჯარა დაბლოკილია</translation>
 <translation id="7407430846095439694">იმპორტი და მიბმა</translation>
@@ -4963,6 +4975,7 @@
 <translation id="7716781361494605745">Netscape სერტიფიკაციის ორგანიზაციის პოლიტიკის URL</translation>
 <translation id="7717014941119698257">ჩამოტვირთვა: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">განახლებების შემოწმება</translation>
+<translation id="7719070594859855691">კამერაზე წვდომის მინიჭება</translation>
 <translation id="7719367874908701697">გვერდის მასშტაბი</translation>
 <translation id="7721179060400456005">ფანჯრებისთვის ეკრანების გადაფარვის დაშვება</translation>
 <translation id="7722040605881499779">განახლებისთვის საჭიროა: <ph name="NECESSARY_SPACE" /></translation>
@@ -4977,7 +4990,6 @@
 <translation id="7744047395460924128">თქვენი ბეჭდვის ისტორიის ნახვა</translation>
 <translation id="7744192722284567281">დაფიქსირდა პერსონალურ მონაცემთა გაჟონვისას</translation>
 <translation id="7750228210027921155">გამოსახულება გამოსახულებაში</translation>
-<translation id="7751229152614300329">Safe Browsing განახლებულია და გიცავთ საზიანო საიტებისა თუ ჩამოტვირთვებისგან</translation>
 <translation id="7751260505918304024">ყველას ჩვენება</translation>
 <translation id="7754704193130578113">მკითხე, სად შეინახოს თითოეული ფაილი ჩამოტვირთვამდე</translation>
 <translation id="7755287808199759310">მისი განბლოკვა თქვენს მშობელს შეუძლია</translation>
@@ -5065,6 +5077,7 @@
     <ph name="BEGIN_BOLD" />შენიშვნა:<ph name="END_BOLD" /> პროცესის მსვლელობისას სისტემა გადაიტვირთება.</translation>
 <translation id="7828731929332799387">ეს ქმედება წაშლის ყველა იმ ქუქი-ჩანაწერსა და საიტების მონაცემს, რომელიც ხელმისაწვდომია მესამე მხარის კონტექსტებში. გსურთ გაგრძელება?</translation>
 <translation id="7829298379596169484">შემომავალ აუდიოზე წვდომა</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ვერ ახერხებს პაროლების შემოწმებას. შეამოწმეთ კავშირი ინტერნეტთან.</translation>
 <translation id="7829877209233347340">სასწავლებლის ანგარიშის დამატების ნებართვის მოსანიჭებლად სთხოვეთ მშობელს სისტემაში შესვლა</translation>
 <translation id="7830594666202422257">Linux-თან დაკავშირება</translation>
 <translation id="7831491651892296503">შეცდომა ქსელის კონფიგურაციისას</translation>
@@ -5286,6 +5299,7 @@
 <translation id="8107015733319732394">მიმდინარეობს Google Play Store-ის ინსტალაცია თქვენს <ph name="DEVICE_TYPE" />-ზე. ამას შეიძლება რამდენიმე წუთი დასჭირდეს.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{მესამე მხარის ქუქი-ჩანაწერები არ არის}=1{მესამე მხარის 1 ქუქი-ჩანაწერი დაბლოკილია}other{მესამე მხარის # ქუქი-ჩანაწერი დაბლოკილია}}</translation>
 <translation id="810875025413331850">ახლომდებარე მოწყობილობები ვერ მოიძებნა.</translation>
+<translation id="8114199541033039755">ნავიგაცია მთავარზე/უკან და აპებს შორის გადართვა ღილაკების მეშვეობით ტაბლეტის რეჟიმში. ჩაირთვება, როცა გააქტიურებულია ChromeVox ან ავტომატური დაწკაპუნებები.</translation>
 <translation id="8114875720387900039">ჰორიზონტალური გაყოფა</translation>
 <translation id="8116972784401310538">&amp;სანიშნეების მმართველი</translation>
 <translation id="8117620576188476503">სტატუსის უჯრიდან შეგიძლიათ მართოთ კავშირები, განახლებები და პარამეტრები. კლავიატურის მეშვეობით აქ გადმოსასვლელად გამოიყენეთ კლავიშთა კომბინაცია: Alt + Shift + S.</translation>
@@ -5404,6 +5418,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" />-მა გამორთო მაუსის კურსორი.</translation>
 <translation id="8264024885325823677">ამ პარამეტრს მართავს თქვენი ადმინისტრატორი.</translation>
 <translation id="8264718194193514834">„<ph name="EXTENSION_NAME" />“ სრულ ეკრანზე გამოწვევა.</translation>
+<translation id="826511437356419340">შესულია ფანჯრების მიმოხილვის რეჟიმში. ნავიგაციისთვის გადაფურცლეთ ან დააჭირეთ Tab-კლავიშს, თუ კლავიატურას იყენებთ.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />ეს არის ზოგადი ინფორმაცია ამ მოწყობილობისა და მისი გამოყენების შესახებ (მაგ. ბატარეის დონე, სისტემისა და აპების აქტივობა თუ შეცდომები). აღნიშნული მონაცემები ხელს შეუწყობს Android-ის გაუმჯობესებას, ხოლო შეჯამებული ინფორმაციის ნაწილი ასევე სასარგებლო იქნება Google-ის აპებისა და პარტნიორებისთვის, მაგალითად, Android-ის დეველოპერებისთვის, რომლებიც შეძლებენ საკუთარი აპებისა და პროდუქტების დახვეწას.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />ამ ფუნქციის გამორთვა არ შეუშლის ხელს ამ მოწყობილობას, გააგზავნოს ისეთი არსებითი სერვისებისთვის აუცილებელი ინფორმაცია, როგორიცაა სისტემის განახლებები და უსაფრთხოება.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />ამ ფუნქციის მართვა მფლობელს შეუძლია აქ: პარამეტრები &gt; გაფართოებული &gt; დიაგნოსტიკური და გამოყენების შესახებ მონაცემების Google-ისთვის ავტომატურად გაგზავნა.<ph name="END_PARAGRAPH3" />
@@ -5512,6 +5527,7 @@
 <translation id="8426713856918551002">მიმდინარეობს ჩართვა</translation>
 <translation id="8427292751741042100">ჩაშენებული ნებისმიერ ჰოსტზე</translation>
 <translation id="8428213095426709021">პარამეტრები</translation>
+<translation id="8428271547607112339">სასწავლებლის ანგარიშის დამატება</translation>
 <translation id="8428628598981198790">თქვენი უსაფრთხოების გასაღების ამ საიტზე გამოყენება ვერ მოხერხდება</translation>
 <translation id="84297032718407999">სისტემიდან თქვენს გამოსვლამდე დარჩა <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">შეხებების ჩვენება</translation>
@@ -5575,6 +5591,7 @@
 <translation id="851263357009351303">ყოველთვის მიეცი ნება <ph name="HOST" />-ს, აჩვენოს გამოსახულებები</translation>
 <translation id="8513108775083588393">ავტომატური შეტრიალება</translation>
 <translation id="8514746246728959655">ცადეთ უსაფრთხოების სხვა გასაღები</translation>
+<translation id="851960115758509829">თქვენი აპები, პარამეტრები და სხვა მოდიფიკაციები სინქრონიზებული იქნება ყველა Chrome OS მოწყობილობას შორის, რომლებზეც შესული ხართ თქვენი Google ანგარიშით.</translation>
 <translation id="8521475323816527629">იქონიეთ სწრაფი წვდომა თქვენს აპებზე</translation>
 <translation id="8523493869875972733">ცვლილებების შენარჩუნება</translation>
 <translation id="8523849605371521713">დამატებულია წესების მიხედვით</translation>
@@ -5856,11 +5873,13 @@
 <translation id="885701979325669005">შენახვა</translation>
 <translation id="8859057652521303089">აირჩიეთ ენა:</translation>
 <translation id="8859174528519900719">ქვეკადრი: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">მშობლის ანგარიში</translation>
 <translation id="8862003515646449717">გადადით სწრაფ ბრაუზერზე</translation>
 <translation id="8863753581171631212">ბმულის გახსნა ახალ <ph name="APP" />-ში</translation>
 <translation id="8864055848767439877">მიმდინარეობს „<ph name="TAB_NAME" />“-ის გაზიარება <ph name="APP_NAME" />-თან</translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> ამოიშალა ამ მოწყობილობიდან</translation>
 <translation id="8867228703146808825">ანაწყობის დეტალების კოპირება გაცვლის ბუფერში</translation>
+<translation id="8868333925931032127">მიმდინარეობს დემო-რეჟიმის გაშვება</translation>
 <translation id="8868626022555786497">გამოყენებული</translation>
 <translation id="8870413625673593573">ბოლოს დახურული</translation>
 <translation id="8871551568777368300">ჩამაგრებულია ადმინისტრატორის მიერ</translation>
@@ -5939,6 +5958,7 @@
 <translation id="8966870118594285808">გახსენით ჩანართი ხელახლა მისი შემთხვევით დახურვის შემთხვევაში</translation>
 <translation id="8967866634928501045">საჩვენებლად დააჭირეთ კლავიშთა შემდეგ კომბინაციას: Alt+Shift+A</translation>
 <translation id="8968766641738584599">ბარათის შენახვა</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ვერ ახერხებს პაროლების შემოწმებას. ცადეთ 24 საათში ან <ph name="BEGIN_LINK" />შეამოწმეთ პაროლები თქვენს Google ანგარიშში<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">ჰკითხეთ ქსელის ადმინისტრატორს, ხომ არ ბლოკავს ქსელური დაცვა ჩამოტვირთვებს Google-ის სერვერებიდან.</translation>
 <translation id="8973557916016709913">მასშტაბირების დონის ამოშლა</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 2b7a2b1c..0180834 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Қолжетімді құрылғылар</translation>
 <translation id="1042174272890264476">Сонымен қатар компьютеріңізге <ph name="SHORT_PRODUCT_NAME" /> RLZ кітапханасы ендірілген. RLZ кітапханасы белгілі бір науқан арқылы жүргізілген іздеулер мен <ph name="SHORT_PRODUCT_NAME" /> пайдалану мүмкіндігін өлшеу үшін бірегей емес, жеке анықталмайтын тегті тағайындайды. Бұл белгілер кейде <ph name="PRODUCT_NAME" /> өніміндегі Google Search сұрауларында пайда болады.</translation>
 <translation id="1043818413152647937">Осы қолданбалардағы деректер де өшірілсін бе?</translation>
+<translation id="1045448422538531528">Топқа қосу</translation>
 <translation id="1046635659603195359">Voice Match функциясын бұрын Google Assistant қолданбасымен басқа құрылғыда орнатқан сияқтысыз. Бұл алдыңғы жазбаларды осы құрылғыда дауыс үлгісін жасауға пайдалануға болады. Бұған бір минутқа жетпейтін уақыт кетеді.</translation>
 <translation id="104710386808485638">Linux жүйесі қайта қосылсын ба?</translation>
 <translation id="1047431265488717055">Сілтеме мә&amp;тінін көшіру</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Камераға кіруге тыйым салу</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> бастапқы Chrome параметрлеріңіздің әдепкі мәндерін қалпына келтіргісі келеді. Бұл әрекет бастапқы бетті, жаңа қойынды бетін және іздеу жүйесін бастапқы қалпына келтіреді және кеңейтімдерді өшіреді, барлық қойындыларды босатады. Сонымен қатар cookie файлдары, мазмұн және сайт деректері тәрізді басқа уақытша және кэштелген деректер өшіріледі.</translation>
+<translation id="1084096383128641877">Құпия сөзді өшірсеңіз, <ph name="DOMAIN" /> доменіндегі есептік жазбаңыз жойылмайды. Деректерді қорғау үшін құпия сөзіңізді өзгертіңіз немесе <ph name="DOMAIN_LINK" /> доменіндегі есептік жазбаны жойыңыз.</translation>
 <translation id="1084824384139382525">Сілтеме мекен&amp;жайын көшіру</translation>
 <translation id="1085697365578766383">Виртуалдық құрылғыны қосу кезінде қате шықты. Қайта қосып көріңіз.</translation>
 <translation id="1090126737595388931">Фонда орындалып жатқан қолданбалар жоқ</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Қауіпсіздік шарасы кеше қолданылды.</translation>
 <translation id="1260451001046713751">Қалқымалы терезелердің шығуына және <ph name="HOST" /> хостынан бағыттауға әрқашан рұқсат беру</translation>
 <translation id="126156426083987769">Демо режиміндегі құрылғы лицензияларына қатысты ақау орын алды.</translation>
+<translation id="1263490604593716556"><ph name="FIRST_PARENT_EMAIL" /> және <ph name="SECOND_PARENT_EMAIL" /> басқаратын есептік жазба. Құрылғыдағы негізгі есептік жазбадан шығу үшін экрандағы сағатты басыңыз. Мәзірден "Шығу" опциясын таңдаңыз.</translation>
 <translation id="126710816202626562">Аударма тілі:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Тоқтату</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">Вебсайт</translation>
 <translation id="15662109988763471">Таңдалған принтер қолжетімді емес немесе дұрыс орнатылмаған. Принтеріңізді тексеріңіз немесе басқа принтерді таңдап көріңіз.</translation>
 <translation id="1567387640189251553">Құпия сөз соңғы рет енгізілгеннен кейін, басқа пернетақта жалғанды. Ол басылған пернелерді "ұрлап алу" әрекетін жасауы мүмкін.</translation>
-<translation id="1567750922576943685">Жеке басыңызды растау сіздің жеке ақпаратыңызды қорғауға көмектеседі</translation>
 <translation id="1567993339577891801">JavaScript консолі</translation>
 <translation id="1568323446248056064">Дисплей параметрлерін ашу</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (қонақ)</translation>
@@ -516,7 +518,6 @@
 <translation id="1697150536837697295">Өнер</translation>
 <translation id="1697686431566694143">Файлды өңдеу</translation>
 <translation id="1698122934742150150">Тек ағымдағы инкогнито сеансы</translation>
-<translation id="1698650002254827833">Қолданбалардың тізімі жүктелмеді. Қайталап көріңіз.</translation>
 <translation id="1700079447639026019">Cookie файлдарын пайдалана алмайтын сайттар</translation>
 <translation id="1701062906490865540">Бұл адамды өшіру</translation>
 <translation id="1703331064825191675">Құпия сөздеріңіз жайлы уайымдамаңыз</translation>
@@ -870,6 +871,7 @@
 <translation id="2172784515318616985">Жалғастыру</translation>
 <translation id="2173302385160625112">Интернет байланысын тексеріңіз</translation>
 <translation id="2173801458090845390">Осы құрылғыға сұрау идентификаторын енгізу</translation>
+<translation id="2174948148799307353"><ph name="PARENT_EMAIL" /> басқаратын есептік жазба. Құрылғыдағы негізгі есептік жазбадан шығу үшін экрандағы сағатты басыңыз. Мәзірден "Шығу" опциясын таңдаңыз.</translation>
 <translation id="2175607476662778685">Жылдам іске қосу жолағы</translation>
 <translation id="217576141146192373">Принтер енгізілмеді. Принтердің конфигурациясын тексеріп, қайталап көріңіз.</translation>
 <translation id="2177950615300672361">Инкогнито қойындысы: <ph name="TAB_NAME" /></translation>
@@ -1078,7 +1080,6 @@
 <translation id="2442916515643169563">Мәтін көлеңкесі</translation>
 <translation id="2445081178310039857">Кеңейтімнің түпкі каталогі қажет.</translation>
 <translation id="2445484935443597917">Жаңа профиль жасау</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> жеке басыңызды растағысы келеді</translation>
 <translation id="2448312741937722512">Түрі</translation>
 <translation id="2450223707519584812">Google API кілттері жетіспей тұрғандықтан, пайдаланушыларды қоса алмайсыз. Толық ақпаратты қараңыз: <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Белсенді көру режимдері жоқ</translation>
@@ -1476,6 +1477,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" /> бетіне өту</translation>
 <translation id="29488703364906173">Жылдам, қарапайым және заманауи ғаламтор үшін жасалған қауіпсіз веб-браузер.</translation>
 <translation id="2949289451367477459">Орынды анықтау қызметін пайдалану. Орынды анықтау рұқсаттары бар қолданбалар мен қызметтердің құрылғының геодеректерін пайдалануына рұқсат беріңіз. Google қызметі орынды анықтау дәлдігі мен орынға негізделген қызметтерді жақсарту үшін геодеректерді жүйелі түрде жинап, оларды анонимді түрде қолдана алады. <ph name="BEGIN_LINK1" />Толығырақ<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Тіркелу</translation>
 <translation id="2956070239128776395">Топқа орналастырылған бөлім: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Ешқандай сайтқа құрылғыдағы файлдарды не қалталарды өзгертуге рұқсат бермеу</translation>
 <translation id="2958721676848865875">Пакеттік кеңейтім ескертуі</translation>
@@ -1600,6 +1602,7 @@
 <translation id="3139925690611372679">Әдепкі сары түсті аватар</translation>
 <translation id="3141318088920353606">Айта беріңіз…</translation>
 <translation id="3141917231319778873">Берілген сұрау келесі құрылғы үшін қолданылмайды: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Жаңа топ</translation>
 <translation id="3143515551205905069">Синхрондаудан бас тарту</translation>
 <translation id="3143754809889689516">Басынан бастап ойнату</translation>
 <translation id="3144647712221361880">Сілтемені басқа атпен ашу</translation>
@@ -1624,6 +1627,7 @@
 <translation id="3159493096109238499">Қоңыр сарғыш</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (жабдық қолдауы бар)</translation>
 <translation id="3161522574479303604">Барлық тілдер</translation>
+<translation id="3162853326462195145">Оқу есептік жазбасы</translation>
 <translation id="3162899666601560689">Сайттар шолуды жақсарту (мысалы, есептік жазбадан шығармау не сатып алу себетіңіздегі нәрселерді есте сақтау) үшін cookie файлдарын пайдалана алады.</translation>
 <translation id="3163201441334626963">Жеткізуші <ph name="VENDOR_ID" /> ұсынған белгісіз өнім <ph name="PRODUCT_ID" /></translation>
 <translation id="3164329792803560526">Бұл қойынды <ph name="APP_NAME" /> қолданбасына жіберілуде.</translation>
@@ -1682,7 +1686,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Құрылғыны бір күнде жаңарту керек}other{Құрылғыны # күнде жаңарту керек}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – желі қатесі</translation>
 <translation id="3248902735035392926">Қауіпсіздік маңызды. Сәл уақытыңызды бөліп, <ph name="BEGIN_LINK" />кеңейтімдерді тексеріңіз<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Сертификаттың бөлігі емес&gt;</translation>
 <translation id="3253225298092156258">Қолжетімді емес</translation>
 <translation id="3253448572569133955">Белгісіз есептік жазба</translation>
@@ -1787,6 +1790,7 @@
 <translation id="3396800784455899911">"Қабылдау және жалғастыру" түймесін басып, аталған Google қызметтеріне қатысты жоғарыда сипатталған өңдеулерге келісесіз.</translation>
 <translation id="3399432415385675819">Хабарландырулар өшіріледі</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Герц) – байланысқан</translation>
+<translation id="3402585168444815892">Демо режимінде тіркелуде</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Бұл сайт үшін ешқандай құпия сөз сақталмаған</translation>
 <translation id="3405664148539009465">Қаріптерді реттеу</translation>
@@ -1848,6 +1852,7 @@
 <translation id="3468999815377931311">Android телефоны</translation>
 <translation id="3470442499439619530">Бұл пайдаланушыны жою</translation>
 <translation id="3471876058939596279">HDMI және USB Type-C порттарын бір уақытта бейне үшін қолдануға болмайды. Басқа бейне ұяшығын қолданыңыз.</translation>
+<translation id="3473241910002674503">Планшет режимінде түймелердің көмегімен негізгі экранға, артқа өтіңіз және қолданбалар арасында ауысыңыз.</translation>
 <translation id="3473479545200714844">Экран ұлғайтқыш</translation>
 <translation id="3475843873335999118">Кешіріңіз, саусақ ізі әлі танылмады. Құпия сөзіңізді енгізіңіз.</translation>
 <translation id="3476303763173086583">Пайдаланылуы және диагностикасы туралы деректерді жіберу. Диагностикалық деректерді, сондай-ақ құрылғы мен қолданбаларды пайдалану деректерін Google қызметіне автоматты түрде жіберу арқылы балаңыздың Android жүйесін пайдалану тәжірибесін жақсартуға көмектесіңіз. Бұл деректер баланың жеке басын анықтауға пайдаланылмайды. Олар жүйе мен қолданбаның тұрақты жұмыс істеуіне және басқа да жақсартулар енгізуге көмектеседі. Кейбір жиынтық деректер Google қолданбаларын жетілдіруге және Android әзірлеушілері сияқты серіктестердің жұмысына көмектеседі. Бұл <ph name="BEGIN_LINK1" />параметрді<ph name="END_LINK1" /> иесі орнатқан. Иесі бұл құрылғының диагностикасы және пайдаланылуы туралы деректерді Google қызметіне жіберуге рұқсат бере алады. Егер "Интернет пен қолданбаларды пайдаланудың қосымша тарихы" параметрі қосулы болса, бұл деректер балаңыздың Google есептік жазбасына сақталуы мүмкін. <ph name="BEGIN_LINK2" />Толығырақ<ph name="END_LINK2" /></translation>
@@ -2272,6 +2277,7 @@
 <translation id="3971764089670057203">Осы қауіпсіздік кілтіндегі саусақ іздері</translation>
 <translation id="3973660817924297510">Құпия сөздерді (<ph name="CHECKED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />) тексеру…</translation>
 <translation id="3975565978598857337">Аймақ серверіне қосылмады.</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> сіздің құпия сөздеріңізді тексере алмайды. Кейінірек қайталаңыз.</translation>
 <translation id="3976108569178263973">Қолжетімді принтерлер жоқ.</translation>
 <translation id="397703832102027365">Аяқталуда…</translation>
 <translation id="3977886311744775419">Автоматты жаңартулар мұндай желіде жүктеп алынбайды, бірақ жаңартулардың бар-жоғын қолмен тексеруге болады.</translation>
@@ -2335,6 +2341,7 @@
 <translation id="4068506536726151626">Бұл бет орныңызды бақылайтын келесі сайттардағы элементтерді қамтиды:</translation>
 <translation id="4068776064906523561">Сақталған саусақ іздері</translation>
 <translation id="407173827865827707">Түрту арқылы</translation>
+<translation id="4073520450811433493">Параметрлерді синхрондау</translation>
 <translation id="4074900173531346617">Электрондық пошта қол қоюшы сертификаты</translation>
 <translation id="407520071244661467">Масштаб</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> мазмұнын трансляциялау мүмкін емес.</translation>
@@ -2571,6 +2578,7 @@
 <translation id="4421932782753506458">Fluffy</translation>
 <translation id="4423376891418188461">Параметрлерді қалпына келтіру</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, әкімшіңіз құпия сөздің өзгертілуін талап етеді.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> сіздің құпия сөздеріңізді тексере алмайды. 24 сағаттан кейін қайталап көріңіз.</translation>
 <translation id="4429030830601238961">Бұл деректер ұйымыңыздың қауіпсіздік саясаттарына қайшы келеді. Оларды қою мүмкін емес.</translation>
 <translation id="4430019312045809116">Дыбыс деңгейі</translation>
 <translation id="4430369329743628066">Бетбелгі қосылды</translation>
@@ -2583,6 +2591,7 @@
 <translation id="4441124369922430666">Машина іске қосылғанда, бұл қолданба автоматты түрде ашылсын ба?</translation>
 <translation id="4441147046941420429">Жалғастыру үшін құрылғыдан қауіпсіздік кілтін алып, қайта салыңыз, одан кейін оны түртіңіз.</translation>
 <translation id="444134486829715816">Жаю…</translation>
+<translation id="4442329324652245220">Google есептік жазбаңызбен кіргенде, <ph name="IDS_SHORT_PRODUCT_NAME" /> сіздің құпия сөздеріңізді тексере алады.</translation>
 <translation id="4442424173763614572">DNS іздеу сәтсіз аяқталды</translation>
 <translation id="4443536555189480885">&amp;Анықтама</translation>
 <translation id="4444304522807523469">USB арқылы немесе жергілікті желіде тіркелген құжат сканерлеріне кіру</translation>
@@ -2609,11 +2618,13 @@
 <translation id="4476659815936224889">Бұл кодты сканерлеу үшін телефоныңыздағы QR кодын сканерлейтін қолданбаны немесе камераға арналған кейбір қолданбаларды пайдалануыңызға болады.</translation>
 <translation id="4477015793815781985">Ctrl, Alt не ⌘ пернесінен басталуы керек</translation>
 <translation id="4478664379124702289">Сілт&amp;емені басқаша сақтау…</translation>
+<translation id="4478777936860197922">Ешқандай құпия сөз сақталмаған. Құпия сөздер сақталған кезде, <ph name="IDS_SHORT_PRODUCT_NAME" /> оларды тексере алады.</translation>
 <translation id="4479424953165245642">Киоск қолданбаларын басқару</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Виртуалдық құрылғы конфигурацияланып жатыр. Бұл бірнеше минут алуы мүмкін.</translation>
 <translation id="4480590691557335796">Chrome браузері компьютердегі зиянды бағдарламалық құралды тауып, оны өшіре алады.</translation>
 <translation id="4481530544597605423">Жұпталмаған құрылғылар</translation>
+<translation id="4488107067273194838">Реттеуден кейін браузерді синхрондау опцияларын қарау</translation>
 <translation id="4488502501195719518">Барлық деректер өшірілсін бе?</translation>
 <translation id="4495419450179050807">Бұл бетте көрсетпеу</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> автоматты түрде бөгелді</translation>
@@ -2855,6 +2866,7 @@
 <translation id="4849517651082200438">Орнатпау</translation>
 <translation id="4850669014075537160">Айналдыру</translation>
 <translation id="4850886885716139402">Көрініс</translation>
+<translation id="485197095346966382">Қолданған құпия сөзіңіз ұрланған болса, <ph name="IDS_SHORT_PRODUCT_NAME" /> сізге бұл туралы хабарлайды.</translation>
 <translation id="4853020600495124913">&amp;Жаңа терезеде ашу</translation>
 <translation id="4854317507773910281">Мақұлдау үшін ата-атаның есептік жазбасын таңдаңыз</translation>
 <translation id="485480310608090163">Басқа параметрлер мен рұқсаттар</translation>
@@ -2873,6 +2885,7 @@
 <translation id="4871322859485617074">PIN кодында жарамсыз таңбалар бар.</translation>
 <translation id="4871370605780490696">Бетбелгі қосу</translation>
 <translation id="4871719318659334896">Топты жабу</translation>
+<translation id="4871852311166078968">Топқа қосу</translation>
 <translation id="4873312501243535625">Media File Checker</translation>
 <translation id="4876273079589074638">Инженерлерге бұзылу мәселелерін зерттеуге және жөндеуге көмектесіңіз. Мүмкін болса, әрекеттеріңізді ретімен сипаттаңыз. Ұсақ-түйектің өзі маңызды!</translation>
 <translation id="4876895919560854374">Экранды құлыптау және құлпын ашу</translation>
@@ -2964,7 +2977,6 @@
 <translation id="4992473555164495036">Әкімшіңіз қолжетімді енгізу әдістерінің санын шектеді.</translation>
 <translation id="4994474651455208930">Сайттардың протоколдар үшін әдепкі өңдегіш болуды сұрауына рұқсат беру</translation>
 <translation id="4994754230098574403">Реттелуде</translation>
-<translation id="4996978546172906250">Бөлісу</translation>
 <translation id="4997086284911172121">Интернет байланысы жоқ.</translation>
 <translation id="4997384734315285248">Plugin VM плагинін жою</translation>
 <translation id="4998430619171209993">Қосулы</translation>
@@ -3064,7 +3076,6 @@
 <translation id="5135085122826131075">Assistant қолданбасына "Ok Google" деп кіріңіз.</translation>
 <translation id="5135533361271311778">Бетбелгі элементін жасау мүмкін болмады.</translation>
 <translation id="5137501176474113045">Бұл элементті жою</translation>
-<translation id="5138982052046316113">Linux дискісінің көлемін өзгерту</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> Іздеу</translation>
 <translation id="5139823398361067371">Қауіпсіздік кілтінің PIN кодын енгізіңіз. PIN кодын білмесеңіз, қауіпсіздік кілтін бастапқы күйге қайтаруыңыз керек.</translation>
 <translation id="5139955368427980650">&amp;Ашу</translation>
@@ -3516,6 +3527,7 @@
 <translation id="5739235828260127894">Расталуы керек. <ph name="LINK_BEGIN" />Толығырақ ақпарат<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Тым үлкен</translation>
 <translation id="574209121243317957">Дыбыс биіктігі</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" /> құрылғысына қатысты кеңестерді, ұсыныстарды және жаңалықтарды алыңыз және пікірлер қалдырыңыз.</translation>
 <translation id="5746169159649715125">PDF ретінде сақтау</translation>
 <translation id="5747552184818312860">Мерзімі бітеді</translation>
 <translation id="5747785204778348146">Әзірлеуші – тұрақсыз</translation>
@@ -3928,7 +3940,6 @@
 <translation id="6291953229176937411">&amp;Іздеу жүйесінде көрсету</translation>
 <translation id="6295158916970320988">Барлық сайттар</translation>
 <translation id="6295855836753816081">Сақталуда…</translation>
-<translation id="629730747756840877">Есептік жазба</translation>
 <translation id="6298962879096096191">Android қолданбаларын Google Play арқылы орнату</translation>
 <translation id="630065524203833229">Ш&amp;ығу</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> принтері автоматты түрде конфигурацияланбады. Принтердің қосымша мәліметтерін көрсетіңіз. <ph name="LINK_BEGIN" />Толығырақ<ph name="LINK_END" /></translation>
@@ -4334,7 +4345,6 @@
 <translation id="6865598234501509159">Бет <ph name="LANGUAGE" /> тілінде емес</translation>
 <translation id="6865708901122695652">WebRTC оқиға журналдары (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Түс температурасы</translation>
-<translation id="6870888490422746447">Бөлісілетін қолданбаны таңдаңыз:</translation>
 <translation id="6871644448911473373">OCSP жауапкері: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Сіз терген құпия сөзді сервер қабылдамады.</translation>
 <translation id="6876155724392614295">Велосипед</translation>
@@ -4427,6 +4437,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – Әрекеттер журналы</translation>
 <translation id="6997707937646349884">Құрылғыларыңызда:</translation>
 <translation id="6998793565256476099">Бейнеконференция үшін құрылғыны тіркеу</translation>
+<translation id="6999956497249459195">Жаңа топ</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> жалғанды, бірақ оны конфигурациялау қажет.</translation>
 <translation id="7000347579424117903">Ctrl, Alt немесе "Іздеу" пернесінен басталуы керек</translation>
 <translation id="7001036685275644873">Linux қолданбалары мен файлдарының сақтық көшірмесі жасалуда</translation>
@@ -4725,6 +4736,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923"><ph name="PHONE_NAME" /> телефоныңыздағы байланысты реттеу</translation>
 <translation id="7401778920660465883">Хабарды жабу</translation>
+<translation id="7403642243184989645">Ресурстар жүктеп алынуда</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Қауіпсіздік 1 сағат бұрын тексерілді.}other{Қауіпсіздік {NUM_HOURS} сағат бұрын тексерілді.}}</translation>
 <translation id="740624631517654988">Қалқымалы терезелерге тыйым салынған</translation>
 <translation id="7407430846095439694">Импорттау және байланыстыру</translation>
@@ -4961,6 +4973,7 @@
 <translation id="7716781361494605745">Netscape сертификат беру органы саясатының URL мекенжайы</translation>
 <translation id="7717014941119698257">Жүктеу: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Жаңартылған нұсқалардың бар-жоғын тексеру</translation>
+<translation id="7719070594859855691">Камераны пайдалануға рұқсат ету</translation>
 <translation id="7719367874908701697">Бетті масштабтау</translation>
 <translation id="7721179060400456005">Терезелерге дисплейлерге толық жайылуына рұқсат беру</translation>
 <translation id="7722040605881499779">Жаңарту үшін қажет: <ph name="NECESSARY_SPACE" /></translation>
@@ -4975,7 +4988,6 @@
 <translation id="7744047395460924128">Басып шығару тарихыңызды көру</translation>
 <translation id="7744192722284567281">Деректер қолды болғанда табылды</translation>
 <translation id="7750228210027921155">Суреттегі сурет</translation>
-<translation id="7751229152614300329">"Қауіпсіз шолу" функциясы жаңартылды. Сізді ол зиянды сайттар мен жүктеп алынатын файлдардан қорғайды.</translation>
 <translation id="7751260505918304024">Барлығын көрсету</translation>
 <translation id="7754704193130578113">Жүктеу алдында әр файлды сақтау орнын сұрау</translation>
 <translation id="7755287808199759310">Ата-анаңыз оны сіз үшін бөгеуден шығара алады</translation>
@@ -5063,6 +5075,7 @@
     <ph name="BEGIN_BOLD" />Ескертпе:<ph name="END_BOLD" /> бұл процесс барысында жүйе қайта жүктеледі.</translation>
 <translation id="7828731929332799387">Бөгде сайттардағы cookie файлдары мен сайт деректерінің барлығы жойылады. Жалғастырғыңыз келе ме?</translation>
 <translation id="7829298379596169484">Аудио кіріс қолжетімді</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> сіздің құпия сөздеріңізді тексере алмайды. Интернет байланысын тексеріп көріңіз.</translation>
 <translation id="7829877209233347340">Ата-анаңыздан кіріп, мектеп есептік жазбасын енгізуге рұқсат беруін сұраңыз.</translation>
 <translation id="7830594666202422257">Linux жүйесіне жалғану</translation>
 <translation id="7831491651892296503">Желіні конфигурациялауда қате болды</translation>
@@ -5284,6 +5297,7 @@
 <translation id="8107015733319732394">Google Play Store дүкені <ph name="DEVICE_TYPE" /> құрылғысына орнатылуда. Бұл бірнеше минут алады.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Үшінші тараптың cookie файлдары жоқ}=1{Үшінші тараптың 1 cookie файлы бөгелді}other{Үшінші тараптың # cookie файлы бөгелді}}</translation>
 <translation id="810875025413331850">Маңайдан құрылғы табылған жоқ.</translation>
+<translation id="8114199541033039755">Планшет режимінде түймелердің көмегімен негізгі экранға, артқа өтіңіз және қолданбалар арасында ауысыңыз. Мұны, ChromeVox немесе "Автоматты түрде басу" функциясы қосулы кезде, пайдалануға болады.</translation>
 <translation id="8114875720387900039">Көлденеңінен бөлу</translation>
 <translation id="8116972784401310538">&amp;Бетбелгілер реттегіші</translation>
 <translation id="8117620576188476503">Байланыстарды, жаңартуларды және параметрлерді күй жолағының көмегімен басқарыңыз. Пернетақта арқылы кіру үшін Alt + Shift + S пернелер тіркесімін басыңыз.</translation>
@@ -5403,6 +5417,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> тінтуір курсорын өшірді.</translation>
 <translation id="8264024885325823677">Бұл параметрді әкімшіңіз басқарады.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" толық экранды іске қосты.</translation>
+<translation id="826511437356419340">Терезе шолу режимі қосылды. Өту үшін сырғытыңыз. Пернетақтаны пайдаланып жатсаңыз, Tab түймесін басыңыз.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Бұл – құрылғыңыз бен оның қалай пайдаланылатыны туралы жалпы ақпарат (мысалы, батарея зарядының деңгейі, жүйе мен қолданбаларды пайдалану тарихы, қателер). Деректер Android жүйесін жақсарту үшін пайдаланылады және кейбір жиынтық ақпараттар Google қолданбалары мен Android әзірлеушілері сияқты серіктестерге олардың қолданбалары мен өнімдерін жетілдіруге көмектеседі.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Бұл функцияны өшіріп қойсаңыз, ол құрылғыңыздың маңызды қызметтерге (жүйелік жаңарту және қауіпсіздік үшін) қажетті ақпаратты жіберу мүмкіндігіне әсер етпейді.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Иесі функцияны "Параметрлер &gt; Кеңейтілген &gt; Диагностикалық және пайдалану деректерін Google қызметіне автоматты жіберу" тармағы арқылы басқара алады.<ph name="END_PARAGRAPH3" />
@@ -5511,6 +5526,7 @@
 <translation id="8426713856918551002">Қосылуда</translation>
 <translation id="8427292751741042100">кез келген хоста ендірілген</translation>
 <translation id="8428213095426709021">Параметрлер</translation>
+<translation id="8428271547607112339">Оқу есептік жазбасын енгізу</translation>
 <translation id="8428628598981198790">Қауіпсіздік кілтіңізді осы сайтпен пайдалану мүмкін емес</translation>
 <translation id="84297032718407999"><ph name="LOGOUT_TIME_LEFT" /> өткеннен кейін есептік жазбадан шығасыз</translation>
 <translation id="8431190899827883166">Түрту қимылын көрсету</translation>
@@ -5574,6 +5590,7 @@
 <translation id="851263357009351303"><ph name="HOST" /> хостына кескіндерді әрқашан көрсету мүмкіндігін беру</translation>
 <translation id="8513108775083588393">Автоматты бұру</translation>
 <translation id="8514746246728959655">Басқа қауіпсіздік кілтін пайдаланып көріңіз</translation>
+<translation id="851960115758509829">Қолданбалар, параметрлер және басқа да реттеулер Google есептік жазбаңызға кірген барлық Chrome OS құрылғыларында синхрондалады.</translation>
 <translation id="8521475323816527629">Қолданбаларға жылдам кіру</translation>
 <translation id="8523493869875972733">Өзгерістерді сақтау</translation>
 <translation id="8523849605371521713">Саясат арқылы қосылған</translation>
@@ -5855,11 +5872,13 @@
 <translation id="885701979325669005">Сақтау</translation>
 <translation id="8859057652521303089">Тіліңізді таңдаңыз:</translation>
 <translation id="8859174528519900719">Ішкі жақтау: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Ата-ананың есептік жазбасы</translation>
 <translation id="8862003515646449717">Жылдам браузерге ауысыңыз</translation>
 <translation id="8863753581171631212">Сілтемені жаңа <ph name="APP" /> қолданбасында ашу</translation>
 <translation id="8864055848767439877">"<ph name="TAB_NAME" />" қойындысы <ph name="APP_NAME" /> қолданбасына жіберілуде.</translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> осы құрылғыдан өшірілген.</translation>
 <translation id="8867228703146808825">Құрама мәліметтерін буферге көшіру</translation>
+<translation id="8868333925931032127">Демо режимі іске қосылуда</translation>
 <translation id="8868626022555786497">Пайдаланылуда</translation>
 <translation id="8870413625673593573">Жақында жабылған</translation>
 <translation id="8871551568777368300">Әкімші бекіткен</translation>
@@ -5938,6 +5957,7 @@
 <translation id="8966870118594285808">Қойындыны абайсызда жапқан болсаңыз, оны қайта ашыңыз</translation>
 <translation id="8967866634928501045">Көрсету үшін "Alt"+"Shift"+"A" пернелерін басыңыз</translation>
 <translation id="8968766641738584599">Картаны сақтау</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> сіздің құпия сөздеріңізді тексере алмайды. 24 сағаттан кейін қайталап көріңіз немесе <ph name="BEGIN_LINK" />оларды Google есептік жазбасынан тексеріңіз<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Шығу</translation>
 <translation id="8972513834460200407">Әкімшіге хабарласып, брандмауэр Google серверлерінен келген жүктеулерді бөгемейтінін тексеріңіз.</translation>
 <translation id="8973557916016709913">Масштабтау деңгейін өшіру</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index f6e0ef2..6aebdd5 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -30,13 +30,14 @@
 <translation id="1034942643314881546">បើក adb ដើម្បីបង្កើត​រូបភាពកម្មវិធី</translation>
 <translation id="1036348656032585052">បិទ</translation>
 <translation id="1036511912703768636">ចូលប្រើឧបករណ៍ USB ណាមួយទាំងនេះ</translation>
-<translation id="1036982837258183574">ចុច |<ph name="ACCELERATOR" />| ដើម្បីចេញពីរបៀបពេញអេក្រង់</translation>
+<translation id="1036982837258183574">ចុច |<ph name="ACCELERATOR" />| ដើម្បីចេញពីមុខងារអេក្រង់ពេញ</translation>
 <translation id="1038168778161626396">បម្លែងតែប៉ុណ្ណោះ</translation>
 <translation id="1039337018183941703">ឯកសារ​មិន​ត្រឹមត្រូវ ឬ​ខូច</translation>
 <translation id="1041175011127912238">ទំព័រ​នេះមិន​ដំណើរការទេ</translation>
 <translation id="1041263367839475438">ឧបករណ៍​ដែល​អាច​ប្រើបាន</translation>
 <translation id="1042174272890264476">កុំព្យូទ័ររបស់អ្នកក៏ភ្ជាប់មកជាមួយបណ្តាល័យដែលបំពាក់ RLZ របស់ <ph name="SHORT_PRODUCT_NAME" /> ផងដែរ។ RLZ ចាត់ស្លាកដែលអាចសម្គាល់បានដោយមិនមែនលក្ខណៈបុគ្គល ឬពិសេស ដើម្បីវាស់វែងការស្វែងរក និងការប្រើប្រាស់ <ph name="SHORT_PRODUCT_NAME" /> ដែលដំណើរការដោយយុទ្ធនាការផ្សព្ធផ្សាយជាក់លាក់មួយ។ ជួនកាល ផ្លាកទាំងនេះលេចឡើងនៅក្នុងការសួរ Google ស្វែងរក <ph name="PRODUCT_NAME" />។</translation>
 <translation id="1043818413152647937">សម្អាត​ទិន្នន័យ​ពីកម្មវិធី​ទាំងនេះ​ផងដែរ​ឬ?</translation>
+<translation id="1045448422538531528">បញ្ចូលទៅ​ក្នុង​ក្រុម</translation>
 <translation id="1046635659603195359">អ្នកហាក់បី​ដូចជា​បានរៀបចំ​មុខងារ Voice Match ជាមួយ Google ជំនួយការ​របស់អ្នក​នៅលើ​ឧបករណ៍​ផ្សេងទៀត​រួចហើយ។ ការថត​សំឡេង​ពីមុនៗ​ទាំងនេះ​អាចត្រូវបានប្រើ ដើម្បី​បង្កើតគំរូ​សំឡេង​នៅលើ​ឧបករណ៍​នេះ។ សកម្មភាពនេះគួរ​តែ​ចំណាយពេលមិន​លើស​ពី​មួយ​នាទីទេ។</translation>
 <translation id="104710386808485638">ចាប់ផ្ដើម Linux ឡើងវិញឬ?</translation>
 <translation id="1047431265488717055">ចម្លងអត្ថបទតំណ</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">រារាំងការចូលប្រើកាមេរ៉ាជានិច្ច</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> ចង់ស្តារការកំណត់ Chrome របស់អ្នកទៅលំនាំដើមរបស់ពួកវាឡើងវិញ។ វានឹងកំណត់ទំព័រដើម ទំព័រផ្ទាំងថ្មី និងម៉ាស៊ីនស្វែងរករបស់អ្នកឡើងវិញ ក៏ដូចជាបិទដំណើរការផ្នែកបន្ថែមរបស់អ្នក និងដកការដៅផ្ទាំងទាំងអស់ចេញផងដែរ។ វាក៏នឹងជម្រះទិន្នន័យបណ្តោះអាសន្ន និងទិន្នន័យដែលបានផ្ទុកក្នុងឃ្លាំងសម្ងាត់ដូចជា៖ ខុកឃី មាតិកា និងទិន្នន័យគេហទំព័រជាដើម។</translation>
+<translation id="1084096383128641877">ការលុបពាក្យសម្ងាត់នេះ​នឹងមិន​លុបគណនីរបស់អ្នក​នៅលើ <ph name="DOMAIN" />​ ទេ។ ផ្លាស់ប្ដូរពាក្យសម្ងាត់របស់អ្នក ឬលុបគណនីរបស់អ្នក​នៅលើ <ph name="DOMAIN_LINK" /> ដើម្បីរក្សាឱ្យវាមានសុវត្ថិភាពពីអ្នកដទៃ។</translation>
 <translation id="1084824384139382525">ចម្លងអាសយដ្ឋានតំណ</translation>
 <translation id="1085697365578766383">មានបញ្ហា​ក្នុងការ​ចាប់ផ្ដើម​ម៉ាស៊ីន​និម្មិត។ សូមព្យាយាម​ម្តងទៀត។</translation>
 <translation id="1090126737595388931">គ្មានកម្មវិធីផ្ទៃខាងក្រោយកំពុងដំណើរការទេ</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">ការពិនិត្យ​សុវត្ថិភាព​បានដំណើរការម្សិលមិញ</translation>
 <translation id="1260451001046713751">អនុញ្ញាតផ្ទាំងផុស និង​ការបញ្ជូនបន្ត​ពី <ph name="HOST" /> ជានិច្ច</translation>
 <translation id="126156426083987769">អាជ្ញាបណ្ណឧបករណ៍​ដែលប្រើមុខងារសាកល្បងមានបញ្ហា។</translation>
+<translation id="1263490604593716556">គណនី​ស្ថិត​ក្រោមការគ្រប់គ្រង​របស់ <ph name="FIRST_PARENT_EMAIL" /> និង <ph name="SECOND_PARENT_EMAIL" />។ ដើម្បី​ចេញពី​គណនី​ចម្បង​នៅលើ​ឧបករណ៍​នេះ សូម​ចុចលើ​ម៉ោង​នៅលើ​អេក្រង់​របស់អ្នក។ សូម​ចុច "ចេញ" នៅក្នុង​ម៉ឺនុយ​ដែល​បង្ហាញ។</translation>
 <translation id="126710816202626562">ភាសាបកប្រែ៖</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">ឈប់</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">គេហទំព័រ</translation>
 <translation id="15662109988763471">មិនមាន​ម៉ាស៊ីនបោះពុម្ព​ដែលបានជ្រើសរើស ឬ​មិនត្រូវបានដំឡើង​ត្រឹមត្រូវទេ។ សូមពិនិត្យមើល​ម៉ាស៊ីនបោះពុម្ព​របស់អ្នក ឬ​សាកល្បង​ជ្រើសរើស​ម៉ាស៊ីនបោះពុម្ព​ផ្សេងទៀត។</translation>
 <translation id="1567387640189251553">ចាប់​តាំងពីអ្នក​បាន​បញ្ចូល​ពាក្យសម្ងាត់​ចុងក្រោយ​របស់អ្នក ក្ដារចុចមួយ​​ផ្សេងទៀត​​ត្រូវបាន​ភ្ជាប់។ វាអាច​នឹង​ព្យាយាម​លួច​ការចុចរបស់អ្នក។</translation>
-<translation id="1567750922576943685">ការ​ផ្ទៀងផ្ទាត់​អត្តសញ្ញាណ​របស់អ្នក​ជួយ​ការពារ​ព័ត៌មាន​ផ្ទាល់ខ្លួន​របស់អ្នក</translation>
 <translation id="1567993339577891801">ខនសូល JavaScript</translation>
 <translation id="1568323446248056064">បើកការកំណត់ឧបករណ៍បង្ហាញ</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (ភ្ញៀវ)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">សិល្បៈ</translation>
 <translation id="1697686431566694143">កែ​ឯកសារ</translation>
 <translation id="1698122934742150150">វេនប្រើអនាមិកបច្ចុប្បន្នប៉ុណ្ណោះ</translation>
-<translation id="1698650002254827833">មិន​អាច​ផ្ទុកបញ្ជី​កម្មវិធី​​បាន​ទេ។ សូម​ព្យាយាម​ម្ដងទៀត។</translation>
 <translation id="1700079447639026019">គេហទំព័រ​ដែល​មិនអាច​ប្រើ​ខូគីបាន</translation>
 <translation id="1701062906490865540">ដកបុគ្គលនេះចេញ</translation>
 <translation id="1703331064825191675">មិនចាំបាច់​បារម្ភអំពីពាក្យ​សម្ងាត់របស់អ្នកទេ</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">បន្ត</translation>
 <translation id="2173302385160625112">ពិនិត្យមើល​ការតភ្ជាប់អ៊ីនធឺណិត​របស់អ្នក</translation>
 <translation id="2173801458090845390">បញ្ចូលលេខសំគាល់ទទួលទៅឧបករណ៍នេះ</translation>
+<translation id="2174948148799307353">គណនី​ស្ថិត​ក្រោមការគ្រប់គ្រង​របស់ <ph name="PARENT_EMAIL" />។ ដើម្បី​ចេញពី​គណនី​ចម្បង​នៅលើ​ឧបករណ៍​នេះ សូម​ចុចលើ​ម៉ោង​នៅលើ​អេក្រង់​របស់អ្នក។ សូម​ចុច "ចេញ" នៅក្នុង​ម៉ឺនុយ​ដែល​បង្ហាញ។</translation>
 <translation id="2175607476662778685">របាបើកដំណើរការរហ័ស</translation>
 <translation id="217576141146192373">មិនអាចបញ្ចូល​ម៉ាស៊ីនបោះពុម្ព​បានទេ។ សូមពិនិត្យមើល​ការកំណត់រចនាសម្ព័ន្ធ​ម៉ាស៊ីនបោះពុម្ពរបស់អ្នក រួចព្យាយាម​ម្ដងទៀត។</translation>
 <translation id="2177950615300672361">ផ្ទាំងអនាមិក៖ <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">ស្រមោលអក្សរ</translation>
 <translation id="2445081178310039857">តម្រូវឲ្យមានថតឯកសារគោលកម្មវិធីបន្ថែម។</translation>
 <translation id="2445484935443597917">បង្កើត​កម្រង​ព័ត៌មាន​ថ្មី</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> ចង់​ផ្ទៀងផ្ទាត់​អត្តសញ្ញាណ​របស់អ្នក</translation>
 <translation id="2448312741937722512">ប្រភេទ</translation>
 <translation id="2450223707519584812">អ្នកនឹងមិនអាចបន្ថែមអ្នកប្រើបានទេ ពីព្រោះសោ Google API បានបាត់បង់។ សូមមើល <ph name="DETAILS_URL" /> សម្រាប់ព័ត៌មានលម្អិត។</translation>
 <translation id="2450849356604136918">មិនមាន​ទិដ្ឋភាព​សកម្ម​ទេ</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">ទៅកាន់ <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">កម្មវិធីរុករកអ៊ីនធឺណិតដែលលឿន ងាយស្រួល និងមានសុវត្ថិភាព ដែលត្រូវបានរចនាឡើងសម្រាប់បច្ចេកវិទ្យាអ៊ីនធឺណិតសម័យទំនើប។</translation>
 <translation id="2949289451367477459">ប្រើប្រាស់​ទីតាំង។ អនុញ្ញាត​ឱ្យ​កម្មវិធី និង​សេវាកម្ម​ផ្សេងៗ ​ដែល​មាន​ការ​អនុញ្ញាតចូល​ប្រើ​ទីតាំង ប្រើប្រាស់​ទីតាំង​របស់​ឧបករណ៍​នេះ។ Google អាច​ប្រមូល​ទិន្នន័យ​ទីតាំង​ជា​ប្រចាំ និង​ប្រើ​ទិន្នន័យ​នេះ​ជាលក្ខណៈអនាមិក ដើម្បី​កែលម្អ​ភាព​ត្រឹមត្រូវ​នៃទីតាំង និង​សេវាកម្ម​ដែល​ផ្អែក​លើ​ទីតាំង។ <ph name="BEGIN_LINK1" />ស្វែងយល់​បន្ថែម<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">ចុះ​ឈ្មោះ​ខ្ញុំ</translation>
 <translation id="2956070239128776395">ផ្នែក​នៅក្នុង​ក្រុម៖ <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">កុំអនុញ្ញាតឱ្យគេហទំព័រណាមួយ​កែ​ឯកសារ ឬថត​នៅលើឧបករណ៍​របស់អ្នក</translation>
 <translation id="2958721676848865875">ការព្រមាន​អំពី​ការខ្ចប់​កម្មវិធី​បន្ថែម</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">រូបតំណាងពណ៌លឿងលំនាំដើម</translation>
 <translation id="3141318088920353606">កំពុងស្ដាប់...</translation>
 <translation id="3141917231319778873">សំណើដែលបានរៀបចំហើយមិនមានការគាំទ្រសម្រាប់៖ "<ph name="DEVICE_NAME" />" ទេ</translation>
+<translation id="3142562627629111859">ក្រុមថ្មី</translation>
 <translation id="3143515551205905069">បោះបង់​ការ​ធ្វើ​សម​កាល​កម្ម</translation>
 <translation id="3143754809889689516">ចាក់​ពីដំបូង</translation>
 <translation id="3144647712221361880">បើកដំណជា</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">ព្រហូត</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (នៅក្នុង​ផ្នែក​រឹង)</translation>
 <translation id="3161522574479303604">ភាសាទាំងអស់</translation>
+<translation id="3162853326462195145">គណនីសាលារៀន</translation>
 <translation id="3162899666601560689">គេហទំព័រ​អាចប្រើខូគី ដើម្បី​កែលម្អ​បទពិសោធន៍​រុករក​របស់អ្នក ឧទាហរណ៍ ដើម្បីឱ្យអ្នក​បន្តចូលគណនី ឬចងចាំទំនិញ​នៅក្នុង​រទេះទិញទំនិញ​របស់អ្នក</translation>
 <translation id="3163201441334626963">មិនស្គាល់ផលិតផល <ph name="PRODUCT_ID" /> ពីអ្នកលក់ <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">កំពុងចែករំលែក​ផ្ទាំងនេះទៅ <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{ដំឡើងកំណែ​ឧបករណ៍​ក្នុងរយៈពេល​មួយថ្ងៃ​ទៀត}other{ដំឡើងកំណែ​ឧបករណ៍​ក្នុងរយៈពេល # ថ្ងៃ​ទៀត}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - បណ្តាញមានបញ្ហា</translation>
 <translation id="3248902735035392926">សុវត្ថិភាព​ពិតជា​សំខាន់​។ ចំណាយ​ពេល​បន្តិច ដើម្បី<ph name="BEGIN_LINK" />ពិនិត្យមើល​កម្មវិធី​បន្ថែម​របស់អ្នក​ឥឡូវនេះ<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;មិនមែនផ្នែកនៃវិញ្ញាបនប័ត្រទេ&gt;</translation>
 <translation id="3253225298092156258">មិនមានទេ</translation>
 <translation id="3253448572569133955">មិនស្គាល់​គណនី</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">ប្រសិនបើ​ចុច​ប៊ូតុង "យល់ព្រម រួច​បន្ត" មាន​ន័យ​ថា​អ្នក​យល់​ព្រមតាម​ការដំណើរការ​ដែល​បាន​ពណ៌នា​ខាងលើ​សម្រាប់​សេវាកម្ម Google ទាំងនេះ។</translation>
 <translation id="3399432415385675819">ការជូនដំណឹងនឹងត្រូវបានបិទ</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - ប្រទាក់គ្នា</translation>
+<translation id="3402585168444815892">កំពុងចុះ​ឈ្មោះប្រើ​មុខងារ​សាកល្បង</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">មិន​មាន​​ពាក្យសម្ងាត់​​ដែលបានរក្សា​ទុកសម្រាប់​ទំព័រ​នេះ​ទេ</translation>
 <translation id="3405664148539009465">ប្តូរពុម្ពអក្សរតាមបំណង</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">ទូរសព្ទ Android</translation>
 <translation id="3470442499439619530">ដកអ្នកប្រើចេញ</translation>
 <translation id="3471876058939596279">មិនអាចប្រើរន្ធ HDMI និង USB ប្រភេទ C សម្រាប់​វីដេអូ​ក្នុងពេលតែមួយបានទេ។ សូមប្រើ​រន្ធវីដេអូផ្សេងគ្នា។</translation>
+<translation id="3473241910002674503">ចូលទៅទំព័រដើម ថយក្រោយ រួចប្ដូរកម្មវិធី​ដោយប្រើប៊ូតុងនៅក្នុងមុខងារថេប្លេត។</translation>
 <translation id="3473479545200714844">ឧបករណ៍ពង្រីកអេក្រង់</translation>
 <translation id="3475843873335999118">សូម​ទោស នៅតែមិនស្គាល់ស្នាមម្រាមដៃ​របស់អ្នក​ដដែល។ សូម​បញ្ចូល​ពាក្យ​សម្ងាត់​របស់អ្នក។</translation>
 <translation id="3476303763173086583">បញ្ជូន​ទិន្នន័យ​ប្រើប្រាស់ និង​វិភាគ។ ជួយធ្វើឱ្យ​បទពិសោធន៍ប្រើប្រាស់ Android របស់កូនអ្នក​ប្រសើរឡើង ដោយ​បញ្ជូន​ទិន្នន័យ​នៃការ​វិភាគ ​​ឧបករណ៍ និង​ការប្រើប្រាស់កម្មវិធី​ទៅ Google ដោយ​ស្វ័យប្រវត្តិ។ សកម្មភាពនេះ​នឹងមិនត្រូវ​បានធ្វើឡើង ដើម្បី​កំណត់​អត្តសញ្ញាណ​កូន​របស់អ្នក​នោះទេ តែការធ្វើបែបនេះ​នឹងជួយដល់ស្ថិរភាពកម្មវិធី និងប្រព័ន្ធ ព្រមទាំង​ការកែលម្អ​ផ្សេងទៀត។ ទិន្នន័យ​ប្រមូលបាន​មួយចំនួន​ក៏នឹង​ជួយដល់​កម្មវិធី និង​ដៃគូ Google ដូចជា​អ្នកអភិវឌ្ឍន៍ Android ផងដែរ។ <ph name="BEGIN_LINK1" />ការកំណត់<ph name="END_LINK1" />នេះត្រូវបាន​អនុវត្ត​ដោយម្ចាស់។ ម្ចាស់អាចនឹង​ជ្រើសរើស ដើម្បីបញ្ជូនទិន្នន័យប្រើប្រាស់ និងវិភាគសម្រាប់​ឧបករណ៍នេះ​ទៅ Google ។ ប្រសិនបើ​ការកំណត់​សកម្មភាព​កម្មវិធី និង​គេហទំព័រ​បន្ថែម​ត្រូវបាន​បើកសម្រាប់​កូនរបស់អ្នក នោះទិន្នន័យនេះ​អាចត្រូវ​បានរក្សាទុក​ទៅក្នុង​គណនី Google របស់គាត់។ <ph name="BEGIN_LINK2" />ស្វែងយល់​បន្ថែម<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">ស្នាម​ម្រាមដៃនៅលើ​សោសុវត្ថិភាពនេះ</translation>
 <translation id="3973660817924297510">កំពុងពិនិត្យពាក្យសម្ងាត់ (<ph name="CHECKED_PASSWORDS" /> នៃ <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">មិនអាចទាក់ទងទៅ​ម៉ាស៊ីនមេសម្រាប់​ដែនបានទេ</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> មិន​អាចពិនិត្យ​ពាក្យសម្ងាត់របស់អ្នកបានទេ។ ព្យាយាមម្តងទៀតពេលក្រោយ។</translation>
 <translation id="3976108569178263973">មិនមាន​ម៉ាស៊ីនបោះពុម្ពទេ។</translation>
 <translation id="397703832102027365">កំពុងបញ្ចប់...</translation>
 <translation id="3977886311744775419">បច្ចុប្បន្នភាព​ស្វ័យប្រវត្តិមិនទាញយក​នៅលើប្រភេទ​បណ្ដាញនេះទេ ប៉ុន្តែ​អ្នកអាចពិនិត្យមើល​បច្ចុប្បន្នភាព​ដោយខ្លួនឯងបាន។</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">ទំព័រនេះផ្ទុកធាតុពីគេហទំព័រខាងក្រោមដែលតាមដានទីតាំងរបស់អ្នក៖</translation>
 <translation id="4068776064906523561">ស្នាម​ម្រាមដៃ​ដែល​បាន​រក្សាទុក</translation>
 <translation id="407173827865827707">នៅ​ពេលចុច</translation>
+<translation id="4073520450811433493">សមកាលកម្ម​ការកំណត់</translation>
 <translation id="4074900173531346617">វិញ្ញាបនប័ត្រអ្នកចុះហត្ថលេខាអ៊ីម៉ែល</translation>
 <translation id="407520071244661467">មាត្រដ្ឋាន</translation>
 <translation id="4075639477629295004">មិនអាច​ភ្ជាប់ទៅ <ph name="FILE_NAME" /> បានទេ។</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">ថ្លុះគួរឲ្យស្រលាញ់</translation>
 <translation id="4423376891418188461">ស្តារការកំណត់</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, អ្នកគ្រប់គ្រង​របស់អ្នក​តម្រូវឲ្យ​អ្នកប្តូរ​ពាក្យសម្ងាត់​របស់​អ្នក។</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> មិន​អាចពិនិត្យ​ពាក្យសម្ងាត់របស់អ្នកបានទេ។ សូមព្យាយាមម្ដងទៀតក្រោយរយៈពេល 24 ម៉ោង។</translation>
 <translation id="4429030830601238961">ទិន្នន័យនេះ​បំពាន​គោលការណ៍សុវត្ថិភាព​ស្ថាប័ន​របស់អ្នក និងមិនអាចដាក់ចូលបានទេ។</translation>
 <translation id="4430019312045809116">សម្លេង</translation>
 <translation id="4430369329743628066">បានបន្ថែមចំណាំ</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">តើអ្នកចង់ចាប់ផ្តើមកម្មវិធីនេះដោយស្វ័យប្រវត្តិ នៅពេលម៉ាស៊ីននេះបើកទេ?</translation>
 <translation id="4441147046941420429">ដើម្បី​បន្ត សូម​ដក​សោសុវត្ថិភាព​ចេញពី​ឧបករណ៍​របស់អ្នក បន្ទាប់មក​ដោតបញ្ចូល​វិញ រួច​ចុច​ប៊ូតុង​បើកដំណើរការ</translation>
 <translation id="444134486829715816">ពង្រីក...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> អាចពិនិត្យពាក្យសម្ងាត់របស់អ្នក នៅពេលអ្នកចូល​ដោយប្រើគណនី Google របស់អ្នក</translation>
 <translation id="4442424173763614572">DNS lookup បានបរាជ័យ</translation>
 <translation id="4443536555189480885">ជំនួយ</translation>
 <translation id="4444304522807523469">ចូលប្រើម៉ាស៊ីនស្កេនឯកសារដែលបានភ្ជាប់តាមរយៈ USB ឬនៅលើបណ្តាញមូលដ្ឋាន។</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">ដើម្បី​ស្កេនកូដ​នេះ អ្នកអាច​ប្រើ​កម្មវិធី​ស្កេនកូដ QR នៅលើទូរសព្ទ​របស់អ្នក ឬនៅលើ​កម្មវិធី​កាមេរ៉ា​មួយចំនួន។</translation>
 <translation id="4477015793815781985">រួម​បញ្ចូល Ctrl, Alt ឬ ⌘</translation>
 <translation id="4478664379124702289">រក្សាតំណជា...</translation>
+<translation id="4478777936860197922">គ្មានពាក្យសម្ងាត់ដែលបានរក្សាទុកទេ។ <ph name="IDS_SHORT_PRODUCT_NAME" /> អាចពិនិត្យពាក្យសម្ងាត់របស់អ្នក នៅពេលអ្នករក្សាទុកពាក្យសម្ងាត់ទាំងនោះ។</translation>
 <translation id="4479424953165245642">គ្រប់គ្រងកម្មវិធីបញ្ជរ</translation>
 <translation id="4479639480957787382">ខ្សែអ៊ីនធឺណិត</translation>
 <translation id="4479877282574735775">កំពុងកំណត់រចនាសម្ព័ន្ធ​ម៉ាស៊ីននិម្មិត។ ការកំណត់រចនាសម្ព័ន្ធនេះ​អាចនឹងចំណាយពេល​ពីរបីនាទី។</translation>
 <translation id="4480590691557335796">Chrome អាចរកឃើញ​កម្មវិធី​ដែល​បង្ក​គ្រោះថ្នាក់​​នៅលើ​កុំព្យូទ័រ​របស់អ្នក ហើយលុប​វា​ចេញ</translation>
 <translation id="4481530544597605423">ឧបករណ៍​ដែល​ឈប់​ផ្គូផ្គង</translation>
+<translation id="4488107067273194838">ពិនិត្យមើល​ជម្រើសសមកាលកម្ម​កម្មវិធីរុករកតាមអ៊ីនធឺណិត​ បន្ទាប់ពីរៀបចំរួច</translation>
 <translation id="4488502501195719518">សម្អាត​ទិន្នន័យ​ទាំងអស់ឬ?</translation>
 <translation id="4495419450179050807">កុំបង្ហាញនៅលើទំព័រនេះ</translation>
 <translation id="4496054781541092778">បាន​ទប់ស្កាត់ <ph name="PERMISSION" /> ដោយ​ស្វ័យប្រវត្តិ</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">កុំតំឡើង</translation>
 <translation id="4850669014075537160">ការេមូរ</translation>
 <translation id="4850886885716139402">មើល</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> នឹង​ជូនដំណឹងទៅអ្នក នៅពេលអ្នកចូល​គណនី​ដោយប្រើពាក្យសម្ងាត់ដែល​រងការលុកលុយ</translation>
 <translation id="4853020600495124913">បើកនៅក្នុងផ្ទាំងថ្មី</translation>
 <translation id="4854317507773910281">ជ្រើសរើស​គណនីមាតាបិតា​សម្រាប់ការយល់ព្រម</translation>
 <translation id="485480310608090163">ការកំណត់ និងការអនុញ្ញាតច្រើនទៀត</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">កូដ PIN មានតួអក្សរ​ដែលមិនត្រឹមត្រូវ</translation>
 <translation id="4871370605780490696">បន្ថែមចំណាំ</translation>
 <translation id="4871719318659334896">បិទក្រុម</translation>
+<translation id="4871852311166078968">បញ្ចូលទៅ​ក្នុង​ក្រុម</translation>
 <translation id="4873312501243535625">ឧបករណ៍ពិនិត្យឯកសារកំសាន្ត</translation>
 <translation id="4876273079589074638">ជួយ​វិស្វករ​របស់​យើង​ក្នុងការ​ស៊ើប​អង្កេត និងដោះស្រាយ​ការ​គាំង​នេះ។ សូម​ធ្វើ​បញ្ជី​ជំហាន​ជាក់ស្តែង ប្រសិន​បើអ្នក​អាច​ធ្វើ​បាន។ ព័ត៌មាន​លម្អិតគួរតែមានព័ត៌មានច្រើន!</translation>
 <translation id="4876895919560854374">ចាក់សោ ឬដោះសោអេក្រង់</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">អ្នកគ្រប់គ្រង​របស់អ្នក​បានកម្រិត​វិធីបញ្ចូល​ដែល​អាចប្រើបាន។</translation>
 <translation id="4994474651455208930">អនុញ្ញាតឲ្យគេហទំព័រសួរដើម្បីឲ្យក្លាយទៅជាឧបករណ៍ដោះស្រាយប្រូតូកូលលំនាំដើម</translation>
 <translation id="4994754230098574403">កំពុង​រៀបចំ</translation>
-<translation id="4996978546172906250">ចែករំលែកតាមរយៈ</translation>
 <translation id="4997086284911172121">មិនមាន​ការតភ្ជាប់​អ៊ីនធឺណិត​ទេ។</translation>
 <translation id="4997384734315285248">លុប​ Plugin VM</translation>
 <translation id="4998430619171209993">បើក</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">ចូលប្រើ​ជំនួយការ​របស់អ្នក នៅពេលអ្នក​និយាយថា "Ok Google"។</translation>
 <translation id="5135533361271311778">មិនអាចបង្កើតរបស់ចំណាំបានទេ</translation>
 <translation id="5137501176474113045">លុបធាតុនេះ</translation>
-<translation id="5138982052046316113">ប្ដូរ​ទំហំ​ថាស Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, លទ្ធផល​ស្វែងរក​នៅលើ <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">បញ្ចូល​កូដ PIN សម្រាប់​សោសុវត្ថិភាព​របស់អ្នក​។ ប្រសិនបើអ្នក​មិន​ស្គាល់កូដ PIN អ្នក​នឹងត្រូវ​កំណត់​សោសុវត្ថិភាព​ឡើងវិញ។</translation>
 <translation id="5139955368427980650">បើក</translation>
@@ -3520,6 +3531,7 @@
 <translation id="5739235828260127894">កំពុង​រង់ចាំធ្វើ​ការផ្ទៀងផ្ទាត់។ <ph name="LINK_BEGIN" />ស្វែងយល់​បន្ថែម<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">ធំខ្លាំង</translation>
 <translation id="574209121243317957">កម្រិតកម្ពស់​សូរ</translation>
+<translation id="5745136023067925867">ទទួល​បានគន្លឹះ​ ការផ្ដល់ជូន និងព័ត៌មានថ្មីៗសម្រាប់ <ph name="DEVICE_TYPE" /> និងចែករំលែកមតិកែលម្អ</translation>
 <translation id="5746169159649715125">រក្សាទុកជា PDF</translation>
 <translation id="5747552184818312860">ផុតកំណត់</translation>
 <translation id="5747785204778348146">អ្នកអភិវឌ្ឍន៍ - មិនថេរ</translation>
@@ -3932,7 +3944,6 @@
 <translation id="6291953229176937411">បង្ហាញនៅក្នុងប្រអប់ស្វែងរក</translation>
 <translation id="6295158916970320988">គេហទំព័រទាំងអស់</translation>
 <translation id="6295855836753816081">កំពុងរក្សាទុក…</translation>
-<translation id="629730747756840877">គណនី</translation>
 <translation id="6298962879096096191">ប្រើ Google Play ដើម្បីដំឡើងកម្មវិធី Android</translation>
 <translation id="630065524203833229">ចាកចេញ</translation>
 <translation id="6300718114348072351">មិនអាចកំណត់​រចនាសម្ព័ន្ធ <ph name="PRINTER_NAME" /> ដោយស្វ័យប្រវត្តិ​បានទេ។ សូមបញ្ជាក់​ព័ត៌មានលម្អិត​ម៉ាស៊ីនបោះពុម្ព​កម្រិតខ្ពស់។ <ph name="LINK_BEGIN" />ស្វែងយល់បន្ថែម<ph name="LINK_END" /></translation>
@@ -4338,7 +4349,6 @@
 <translation id="6865598234501509159">ទំព័រ​មិនមែនជា​ភាសា<ph name="LANGUAGE" />ទេ</translation>
 <translation id="6865708901122695652">កំណត់ហេតុ​ព្រឹត្តិការណ៍ WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">ទម្រង់ពណ៌</translation>
-<translation id="6870888490422746447">ជ្រើសរើស​កម្មវិធី​ដើម្បី​ចែករំលែក​ទៅកាន់៖</translation>
 <translation id="6871644448911473373">ឧបករណ៍ឆ្លើយតប OCSP៖ <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">ពាក្យសម្ងាត់​ដែលអ្នក​បាន​បញ្ចូល​ត្រូវបាន​បដិសេធ​ដោយ​ម៉ាស៊ីនមេ។</translation>
 <translation id="6876155724392614295">កង់</translation>
@@ -4431,6 +4441,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" />៖ កំណត់ហេតុ​សកម្មភាព</translation>
 <translation id="6997707937646349884">នៅ​លើ​ឧបករណ៍​របស់អ្នក៖</translation>
 <translation id="6998793565256476099">ចុះឈ្មោះ​ឧបករណ៍​សម្រាប់សន្និសីទវីដេអូ</translation>
+<translation id="6999956497249459195">ក្រុមថ្មី</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> ត្រូវបានភ្ជាប់ ប៉ុន្តែម៉ាស៊ីន​បោះពុម្ពនេះ​ត្រូវការ​ការកំណត់​រចនាសម្ព័ន្ធ</translation>
 <translation id="7000347579424117903">រួមទាំង Ctrl, Alt ឬ Search</translation>
 <translation id="7001036685275644873">កំពុងបម្រុងទុក​កម្មវិធី និងឯកសារ Linux</translation>
@@ -4729,6 +4740,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">រៀបចំ​ការតភ្ជាប់​នៅលើ <ph name="PHONE_NAME" /> របស់អ្នក</translation>
 <translation id="7401778920660465883">ច្រានចោល​សារ​នេះ</translation>
+<translation id="7403642243184989645">កំពុងទាញយកធនធាន</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{ការពិនិត្យ​សុវត្ថិភាព​បានដំណើរការ 1 ម៉ោងមុន}other{ការពិនិត្យ​សុវត្ថិភាព​បានដំណើរការ {NUM_HOURS} ម៉ោងមុន}}</translation>
 <translation id="740624631517654988">ការលេចឡើងត្រូវបានរារាំង</translation>
 <translation id="7407430846095439694">នាំចូល និង​ចងភ្ជាប់</translation>
@@ -4965,6 +4977,7 @@
 <translation id="7716781361494605745">URL គោលការណ៍អាជ្ញាធរវិញ្ញាបនប័ត្រ Netscape</translation>
 <translation id="7717014941119698257">កំពុងទាញយក៖ <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">ពិនិត្យមើលការអាប់ដេត</translation>
+<translation id="7719070594859855691">ផ្ដល់សិទ្ធិឱ្យចូលប្រើ​កាមេរ៉ា</translation>
 <translation id="7719367874908701697">ពង្រីកទំព័រ</translation>
 <translation id="7721179060400456005">អនុញ្ញាតឲ្យវិនដូគ្របដណ្តប់លើការបង្ហាញ</translation>
 <translation id="7722040605881499779">ត្រូវការដើម្បីដំឡើងកំណែ៖ <ph name="NECESSARY_SPACE" /></translation>
@@ -4979,7 +4992,6 @@
 <translation id="7744047395460924128">មើល​ប្រវត្តិបោះពុម្ព​របស់អ្នក</translation>
 <translation id="7744192722284567281">រកឃើញនៅក្នុងការបែកធ្លាយ​ទិន្នន័យ​</translation>
 <translation id="7750228210027921155">រូបក្នុងរូប​</translation>
-<translation id="7751229152614300329">ការរុករក​ដោយសុវត្ថិភាពមានបច្ចុប្បន្នភាព និងការពារអ្នកពីការទាញយក និងគេហទំព័រដែលបង្កគ្រោះថ្នាក់ផ្សេងៗ</translation>
 <translation id="7751260505918304024">បង្ហាញទាំងអស់</translation>
 <translation id="7754704193130578113">សួររកកន្លែងរក្សាទុកឯកសារនីមួយៗមុនពេលទាញយក</translation>
 <translation id="7755287808199759310">មាតាបិតារបស់អ្នកអាចលុបការរារាំងទំព័រនេះសម្រាប់អ្នកបាន</translation>
@@ -5067,6 +5079,7 @@
     <ph name="BEGIN_BOLD" />ចំណាំ៖<ph name="END_BOLD" />  ប្រព័ន្ធ​នឹង​ចាប់ផ្ដើម​ឡើងវិញ​អំឡុង​ពេលការដំណើរការ។</translation>
 <translation id="7828731929332799387">សកម្មភាព​នេះនឹងលុបខូគីទាំងអស់ និងទិន្នន័យគេហទំព័រ​ដែលមាននៅក្នុងបរិបទភាគីទីបី។ តើ​អ្នក​ចង់​បន្ត​ដែរទេ?</translation>
 <translation id="7829298379596169484">ការចូលប្រើការបញ្ចូលសម្លេង</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> មិន​អាចពិនិត្យ​ពាក្យសម្ងាត់របស់អ្នកបានទេ។ សូមសាកល្បងពិនិត្យ​ការតភ្ជាប់អ៊ីនធឺណិត​របស់អ្នក។</translation>
 <translation id="7829877209233347340">ស្នើសុំ​ឱ្យមាតាបិតា​ចូលគណនី ដើម្បីផ្ដល់ការអនុញ្ញាតឱ្យបញ្ចូល​គណនី​សាលារៀន</translation>
 <translation id="7830594666202422257">ភ្ជាប់ Linux</translation>
 <translation id="7831491651892296503">មានបញ្ហាក្នុងការកំណត់រចនាសម្ព័ន្ធបណ្តាញ</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">កំពុងដំឡើង Google Play Store នៅលើ <ph name="DEVICE_TYPE" /> របស់អ្នក។ វាអាច​ចំណាយពេល​ពីរបីនាទី។</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{មិនមាន​ខូគី​ភាគី​ទីបីទេ}=1{បាន​ទប់ស្កាត់ខូគី​ភាគី​ទីបី 1}other{បាន​ទប់ស្កាត់ខូគី​ភាគី​ទីបី #}}</translation>
 <translation id="810875025413331850">រក​មិនឃើញ​ឧបករណ៍​ដែលនៅជិត​ទេ។</translation>
+<translation id="8114199541033039755">ចូលទៅទំព័រដើម ថយក្រោយ រួចប្ដូរកម្មវិធី​ដោយប្រើប៊ូតុងនៅក្នុងមុខងារថេប្លេត។ បើក នៅពេល​បើក ChromeVox ឬការចុចដោយស្វ័យប្រវត្តិ។</translation>
 <translation id="8114875720387900039">បំបែកផ្តេក</translation>
 <translation id="8116972784401310538">កម្មវិធីគ្រប់គ្រងចំណាំ</translation>
 <translation id="8117620576188476503">គ្រប់គ្រង​ការភ្ជាប់ កំណែថ្មី និង​ការកំណត់​ដោយប្រើ​ផ្ទាំង​ស្ថានភាព។ ដើម្បីចូល​មកកាន់ទីនេះ​ដោយប្រើ​ក្ដារចុច សូមចុច Alt + Shift + S ។</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> បានបិទដំណើរការសញ្ញាព្រួញកណ្តុររបស់អ្នក។</translation>
 <translation id="8264024885325823677">ការកំណត់នេះត្រូវបានគ្រប់គ្រងដោយអ្នកគ្រប់គ្រងរបស់អ្នក។</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" បានចាប់ផ្តើមពេញអេក្រង់។</translation>
+<translation id="826511437356419340">បានចូល​មុខងារ​ទិដ្ឋភាពរួម​របស់វិនដូ។ អូសដើម្បីរុករក ឬចុចផ្ទាំង ប្រសិនបើប្រើក្ដារចុច។</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />នេះ​គឺ​ជា​ព័ត៌មាន​ទូទៅ​អំពី​ឧបករណ៍​នេះ និង​របៀប​ដែល​វា​ត្រូវ​បាន​ប្រើប្រាស់ (ដូចជា​កម្រិតថ្ម សកម្មភាព​ប្រព័ន្ធ និង​កម្មវិធី ព្រមទាំង​បញ្ហា​ជាដើម)។ ទិន្នន័យ​នេះ​នឹង​ត្រូវ​បានប្រើ ដើម្បី​កែលម្អ Android ហើយ​ព័ត៌មាន​ដែល​ប្រមូល​បានមួយ​ចំនួន​ក៏​នឹង​ជួយ​កម្មវិធី និង​​ដៃគូរបស់​ Google ដូច​ជា​អ្នក​អភិវឌ្ឍន៍ Android ក្នុងការធ្វើ​ឱ្យ​កម្មវិធី និង​ផលិតផល​របស់​គេ​ប្រសើរ​ជាង​មុនផងដែរ។<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />ការ​បិទ​មុខងារ​នេះ​មិន​ប៉ះពាល់​ដល់​សមត្ថភាព​របស់ឧបករណ៍​នេះ​ក្នុងការ​បញ្ជូនព័ត៌មាន​ដែល​ចាំបាច់សម្រាប់​សេវាកម្ម​សំខាន់ ដូចជា​ការធ្វើ​បច្ចុប្បន្ន​ភាព​ប្រព័ន្ធ និង​សុវត្ថិភាព​នោះទេ។<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />ម្ចាស់អាច​គ្រប់គ្រង​មុខងារនេះ​នៅក្នុង​ការកំណត់ &gt; កម្រិតខ្ពស់ &gt; ផ្ញើ​ការវិភាគ និង​ទិន្នន័យ​ប្រើប្រាស់​ទៅ Google ដោយ​ស្វ័យប្រវត្តិ។<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">កំពុងបើក</translation>
 <translation id="8427292751741042100">បានបង្កប់​នៅលើ​ម៉ាស៊ីន​ណាមួយ</translation>
 <translation id="8428213095426709021">ការកំណត់</translation>
+<translation id="8428271547607112339">បញ្ចូល​គណនី​សាលារៀន</translation>
 <translation id="8428628598981198790">មិន​អាច​ប្រើ​សោសុវត្ថិភាព​របស់អ្នក​ជាមួយ​គេហទំព័រ​នេះ​បានទេ</translation>
 <translation id="84297032718407999">អ្នកនឹង​ត្រូវបានបង្ខំឱ្យចាកចេញ​ក្នុងរយៈពេល <ph name="LOGOUT_TIME_LEFT" /> ទៀត</translation>
 <translation id="8431190899827883166">បង្ហាញការចុច</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">អនុញ្ញាតឲ្យ <ph name="HOST" /> បង្ហាញរូបភាពជានិច្ច</translation>
 <translation id="8513108775083588393">បង្វិល​ស្វ័យ​ប្រវត្តិ</translation>
 <translation id="8514746246728959655">សាកល្បងប្រើ​សោសុវត្ថិភាពផ្សេង</translation>
+<translation id="851960115758509829">កម្មវិធី​ ការកំណត់ និង​ការប្ដូរ​តាម​បំណងផ្សេងទៀត​របស់អ្នក​នឹងធ្វើសមកាលកម្ម​នៅលើឧបករណ៍ Chrome OS ទាំងអស់ ដែលចូល​ដោយប្រើ​គណនី Google របស់អ្នក។</translation>
 <translation id="8521475323816527629">ចូលទៅកាន់កម្មវិធីរបស់អ្នកបានរហ័ស</translation>
 <translation id="8523493869875972733">រក្សាការផ្លាស់ប្តូរ</translation>
 <translation id="8523849605371521713">បានបន្ថែមដោយគោលការណ៍</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">ឧបករណ៍ផ្ទុកទិន្នន័យ</translation>
 <translation id="8859057652521303089">ជ្រើសរើសភាសារបស់អ្នក៖</translation>
 <translation id="8859174528519900719">ហ្វ្រេមរង៖ <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">គណនី​មាតាបិតា</translation>
 <translation id="8862003515646449717">ប្តូរទៅ​កម្មវិធីរុករកតាមអ៊ីនធឺណិតដែលរហ័ស</translation>
 <translation id="8863753581171631212">បើក​តំណ​នៅក្នុង <ph name="APP" /> ថ្មី</translation>
 <translation id="8864055848767439877">កំពុងចែករំលែក <ph name="TAB_NAME" /> ទៅ <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">បាន​លុប <ph name="EMAIL" /> ចេញ​ពីឧបករណ៍នេះ</translation>
 <translation id="8867228703146808825">ចម្លងព័ត៌មានលម្អិត​អំពីកំណែបង្កើត​ទៅឃ្លីបបត</translation>
+<translation id="8868333925931032127">កំពុង​ចាប់ផ្ដើម​មុខងារ​សាកល្បង</translation>
 <translation id="8868626022555786497">បានប្រើ</translation>
 <translation id="8870413625673593573">បានបិទកន្លងទៅថ្មីៗ</translation>
 <translation id="8871551568777368300">បានដៅដោយអ្នកគ្រប់គ្រង</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">បើកផ្ទាំងនេះ​ឡើងវិញ ប្រសិនបើ​អ្នកបានបិទវា​ដោយអចេតនា</translation>
 <translation id="8967866634928501045">ចុច Alt Shift A ដើម្បី​បង្ហាញ</translation>
 <translation id="8968766641738584599">រក្សាទុក​បណ្ណ</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> មិន​អាចពិនិត្យ​ពាក្យសម្ងាត់របស់អ្នកបានទេ។ សូមព្យាយាមម្ដងទៀតក្រោយរយៈពេល 24 ម៉ោង ឬ<ph name="BEGIN_LINK" />ពិនិត្យពាក្យសម្ងាត់នៅក្នុងគណនី Google របស់អ្នក<ph name="END_LINK" />។</translation>
 <translation id="89720367119469899">គេច</translation>
 <translation id="8972513834460200407">សូមពិនិត្យជាមួយអ្នកគ្រប់គ្រងបណ្តាញរបស់អ្នកដើម្បីប្រាកដថា ហ្វាយអ័រវលមិនកំពុងត្រូវបានរារាំងពីម៉ាស៊ីនមេ Google ទេ។</translation>
 <translation id="8973557916016709913">ដក​កម្រិត​ពង្រីក/បង្រួម​ចេញ</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 9275b0e..175b006 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">ಲಭ್ಯವಿರುವ ಸಾಧನಗಳು</translation>
 <translation id="1042174272890264476">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅಂತರ್‌ನಿರ್ಮಿತ <ph name="SHORT_PRODUCT_NAME" /> ನ RLZ ಲೈಬ್ರರಿಯೊಂದಿಗೆ ಸಹ ಬರುತ್ತದೆ. ಹುಡುಕಾಟಗಳನ್ನು ಅಳತೆ ಮಾಡಲು ಮತ್ತು ಒಂದು ನಿರ್ದಿಷ್ಟ ಪ್ರಚಾರದ ಶಿಬಿರದಿಂದ <ph name="SHORT_PRODUCT_NAME" /> ಬಳಕೆಯಿಂದ ಗಳಿಸಿದ ಅನನ್ಯವಲ್ಲದ, ವೈಯಕ್ತಿಕವಾಗಿ ಗುರುತಿಸದಂತಹ ಟ್ಯಾಗ್ ಅನ್ನು RLZ ಆಯೋಜಿಸುತ್ತದೆ. ಈ ಲೇಬಲ್‌ಗಳು ಕೆಲವು ಬಾರಿ <ph name="PRODUCT_NAME" /> ನಲ್ಲಿ Google ಹುಡುಕಾಟ ಪ್ರಶ್ನೆಗಳಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ.</translation>
 <translation id="1043818413152647937">ಆ್ಯಪ್‌ಗಳಲ್ಲಿರುವ ಡೇಟಾವನ್ನು ಸಹ ತೆರವುಗೊಳಿಸುವುದೇ?</translation>
+<translation id="1045448422538531528">ಗುಂಪಿಗೆ ಸೇರಿಸಿ</translation>
 <translation id="1046635659603195359">ನೀವು ಮತ್ತೊಂದು ಸಾಧನದಲ್ಲಿ ನಿಮ್ಮ Google ಅಸಿಸ್ಟೆಂಟ್ ಮೂಲಕ Voice Match ಅನ್ನು ಈಗಾಗಲೇ ಸೆಟಪ್‌ ಮಾಡಿರುವಿರಿ ಎಂದು ತೋರುತ್ತಿದೆ. ಈ ಸಾಧನದಲ್ಲಿ ಧ್ವನಿ ಮಾದರಿಯನ್ನು ರೂಪಿಸಲು ಹಿಂದಿನ ರೆಕಾರ್ಡಿಂಗ್‌ಗಳನ್ನು ಬಳಸಬಹುದು. ಇದಕ್ಕೆ ಒಂದು ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ ಸಮಯ ಸಾಕು.</translation>
 <translation id="104710386808485638">Linux ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೇ?</translation>
 <translation id="1047431265488717055">ಲಿಂಕ್ ಪ&amp;ಠ್ಯ ನಕಲಿಸಿ</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">ಯಾವಾಗಲೂ ಕ್ಯಾಮರಾ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> ನಿಮ್ಮ Chrome ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಅದರ ಮೂಲ ಡೀಫಾಲ್ಟ್‌ಗಳಿಗೆ ಪುನಃ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಬಯಸುತ್ತದೆ. ಇದು ನಿಮ್ಮ ಮುಖಪುಟ, ಹೊಸ ಟ್ಯಾಬ್ ಪುಟ, ಮತ್ತು ಹುಡುಕಾಟ ಇಂಜಿನ್‌ಗಳನ್ನು ಮರುಹೊಂದಿಸುತ್ತದೆ, ನಿಮ್ಮ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಎಲ್ಲ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಅನ್‌ಪಿನ್ ಮಾಡುತ್ತದೆ. ಇದು ಕುಕೀಗಳು, ವಿಷಯ ಹಾಗೂ ಸೈಟ್‌ ಡೇಟಾದಂತಹ ಇತರೆ ತಾತ್ಕಾಲಿಕ ಮತ್ತು ಕ್ಯಾಷ್ ಡೇಟಾವನ್ನು ಸಹ ತೆರವುಗೊಳಿಸುತ್ತದೆ.</translation>
+<translation id="1084096383128641877">ಈ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ತೆಗೆದುಹಾಕುವುದರಿಂದ <ph name="DOMAIN" /> ನಲ್ಲಿ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ. <ph name="DOMAIN_LINK" /> ನಲ್ಲಿ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಇತರರು ಬಳಸದಂತೆ ರಕ್ಷಿಸಲು, ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಬದಲಾಯಿಸಿ ಅಥವಾ ಖಾತೆಯನ್ನು ಅಳಿಸಿ.</translation>
 <translation id="1084824384139382525">ಲಿಂಕ್ ವಿಳಾ&amp;ಸವನ್ನು ನಕಲಿಸಿ</translation>
 <translation id="1085697365578766383">ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಪ್ರಾರಂಭಿಸುವಲ್ಲಿ ದೋಷ ಕಂಡುಬಂದಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="1090126737595388931">ಯಾವುದೇ ಹಿನ್ನೆಲೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಚಾಲನೆಯಲ್ಲಿಲ್ಲ</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">ಸುರಕ್ಷತಾ ಪರಿಶೀಲನೆಯನ್ನು ನಿನ್ನೆಯ ದಿನ ನಡೆಸಲಾಗಿದೆ</translation>
 <translation id="1260451001046713751"><ph name="HOST" /> ನಿಂದ ಪಾಪ್-ಅಪ್‍ಗಳು ಮತ್ತು ಮರುನಿರ್ದೇಶನಗಳನ್ನು ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ</translation>
 <translation id="126156426083987769">ಡೆಮೊ ಮೋಡ್ ಸಾಧನದ ಪರವಾನಗಿಗಳಲ್ಲಿ ಸಮಸ್ಯೆ ಸಂಭವಿಸಿದೆ.</translation>
+<translation id="1263490604593716556"><ph name="FIRST_PARENT_EMAIL" /> ಮತ್ತು <ph name="SECOND_PARENT_EMAIL" /> ಮೂಲಕ ಖಾತೆಯನ್ನು ನಿರ್ವಹಿಸಲಾಗಿದೆ. ಈ ಸಾಧನದಲ್ಲಿ ಪ್ರಾಥಮಿಕ ಖಾತೆಯಿಂದ ಸೈನ್ ಔಟ್ ಆಗಲು, ಸ್ಕ್ರೀನ್ ಮೇಲಿರುವ ಸಮಯವನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ. ನಂತರ ಕಾಣಿಸಿಕೊಳ್ಳುವ ಮೆನುವಿನಲ್ಲಿ "ಸೈನ್ ಔಟ್" ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.</translation>
 <translation id="126710816202626562">ಅನುವಾದ ಭಾಷೆ:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">ನಿಲ್ಲಿಸಿ</translation>
@@ -418,7 +421,6 @@
 <translation id="1566049601598938765">ವೆಬ್‌ಸೈಟ್</translation>
 <translation id="15662109988763471">ಆಯ್ಕೆಮಾಡಿದ ಪ್ರಿಂಟರ್ ಲಭ್ಯವಿಲ್ಲ ಅಥವಾ ಸರಿಯಾಗಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿಲ್ಲ. ನಿಮ್ಮ ಪ್ರಿಂಟರ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ ಅಥವಾ ಬೇರೊಂದು ಪ್ರಿಂಟರ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="1567387640189251553">ನೀವು ಕೊನೆಯ ಬಾರಿ ಪಾಸ್‍ವರ್ಡ್ ನಮೂದಿಸುವಾಗ ಇದ್ದ ಕೀಬೋರ್ಡ್‍ಗಿಂತ ಇದು ಭಿನ್ನವಾಗಿದೆ. ನಿಮ್ಮ ಕೀಸ್ಟ್ರೋಕ್‌ಗಳನ್ನು ಕಳವು ಮಾಡಲು ಇದು ಪ್ರಯತ್ನಿಸುತ್ತಿರಬಹುದು.</translation>
-<translation id="1567750922576943685">ನಿಮ್ಮ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸುವುದರಿಂದ ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ರಕ್ಷಿಸಲು ಸಹಾಯವಾಗುತ್ತದೆ</translation>
 <translation id="1567993339577891801">JavaScript ಕನ್ಸೋಲ್</translation>
 <translation id="1568323446248056064">ಡಿಸ್‌ಪ್ಲೇ ಸಾಧನ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (ಅತಿಥಿ)</translation>
@@ -520,7 +522,6 @@
 <translation id="1697150536837697295">ಕಲೆ</translation>
 <translation id="1697686431566694143">ಫೈಲ್ ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="1698122934742150150">ಪ್ರಸ್ತುತ ಅದೃಶ್ಯ ಸೆಶನ್ ಮಾತ್ರ</translation>
-<translation id="1698650002254827833">ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="1700079447639026019">ಎಂದಿಗೂ ಕುಕೀಗಳನ್ನು ಬಳಸದ ಸೈಟ್‌ಗಳು</translation>
 <translation id="1701062906490865540">ಈ ವ್ಯಕ್ತಿಯನ್ನು ತೆಗೆದುಹಾಕು</translation>
 <translation id="1703331064825191675">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳ ಬಗ್ಗೆ ಎಂದಿಗೂ ಚಿಂತಿಸಬೇಡಿ</translation>
@@ -827,6 +828,7 @@
 <translation id="2119349053129246860"><ph name="APP" /> ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="2120297377148151361">ಚಟುವಟಿಕೆ ಮತ್ತು ಸಂವಹನಗಳು</translation>
 <translation id="2120639962942052471"><ph name="PERMISSION" /> ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
+<translation id="2121055421682309734">{COUNT,plural, =0{ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ}=1{ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ, 1 ವಿನಾಯಿತಿಯಿದೆ}one{ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ, {COUNT} ವಿನಾಯಿತಿಯಿದೆ}other{ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ, {COUNT} ವಿನಾಯಿತಿಯಿದೆ}}</translation>
 <translation id="2121825465123208577">ಮರುಗಾತ್ರ</translation>
 <translation id="2122305276694332719">ಮರೆ ಮಾಡಿರುವ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಂಪರ್ಕಗೊಳ್ಳುವುದರಿಂದ ಇತರರು ನಿಮ್ಮ ಸಾಧನ ಮತ್ತು ಕೆಲವು ನೆಟ್‌ವರ್ಕ್‌ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನೋಡಲು ಅನುಮತಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಇದನ್ನು ಬಳಸಲು ಶಿಫಾರಸು ಮಾಡುವುದಿಲ್ಲ.</translation>
 <translation id="2123766928840368256">ಬೇರೊಂದು ಫೈಲ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
@@ -873,6 +875,7 @@
 <translation id="2172784515318616985">ಮುಂದುವರಿಸಿ</translation>
 <translation id="2173302385160625112">ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="2173801458090845390">ಈ ಸಾಧನಕ್ಕೆ ನಿಯೋಜನ ಐಡಿ ಅನ್ನು ಸೇರಿಸಿ</translation>
+<translation id="2174948148799307353">ಖಾತೆಯನ್ನು <ph name="PARENT_EMAIL" /> ನಿರ್ವಹಿಸಿದೆ. ಈ ಸಾಧನದಲ್ಲಿ ಪ್ರಾಥಮಿಕ ಖಾತೆಯಿಂದ ಸೈನ್ ಔಟ್ ಆಗಲು, ಸ್ಕ್ರೀನ್ ಮೇಲಿರುವ ಸಮಯವನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ. ನಂತರ ಕಾಣಿಸಿಕೊಳ್ಳುವ ಮೆನುವಿನಲ್ಲಿ "ಸೈನ್ ಔಟ್" ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.</translation>
 <translation id="2175607476662778685">ಶೀಘ್ರ ಆರಂಭಗೊಳ್ಳುವ ಬಾರ್</translation>
 <translation id="217576141146192373">ಪ್ರಿಂಟರ್ ಸೇರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಿಮ್ಮ ಪ್ರಿಂಟರ್‌ನ ಕಾನ್ಫಿಗರೇಶನ್ ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="2177950615300672361">ಅದೃಶ್ಯ ಟ್ಯಾಬ್: <ph name="TAB_NAME" /></translation>
@@ -1080,7 +1083,6 @@
 <translation id="2442916515643169563">ಪಠ್ಯದ ನೆರಳು</translation>
 <translation id="2445081178310039857">ವಿಸ್ತರಣೆ ಮೂಲ ಡೈರೆಕ್ಟರಿ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="2445484935443597917">ಹೊಸ ಪ್ರೊಫೈಲ್ ರಚಿಸಿ</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> ನಿಮ್ಮ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಲು ಬಯಸುತ್ತದೆ</translation>
 <translation id="2448312741937722512">ಪ್ರಕಾರ</translation>
 <translation id="2450223707519584812">Google API ಕೀಗಳು ಕಾಣೆಯಾಗಿರುವ ಕಾರಣ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ವಿವರಗಳಿಗೆ <ph name="DETAILS_URL" /> ನೋಡಿ.</translation>
 <translation id="2450849356604136918">ಸಕ್ರಿಯ ವೀಕ್ಷಣೆಗಳಿಲ್ಲ</translation>
@@ -1478,6 +1480,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" /> ಗೆ ಹೋಗಿ</translation>
 <translation id="29488703364906173">ಆಧುನಿಕ ವೆಬ್‌ಗಾಗಿ ರೂಪಿಸಲಾದ, ತ್ವರಿತ, ಸರಳ ಮತ್ತು ಸುರಕ್ಷಿತ ವೆಬ್‌ ಬ್ರೌಸರ್‌ ಆಗಿದೆ.</translation>
 <translation id="2949289451367477459">ಸ್ಥಳವನ್ನು ಬಳಸಿ. ಸ್ಥಳ ಅನುಮತಿಯನ್ನು ಹೊಂದಿರುವ ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಸೇವೆಗಳಿಗೆ ಈ ಸಾಧನದ ಸ್ಥಳವನ್ನು ಬಳಸಲು ಅವಕಾಶ ನೀಡಿ. ಸ್ಥಳ ಡೇಟಾವನ್ನು Google ನಿಯತಕಾಲಿಕವಾಗಿ ಸಂಗ್ರಹಿಸಬಹುದು ಮತ್ತು ಸ್ಥಳ ನಿಖರತೆ ಮತ್ತು ಸ್ಥಳ ಆಧಾರಿತ ಸೇವೆಗಳನ್ನು ಸುಧಾರಿಸಲು ಅನಾಮಧೇಯ ರೀತಿಯಲ್ಲಿ ಈ ಡೇಟಾವನ್ನು ಬಳಸಬಹುದು. <ph name="BEGIN_LINK1" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">ನನ್ನನ್ನು ಸೈನ್ ಅಪ್ ಮಾಡಿ</translation>
 <translation id="2956070239128776395">ವಿಭಾಗವನ್ನು ಗುಂಪಿನೊಳಗೆ ಸೇರಿಸಲಾಗಿದೆ: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಫೈಲ್‌ಗಳು ಅಥವಾ ಫೋಲ್ಡರ್‌ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಲು ಯಾವುದೇ ಸೈಟ್‌ಗಳಿಗೆ ಅವಕಾಶ ನೀಡಬೇಡಿ</translation>
 <translation id="2958721676848865875">ಪ್ಯಾಕ್ ವಿಸ್ತರಣೆಯ ಎಚ್ಚರಿಕೆ</translation>
@@ -1602,6 +1605,7 @@
 <translation id="3139925690611372679">ಡಿಫಾಲ್ಟ್ ಹಳದಿ ಅವರಾರ್</translation>
 <translation id="3141318088920353606">ಆಲಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="3141917231319778873">ನೀಡಿರುವ ವಿನಂತಿಯನ್ನು ಈ ಸಾಧನಕ್ಕೆ ಬೆಂಬಲಿಸಲಾಗುವುದಿಲ್ಲ: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">ಹೊಸ ಗುಂಪು</translation>
 <translation id="3143515551205905069">ಸಿಂಕ್ ಮಾಡುವಿಕೆಯನ್ನು ರದ್ದುಪಡಿಸಿ</translation>
 <translation id="3143754809889689516">ಆರಂಭದಿಂದ ಪ್ಲೇ ಮಾಡಿ</translation>
 <translation id="3144647712221361880">ಲಿಂಕ್ ಅನ್ನು ಹೀಗೆ ತೆರೆಯಿರಿ</translation>
@@ -1626,6 +1630,7 @@
 <translation id="3159493096109238499">ಬೈಜೆ</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ಹಾರ್ಡ್‌ವೇರ್-ಹಿಂದಕ್ಕೆ ಪಡೆದ)</translation>
 <translation id="3161522574479303604">ಎಲ್ಲಾ ಭಾಷೆಗಳು</translation>
+<translation id="3162853326462195145">ಶಾಲೆಯ ಖಾತೆ</translation>
 <translation id="3162899666601560689">ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಅನುಭವವನ್ನು ಸುಧಾರಿಸಲು, ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮನ್ನು ಸೈನ್ ಇನ್ ಆಗಿರಿಸಲು ಅಥವಾ ನಿಮ್ಮ ಶಾಪಿಂಗ್ ಕಾರ್ಟ್‌ನಲ್ಲಿರುವ ಐಟಂಗಳನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಲು ಸೈಟ್‌ಗಳು ಕುಕೀಗಳನ್ನು ಬಳಸಬಹುದು</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> ಮಾರಾಟಗಾರರಿಂದ <ph name="PRODUCT_ID" /> ಅಪರಿಚಿತ ಉತ್ಪನ್ನ</translation>
 <translation id="3164329792803560526">ಈ ಟ್ಯಾಬ್ ಅನ್ನು <ph name="APP_NAME" /> ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ</translation>
@@ -1684,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{ಒಂದು ದಿನದ ಒಳಗೆ ಸಾಧನವನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ}one{# ದಿನಗಳ ಒಳಗೆ ಸಾಧನವನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ}other{# ದಿನಗಳ ಒಳಗೆ ಸಾಧನವನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - ನೆಟ್‌ವರ್ಕ್ ದೋಷ</translation>
 <translation id="3248902735035392926">ಎಲ್ಲಕ್ಕಿಂತ ಸುರಕ್ಷತೆಯೇ ಮುಖ್ಯ. <ph name="BEGIN_LINK" />ಈಗ ನಿಮ್ಮ ವಿಸ್ತರಣೆಗಳನ್ನು ಪರಿಶೀಲಿಸಲು<ph name="END_LINK" /> ಸ್ವಲ್ಪ ಸಮಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;ಪ್ರಮಾಣಪತ್ರದ ಭಾಗವಲ್ಲ&gt;</translation>
 <translation id="3253225298092156258">ಲಭ್ಯವಿಲ್ಲ</translation>
 <translation id="3253448572569133955">ಅಪರಿಚಿತ ಖಾತೆ</translation>
@@ -1789,6 +1793,7 @@
 <translation id="3396800784455899911">ಈ Google ಸೇವೆಗಳಿಗಾಗಿ "ಸ್ವೀಕರಿಸಿ ಮತ್ತು ಮುಂದುವರೆಸು" ಬಟನ್‌ ಅನ್ನು ಕ್ಲಿಕ್‌ ಮಾಡುವುದರ ಮೂಲಕ, ನೀವು ಮೇಲೆ ವಿವರಿಸಿರುವ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವಿಕೆಗೆ ಒಪ್ಪುತ್ತೀರಿ.</translation>
 <translation id="3399432415385675819">ಅಧಿಸೂಚನೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> ಹರ್ಟ್ಜ್) - ಇಂಟರ್‌ಲೇಸ್ ಆಗಿದೆ</translation>
+<translation id="3402585168444815892">ಡೆಮೋ ಮೋಡ್‌ನಲ್ಲಿ ನೋಂದಣಿ ಮಾಡಲಾಗುತ್ತಿದೆ</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">ಈ ಸೈಟ್‌ಗಾಗಿ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಉಳಿಸಿಲ್ಲ</translation>
 <translation id="3405664148539009465">ಫಾಂಟ್‌ಗಳನ್ನು ಗ್ರಾಹಕೀಯಗೊಳಿಸಿ</translation>
@@ -1850,6 +1855,7 @@
 <translation id="3468999815377931311">Android ಫೋನ್</translation>
 <translation id="3470442499439619530">ಈ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="3471876058939596279">HDMI ಮತ್ತು USB ಟೈಪ್-C ಪೋರ್ಟ್‌ಗಳನ್ನು ವೀಡಿಯೊಗಾಗಿ ಒಂದೇ ಸಮಯದಲ್ಲಿ ಬಳಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಬೇರೆ ವೀಡಿಯೊ ಪೋರ್ಟ್ ಬಳಸಿ.</translation>
+<translation id="3473241910002674503">ಟ್ಯಾಬ್ಲೆಟ್ ಮೋಡ್‌ನಲ್ಲಿ, ಹೋಮ್‌ಗೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು, ಹಿಂತಿರುಗಲು ಮತ್ತು ಆ್ಯಪ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಬಟನ್‌ಗಳನ್ನು ಬಳಸಿ.</translation>
 <translation id="3473479545200714844">ಪರದೆ ವರ್ಧಕ</translation>
 <translation id="3475843873335999118">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಫಿಂಗರ್‌‌ಫ್ರಿಂಟ್‌ ಇನ್ನೂ ಗುರುತಿಸಲಾಗಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ.</translation>
 <translation id="3476303763173086583">ಬಳಕೆ ಮತ್ತು ಡಯಾಗ್ನಾಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಿ. ಡಯಾಗ್ನಾಸ್ಟಿಕ್, ಸಾಧನ, ಹಾಗೂ ಆ್ಯಪ್ ಬಳಕೆಯ ಡೇಟಾವನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಮಗುವಿನ Android ಅನುಭವವನ್ನು ಉತ್ತಮಗೊಳಿಸುವುದಕ್ಕೆ ಸಹಾಯ ಮಾಡಿ. ಈ ಡೇಟಾವನ್ನು ನಿಮ್ಮ ಮಗುವನ್ನು ಗುರುತಿಸುವುದಕ್ಕೆ ಬಳಸುವುದಿಲ್ಲ, ಹಾಗೂ ಇದು ಸಿಸ್ಟಮ್ ಮತ್ತು ಆ್ಯಪ್ ಸ್ಥಿರತೆಗೆ, ಹಾಗೂ ಇತರ ಸುಧಾರಣೆಗಳಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಕೆಲವು ಒಟ್ಟುಗೂಡಿಸಿದ ಡೇಟಾವು, Google ಆ್ಯಪ್‌ಗಳಿಗೆ ಮತ್ತು ಪಾಲುದಾರರಿಗೂ ಸಹ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, Android ಡೆವಲಪರ್‌ಗಳು. ಈ <ph name="BEGIN_LINK1" />ಸೆಟ್ಟಿಂಗ್<ph name="END_LINK1" />ಅನ್ನು ಮಾಲೀಕರೇ ಜಾರಿಗೊಳಿಸುತ್ತಾರೆ. ಈ ಸಾಧನದ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ ಮತ್ತು ಬಳಕೆಯ ಡೇಟಾವನ್ನು Google ಗೆ ಕಳುಹಿಸಲು ಮಾಲೀಕರು ಆಯ್ಕೆ ಮಾಡಬಹುದು. ನಿಮ್ಮ ಮಗುವಿಗಾಗಿ ಹೆಚ್ಚುವರಿ ವೆಬ್‌ ಮತ್ತು ಆ್ಯಪ್ ಚಟುವಟಿಕೆ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಆನ್‌ ಮಾಡಿದ್ದಲ್ಲಿ, ಈ ಡೇಟಾವು ಅವರ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲ್ಪಡಬಹುದು. <ph name="BEGIN_LINK2" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK2" /></translation>
@@ -2274,6 +2280,7 @@
 <translation id="3971764089670057203">ಈ ಭದ್ರತೆ ಕೀನಲ್ಲಿರುವ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್‌ಗಳು</translation>
 <translation id="3973660817924297510">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ (<ph name="TOTAL_PASSWORDS" /> ರಲ್ಲಿ <ph name="CHECKED_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">ಕ್ಷೇತ್ರಕ್ಕಾಗಿ ಸರ್ವರ್ ಸಂಪರ್ಕಿಸುವುದು ವಿಫಲವಾಗಿದೆ</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="3976108569178263973">ಯಾವುದೇ ಲಭ್ಯ ಪ್ರಿಂಟರ್‌ಗಳಿಲ್ಲ.</translation>
 <translation id="397703832102027365">ಅಂತಿಮಗೊಳಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="3977886311744775419">ಈ ಪ್ರಕಾರದ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತ ಅಪ್‌ಡೇಟ್‌ಗಳು ಡೌನ್‌ಲೋಡ್ ಆಗುವುದಿಲ್ಲ, ಆದರೆ ಅಪ್‌ಡೇಟ್‌ಗಳಿವೆಯೇ ಎಂದು ನೀವು ಹಸ್ತಚಾಲಿತವಾಗಿ ಪರಿಶೀಲಿಸಬಹುದು.</translation>
@@ -2337,6 +2344,7 @@
 <translation id="4068506536726151626">ಈ ಪುಟವು ನಿಮ್ಮ ಸ್ಥಾನದ ನಿಗಾ ಇರಿಸುತ್ತಿರುವ ಈ ಕೆಳಗಿನ ಸೈಟ್‌ಗಳ ಮೂಲಾಂಶಗಳನ್ನು ಒಳಗೊಂಡಿದೆ:</translation>
 <translation id="4068776064906523561">ಉಳಿಸಿದ ಬೆರಳಚ್ಚುಗಳು</translation>
 <translation id="407173827865827707">ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ</translation>
+<translation id="4073520450811433493">ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಿ</translation>
 <translation id="4074900173531346617">ಇಮೇಲ್ ಸಹಿ ಮಾಡುವವರ ಪ್ರಮಾಣಪತ್ರ</translation>
 <translation id="407520071244661467">ಮಾಪಕ</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> ಬಿತ್ತರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation>
@@ -2573,6 +2581,7 @@
 <translation id="4421932782753506458">ಫ್ಲುಫಿ</translation>
 <translation id="4423376891418188461">ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸು</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ನೀವು ಬದಲಾಯಿಸವುದು ಅಗತ್ಯವಿರುತ್ತದೆ.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. 24 ಗಂಟೆಗಳ ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="4429030830601238961">ಈ ಡೇಟಾವು ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಭದ್ರತಾ ನೀತಿಗಳನ್ನು ಉಲ್ಲಂಘಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಅಂಟಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="4430019312045809116">ವಾಲ್ಯೂಮ್</translation>
 <translation id="4430369329743628066">ಬುಕ್‌ಮಾರ್ಕ್ ಸೇರಿಸಲಾಗಿದೆ</translation>
@@ -2585,6 +2594,7 @@
 <translation id="4441124369922430666">ಯಂತ್ರವು ಆನ್ ಆದ ಸಂದರ್ಭದಲ್ಲಿ ಈ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನೀವು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆರಂಭಿಸಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="4441147046941420429">ಮುಂದುವರಿಸಲು, ನಿಮ್ಮ ಸಾಧನದಿಂದ ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀಯನ್ನು ತೆಗೆಯಿರಿ, ನಂತರ ಅದನ್ನು ಪುನಃ ಸೇರಿಸಿ ಮತ್ತು ಸ್ಪರ್ಶಿಸಿ.</translation>
 <translation id="444134486829715816">ವಿಸ್ತರಿಸಿ...</translation>
+<translation id="4442329324652245220">ನೀವು Google ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, <ph name="IDS_SHORT_PRODUCT_NAME" /> ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು</translation>
 <translation id="4442424173763614572">DNS ಲುಕಪ್ ವಿಫಲವಾಗಿದೆ</translation>
 <translation id="4443536555189480885">&amp;ಸಹಾಯ</translation>
 <translation id="4444304522807523469">USB ಅಥವಾ ಸ್ಥಳೀಯ ನೆಟ್‌ವರ್ಕ್ ಮೂಲಕ ಲಗತ್ತಿಸಲಾದ ಡಾಕ್ಯುಮೆಂಟ್ ಸ್ಕ್ಯಾನರ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ</translation>
@@ -2611,11 +2621,13 @@
 <translation id="4476659815936224889">ಈ ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲು, ನಿಮ್ಮ ಫೋನ್‌ನಲ್ಲಿ ಅಥವಾ ಕೆಲವು ಕ್ಯಾಮರಾ ಆ್ಯಪ್‌ಗಳಲ್ಲಿ QR ಸ್ಕ್ಯಾನರ್ ಆ್ಯಪ್ ಅನ್ನು ನೀವು ಬಳಸಬಹುದು.</translation>
 <translation id="4477015793815781985">Ctrl, Alt, ಅಥವಾ ⌘ ಸೇರಿಸಿ</translation>
 <translation id="4478664379124702289">ಇದರಂತೆ ಲಿಂ&amp;ಕ್ ಅನ್ನು ಉಳಿಸಿ...</translation>
+<translation id="4478777936860197922">ಯಾವುದೇ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಉಳಿಸಿಲ್ಲ. ನೀವು ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಉಳಿಸಿದಾಗ, <ph name="IDS_SHORT_PRODUCT_NAME" /> ಅವುಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.</translation>
 <translation id="4479424953165245642">ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="4479639480957787382">ಈಥರ್ನೆಟ್</translation>
 <translation id="4479877282574735775">ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗುತ್ತಿದೆ. ಇದು ಕೆಲವು ನಿಮಿಷಗಳ ಕಾಲಾವಕಾಶವನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು.</translation>
 <translation id="4480590691557335796">Chrome, ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಕಂಡುಹಿಡಿಯಬಲ್ಲುದು ಮತ್ತು ಅದನ್ನು ತೆಗೆದುಹಾಕಬಲ್ಲುದು</translation>
 <translation id="4481530544597605423">ಜೋಡಿಯಾಗಿರದ ಸಾಧನಗಳು</translation>
+<translation id="4488107067273194838">ಸೆಟಪ್ ನಂತರ ಬ್ರೌಸರ್ ಸಿಂಕ್ ಆಯ್ಕೆಗಳನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="4488502501195719518">ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸುವುದೇ?</translation>
 <translation id="4495419450179050807">ಈ ಪುಟದಲ್ಲಿ ತೋರಿಸಬೇಡ</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
@@ -2858,6 +2870,7 @@
 <translation id="4849517651082200438">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಬೇಡಿ</translation>
 <translation id="4850669014075537160">ಸ್ಕ್ರಾಲಿಂಗ್</translation>
 <translation id="4850886885716139402">ವೀಕ್ಷಣೆ</translation>
+<translation id="485197095346966382">ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್ ಮೂಲಕ ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, <ph name="IDS_SHORT_PRODUCT_NAME" /> ನಿಮಗೆ ಸೂಚನೆ ನೀಡುತ್ತದೆ</translation>
 <translation id="4853020600495124913">&amp;ಹೊಸ ವಿಂಡೋನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="4854317507773910281">ಅನುಮೋದನೆ ಪಡೆಯಲು, ಪೋಷಕರ ಖಾತೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="485480310608090163">ಇನ್ನಷ್ಟು ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಹಾಗೂ ಅನುಮತಿಗಳು</translation>
@@ -2876,6 +2889,7 @@
 <translation id="4871322859485617074">ಪಿನ್ ಅಮಾನ್ಯ ಅಕ್ಷರಗಳನ್ನು ಒಳಗೊಂಡಿದೆ</translation>
 <translation id="4871370605780490696">ಬುಕ್‌ಮಾರ್ಕ್ ಸೇರಿಸು</translation>
 <translation id="4871719318659334896">ಗುಂಪನ್ನು ಮುಚ್ಚಿರಿ</translation>
+<translation id="4871852311166078968">ಗುಂಪಿಗೆ ಸೇರಿಸಿ</translation>
 <translation id="4873312501243535625">ಮಾಧ್ಯಮ ಫೈಲ್ ಪರೀಕ್ಷಕ</translation>
 <translation id="4876273079589074638">ಈ ಕ್ರ್ಯಾಶ್ ಕುರಿತು ತನಿಖೆ ನಡೆಸಿ, ಅದನ್ನು ಸರಿಪಡಿಸಲು ನಮ್ಮ ಎಂಜಿನಿಯರ್‌ಗಳಿಗೆ ಸಹಾಯ ಮಾಡಿ. ಸಾಧ್ಯವಿದ್ದರೆ, ನಿಖರವಾದ ಹೆಜ್ಜೆಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ. ಯಾವುದೇ ವಿವರವನ್ನು ತೀರಾ ಗೌಣವೆಂದು ನಿರ್ಲಕ್ಷಿಸಬೇಡಿ!</translation>
 <translation id="4876895919560854374">ಪರದೆಯನ್ನು ಲಾಕ್ ಮತ್ತು ಅನ್‌ಲಾಕ್ ಮಾಡಿ</translation>
@@ -2967,7 +2981,6 @@
 <translation id="4992473555164495036">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಲಭ್ಯವಿರುವ ಇನ್‌ಪುಟ್ ವಿಧಾನಗಳನ್ನು ಸೀಮಿತಗೊಳಿಸಿದ್ದಾರೆ.</translation>
 <translation id="4994474651455208930">ಪ್ರೊಟೋಕಾಲ್‌ಗಳಿಗಾಗಿ ಡಿಫಾಲ್ಟ್ ಹ್ಯಾಂಡ್ಲರ್‌‌ಗಳಾಗಲು ಸೈಟ್‌ಗಳನ್ನು ಅನುಮತಿಸಿ</translation>
 <translation id="4994754230098574403">ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ</translation>
-<translation id="4996978546172906250">ಇದರ ಮೂಲಕ ಹಂಚಿ</translation>
 <translation id="4997086284911172121">ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವಿಲ್ಲ.</translation>
 <translation id="4997384734315285248">Plugin VM ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ</translation>
 <translation id="4998430619171209993">ಆನ್‌</translation>
@@ -3067,7 +3080,6 @@
 <translation id="5135085122826131075">"Ok Google" ಎಂದು ಹೇಳಿ, ನಿಮ್ಮ ಅಸಿಸ್ಟೆಂಟ್‌ಗೆ ಪ್ರವೇಶಿಸಿ.</translation>
 <translation id="5135533361271311778">ಬುಕ್‌ಮಾರ್ಕ್ ಐಟಂ ಅನ್ನು ರಚಿಸಲು ಆಗುವುದಿಲ್ಲ.</translation>
 <translation id="5137501176474113045">ಈ ಐಟಂ ಅಳಿಸಿ</translation>
-<translation id="5138982052046316113">Linux ಡಿಸ್ಕ್ ಅನ್ನು ಮರುಗಾತ್ರಗೊಳಿಸಿ</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> ಹುಡುಕಾಟ</translation>
 <translation id="5139823398361067371">ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀಗಾಗಿ ಪಿನ್ ನಮೂದಿಸಿ. ನಿಮಗೆ ಪಿನ್ ತಿಳಿದಿಲ್ಲದಿದ್ದರೆ, ಸುರಕ್ಷತಾ ಕೀಯನ್ನು ಮರುಹೊಂದಿಸಬೇಕಾಗುತ್ತದೆ.</translation>
 <translation id="5139955368427980650">&amp;ತೆರೆ</translation>
@@ -3520,6 +3532,7 @@
 <translation id="5739235828260127894">ಪರಿಶೀಲನೆಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ. <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">ಅತ್ಯಂತ ದೊಡ್ಡದು</translation>
 <translation id="574209121243317957">ಪಿಚ್</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" /> ಕುರಿತು ಸಲಹೆಗಳು, ಆಫರ್‌ಗಳು ಹಾಗೂ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಪಡೆಯಿರಿ ಮತ್ತು ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳಿ</translation>
 <translation id="5746169159649715125">PDF ನಂತೆ ಉಳಿಸಿ</translation>
 <translation id="5747552184818312860">ಅವಧಿ ಮೀರುವುದು</translation>
 <translation id="5747785204778348146">ಡೆವಲಪರ್ - ಅಸ್ಥಿರ</translation>
@@ -3932,7 +3945,6 @@
 <translation id="6291953229176937411">ಫೈಂಡರ್‌ನಲ್ಲಿ &amp;ತೋರಿಸಿ</translation>
 <translation id="6295158916970320988">ಎಲ್ಲಾ ಸೈಟ್‌ಗಳು</translation>
 <translation id="6295855836753816081">ಉಳಿಸಲಾಗುತ್ತಿದೆ...</translation>
-<translation id="629730747756840877">ಖಾತೆ</translation>
 <translation id="6298962879096096191">Android ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು Google Play ಬಳಸಿ</translation>
 <translation id="630065524203833229">ನಿರ್ಗ&amp;ಮನ</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಸುಧಾರಿತ ಪ್ರಿಂಟರ್ ವಿವರಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="LINK_END" /></translation>
@@ -4338,7 +4350,6 @@
 <translation id="6865598234501509159">ಪುಟವು <ph name="LANGUAGE" /> ಭಾಷೆಯಲ್ಲಿಲ್ಲ</translation>
 <translation id="6865708901122695652">WebRTC ಈವೆಂಟ್‌ ಲಾಗ್‌ಗಳು (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">ಬಣ್ಣ ತಾಪಮಾನ</translation>
-<translation id="6870888490422746447">ಇದಕ್ಕೆ ಹಂಚಲು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ:</translation>
 <translation id="6871644448911473373">OCSP ಪ್ರತಿಕ್ರಿಯೆ ನೀಡುಗ: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">ನೀವು ನಮೂದಿಸಿದ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಸರ್ವರ್‌ ನಿಂದ ತಿರಸ್ಕರಿಸಲಾಗಿದೆ.</translation>
 <translation id="6876155724392614295">ಬೈಕ್</translation>
@@ -4431,6 +4442,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - ಚಟುವಟಿಕೆ ಲಾಗ್</translation>
 <translation id="6997707937646349884">ನಿಮ್ಮ ಸಾಧನಗಳಲ್ಲಿ:</translation>
 <translation id="6998793565256476099">ವೀಡಿಯೊ ಸಂವಾದ ನಡೆಸಲು ಸಾಧನವನ್ನು ನೋಂದಾಯಿಸಿ</translation>
+<translation id="6999956497249459195">ಹೊಸ ಗುಂಪು</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> ಸಂಪರ್ಕ ಹೊಂದಿದೆ ಆದರೆ ಕಾನ್ಫಿಗರೇಶನ್ ಮಾಡಬೇಕಿದೆ</translation>
 <translation id="7000347579424117903">Ctrl, Alt, ಅಥವಾ ಹುಡುಕಾಟ ಸೇರಿಸಿ</translation>
 <translation id="7001036685275644873">Linux ಆ್ಯಪ್‌ಗಳು &amp; ಫೈಲ್‌ಗಳನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation>
@@ -4730,6 +4742,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923"><ph name="PHONE_NAME" /> ನಲ್ಲಿ ಸಂಪರ್ಕವನ್ನು ಹೊಂದಿಸಿ</translation>
 <translation id="7401778920660465883">ಈ ಸಂದೇಶವನ್ನು ವಜಾಗೊಳಿಸಿ</translation>
+<translation id="7403642243184989645">ಮಾಹಿತಿ ಮೂಲಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{1 ಗಂಟೆಯ ಹಿಂದೆ ಸುರಕ್ಷತೆಯ ಪರಿಶೀಲನೆ ನಡೆಸಲಾಗಿದೆ}one{{NUM_HOURS} ಗಂಟೆಗಳ ಹಿಂದೆ ಸುರಕ್ಷತೆಯ ಪರಿಶೀಲನೆ ನಡೆಸಲಾಗಿದೆ}other{{NUM_HOURS} ಗಂಟೆಗಳ ಹಿಂದೆ ಸುರಕ್ಷತೆಯ ಪರಿಶೀಲನೆ ನಡೆಸಲಾಗಿದೆ}}</translation>
 <translation id="740624631517654988">ಪಾಪ್-ಅಪ್  ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="7407430846095439694">ಆಮದು ಮಾಡಿ ಮತ್ತು ಬೈಂಡ್ ಮಾಡಿ</translation>
@@ -4966,6 +4979,7 @@
 <translation id="7716781361494605745">Netscape ಪ್ರಮಾಣೀಕರಣ ಪ್ರಾಧಿಕಾರ ನೀತಿಯ URL</translation>
 <translation id="7717014941119698257">ಡೌನ್‌ಲೋಡ್ ಆಗುತ್ತಿರುವ: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸು</translation>
+<translation id="7719070594859855691">ಕ್ಯಾಮರಾಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡಿ</translation>
 <translation id="7719367874908701697">ಪುಟ ಝೂಮ್</translation>
 <translation id="7721179060400456005">ಪ್ರದರ್ಶನಗಳಾದ್ಯಂತ ವ್ಯಾಪಿಸಲು ವಿಂಡೋಗಳಿಗೆ ಅನುಮತಿ ನೀಡಿ</translation>
 <translation id="7722040605881499779">ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಇಷ್ಟು ಅಗತ್ಯವಿದೆ: <ph name="NECESSARY_SPACE" /></translation>
@@ -4980,7 +4994,6 @@
 <translation id="7744047395460924128">ನಿಮ್ಮ ಮುದ್ರಣ ಇತಿಹಾಸವನ್ನು ನೋಡಿ</translation>
 <translation id="7744192722284567281">ಡೇಟಾ ಉಲ್ಲಂಘಿಸಿದವುಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ಕಂಡುಬಂದಿದೆ</translation>
 <translation id="7750228210027921155">ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ</translation>
-<translation id="7751229152614300329">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಅಪ್-ಟು-ಡೇಟ್ ಆಗಿದೆ ಮತ್ತು ಹಾನಿಕಾರಕ ಸೈಟ್‌ಗಳು ಹಾಗೂ ಡೌನ್‌ಲೋಡ್‌ಗಳ ವಿರುದ್ಧ ನಿಮಗೆ ರಕ್ಷಣೆ ನೀಡುತ್ತಿದೆ</translation>
 <translation id="7751260505918304024">ಎಲ್ಲ ತೋರಿಸು</translation>
 <translation id="7754704193130578113">ಡೌನ್‌ಲೋಡ್ ಮಾಡುವ ಮೊದಲು ಪ್ರತಿ ಫೈಲ್ ಅನ್ನು ಎಲ್ಲಿ ಉಳಿಸಬೇಕೆಂದು ಕೇಳು</translation>
 <translation id="7755287808199759310">ನಿಮ್ಮ ಪೋಷಕರು ನಿಮಗಾಗಿ ಅದನ್ನು ಅನಿರ್ಬಂಧಿಸಬಹುದಾಗಿದೆ</translation>
@@ -5067,6 +5080,7 @@
     <ph name="BEGIN_BOLD" />ಗಮನಿಸಿ:<ph name="END_BOLD" /> ಪ್ರಕ್ರಿಯೆಯು ನಡೆಯುವಾಗ ಸಿಸ್ಟಂ ರೀಬೂಟ್ ಆಗುತ್ತದೆ.</translation>
 <translation id="7828731929332799387">ಇದು ಮೂರನೇ-ವ್ಯಕ್ತಿ ಸಂದರ್ಭಗಳಲ್ಲಿ ಲಭ್ಯವಿರುವ ಎಲ್ಲಾ ಕುಕೀಗಳು ಮತ್ತು ಸೈಟ್ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ. ನೀವು ಮುಂದುವರಿಯಲು ಬಯಸುತ್ತೀರಾ?</translation>
 <translation id="7829298379596169484">ಆಡಿಯೊ ಇನ್‌ಪುಟ್ ಪ್ರವೇಶಿಸಲಾಗುತ್ತಿದೆ</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಕನೆಕ್ಷನ್ ಪರಿಶೀಲಿಸಿ ನೋಡಿ.</translation>
 <translation id="7829877209233347340">ಶಾಲಾ ಖಾತೆಯನ್ನು ಸೇರಿಸುವುದಕ್ಕೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಅನುಮತಿ ನೀಡುವುದಕ್ಕೆ ಪೋಷಕರಿಗೆ ಹೇಳಿ</translation>
 <translation id="7830594666202422257">Linux ಗೆ ಸಂಪರ್ಕಿಸಿ</translation>
 <translation id="7831491651892296503">ನೆಟ್‌ವರ್ಕ್‌ ಕಾನ್ಫಿಗರ್‌ ಮಾಡುವಲ್ಲಿ ದೋಷ</translation>
@@ -5286,6 +5300,7 @@
 <translation id="8107015733319732394">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನಲ್ಲಿ Google Play ಸ್ಟೋರ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ. ಇದು ಕೆಲವು ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{ಯಾವುದೇ ಥರ್ಡ್ ಪಾರ್ಟಿ ಕುಕೀಗಳಿಲ್ಲ}=1{1 ಥರ್ಡ್ ಪಾರ್ಟಿ ಕುಕೀಯನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ}one{# ಥರ್ಡ್ ಪಾರ್ಟಿ ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ}other{# ಥರ್ಡ್ ಪಾರ್ಟಿ ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ}}</translation>
 <translation id="810875025413331850">ಯಾವುದೇ ಹತ್ತಿರದ ಸಾಧನಗಳು ಕಂಡುಬಂದಿಲ್ಲ.</translation>
+<translation id="8114199541033039755">ಟ್ಯಾಬ್ಲೆಟ್ ಮೋಡ್‌ನಲ್ಲಿ, ಹೋಮ್‌ಗೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು, ಹಿಂತಿರುಗಲು ಮತ್ತು ಆ್ಯಪ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಬಟನ್‌ಗಳನ್ನು ಬಳಸಿ. ChromeVox ಅಥವಾ ಸ್ವಯಂ ಕ್ಲಿಕ್‌ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ ಆನ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation>
 <translation id="8114875720387900039">ಅಡ್ಡಲಾಗಿ ವಿಭಜಿಸಿ</translation>
 <translation id="8116972784401310538">&amp;ಬುಕ್‌ಮಾರ್ಕ್‌ ವ್ಯವಸ್ಥಾಪಕ</translation>
 <translation id="8117620576188476503">ಸ್ಥಿತಿ ಟ್ರೇ ಮೂಲಕ ಸಂಪರ್ಕಗಳು, ಅಪ್‌ಡೇಟ್‌ಗಳು ಮತ್ತು ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ. ಕೀಬೋರ್ಡ್‌ಗಳಿಂದ ಇಲ್ಲಿ ಪಡೆಯಲು, Alt + Shift + S ಕೀಗಳನ್ನು ಒತ್ತಿರಿ.</translation>
@@ -5405,6 +5420,7 @@
 <translation id="8263744495942430914">ನಿಮ್ಮ ಮೌಸ್ ಕರ್ಸರ್ ಅನ್ನು <ph name="FULLSCREEN_ORIGIN" /> ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದೆ.</translation>
 <translation id="8264024885325823677">ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿರ್ವಹಿಸುತ್ತಾರೆ.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ಪೂರ್ಣ ಪರದೆಯನ್ನು ಟ್ರಿಗ್ಗರ್ ಮಾಡಿದೆ.</translation>
+<translation id="826511437356419340">ವಿಂಡೋ ಅವಲೋಕನ ಮೋಡ್ ಅನ್ನು ನಮೂದಿಸಲಾಗಿದೆ. ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಸ್ವೈಪ್ ಮಾಡಿ ಅಥವಾ ಕೀಬೋರ್ಡ್ ಬಳಸುತ್ತಿದ್ದರೆ, ಟ್ಯಾಬ್ ಒತ್ತಿರಿ.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />ಇದು ನಿಮ್ಮ ಸಾಧನ ಮತ್ತು ನೀವು ಅದನ್ನು ಹೇಗೆ ಬಳಸುತ್ತೀರಿ (ಅಂದರೆ ಬ್ಯಾಟರಿ ಮಟ್ಟ, ಸಿಸ್ಟಮ್ ಮತ್ತು ಆ್ಯಪ್ ಚಟುವಟಿಕೆ ಮತ್ತು ದೋಷಗಳು) ಎಂಬುದನ್ನು ಕುರಿತ ಸಾಮಾನ್ಯ ಮಾಹಿತಿಯಾಗಿರುತ್ತದೆ. Android ಅನ್ನು ಸುಧಾರಿಸಲು ಡೇಟಾವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಹಾಗೂ ಕೆಲವು ಕ್ರೋಢೀಕೃತ ಮಾಹಿತಿಯು Google ಆ್ಯಪ್‌ಗಳಿಗೆ ಮತ್ತು Android ಡೆವಲಪರ್‌ಗಳಂತಹ ಪಾಲುದಾರರಿಗೆ ಕೂಡ, ತಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಉತ್ಪನ್ನಗಳನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಆಫ್ ಮಾಡುವುದರಿಂದ ಸಿಸ್ಟಂ ಅಪ್‌ಡೇಟ್‌ಗಳು ಮತ್ತು ಸುರಕ್ಷತೆಯಂತಹ ಅಗತ್ಯ ಸೇವೆಗಳಿಗೆ ಬೇಕಾದ ಮಾಹಿತಿಯನ್ನು ನಿಮ್ಮ ಸಾಧನವು ಕಳುಹಿಸುವಾಗ ಅದರ ಸಾಮರ್ಥ್ಯದ ಮೇಲೆ ಪರಿಣಾಮ ಉಂಟಾಗುವುದಿಲ್ಲ.<ph name="END_PARAGRAPH2" />
    <ph name="BEGIN_PARAGRAPH3" />ಸೆಟ್ಟಿಂಗ್‌ಗಳು &gt; ಸುಧಾರಿತ &gt; Google ಗೆ ಡಯಾಗ್ನಸ್ಟಿಕ್ ಮತ್ತು ಬಳಕೆಯ ಡೇಟಾವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸಿಗೆ ಹೋಗಿ ಮಾಲೀಕರು ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ನಿಯಂತ್ರಿಸಬಹುದು.<ph name="END_PARAGRAPH3" />
@@ -5513,6 +5529,7 @@
 <translation id="8426713856918551002">ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="8427292751741042100">ಯಾವುದೇ ಹೋಸ್ಟ್‌ನಲ್ಲಿ ಎಂಬೆಡ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="8428213095426709021">ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
+<translation id="8428271547607112339">ಶಾಲೆಯ ಖಾತೆಯನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="8428628598981198790">ನಿಮ್ಮ ಭದ್ರತೆ ಕೀ ಅನ್ನು ಈ ಸೈಟ್ ಜೊತೆಗೆ ಬಳಸಲಾಗುವುದಿಲ್ಲ</translation>
 <translation id="84297032718407999">ಇಷ್ಟು ಸಮಯ ಆದ ಮೇಲೆ ನಿಮ್ಮನ್ನು ಸೈನ್ ಔಟ್ ಮಾಡಲಾಗುತ್ತದೆ: <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">ಟ್ಯಾಪ್‌ ಪಾಯಿಂಟ್‌‌ಗಳನ್ನು ತೋರಿಸಿ</translation>
@@ -5578,6 +5595,7 @@
 <translation id="851263357009351303">ಚಿತ್ರಗಳನ್ನು ತೋರಿಸಲು <ph name="HOST" /> ಅನ್ನು ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ</translation>
 <translation id="8513108775083588393">ಸ್ವಯಂ-ತಿರುಗುವಿಕೆ</translation>
 <translation id="8514746246728959655">ಬೇರೊಂದು ಭದ್ರತೆ ಕೀಯನ್ನು ಬಳಸಿ ನೋಡಿ</translation>
+<translation id="851960115758509829">ನಿಮ್ಮ Google ಖಾತೆಯೊಂದಿಗೆ ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿದ ಎಲ್ಲಾ Chrome OS ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಆ್ಯಪ್‌ಗಳು, ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಮತ್ತು ಇತರೆ ಕಸ್ಟಮೈಸ್ ಮಾಡುವಿಕೆಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation>
 <translation id="8521475323816527629">ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ವೇಗವಾಗಿ ಪಡೆದುಕೊಳ್ಳಿ</translation>
 <translation id="8523493869875972733">ಬದಲಾವಣೆಗಳನ್ನು ಇರಿಸು</translation>
 <translation id="8523849605371521713">ಕಾರ್ಯನೀತಿಯಿಂದ ಸೇರಿಸಲಾಗಿದೆ</translation>
@@ -5859,11 +5877,13 @@
 <translation id="885701979325669005">ಸಂಗ್ರಹಣೆ</translation>
 <translation id="8859057652521303089">ನಿಮ್ಮ ಭಾಷೆ ಆಯ್ಕೆ ಮಾಡಿ:</translation>
 <translation id="8859174528519900719">ಉಪಫ್ರೇಮ್‌: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">ಪೋಷಕರ ಖಾತೆ</translation>
 <translation id="8862003515646449717">ವೇಗವಾದ ಬ್ರೌಸರ್‌ಗೆ ಬದಲಿಸಿ</translation>
 <translation id="8863753581171631212">ಹೊಸ <ph name="APP" /> ನಲ್ಲಿ ಲಿಂಕ್‌ ಅನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> ಅನ್ನು <ph name="APP_NAME" /> ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ</translation>
 <translation id="8864458770072227512">ಈ ಸಾಧನದಿಂದ <ph name="EMAIL" /> ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ</translation>
 <translation id="8867228703146808825">ಬಿಲ್ಡ್ ವಿವರಗಳನ್ನು ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿ</translation>
+<translation id="8868333925931032127">ಡೆಮೋ ಮೋಡ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="8868626022555786497">ಬಳಕೆಯಲ್ಲಿದೆ</translation>
 <translation id="8870413625673593573">ಇತ್ತೀಚೆಗೆ ಮುಚ್ಚಿರುವುದು</translation>
 <translation id="8871551568777368300">ನಿರ್ವಾಹಕರಿಂದ ಪಿನ್ ಮಾಡಲಾಗಿದೆ</translation>
@@ -5942,6 +5962,7 @@
 <translation id="8966870118594285808">ನೀವು ಆಕಸ್ಮಿಕವಾಗಿ ಒಂದು ಟ್ಯಾಬ್ ಅನ್ನು ಮುಚ್ಚಿದ್ದರೆ ಅದನ್ನು ಪುನಃ ತೆರೆಯಿರಿ</translation>
 <translation id="8967866634928501045">ತೋರಿಸಲು Alt Shift A ಒತ್ತಿರಿ</translation>
 <translation id="8968766641738584599">ಕಾರ್ಡ್‌ ಉಳಿಸಿ</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. 24 ಗಂಟೆಗಳ ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ <ph name="BEGIN_LINK" />ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿರುವ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">ಎಸ್ಕೇಪ್</translation>
 <translation id="8972513834460200407">Google ಸರ್ವರ್‌ಗಳಿಂದ ಮಾಡಲಾಗುವ ಡೌನ್‌ಲೋಡ್‌ಗಳನ್ನು ಫೈರ್‌‌ವಾಲ್‌ ನಿರ್ಬಂಧಿಸುತ್ತಿಲ್ಲ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ದಯವಿಟ್ಟು ನೀವು ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ನಿರ್ವಾಹಕರೊಂದಿಗೆ ಚರ್ಚಿಸಿ.</translation>
 <translation id="8973557916016709913">ಝೂಮ್‌ ಮಟ್ಟವನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 5f8ae28..38232f7 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">사용 가능한 기기</translation>
 <translation id="1042174272890264476">또한 컴퓨터에는 <ph name="SHORT_PRODUCT_NAME" /> RLZ 라이브러리가 내장되어 있습니다. RLZ는 고유하지 않고 개인 식별이 불가능한 태그를 할당하여 특정 홍보 캠페인을 통한 검색 및 <ph name="SHORT_PRODUCT_NAME" /> 사용 실태를 측정합니다. 이러한 라벨은 <ph name="PRODUCT_NAME" />의 Google 검색어에 표시되기도 합니다.</translation>
 <translation id="1043818413152647937">아래 앱의 데이터도 삭제하시겠습니까?</translation>
+<translation id="1045448422538531528">그룹에 추가</translation>
 <translation id="1046635659603195359">다른 기기의 Google 어시스턴트에서 이미 Voice Match를 설정한 것 같습니다. 이전에 녹음된 음성을 사용하여 이 기기에서 음성 모델을 만들 수 있습니다. 이 작업은 최대 1분 정도 걸립니다.</translation>
 <translation id="104710386808485638">Linux를 다시 시작하시겠습니까?</translation>
 <translation id="1047431265488717055">링크 텍스트 복사(&amp;X)</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">카메라 액세스 항상 차단</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" />에서 Chrome 설정을 기본값으로 복원하려 합니다. 홈페이지, 새 탭 페이지, 검색엔진이 초기화되고, 확장 프로그램이 사용 중지되며, 모든 탭이 고정 해제됩니다. 쿠키, 콘텐츠 데이터, 사이트 데이터 등 기타 임시 데이터와 캐시된 데이터도 삭제됩니다.</translation>
+<translation id="1084096383128641877">비밀번호를 삭제해도 <ph name="DOMAIN" /> 계정이 삭제되지 않습니다. 비밀번호를 변경하거나 <ph name="DOMAIN_LINK" /> 계정을 삭제하여 안전하게 보호하세요.</translation>
 <translation id="1084824384139382525">링크 주소 복사(&amp;E)</translation>
 <translation id="1085697365578766383">가상 머신을 시작하는 동안 문제가 발생했습니다. 다시 시도해 주세요.</translation>
 <translation id="1090126737595388931">실행 중인 백그라운드 앱 없음</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">안전 확인이 어제 실행됨</translation>
 <translation id="1260451001046713751"><ph name="HOST" />에서 팝업 및 리디렉션을 항상 허용</translation>
 <translation id="126156426083987769">데모 모드 기기 라이선스에 문제가 발생했습니다.</translation>
+<translation id="1263490604593716556"><ph name="FIRST_PARENT_EMAIL" /> 및 <ph name="SECOND_PARENT_EMAIL" />님이 관리하는 계정입니다. 기기의 기본 계정에서 로그아웃하려면 화면에 표시된 시간을 클릭하세요. 이때 표시되는 메뉴에서 '로그아웃'을 클릭합니다.</translation>
 <translation id="126710816202626562">번역 언어:</translation>
 <translation id="126768002343224824">16배</translation>
 <translation id="1272079795634619415">중지</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">웹사이트</translation>
 <translation id="15662109988763471">선택한 프린터가 사용 불가능하거나 올바르게 설치되어 있지 않습니다. 프린터를 확인하거나 다른 프린터를 선택해 보세요.</translation>
 <translation id="1567387640189251553">마지막으로 비밀번호를 입력한 후 다른 키보드가 연결되었습니다. 키 입력 내용을 도용하려는 시도일 수 있습니다.</translation>
-<translation id="1567750922576943685">신원을 인증하면 개인정보를 보호하는 데 도움이 됩니다.</translation>
 <translation id="1567993339577891801">자바스크립트 콘솔</translation>
 <translation id="1568323446248056064">디스플레이 기기 설정 열기</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" />(게스트)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">예술</translation>
 <translation id="1697686431566694143">파일 수정</translation>
 <translation id="1698122934742150150">현재 시크릿 세션에만</translation>
-<translation id="1698650002254827833">앱 목록을 로드할 수 없습니다. 다시 시도해 주세요.</translation>
 <translation id="1700079447639026019">쿠키를 사용할 수 없는 사이트</translation>
 <translation id="1701062906490865540">이 사용자 삭제</translation>
 <translation id="1703331064825191675">비밀번호 안심 관리</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">계속</translation>
 <translation id="2173302385160625112">인터넷 연결 상태를 확인하세요.</translation>
 <translation id="2173801458090845390">이 기기에 요청 ID 추가</translation>
+<translation id="2174948148799307353"><ph name="PARENT_EMAIL" />님이 관리하는 계정입니다. 기기의 기본 계정에서 로그아웃하려면 화면에 표시된 시간을 클릭하세요. 이때 표시되는 메뉴에서 '로그아웃'을 클릭합니다.</translation>
 <translation id="2175607476662778685">빠른 실행 표시줄</translation>
 <translation id="217576141146192373">프린터를 추가할 수 없습니다. 프린터 설정을 확인하고 다시 시도해 보세요.</translation>
 <translation id="2177950615300672361">시크릿 탭: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">텍스트 음영</translation>
 <translation id="2445081178310039857">확장 프로그램 루트 디렉터리가 필요합니다.</translation>
 <translation id="2445484935443597917">새 프로필 만들기</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" />에서 귀하의 신원을 확인하려고 합니다</translation>
 <translation id="2448312741937722512">유형</translation>
 <translation id="2450223707519584812">Google API 키가 누락되었으므로 사용자를 추가할 수 없습니다. 자세한 내용은 <ph name="DETAILS_URL" /> 페이지를 참조하세요.</translation>
 <translation id="2450849356604136918">활성화된 뷰 없음</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" />(으)로 이동</translation>
 <translation id="29488703364906173">최신 웹에 맞게 구축된 빠르고 단순하며 안전한 웹 브라우저입니다.</translation>
 <translation id="2949289451367477459">위치를 사용합니다. 위치 정보 액세스 권한이 있는 앱 및 서비스가 이 기기의 위치를 사용하도록 허용합니다. Google에서는 위치 정확도와 위치 기반 서비스를 개선하기 위해 위치 데이터를 주기적으로 수집하여 익명으로 사용할 수 있습니다. <ph name="BEGIN_LINK1" />자세히 알아보기<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">가입</translation>
 <translation id="2956070239128776395">그룹에 섹션이 중첩됨: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">사이트에서 기기의 파일 또는 폴더를 수정하는 것을 허용하지 않음</translation>
 <translation id="2958721676848865875">확장 프로그램 패키지 경고</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">기본 노란색 아바타</translation>
 <translation id="3141318088920353606">듣는 중...</translation>
 <translation id="3141917231319778873">기기(<ph name="DEVICE_NAME" />)에서 지원하지 않는 요청입니다.</translation>
+<translation id="3142562627629111859">새 그룹</translation>
 <translation id="3143515551205905069">동기화 취소</translation>
 <translation id="3143754809889689516">처음부터 재생</translation>
 <translation id="3144647712221361880">다음으로 링크 열기</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">베이지</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />](하드웨어에 백업됨)</translation>
 <translation id="3161522574479303604">모든 언어</translation>
+<translation id="3162853326462195145">학교 계정</translation>
 <translation id="3162899666601560689">사이트에서 사용자의 로그인 상태를 유지하거나 장바구니에 담긴 상품을 기억하는 등 탐색 환경을 개선하기 위해 쿠키를 사용할 수 있습니다.</translation>
 <translation id="3163201441334626963">공급업체 <ph name="VENDOR_ID" />의 알 수 없는 제품 <ph name="PRODUCT_ID" /></translation>
 <translation id="3164329792803560526">이 탭을 <ph name="APP_NAME" /> 앱과 공유하는 중</translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{1일 내 기기 업데이트}other{#일 내 기기 업데이트}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - 네트워크 오류</translation>
 <translation id="3248902735035392926">안전은 그 무엇보다도 중요합니다. 잠시 시간을 내어 <ph name="BEGIN_LINK" />확장 프로그램을 검토<ph name="END_LINK" />해 보세요.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" />(<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;인증서에 속하지 않음&gt;</translation>
 <translation id="3253225298092156258">사용할 수 없음</translation>
 <translation id="3253448572569133955">알 수 없는 계정</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">'동의 및 계속' 버튼을 클릭하면 이러한 Google 서비스와 관련하여 위에 설명된 처리 방식에 동의하는 것으로 간주됩니다.</translation>
 <translation id="3399432415385675819">알림이 사용 중지됩니다.</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" />x<ph name="HEIGHT" />(<ph name="REFRESH_RATE" />Hz) - 인터레이스</translation>
+<translation id="3402585168444815892">데모 모드에 등록</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">이 사이트의 비밀번호가 저장되지 않음</translation>
 <translation id="3405664148539009465">글꼴 맞춤설정</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android 휴대전화</translation>
 <translation id="3470442499439619530">이 사용자 삭제</translation>
 <translation id="3471876058939596279">HDMI 및 USB 타입-C 포트를 동시에 비디오용으로 사용할 수 없습니다. 다른 비디오 포트를 사용하세요.</translation>
+<translation id="3473241910002674503">태블릿 모드에서 버튼을 사용하여 홈으로 이동하고 뒤로 가거나 앱 간에 전환합니다.</translation>
 <translation id="3473479545200714844">화면 돋보기</translation>
 <translation id="3475843873335999118">죄송합니다. 지문이 인식되지 않았습니다. 비밀번호를 입력하세요.</translation>
 <translation id="3476303763173086583">사용 및 진단 데이터를 보냅니다. 진단, 기기, 앱 사용 데이터를 Google에 자동으로 보내 자녀의 Android 사용 환경 개선에 참여합니다. 이 데이터는 자녀를 식별하는 용도로 사용되지 않으며, 시스템 및 앱 안정성 등을 개선하는 데 활용됩니다. 일부 수집 데이터는 Google 앱과 파트너(Android 개발자 등)에게도 도움을 줍니다. 이 <ph name="BEGIN_LINK1" />설정<ph name="END_LINK1" />은 소유자가 지정합니다. 소유자가 이 기기의 진단 및 사용 데이터를 Google에 전송할지 선택할 수 있습니다. 자녀의 추가 웹 및 앱 활동이 사용 설정되어 있다면 이 데이터가 자녀의 Google 계정에 저장될 수 있습니다. <ph name="BEGIN_LINK2" />자세히 알아보기<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">보안 키의 지문</translation>
 <translation id="3973660817924297510">비밀번호 확인 중(<ph name="CHECKED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">영역 서버에 연락을 취하지 못했습니다.</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" />에서 비밀번호를 확인할 수 없습니다. 나중에 다시 시도해 보세요.</translation>
 <translation id="3976108569178263973">사용 가능한 프린터가 없습니다.</translation>
 <translation id="397703832102027365">완료 중...</translation>
 <translation id="3977886311744775419">이러한 네트워크 유형에서는 자동 업데이트가 다운로드되지 않지만 수동으로 업데이트를 확인할 수 있습니다.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">이 페이지에는 사용자 위치를 추적하는 다음 사이트의 요소가 포함되어 있습니다.</translation>
 <translation id="4068776064906523561">저장된 지문</translation>
 <translation id="407173827865827707">클릭 시</translation>
+<translation id="4073520450811433493">설정 동기화</translation>
 <translation id="4074900173531346617">이메일 서명자 인증서</translation>
 <translation id="407520071244661467">배율</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" />을(를) 전송할 수 없습니다.</translation>
@@ -2572,6 +2579,7 @@
 <translation id="4421932782753506458">복실이</translation>
 <translation id="4423376891418188461">설정 복원</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />님, 관리자가 비밀번호 변경을 요청했습니다.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" />에서 비밀번호를 확인할 수 없습니다. 24시간 후 다시 시도해 보세요.</translation>
 <translation id="4429030830601238961">이 데이터는 조직의 보안 정책을 위반하므로 붙여넣을 수 없습니다.</translation>
 <translation id="4430019312045809116">볼륨</translation>
 <translation id="4430369329743628066">북마크 추가됨</translation>
@@ -2584,6 +2592,7 @@
 <translation id="4441124369922430666">컴퓨터를 켤 때 이 앱을 자동으로 시작하시겠습니까?</translation>
 <translation id="4441147046941420429">계속하려면 기기에서 보안 키를 제거한 후 다시 삽입하고 터치하세요.</translation>
 <translation id="444134486829715816">펼치기...</translation>
+<translation id="4442329324652245220">Google 계정으로 로그인하면 <ph name="IDS_SHORT_PRODUCT_NAME" />에서 비밀번호를 확인할 수 있습니다.</translation>
 <translation id="4442424173763614572">DNS 조회 실패</translation>
 <translation id="4443536555189480885">도움말(&amp;H)</translation>
 <translation id="4444304522807523469">USB나 로컬 네트워크에 포함된 문서 스캐너에 액세스</translation>
@@ -2610,11 +2619,13 @@
 <translation id="4476659815936224889">스마트폰의 QR 스캐너 앱 또는 일부 카메라 앱을 사용하여 이 코드를 스캔할 수 있습니다.</translation>
 <translation id="4477015793815781985">Ctrl, Alt 또는 ⌘ 키를 포함하세요</translation>
 <translation id="4478664379124702289">다른 이름으로 링크 저장(&amp;K)...</translation>
+<translation id="4478777936860197922">저장된 비밀번호가 없습니다. 비밀번호를 저장하면 <ph name="IDS_SHORT_PRODUCT_NAME" />에서 확인할 수 있습니다.</translation>
 <translation id="4479424953165245642">키오스크 애플리케이션 관리</translation>
 <translation id="4479639480957787382">이더넷</translation>
 <translation id="4479877282574735775">가상 머신을 구성하고 있습니다. 몇 분 정도 소요될 수 있습니다.</translation>
 <translation id="4480590691557335796">Chrome이 컴퓨터에서 유해한 소프트웨어를 찾아 삭제할 수 있습니다.</translation>
 <translation id="4481530544597605423">페어링 해제된 기기</translation>
+<translation id="4488107067273194838">설정 후 브라우저 동기화 옵션 검토</translation>
 <translation id="4488502501195719518">모든 데이터를 삭제하시겠습니까?</translation>
 <translation id="4495419450179050807">이 페이지에 표시하지 않음</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> 권한이 자동으로 차단됨</translation>
@@ -2856,6 +2867,7 @@
 <translation id="4849517651082200438">설치 안함</translation>
 <translation id="4850669014075537160">스크롤</translation>
 <translation id="4850886885716139402">보기</translation>
+<translation id="485197095346966382">유출된 비밀번호로 로그인하면 <ph name="IDS_SHORT_PRODUCT_NAME" />에서 알림을 표시합니다.</translation>
 <translation id="4853020600495124913">새 창에서 열기(&amp;N)</translation>
 <translation id="4854317507773910281">승인을 요청할 부모 계정 선택</translation>
 <translation id="485480310608090163">추가 설정 및 권한</translation>
@@ -2874,6 +2886,7 @@
 <translation id="4871322859485617074">PIN에 잘못된 문자가 포함되었습니다.</translation>
 <translation id="4871370605780490696">북마크 추가</translation>
 <translation id="4871719318659334896">그룹 닫기</translation>
+<translation id="4871852311166078968">그룹에 추가</translation>
 <translation id="4873312501243535625">미디어 파일 검사기</translation>
 <translation id="4876273079589074638">Google 엔지니어가 이 비정상 종료를 조사하고 해결할 수 있도록 도와주세요. 가능한 경우 단계를 정확히 나열해 주세요. 자세히 설명해 주시면 큰 도움이 됩니다.</translation>
 <translation id="4876895919560854374">화면 잠금 및 잠금 해제</translation>
@@ -2965,7 +2978,6 @@
 <translation id="4992473555164495036">관리자가 사용 가능한 입력 방법을 제한했습니다.</translation>
 <translation id="4994474651455208930">사이트에서 프로토콜 기본 핸들러로 사용할지 여부를 묻도록 허용</translation>
 <translation id="4994754230098574403">설정 중입니다.</translation>
-<translation id="4996978546172906250">공유 방법</translation>
 <translation id="4997086284911172121">인터넷에 연결되지 않았습니다.</translation>
 <translation id="4997384734315285248">Plugin VM 제거</translation>
 <translation id="4998430619171209993">사용</translation>
@@ -3065,7 +3077,6 @@
 <translation id="5135085122826131075">"Ok Google"이라고 말하여 어시스턴트에 액세스합니다.</translation>
 <translation id="5135533361271311778">북마크 항목을 만들지 못했습니다.</translation>
 <translation id="5137501176474113045">이 항목 삭제</translation>
-<translation id="5138982052046316113">Linux 디스크 크기 조정</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> 검색</translation>
 <translation id="5139823398361067371">보안 키의 PIN을 입력하세요. PIN을 모른다면 보안 키를 재설정해야 합니다.</translation>
 <translation id="5139955368427980650">열기(&amp;O)</translation>
@@ -3517,6 +3528,7 @@
 <translation id="5739235828260127894">확인을 기다리는 중입니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">아주 크게</translation>
 <translation id="574209121243317957">높낮이</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" />에 관한 도움말. 혜택 및 소식을 받아 보고 의견을 공유하세요.</translation>
 <translation id="5746169159649715125">PDF로 저장</translation>
 <translation id="5747552184818312860">만료</translation>
 <translation id="5747785204778348146">개발자 - 불안정</translation>
@@ -3929,7 +3941,6 @@
 <translation id="6291953229176937411">Finder에서 보기(&amp;S)</translation>
 <translation id="6295158916970320988">모든 사이트</translation>
 <translation id="6295855836753816081">저장 중...</translation>
-<translation id="629730747756840877">계정</translation>
 <translation id="6298962879096096191">Google Play를 사용하여 Android 앱을 설치합니다.</translation>
 <translation id="630065524203833229">종료(&amp;X)</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" />을(를) 자동으로 설정할 수 없습니다. 고급 프린터 세부정보를 지정해 주세요. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
@@ -4335,7 +4346,6 @@
 <translation id="6865598234501509159">페이지 언어가 <ph name="LANGUAGE" />가 아님</translation>
 <translation id="6865708901122695652">WebRTC 이벤트 로그(<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">색상 온도</translation>
-<translation id="6870888490422746447">공유할 앱 선택:</translation>
 <translation id="6871644448911473373">OCSP 응답자: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">입력한 비밀번호가 서버에 의해 거부되었습니다.</translation>
 <translation id="6876155724392614295">자전거</translation>
@@ -4428,6 +4438,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - 활동 로그</translation>
 <translation id="6997707937646349884">기기에서 다음과 같이 설정하세요.</translation>
 <translation id="6998793565256476099">화상회의용 기기 등록</translation>
+<translation id="6999956497249459195">새 그룹</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" />이(가) 연결되어 있으나 구성이 필요함</translation>
 <translation id="7000347579424117903">Ctrl, Alt, 검색 키가 포함되어야 합니다</translation>
 <translation id="7001036685275644873">Linux 앱 및 파일 백업 중</translation>
@@ -4726,6 +4737,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923"><ph name="PHONE_NAME" />에서 연결 설정</translation>
 <translation id="7401778920660465883">닫기</translation>
+<translation id="7403642243184989645">리소스 다운로드 중</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{안전 확인이 1시간 전에 실행됨}other{안전 확인이 {NUM_HOURS}시간 전에 실행됨}}</translation>
 <translation id="740624631517654988">팝업 차단됨</translation>
 <translation id="7407430846095439694">가져오기 및 연결</translation>
@@ -4962,6 +4974,7 @@
 <translation id="7716781361494605745">Netscape 인증 기관 정책 URL</translation>
 <translation id="7717014941119698257">다운로드: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">업데이트 확인</translation>
+<translation id="7719070594859855691">카메라 액세스 권한 부여</translation>
 <translation id="7719367874908701697">페이지 확대/축소</translation>
 <translation id="7721179060400456005">창으로 디스플레이 채우기 허용</translation>
 <translation id="7722040605881499779">업데이트에 필요한 저장용량: <ph name="NECESSARY_SPACE" /></translation>
@@ -4976,7 +4989,6 @@
 <translation id="7744047395460924128">인쇄 기록 보기</translation>
 <translation id="7744192722284567281">정보 유출에 포함됨</translation>
 <translation id="7750228210027921155">PIP 모드</translation>
-<translation id="7751229152614300329">세이프 브라우징이 최신 상태이며 유해한 사이트와 다운로드를 차단하고 있습니다.</translation>
 <translation id="7751260505918304024">모두 표시</translation>
 <translation id="7754704193130578113">다운로드 전에 각 파일의 저장 위치 확인</translation>
 <translation id="7755287808199759310">부모님이 차단 해제할 수 있습니다.</translation>
@@ -5064,6 +5076,7 @@
     <ph name="BEGIN_BOLD" />참고:<ph name="END_BOLD" /> 시스템이 절차 진행 중에 재부팅됩니다.</translation>
 <translation id="7828731929332799387">타사와 관련하여 제공되는 모든 쿠키 및 사이트 데이터가 삭제됩니다. 계속하시겠습니까?</translation>
 <translation id="7829298379596169484">오디오 입력 장치에 액세스 중</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" />에서 비밀번호를 확인할 수 없습니다. 인터넷 연결 상태를 확인하세요.</translation>
 <translation id="7829877209233347340">부모님에게 로그인하여 학교 계정을 추가할 권한을 부여해 달라고 요청하세요.</translation>
 <translation id="7830594666202422257">Linux에 연결</translation>
 <translation id="7831491651892296503">네트워크를 설정하는 중에 오류가 발생했습니다</translation>
@@ -5286,6 +5299,7 @@
 <translation id="8107015733319732394"><ph name="DEVICE_TYPE" />에 Google Play 스토어를 설치합니다. 설치하는 데 몇 분 정도 걸릴 수 있습니다.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{타사 쿠키 없음}=1{타사 쿠키 1개가 차단됨}other{타사 쿠키 #개가 차단됨}}</translation>
 <translation id="810875025413331850">주변 기기를 찾을 수 없습니다.</translation>
+<translation id="8114199541033039755">태블릿 모드에서 버튼을 사용하여 홈으로 이동하고 뒤로 가거나 앱 간에 전환합니다. ChromeVox 또는 자동 클릭을 사용 중일 때 켜집니다.</translation>
 <translation id="8114875720387900039">수평 분할</translation>
 <translation id="8116972784401310538">북마크 관리자(&amp;B)</translation>
 <translation id="8117620576188476503">상태 표시줄에서 연결, 업데이트, 설정을 관리하세요. 키보드를 사용하여 이동하려면 Alt + Shift + S를 누르면 됩니다.</translation>
@@ -5405,6 +5419,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" />에서 마우스 커서를 사용 중지했습니다.</translation>
 <translation id="8264024885325823677">관리자가 관리하는 설정입니다.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" />에서 전체 화면을 실행합니다.</translation>
+<translation id="826511437356419340">창 개요 모드를 시작했습니다. 스와이프하여 이동하거나 키보드를 사용하는 경우 Tab 키를 누르세요.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />기기 및 기기 사용 방식(예: 배터리 잔량, 시스템 및 앱 활동, 오류)에 관한 일반 정보입니다. 이 데이터는 Android를 개선하는 데 사용되며, 집계된 일부 정보는 Android 개발자 등의 Google 앱 및 파트너가 앱과 제품을 개선하는 데도 사용됩니다.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />이 기능을 사용 중지해도 기기에서 시스템 업데이트 및 보안과 같은 필수 서비스에 필요한 정보를 전송하는 데는 영향을 미치지 않습니다.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />소유자는 설정 &gt; 고급 &gt; 진단 및 사용 데이터를 Google에 자동 전송에서 이 기능을 제어할 수 있습니다.<ph name="END_PARAGRAPH3" />
@@ -5513,6 +5528,7 @@
 <translation id="8426713856918551002">사용 설정 중</translation>
 <translation id="8427292751741042100">모든 호스트에 삽입됨</translation>
 <translation id="8428213095426709021">설정</translation>
+<translation id="8428271547607112339">학교 계정 추가</translation>
 <translation id="8428628598981198790">이 사이트에서 보안 키를 사용할 수 없습니다</translation>
 <translation id="84297032718407999"><ph name="LOGOUT_TIME_LEFT" /> 후 로그아웃됩니다</translation>
 <translation id="8431190899827883166">탭한 항목 표시</translation>
@@ -5576,6 +5592,7 @@
 <translation id="851263357009351303"><ph name="HOST" />에서 이미지 표시 항상 허용</translation>
 <translation id="8513108775083588393">자동 회전</translation>
 <translation id="8514746246728959655">다른 보안 키를 사용해 보세요</translation>
+<translation id="851960115758509829">앱, 설정 및 기타 맞춤설정이 내 Google 계정으로 로그인된 모든 Chrome OS 기기에서 동기화됩니다.</translation>
 <translation id="8521475323816527629">앱으로 빠르게 이동</translation>
 <translation id="8523493869875972733">변경사항 유지</translation>
 <translation id="8523849605371521713">정책에 의해 추가</translation>
@@ -5857,11 +5874,13 @@
 <translation id="885701979325669005">저장소</translation>
 <translation id="8859057652521303089">언어 선택:</translation>
 <translation id="8859174528519900719">서브프레임: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">부모 계정</translation>
 <translation id="8862003515646449717">빠른 브라우저로 전환</translation>
 <translation id="8863753581171631212">새 <ph name="APP" />에서 링크 열기</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> 탭을 <ph name="APP_NAME" /> 앱과 공유하는 중</translation>
 <translation id="8864458770072227512">기기에서 <ph name="EMAIL" />이(가) 삭제되었습니다.</translation>
 <translation id="8867228703146808825">빌드 세부정보를 클립보드에 복사</translation>
+<translation id="8868333925931032127">데모 모드 시작</translation>
 <translation id="8868626022555786497">사용 중</translation>
 <translation id="8870413625673593573">최근에 닫은 탭</translation>
 <translation id="8871551568777368300">관리자가 고정함</translation>
@@ -5940,6 +5959,7 @@
 <translation id="8966870118594285808">실수로 탭을 닫은 경우 탭 다시 열기</translation>
 <translation id="8967866634928501045">표시하려면 Alt Shift A를 누르세요</translation>
 <translation id="8968766641738584599">카드 저장</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" />에서 비밀번호를 확인할 수 없습니다. 24시간 후에 다시 시도하거나 <ph name="BEGIN_LINK" />Google 계정에서 비밀번호를 확인<ph name="END_LINK" />하세요.</translation>
 <translation id="89720367119469899">Esc</translation>
 <translation id="8972513834460200407">네트워크 관리자에게 문의하여 방화벽이 Google 서버에서 다운로드를 차단하지 않는지 확인하시기 바랍니다.</translation>
 <translation id="8973557916016709913">확대/축소 레벨 삭제</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index ffd70d7..cca8bde 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Жеткиликтүү түзмөктөр</translation>
 <translation id="1042174272890264476">Компьютериңизде <ph name="SHORT_PRODUCT_NAME" /> өнүмүнүн RLZ китепканасы камтылган. Белгилүү бир жарнамалык иш-чара башкарган издөө аракеттерин жана <ph name="SHORT_PRODUCT_NAME" /> колдонулушун талдап туруу үчүн RLZ кеңири кездешкен жалпы таанылуучу тегди дайындайт. Бул белгилер айрым учурларда Google Издөө сурамдарындагы <ph name="PRODUCT_NAME" /> өнүмүндө көрүнөт.</translation>
 <translation id="1043818413152647937">Дайын-даректер бул колдонмолордон да өчүрүлсүнбү?</translation>
+<translation id="1045448422538531528">Топко кошуу</translation>
 <translation id="1046635659603195359">Google Жардамчыңыздагы Voice Match'ти буга чейин башка түзмөктө жөндөп алган окшойсуз. Мурунку жаздырууларыңыздын негизинде үнүңүздүн үлгүсүн ушул түзмөктө даярдоого болот. Буга бир мүнөткө жетпеген убакыт керек.</translation>
 <translation id="104710386808485638">Linux өчүрүлүп күйгүзүлсүнбү?</translation>
 <translation id="1047431265488717055">Шилтеме тек&amp;стин көчүрүү</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Камераны колдонуу мүмкүнчүлүгү ар дайым бөгөттөлсүн</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> Chrome жөндөөлөрүңүздү демейки жөндөөлөргө кайтарайын деп жатат. Ушуну менен башкы барагыңыз, жаңы өтмөк барагыңыз жана издөө каражатыңыз кайра коюлуп, кеңейтүүлөрүңүз өчүрүлөт жана өтмөктөрдүн баары бошотулат. Мындан тышкары, кукилер, мазмун жана сайт дайындары сыяктуу убактылуу жана кештелген дайындардын баары тазаланат.</translation>
+<translation id="1084096383128641877">Бул сырсөздү өзгөртүү менен <ph name="DOMAIN" /> аккаунтуңуз жок кылынбайт. <ph name="DOMAIN_LINK" /> аккаунтуңузду башкалардан коргоо үчүн сырсөздү өзгөртүңүз же аккаунтуңузду жок кылыңыз.</translation>
 <translation id="1084824384139382525">Шилтеме даре&amp;гин көчүрүү</translation>
 <translation id="1085697365578766383">Виртуалдык машина иштеп баштабай калды. Кайталап көрүңүз.</translation>
 <translation id="1090126737595388931">Фондо иштеп жаткан колдонмо жок</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Коопсуздук кечээ текшерилди</translation>
 <translation id="1260451001046713751">Калкыма терезелерди көрсөтүү жана <ph name="HOST" /> сайтынан багыттоолорго ар дайым уруксат берилсин</translation>
 <translation id="126156426083987769">Түзмөктүн демо режиминин уруксаттамасында маселе келип чыкты.</translation>
+<translation id="1263490604593716556">Аккаунтту башкарган: <ph name="FIRST_PARENT_EMAIL" /> жана <ph name="SECOND_PARENT_EMAIL" />. Бул түзмөктөгү негизги аккаунттан чыгуу үчүн экраныңыздын төмөнкү оң жагындагы убакытты чыкылдатыңыз. Андан кийин көрсөтүлгөн менюдан "Чыгууну" чыкылдатыңыз.</translation>
 <translation id="126710816202626562">Кайсы тилге:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Токтотуу</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Вебсайт</translation>
 <translation id="15662109988763471">Тандалган принтер жок же туура эмес орнотулган. Принтериңизди текшериңиз же башкасын тандаңыз.</translation>
 <translation id="1567387640189251553">Сырсөз киргизилгенден кийин башка баскычтоп туташтырылды. Кимдир-бирөө сиздин кайсы баскычтарды басып жатканыңызды билгенге аракет кылып жатат окшойт.</translation>
-<translation id="1567750922576943685">Аныктыгыңызды текшерүү – жеке дайын-даректериңизди коргойт</translation>
 <translation id="1567993339577891801">JavaScript консолу</translation>
 <translation id="1568323446248056064">Түзмөктөгү дисплей жөндөөлөрүн ачуу</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Конок)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Көркөм өнөрчүлүк</translation>
 <translation id="1697686431566694143">Файлды түзөтүү</translation>
 <translation id="1698122934742150150">Учурдагы жашыруун режимдеги сеанс гана</translation>
-<translation id="1698650002254827833">Колдонмолордун тизмеси жүктөлбөй жатат. Кайталап көрүңүз.</translation>
 <translation id="1700079447639026019">Cookie файлдарын эч качан колдоно албай турган сайттар</translation>
 <translation id="1701062906490865540">Бул адамды алып салуу</translation>
 <translation id="1703331064825191675">Сырсөздөрүңүздүн коопсуздугу тууралуу эч качан кам санабаңыз</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Улантуу</translation>
 <translation id="2173302385160625112">Интернет байланышыңызды текшериңиз</translation>
 <translation id="2173801458090845390">Бул түзмөккө суроо идентификаторун кошуу</translation>
+<translation id="2174948148799307353">Аккаунтту башкарган: <ph name="PARENT_EMAIL" />. Бул түзмөктөгү негизги аккаунттан чыгуу үчүн экраныңыздын төмөнкү оң жагындагы убакытты чыкылдатыңыз. Андан кийин көрсөтүлгөн менюдан "Чыгууну" чыкылдатыңыз.</translation>
 <translation id="2175607476662778685">Ишке ыкчам киргизүү тилкеси</translation>
 <translation id="217576141146192373">Принтерди кошуу мүмкүн эмес. Принтердин конфигурациясын текшерип, кайталап көрүңүз.</translation>
 <translation id="2177950615300672361">Жашыруун өтмөк: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Текстти көлөкөлөтүү</translation>
 <translation id="2445081178310039857">Кеңейтүүнүн өзөктүк каталогу талап кылынат.</translation>
 <translation id="2445484935443597917">Жаңы профиль түзүү</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> колдонмосу аныктыгыңызды текшергени жатат</translation>
 <translation id="2448312741937722512">Түрү</translation>
 <translation id="2450223707519584812">Google API ачкычтары жок болгондуктан, колдонуучуларды кошо албайсыз. Чоо-жайын <ph name="DETAILS_URL" /> дарегинен караңыз.</translation>
 <translation id="2450849356604136918">активдүү көрүү режимдери жок</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" /> өтүңүз</translation>
 <translation id="29488703364906173">Атайын заманбап желеге арналып жасалган ыкчам, жөнөкөй жана коопсуз желе серепчиси.</translation>
 <translation id="2949289451367477459">Жайгашкан жер тууралуу маалыматты колдонуу. Колдонмолорго бул түзмөктүн жайгашкан жерин табууга жардам бериңиз. Google жайгашкан жердин дайындарын маал-маалы менен чогултуп, алардын тактыгын жакшыртууга жана дайындардын негизинде көрсөтүлүүчү кызматтарга жашыруун түрдө пайдаланышы мүмкүн. <ph name="BEGIN_LINK1" />Кеңири маалымат<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Катталуу</translation>
 <translation id="2956070239128776395">Топко кыстарылган бөлүм: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Сайттарга түзмөктөгү файлдарды же папкаларды түзөтүүгө тыюу салыңыз</translation>
 <translation id="2958721676848865875">Топтом кеңейтүүсүнүн эскертүүсү</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Демейки сары аватар</translation>
 <translation id="3141318088920353606">Угуп жатат…</translation>
 <translation id="3141917231319778873">Берилген өтүнүч төмөнкү түзмөктө колдоого алынбайт: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Жаңы топ</translation>
 <translation id="3143515551205905069">Шайкештештирүүнү жокко чыгаруу</translation>
 <translation id="3143754809889689516">Башынан баштап ойнотуу</translation>
 <translation id="3144647712221361880">Шилтемени төмөнкү катары ачуу</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Саргыч боз</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (аппараттык камсыздоонун камдык көчүрмөсү сакталды)</translation>
 <translation id="3161522574479303604">Бардык тилдер</translation>
+<translation id="3162853326462195145">Мектептин аккаунту</translation>
 <translation id="3162899666601560689">Серептөөнү ыңгайлаштыруу, мисалы, аккаунттан чыгарбоо же арабадагы сатып алган нерселериңизди эстеп калуу үчүн сайттар cookie файлдарын колдоно алышат</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> дегенден белгисиз өндүрүм <ph name="PRODUCT_ID" /></translation>
 <translation id="3164329792803560526">Бул өтмөк <ph name="APP_NAME" /> менен бөлүшүлүүдө</translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Түзмөктү бир күндүн ичинде жаңыртыңыз}other{Түзмөктү # күндүн ичинде жаңыртыңыз}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – Тармактагы ката</translation>
 <translation id="3248902735035392926">Коопсуздук маанилүү. Бир аз убакыт бөлүп, <ph name="BEGIN_LINK" />кеңейтүүлөрдү текшериңиз<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Тастыктаманын бөлүгү эмес&gt;</translation>
 <translation id="3253225298092156258">Жеткиликсиз</translation>
 <translation id="3253448572569133955">Белгисиз аккаунт</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">"Кабыл алып, улантуу" баскычын басуу менен, бул Google кызматтарын жогоруда сүрөттөлгөн шарттарга ылайык пайдаланууга макулдугуңузду билдиресиз.</translation>
 <translation id="3399432415385675819">Билдирмелер өчүрүлөт</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> герц) – бириктирилген</translation>
+<translation id="3402585168444815892">Демо режимине катталууда</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Бул сайт үчүн бир да сырсөз сакталган эмес</translation>
 <translation id="3405664148539009465">Ариптерди өзгөчөлөштүрүү</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android телефону</translation>
 <translation id="3470442499439619530">Бул колдонуучуну алып салуу</translation>
 <translation id="3471876058939596279">HDMI жана C тибиндеги USB оюкчаларын видео үчүн бир учурда колдонууга болбойт. Башка видео оюкчаны колдонуңуз.</translation>
+<translation id="3473241910002674503">Планшет режиминде баскычтарды басып, Башкы бетке, артка өтүп жана колдонмолорду которуштуруңуз.</translation>
 <translation id="3473479545200714844">Экран чоңойткуч</translation>
 <translation id="3475843873335999118">Кечиресиз, манжа изиңиз дагы эле тааныла элек. Сырсөзүңүздү киргизиңиз.</translation>
 <translation id="3476303763173086583">Колдонуу жана мүчүлүштүктөрдү аныктоо дайындарын жөнөтүү. Балаңыздын Android'ди колдонуу тажрыйбасын жакшыртууга көмөктөшүп, мүчүлүштүктөрдү издөө жана түзмөк менен колдонмолорду пайдалануу дайындарын автоматтык түрдө Google'га жөнөтүүгө уруксат бериңиз. Бул маалымат балаңыздын өздүгүн аныктоо үчүн колдонулбайт жана тутум менен колдонмонун кыйла туруктуу иштешин камсыз кылууга жана башка нерселерди жакшыртууга көмөктөшөт. Айрым дайындар тобу Google колдонмолоруна жана Android'дин иштеп чыгуучулары сыяктуу өнөктөштөрүнө да жардам берет. Бул <ph name="BEGIN_LINK1" />жөндөөнү<ph name="END_LINK1" /> түзмөктүн ээси иштетет. Түзмөктүн ээси бул түзмөктөн мүчүлүштүктөрдү аныктоо жана колдонуу дайындарын Google'га жөнөтүү мүмкүнчүлүгүн иштетиши мүмкүн. Эгер кошумча Колдонмолор жана Интернеттеги аракеттер таржымалы балаңыз үчүн күйгүзүлгөн болсо, бул дайындар анын Google аккаунтуна сакталышы мүмкүн. <ph name="BEGIN_LINK2" />Кеңири маалымат<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Бул коопсуздук ачкычы менен катталган манжа издери</translation>
 <translation id="3973660817924297510">Сырсөздөр өзгөртүлүүдө (<ph name="TOTAL_PASSWORDS" /> ичинен <ph name="CHECKED_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Чөйрө үчүн серверге туташуу ишке ашкан жок</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> сырсөздөрүңүздү текшере албай жатат. Кийинчерээк кайталаңыз.</translation>
 <translation id="3976108569178263973">Жеткиликтүү принтерлер жок.</translation>
 <translation id="397703832102027365">Жыйынтыкталууда…</translation>
 <translation id="3977886311744775419">Автоматтык жаңыртуулар тармактын бул түрүндө жүктөлүп алынбайт, бирок жаңыртууларды кол менен издесеңиз болот.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Бул баракчада жайгашкан жериңизге көз салып турган төмөнкү сайттардагы элементтер бар:</translation>
 <translation id="4068776064906523561">Сакталган манжа издери</translation>
 <translation id="407173827865827707">Чыкылдатылганда</translation>
+<translation id="4073520450811433493">Шайкештирүү жөндөөлөрү</translation>
 <translation id="4074900173531346617">Электрондук почта кол койгучунун тастыктамасы</translation>
 <translation id="407520071244661467">Масштаб</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> тышкы экранга чыгарылбай жатат.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Телчигип жаткан</translation>
 <translation id="4423376891418188461">Жөндөөлөрдү калыбына келтирүү</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, администраторуңуз сырсөздү өзгөртүүнү талап кылууда.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> сырсөздөрүңүздү текшере албай жатат. 24 сааттан кийин кайра аракет кылыңыз.</translation>
 <translation id="4429030830601238961">Бул дайын-даректер уюмуңуздун коопсуздук саясаттарын бузгандыктан чапталбайт.</translation>
 <translation id="4430019312045809116">Үндүн катуулугу</translation>
 <translation id="4430369329743628066">Кыстарма кошулду</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Шайман иштетилгенде бул колдонмо да автоматтык түрдө иштеп баштасынбы?</translation>
 <translation id="4441147046941420429">Улантуу үчүн коопсуздук ачкычын түзмөгүңүздөн чыгарып, кайра киргизип, ага тийип коюңуз.</translation>
 <translation id="444134486829715816">Жайып көрсөтүү…</translation>
+<translation id="4442329324652245220">Google аккаунтуңуз менен киргенде <ph name="IDS_SHORT_PRODUCT_NAME" /> сырсөздөрүңүздү текшерет.</translation>
 <translation id="4442424173763614572">DNS каралбай калды</translation>
 <translation id="4443536555189480885">&amp;Жардам</translation>
 <translation id="4444304522807523469">USB аркылуу же жергиликтүү тармакта тиркелген документ сканерлерин пайдалануу мүмкүнчүлүгү</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Бул кодду телефонуңуздагы QR сканери же камера колдонмолорунун бирөө менен скандаңыз.</translation>
 <translation id="4477015793815781985">Ctrl, Alt же ⌘ камтылсын</translation>
 <translation id="4478664379124702289">Шил&amp;темени төмөнкүдөй сактоо…</translation>
+<translation id="4478777936860197922">Сакталган сырсөздөр жок. Сырсөздөрүңүздү сактаганда <ph name="IDS_SHORT_PRODUCT_NAME" /> аларды текшере алат.</translation>
 <translation id="4479424953165245642">Киоск колдонмолорун башкаруу</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Виртуалдык машина конфигурацияланууда. Бул бир нече мүнөткө созулушу мүмкүн.</translation>
 <translation id="4480590691557335796">Chrome компьютериңизден зыянкеч программаны таап, аны алып салат</translation>
 <translation id="4481530544597605423">Ажыратылган түзмөктөр</translation>
+<translation id="4488107067273194838">Серепчини шайкештирүү параметрлерин карап чыгуу</translation>
 <translation id="4488502501195719518">Бардык дайын-даректер тазалансынбы?</translation>
 <translation id="4495419450179050807">Бул бетте көрсөтүлбөсүн</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> – автоматтык түрдө бөгөттөлдү</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Орнотулбасын</translation>
 <translation id="4850669014075537160">Сыдыруу</translation>
 <translation id="4850886885716139402">Көрүнүш</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> уурдалган сырсөз менен киргениңизде эскертет</translation>
 <translation id="4853020600495124913">&amp;Жаңы терезеде ачуу</translation>
 <translation id="4854317507773910281">Уруксат берүү үчүн ата-эненин аккаунтун тандаңыз</translation>
 <translation id="485480310608090163">Кошумча жөндөөлөр жана сунуштар</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN коддо жараксыз символдор бар</translation>
 <translation id="4871370605780490696">Кыстарма кошуу</translation>
 <translation id="4871719318659334896">Топту жабуу</translation>
+<translation id="4871852311166078968">Топко кошуу</translation>
 <translation id="4873312501243535625">Медиа файл текшергич</translation>
 <translation id="4876273079589074638">Бул бузулууну изилдеп, аны оңдоо үчүн биздин инженерлерге жардам бериңиз. Эгер мүмкүн болсо, кадамдарды так тизмелеп бериңиз. Бардык маалымат маанилүү!</translation>
 <translation id="4876895919560854374">Экранды кулпулоо жана кулпусун ачуу</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Администратор айрым киргизүү ыкмаларын колдонууга тыюу салды.</translation>
 <translation id="4994474651455208930">Сайттарга протоколдорду демейки шартта сурап туруп орнотууга уруксат берүү</translation>
 <translation id="4994754230098574403">Орнотулууда</translation>
-<translation id="4996978546172906250">Төмөнкү аркылуу бөлүшүү</translation>
 <translation id="4997086284911172121">Интернет жок.</translation>
 <translation id="4997384734315285248">Plugin VM'ди чыгарып салуу</translation>
 <translation id="4998430619171209993">Күйүк</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">"Окей Google" деп айтып, Жардамчыңызга кайрылыңыз.</translation>
 <translation id="5135533361271311778">Кыстарма түзүлбөй койду.</translation>
 <translation id="5137501176474113045">Бул нерсени жок кылуу</translation>
-<translation id="5138982052046316113">Linux дискинин өлчөмүн өзгөртүү</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> Издөө</translation>
 <translation id="5139823398361067371">Коопсуздук ачкычыңыздын PIN кодун киргизиңиз. Эгер PIN кодду билбесеңиз, коопсуздук ачкычын баштапкы абалга келтириңиз.</translation>
 <translation id="5139955368427980650">&amp;Ачуу</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Ырастоо күтүлүүдө. <ph name="LINK_BEGIN" />Кеңири маалымат<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Өтө чоң</translation>
 <translation id="574209121243317957">Тон</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" /> тууралуу кеңештерди, сунуштарды жана жаңылыктарды алып, пикир билдириңиз</translation>
 <translation id="5746169159649715125">PDF катары сактоо</translation>
 <translation id="5747552184818312860">Жарамдуулук мөөнөтү</translation>
 <translation id="5747785204778348146">Иштеп чыгуучу – туруктуу эмес</translation>
@@ -3661,7 +3673,7 @@
 <translation id="5932881020239635062">Сериялык номери</translation>
 <translation id="5933376509899483611">Убакыт алкагы</translation>
 <translation id="5935656526031444304">Коопсуз серептөөнү башкаруу</translation>
-<translation id="5938002010494270685">Коопсуздук тутумунун жаңыртуусу бар</translation>
+<translation id="5938002010494270685">Коопсуздук тутумунун жаңы версиясы бар</translation>
 <translation id="5939518447894949180">Кайра коюу</translation>
 <translation id="5941153596444580863">Адам кошуу…</translation>
 <translation id="5941343993301164315"><ph name="TOKEN_NAME" /> ичине кириңиз.</translation>
@@ -3699,7 +3711,7 @@
 <translation id="5984222099446776634">Жакында каралгандар</translation>
 <translation id="598472838394900788">{0,plural, =1{Жашыруун}other{Жашыруун (#)}}</translation>
 <translation id="5985458664595100876">URL'дин форматы жараксыз. Колдоого алынган форматтар: \\server\share жана smb://server/share.</translation>
-<translation id="5990386583461751448">Которулду</translation>
+<translation id="5990386583461751448">Котормо</translation>
 <translation id="599131315899248751">{NUM_APPLICATIONS,plural, =1{Интернетти серептөөнү улантуу үчүн администраторуңуздан бул колдонмону алып салуусун сураныңыз.}other{Интернетти серептөөнү улантуу үчүн администраторуңуздан бул колдонмолорду алып салуусун сураныңыз.}}</translation>
 <translation id="5993807461461235661">Бул жүктөлүп берилген файл шифрленген жана уюмуңуздун коопсуздук саясаттарын бузуп жатат.</translation>
 <translation id="5997337190805127100">Сайтка кирүү мүмкүнчүлүгү жөнүндө толугураак маалымат</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Тапкычта көрсөтүү</translation>
 <translation id="6295158916970320988">Бардык сайттар</translation>
 <translation id="6295855836753816081">Сакталууда…</translation>
-<translation id="629730747756840877">Каттоо эсеби</translation>
 <translation id="6298962879096096191">Android колдонмолорун орнотуу үчүн Google Play'ди пайдаланыңыз</translation>
 <translation id="630065524203833229">Ч&amp;ыгуу</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> автоматтык түрдө конфигурацияланган жок. Өркүндөтүлгөн принтердин чоо-жайын көрсөтүңүз. <ph name="LINK_BEGIN" />Кеңири маалымат<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Барак <ph name="LANGUAGE" /> эмес</translation>
 <translation id="6865708901122695652">WebRTC иш-чараларынын таржымалы (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Түс температурасы</translation>
-<translation id="6870888490422746447">Колдонмону тандап, төмөнкүлөр менен бөлүшүңүз:</translation>
 <translation id="6871644448911473373">OCSP Жооп бергичи: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Киргизген сырсөзүңүздү сервер кабыл алган жок.</translation>
 <translation id="6876155724392614295">Велосипед</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – Аракеттердин таржымалы</translation>
 <translation id="6997707937646349884">Төмөнкү түзмөктөрүңүздө:</translation>
 <translation id="6998793565256476099">Видео конференцияны өткөрүү үчүн түзмөктү каттоо</translation>
+<translation id="6999956497249459195">Жаңы топ</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> туташтырылды, бирок конфигурацияланышы керек</translation>
 <translation id="7000347579424117903">Ctrl, Alt, же Издөө камтылсын</translation>
 <translation id="7001036685275644873">Linux колдонмолору менен файлдарынын камдык көчүрмөлөрү сакталууда</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923"><ph name="PHONE_NAME" /> телефонуңуздагы байланышты жөндөп алыңыз</translation>
 <translation id="7401778920660465883">Бул билдирүүнү четке кагуу</translation>
+<translation id="7403642243184989645">Ресурстар жүктөлүп алынууда</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Коопсуздук 1 саат мурун текшерилди}other{Коопсуздук {NUM_HOURS} саат мурун текшерилди}}</translation>
 <translation id="740624631517654988">Калкып чыкма бөгөттөлгөн</translation>
 <translation id="7407430846095439694">Өткөрүп алып, бекитүү</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">Netscape Тастыктама борборунун саясатынын URL</translation>
 <translation id="7717014941119698257"><ph name="STATUS" /> жүктөлүп алынууда</translation>
 <translation id="7717845620320228976">Жаңыртууларды издөө</translation>
+<translation id="7719070594859855691">Камераны колдонууга уруксат берүү</translation>
 <translation id="7719367874908701697">Бетти чоңойтуп/кичирейтүү</translation>
 <translation id="7721179060400456005">Терезелерден бир нече экранды көрсөтүүгө уруксат берүү</translation>
 <translation id="7722040605881499779">Жаңыртуу үчүн зарыл бош орун: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Басып чыгаруу таржымалыңызды көрүү</translation>
 <translation id="7744192722284567281">Сырсөз уурдалды</translation>
 <translation id="7750228210027921155">Сүрөт ичиндеги сүрөт</translation>
-<translation id="7751229152614300329">Коопсуз серептөө жаңыртылып, сизди зыянкеч сайттар менен жүктөп алуулардан коргоп турат</translation>
 <translation id="7751260505918304024">Баарын көрсөтүү</translation>
 <translation id="7754704193130578113">Жүктөп алаардан мурун, ар бир файлдын кайсы жерге сактала тургандыгы суралсын</translation>
 <translation id="7755287808199759310">Аны ата-энеңиз ачып бере алат</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Эскертүү:<ph name="END_BOLD" /> Мүчүлүштүктөрдү оңдоо учурунда тутум кайра өчүрүлүп-күйгүзүлөт.</translation>
 <translation id="7828731929332799387">Бул аракет үчүнчү тараптын булактарындагы бардык cookie файлдарын жана сайттын дайындарын өчүрөт. Улантасызбы?</translation>
 <translation id="7829298379596169484">Аудио киришти колдонууда</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> сырсөздөрүңүздү текшере албай жатат. Интернет байланышын текшерип көрүңүз.</translation>
 <translation id="7829877209233347340">Мектеп аккаунтун кошууга уруксат берүү үчүн ата-энеңден аккаунтуна кирүүнү суран</translation>
 <translation id="7830594666202422257">Linux'ка туташтыруу</translation>
 <translation id="7831491651892296503">Тармакты конфигурациялоо учурунда ката кетти</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394"><ph name="DEVICE_TYPE" /> түзмөгүңүзгө Google Play Store орнотулууда. Бир нече мүнөт кетиши мүмкүн.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Үчүнчү тараптын cookie файлдары жок}=1{Үчүнчү тараптын 1 cookie файлы бөгөттөлдү}other{Үчүнчү тараптын # cookie файлы бөгөттөлдү}}</translation>
 <translation id="810875025413331850">Жакынкы түзмөктөр табылган жок.</translation>
+<translation id="8114199541033039755">Планшет режиминде баскычтарды басып, Башкы бетке, артка өтүп жана колдонмолорду которуштуруңуз. ChromeVox же Автоматтык чыкылдатуулар иштетилгенде күйөт.</translation>
 <translation id="8114875720387900039">Туурасынан бөлүү</translation>
 <translation id="8116972784401310538">&amp;Кыстармаларды башкаргыч</translation>
 <translation id="8117620576188476503">Абал тактасынын жардамы менен, байланыштарды, жаңыртууларды жана жөндөөлөрдү башкарыңыз. Бул жерге баскычтоп аркылуу өтүү үчүн Alt + Shift + S баскычтарын басыңыз.</translation>
@@ -5406,6 +5420,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> чычкан курсорун өчүрдү.</translation>
 <translation id="8264024885325823677">Бул жөндөөнү администраторуңуз башкарат.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" толук экранды ишке киргизди.</translation>
+<translation id="826511437356419340">Терезе үстүнөн көрүү режимине кирди. Чабыттоо үчүн экранды сүрүңүз же баскычтопту колдонуп жатсаңыз, "Tab" баскычын басыңыз.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Түзмөгүңүздүн иштеши, тактап айтканда, батареянын кубаты, колдонмолордун пайдаланылышы жана Интернет байланышынын сапаты тууралуу маалымат алып турабыз. Дайындар Google'дун кызматтарын жакшыртуу үчүн колдонулат. Топтолгон маалыматтын айрымдарын Android иштеп чыгуучулары өз кызматтарын өркүндөтүү үчүн колдонушу мүмкүн.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Бул функциянын өчүрүлүшү түзмөктүн тутумунун жаңыртылышына жана коопсуздугуна таасирин тийгизбейт.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Түзмөктүн ээси бул функцияны Жөндөөлөр &gt; Өркүндөтүлгөн жөндөөлөр &gt; Мүчүлүштүктөрдү аныктоо жана колдонуу дайындарын автоматтык түрдө Google'га жөнөтүү аркылуу көзөмөлдөй алат.<ph name="END_PARAGRAPH3" />
@@ -5514,6 +5529,7 @@
 <translation id="8426713856918551002">Иштетилүүдө</translation>
 <translation id="8427292751741042100">башкы түйүнгө жалгаштырылган</translation>
 <translation id="8428213095426709021">Жөндөөлөр</translation>
+<translation id="8428271547607112339">Мектеп аккаунтун кошуу</translation>
 <translation id="8428628598981198790">Коопсуздук ачкычыңызды бул сайтта колдонууга болбойт</translation>
 <translation id="84297032718407999"><ph name="LOGOUT_TIME_LEFT" /> кийин тутумдан автоматтык түрдө чыгарыласыз</translation>
 <translation id="8431190899827883166">Басылган жерлерди көрсөтүү</translation>
@@ -5577,6 +5593,7 @@
 <translation id="851263357009351303">Сүрөттөрдү көрсөтүү үчүн, <ph name="HOST" /> ар дайыма уруксат берилсин</translation>
 <translation id="8513108775083588393">Авто айлануу</translation>
 <translation id="8514746246728959655">Башка коопсуздук ачкычын колдонуп көрүңүз</translation>
+<translation id="851960115758509829">Колдонмолор, жөндөөлөр жана башка жеке параметрлер Google аккаунтуңуз менен кирип турган бардык Chrome OS түзмөктөрүндө шайкештирилет.</translation>
 <translation id="8521475323816527629">Колдонмолоруңузду ылдам алыңыз</translation>
 <translation id="8523493869875972733">Өзгөрүүлөр сакталсын</translation>
 <translation id="8523849605371521713">Ишкана саясаты тарабынан кошулду</translation>
@@ -5858,11 +5875,13 @@
 <translation id="885701979325669005">Сактагыч</translation>
 <translation id="8859057652521303089">Тилиңизди тандаңыз:</translation>
 <translation id="8859174528519900719">Көмөкчү алкак: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Ата-эненин аккаунту</translation>
 <translation id="8862003515646449717">Ылдам серепчиге которулуу</translation>
 <translation id="8863753581171631212">Шилтемени жаңы <ph name="APP" /> колдонмосунда ачуу</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> <ph name="APP_NAME" /> колдонмосу менен бөлүшүлүүдө</translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> бул түзмөктөн өчүрүлдү</translation>
 <translation id="8867228703146808825">Кураманын чоо-жайын алмашуу буферине көчүрүңүз</translation>
+<translation id="8868333925931032127">Демо режим иштетилип баштады</translation>
 <translation id="8868626022555786497">Колдонулууда</translation>
 <translation id="8870413625673593573">Жакында жабылган</translation>
 <translation id="8871551568777368300">Администратор тарабынан төөнөлгөн</translation>
@@ -5941,6 +5960,7 @@
 <translation id="8966870118594285808">Өтмөктү кокустан жаап алсаңыз, аны кайра ачыңыз</translation>
 <translation id="8967866634928501045">Көрсөтүү үчүн Alt+Shift+A баскычтарын басыңыз</translation>
 <translation id="8968766641738584599">Картаны сактоо</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> сырсөздөрүңүздү текшере албай жатат. 24 сааттан кийин кайра аракет кылыңыз же <ph name="BEGIN_LINK" />Google аккаунтуңуздагы сырсөздөрдү текшериңиз<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Google серверлеринен жүктөп алуу аракеттери файрвол тарабынан бөгөттөлбөгөндүгүн тармактык администраторуңуздан тактаңыз.</translation>
 <translation id="8973557916016709913">Чоңойтуп/кичирейтүү деңгээлин алып салуу</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index ca2cdaf..eb69214 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">ອຸປະກອນທີ່ໃຊ້ໄດ້</translation>
 <translation id="1042174272890264476">ຄອມພິວເຕີຂອງທ່ານຍັງມາພ້ອມກັບຄັງເກັບມ້ຽນ RLZ ຂອງ <ph name="SHORT_PRODUCT_NAME" /> ມາກັບເຄື່ອງ. RLZ ມອບໝາຍໃຫ້ແທັກສາມາດລະບຸໄດ້ບໍ່ເປັນເອກະລັກ, ບໍ່ເປັນສ່ວນຕົວ ເພື່ອວັດແທກການຄົ້ນຫາ ແລະການໃຊ້ <ph name="SHORT_PRODUCT_NAME" /> ຂັບເຄື່ອນໂດຍການໂຄສະນາສະເພາະ. ບາງຄັ້ງສະຫຼາກເຫຼົ່ານີ້ປະກົດຂຶ້ນຢູ່ໃນການສອບຖາມການຄົ້ນຫາ Google ຢູ່ໃນ <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">ລຶບຂໍ້ມູນອອກຈາກແອັບເຫຼົ່ານີ້ນຳບໍ?</translation>
+<translation id="1045448422538531528">ເພີ່ມໃສ່ກຸ່ມ</translation>
 <translation id="1046635659603195359">ເບິ່ງຄືວ່າທ່ານໄດ້ຕັ້ງຄ່າ Voice Match ກັບຜູ້ຊ່ວຍ Google ຂອງທ່ານໃນອຸປະກອນອື່ນແລ້ວ. ສາມາດໃຊ້ບັນທຶກສຽງຜ່ານມາເຫຼົ່ານີ້ເພື່ອສ້າງຕົວຢ່າງສຽງໃນອຸປະກອນນີ້ໄດ້. ນີ້ຄວນໃຊ້ເວລາໜ້ອຍກວ່າໜຶ່ງນາທີ.</translation>
 <translation id="104710386808485638">ຣິສະຕາດ Linux ບໍ?</translation>
 <translation id="1047431265488717055">ອັດ​ສຳ​ເນົາ​ຂໍ້​ຄວາມ​ລິ້ງ</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">ບລັອກການເຂົ້າໃຊ້ກ້ອງຖ່າຍຮູບທຸກຄັ້ງ</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> ຕ້ອງ​ການ​ກູ້​ຄືນ​ການ​ຕັ້ງ​ຄ່າ Chrome ຂອງ​ທ່ານ​ເປັນ​ຄ່າເລີ່ມຕົ້ນເດີ​ມ​ຂອງ​ພວກ​ມັນ. ອັນນີ້ຈະຕັ້ງຄ່າໜ້າຫຼັກ, ໜ້າແຖບໃໝ່ ແລະ ໂປຣແກຣມຄົ້ນຫາຂອງທ່ານຄືນໃໝ່, ປິດໃຊ້ງານສ່ວນຂະຫຍາຍຂອງທ່ານ ແລະຖອນປັກໝຸກທຸກແຖບ. ມັນຍັງຈະລຶບຂໍ້ມູນຊົ່ວຄາວ ແລະຂໍ້ມູນທີ່ແຄຊ໌ໄວ້ອື່ນນຳອີກ ເຊັ່ນ ຄຸກກີ້, ເນື້ອໃນ ແລະ ຂໍ້ມູນເວັບໄຊທ໌.</translation>
+<translation id="1084096383128641877">ການລຶບລະຫັດຜ່ານນີ້ອອກຈະບໍ່ລຶບບັນຊີຂອງທ່ານໃນ <ph name="DOMAIN" />. ການປ່ຽນລະຫັດຜ່ານຂອງທ່ານ ຫຼື ລຶບບັນຊີຂອງທ່ານໃນ <ph name="DOMAIN_LINK" /> ເພື່ອຮັກສາໃຫ້ມັນປອດໄພຈາກຄົນອື່ນ.</translation>
 <translation id="1084824384139382525">ກັອບປີ້ທີ່ຢູ່ລິ້ງ</translation>
 <translation id="1085697365578766383">ເກີດຄວາມຜິດພາດໃນການເລີ່ມເຄື່ອງຈຳລອງສະເໝືອນຈິງ. ກະລຸນາລອງອີກຄັ້ງ.</translation>
 <translation id="1090126737595388931">ບໍ່ມີແອັບພື້ນຫຼັງແລ່ນຢູ່</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">ດຳເນີນການກວດສອບຄວາມປອດໄພມື້ວານນີ້</translation>
 <translation id="1260451001046713751">ອະນຸຍາດປັອບອັບ ແລະ ການປ່ຽນເສັ້ນທາງຈາກ <ph name="HOST" /> ທຸກເທື່ອ</translation>
 <translation id="126156426083987769">ເກີດບັນຫາກັບໃບອະນຸຍາດອຸປະກອນໃນໂໝດສາທິດ.</translation>
+<translation id="1263490604593716556">ບັນຊີທີ່ຈັດການໂດຍ <ph name="FIRST_PARENT_EMAIL" /> ແລະ <ph name="SECOND_PARENT_EMAIL" />. ເພື່ອອອກຈາກລະບົບບັນຊີຫຼັກໃນອຸປະກອນນີ້, ກະລຸນາຄລິກເວລາໃນໜ້າຈໍ. ໃນເມນູທີ່ປາກົດຂຶ້ນມາ, ກະລຸນາຄລິກ "ອອກຈາກລະບົບ".</translation>
 <translation id="126710816202626562">ພາ​ສາ​ການແປ:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">ຢຸດ</translation>
@@ -415,7 +418,6 @@
 <translation id="1566049601598938765">ເວັບໄຊ</translation>
 <translation id="15662109988763471">ເຄື່ອງພິມທີ່ເລືອກໄວ້ບໍ່ສາມາດໃຊ້ໄດ້ ຫຼື ບໍ່ໄດ້ຕິດຕັ້ງຢ່າງຖືກຕ້ອງ. ກວດເບິ່ງເຄື່ອງພິມຂອງທ່ານ ຫຼື ລອງເລືອກເຄື່ອງພິມອື່ນ.</translation>
 <translation id="1567387640189251553">ໄດ້ມີການເຊື່ອມຕໍ່ແປ້ນພິມອື່ນນັບຕັ້ງແຕ່ທ່ານປ້ອນລະຫັດຜ່ານຂອງທ່ານຄັ້ງສຸດທ້າຍ. ມັນອາດຈະກຳລັງພະຍາຍາມລັກໃຊ້ການກົດແປ້ນພິມຂອງທ່ານຢູ່.</translation>
-<translation id="1567750922576943685">ການຢັ້ງຢືນຕົວຕົນຂອງທ່ານຊ່ວຍປົກປ້ອງຂໍ້ມູນສ່ວນຕົວຂອງທ່ານ</translation>
 <translation id="1567993339577891801">JavaScript Console</translation>
 <translation id="1568323446248056064">ເປີດການຕັ້ງຄ່າອຸປະກອນສະແດງຜົນ</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (ແຂກ)</translation>
@@ -517,7 +519,6 @@
 <translation id="1697150536837697295">ສິນລະປະ</translation>
 <translation id="1697686431566694143">ແກ້ໄຂໄຟລ໌</translation>
 <translation id="1698122934742150150">ເຊດຊັນແບບບໍ່ເຜີຍຕົວຕົນໃນປັດຈຸບັນເທົ່ານັ້ນ</translation>
-<translation id="1698650002254827833">ບໍ່ສາມາດໂຫຼດລາຍການແອັບໄດ້. ກະລຸນາລໍຖ້າ.</translation>
 <translation id="1700079447639026019">ເວັບໄຊທີ່ບໍ່ສາມາດໃຊ້ຄຸກກີ້ໄດ້</translation>
 <translation id="1701062906490865540">ເອົາ​ຄົນ​ນີ້ອອກໄປ</translation>
 <translation id="1703331064825191675">ບໍ່ກັງວົນກ່ຽວກັບລະຫັດຜ່ານຂອງທ່ານ</translation>
@@ -871,6 +872,7 @@
 <translation id="2172784515318616985">ສືບຕໍ່</translation>
 <translation id="2173302385160625112">ກວດເບິ່ງການເຊື່ອມຕໍ່ອິນເຕີເນັດຂອງທ່ານ</translation>
 <translation id="2173801458090845390">ເພີ່ມ ID ທີ່ຈຳເປັນຕ້ອງມີໃສ່ອຸປະກອນນີ້</translation>
+<translation id="2174948148799307353">ບັນຊີທີ່ຈັດການໂດຍ <ph name="PARENT_EMAIL" />. ເພື່ອອອກຈາກລະບົບບັນຊີຫຼັກໃນອຸປະກອນນີ້, ກະລຸນາຄລິກເວລາໃນໜ້າຈໍ. ໃນເມນູທີ່ປາກົດຂຶ້ນມາ, ກະລຸນາຄລິກ "ອອກຈາກລະບົບ".</translation>
 <translation id="2175607476662778685">ແຖບເປີດດ່ວນ</translation>
 <translation id="217576141146192373">ບໍ່ສາມາດເພີ່ມເຄື່ອງພິມໄດ້. ກະລຸນາກວດເບິ່ງການຕັ້ງຄ່າເຄື່ອງພິມຂອງທ່ານແລ້ວລອງໃໝ່.</translation>
 <translation id="2177950615300672361">ແຖບທີ່​ບໍ່​ເຜີຍ​ຕົນ​ຕົວ: <ph name="TAB_NAME" /></translation>
@@ -1079,7 +1081,6 @@
 <translation id="2442916515643169563">ເງົາຂໍ້ຄວາມ</translation>
 <translation id="2445081178310039857">ຈໍາເປັນຕ້ອງມີໄດເຣັກຕໍຣີພື້ນຖານສ່ວນຂະຫຍາຍ.</translation>
 <translation id="2445484935443597917">ສ້າງໂປຣໄຟລ໌ໃໝ່</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> ຕ້ອງການຢັ້ງຢືນຕົວຕົນຂອງທ່ານ</translation>
 <translation id="2448312741937722512">ປະ​ເພດ</translation>
 <translation id="2450223707519584812">ທ່ານ​ຈະ​ບໍ່​ສາ​ມາດ​ເພີ່ມ​ຜູ້​ໃຊ້​ໄດ້ ເພາະ​ວ່າ​ຂາດປຸ່ມ Google API ໄປ. ເບິ່ງ <ph name="DETAILS_URL" /> ເປັນ​ລາຍ​ລະ​ອຽດ.</translation>
 <translation id="2450849356604136918">ບໍ່ມີມຸມມອງເປີດຢູ່</translation>
@@ -1477,6 +1478,7 @@
 <translation id="2948300991547862301">ໄປທີ່ <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">ເວັບ​ບຣາວ​ເຊີ​ທີ່ໄວ​, ງ່າຍ​ດາຍ​, ແລະປອດໄພ​, ສ້າງຂຶ້ນມາສໍາລັບເວັບສະໄໝໃໝ່.</translation>
 <translation id="2949289451367477459">ໃຊ້ສະຖານທີ່. ອະນຸຍາດໃຫ້ແອັບ ແລະ ການບໍລິການທີ່ມີການອະນຸຍາດສະຖານທີ່ໃຊ້ສະຖານທີ່ຂອງອຸປະກອນນີ້. Google ອາດຈະເກັບກຳຂໍ້ມູນສະຖານທີ່ເປັນຊ່ວງໄລຍະ ແລະ ໃຊ້ຂໍ້ມູນນີ້ໃນແບບທີ່ບໍ່ເປີດເຜີຍຊື່ເພື່ອປັບປຸງຄວາມຖືກຕ້ອງຂອງສະຖານທີ່ ແລະ ການບໍລິການທີ່ອີງໃສ່ສະຖານທີ່. <ph name="BEGIN_LINK1" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">ໃຫ້ຂ້ອຍລົງທະບຽນ</translation>
 <translation id="2956070239128776395">ສ່ວນທີ່ຝັງຢູ່ໃນກຸ່ມ: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">ບໍ່ອະນຸຍາດໃຫ້ເວັບໄຊໃດແກ້ໄຂໄຟລ໌ ຫຼື ໂຟນເດີໃນອຸປະກອນຂອງທ່ານ</translation>
 <translation id="2958721676848865875">ຄຳເຕືອນກ່ຽວກັບສ່ວນຂະຫຍາຍແພັກ</translation>
@@ -1601,6 +1603,7 @@
 <translation id="3139925690611372679">ຮູບແທນຕົວສີເຫຼືອງຕາມຄ່າເລີ່ມຕົ້ນ</translation>
 <translation id="3141318088920353606">ກຳລັງຟັງ...</translation>
 <translation id="3141917231319778873">ການຮ້ອງຂໍທີ່ໃຫ້ບໍ່ຖືກຮອງຮັບຕໍ່ກັບ: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">ກຸ່ມໃໝ່</translation>
 <translation id="3143515551205905069">ຍົກເລີກການຊິ້ງຂໍ້ມູນ</translation>
 <translation id="3143754809889689516">ຫຼິ້ນແຕ່ເລີ່ມຕົ້ນ</translation>
 <translation id="3144647712221361880">ເປີດ​ລິ້ງ​ເປັນ</translation>
@@ -1625,6 +1628,7 @@
 <translation id="3159493096109238499">ສີເບຈ</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ສະໜັບສະໜູນຈາກຮາດແວ)</translation>
 <translation id="3161522574479303604">ທຸກ​ພາ​ສາ</translation>
+<translation id="3162853326462195145">ບັນຊີໂຮງຮຽນ</translation>
 <translation id="3162899666601560689">ເວັບໄຊສາມາດໃຊ້ຄຸກກີ້ເພື່ອປັບປຸງປະສົບການທ່ອງເວັບຂອງທ່ານ, ຕົວຢ່າງ: ເພື່ອໃຫ້ທ່ານສືບຕໍ່ຢູ່ໃນລະບົບ ຫຼື ຈື່ລາຍການຕ່າງໆໃນກະຕ່າຊື້ເຄື່ອງຂອງທ່ານ</translation>
 <translation id="3163201441334626963">ຜະ​ລິດ​ຕະ​ພັນ​ບໍ່​ຮູ້​ຈັກ <ph name="PRODUCT_ID" /> ຈາກ​ຜູ້​ຂາຍ <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">ກຳລັງແບ່ງປັນແຖບນີ້ກັບ <ph name="APP_NAME" /></translation>
@@ -1683,7 +1687,6 @@
 <translation id="3246107497225150582">{0,plural, =1{ອັບເດດອຸປະກອນພາຍໃນໜຶ່ງມື້}other{ອັບເດດອຸປະກອນພາຍໃນ # ມື້}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - ຄວາມຜິດພາດທາງເຄືອຂ່າຍ</translation>
 <translation id="3248902735035392926">ຄວາມປອດໄພເປັນເລື່ອງສຳຄັນ. ໃຊ້ເວລາຄາວໜຶ່ງ ແລະ <ph name="BEGIN_LINK" />ກວດເບິ່ງສ່ວນຂະຫຍາຍຂອງທ່ານຕອນນີ້ເລີຍ<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;ບໍ່ແມ່ນສ່ວນຂອງໃບຢັ້ງຢືນ&gt;</translation>
 <translation id="3253225298092156258">ບໍ່ມີຂໍ້ມູນ</translation>
 <translation id="3253448572569133955">ບັນຊີທີ່ບໍ່ຮູ້ຈັກ</translation>
@@ -1788,6 +1791,7 @@
 <translation id="3396800784455899911">ໂດຍການຄລິກປຸ່ມ "ຍອມຮັບ ແລະ ສືບຕໍ່", ແມ່ນຖືວ່າທ່ານເຫັນດີນຳການປະມວນຜົນຂໍ້ມູນທີ່ອະທິບາຍຢູ່ຂ້າງເທິງສຳລັບການບໍລິການ Google ເຫຼົ່ານີ້.</translation>
 <translation id="3399432415385675819">ການແຈ້ງເຕືອນຈະຖືກປິດ</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> ເຮີດຊ) - ອິນເຕີເລດ</translation>
+<translation id="3402585168444815892">ການລົງທະບຽນໃນໂໝດສາທິດ</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">ບໍ່ມີລະຫັດຜ່ານທີ່ບັນທຶກໄວ້ສຳລັບເວັບໄຊນີ້</translation>
 <translation id="3405664148539009465">ກໍານົດຟອນເອົາເອງ</translation>
@@ -1849,6 +1853,7 @@
 <translation id="3468999815377931311">ໂທລະສັບ Android</translation>
 <translation id="3470442499439619530">ເອົາ​ຜູ້​ໃຊ້​ນີ້ອອກໄປ</translation>
 <translation id="3471876058939596279">ບໍ່ສາມາດໃຊ້ຜອດ HDMI ແລະ USB ປະເພດ C ສຳລັບວິດີໂອໃນເວລາພ້ອມກັນໄດ້. ໃຊ້ຜອດວິດີໂອອື່ນ.</translation>
+<translation id="3473241910002674503">ໄປຫາໜ້າຫຼັກ, ກັບຄືນ ແລະ ສະຫຼັບແອັບດ້ວຍປຸ່ມໃນໂໝດແທັບເລັດ.</translation>
 <translation id="3473479545200714844">ເຄື່ອງຂະຫຍາຍໜ້າຈໍ</translation>
 <translation id="3475843873335999118">ຂໍອະໄພ, ຍັງຄົງບໍ່ຮັບຮູ້ລາຍນິ້ວມືຂອງທ່ານເທື່ອ. ກະລຸນາປ້ອນລະຫັດຜ່ານຂອງທ່ານແທນ.</translation>
 <translation id="3476303763173086583">ສົ່ງຂໍ້ມູນການນຳໃຊ້ ແລະ ການວິເຄາະ. ຊ່ວຍປັບປຸງປະສົບການ Android ຂອງລູກທ່ານໂດຍການສົ່ງຂໍ້ມູນການວິເຄາະ, ຂໍ້ມູນອຸປະກອນ ແລະ ການໃຊ້ແອັບໃຫ້ Google ໂດຍອັດຕະໂນມັດ. ຂໍ້ມູນນີ້ຈະບໍ່ຖືກໃຊ້ເພື່ອລະບຸຕົວລູກຂອງທ່ານ ແລະ ຈະຊ່ວຍປັບປຸງຄວາມສະຖຽນຂອງລະບົບ ແລະ ແອັບ ແລະ ການປັບປຸງອື່ນໆ. ບາງຂໍ້ມູນແບບຮວມກັນຍັງຈະຊ່ວຍແອັບ ແລະ ຮຸ້ນສ່ວນຂອງ Google ນຳອີກ ເຊັ່ນ: ຜູ້ພັດທະນາ Android. ເຈົ້າຂອງບັງຄັບໃຊ້ <ph name="BEGIN_LINK1" />ການຕັ້ງຄ່າ<ph name="END_LINK1" /> ນີ້. ເຈົ້າຂອງອາດຈະເລືອກສົ່ງຂໍ້ມູນການວິເຄາະ ແລະ ການໃຊ້ສຳລັບອຸປະກອນນີ້ໃຫ້ Google ກໍໄດ້. ຖ້າເປີດການຕັ້ງຄ່າການເຄື່ອນໄຫວເວັບ ແລະ ແອັບເພີ່ມເຕີມສໍາລັບລູກຂອງທ່ານ, ລະບົບອາດຈະບັນທຶກຂໍ້ມູນນີ້ໄວ້ໃນບັນຊີ Google ຂອງເຂົາເຈົ້າ. <ph name="BEGIN_LINK2" />ສຶກສາ​ເພີ່ມ​ເຕີມ<ph name="END_LINK2" /></translation>
@@ -2273,6 +2278,7 @@
 <translation id="3971764089670057203">ລາຍນິ້ວມືໃນກະແຈຄວາມປອດໄພນີ້</translation>
 <translation id="3973660817924297510">ກຳລັງກວດລະຫັດຜ່ານ (<ph name="CHECKED_PASSWORDS" /> ລາຍການຈາກທັງໝົດ <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">ການຕິດຕໍ່ຫາເຊີບເວີສຳລັບ realm ບໍ່ສຳເລັດ</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້. ລອງໃໝ່ໃນພາຍຫລັງ.</translation>
 <translation id="3976108569178263973">ບໍ່ມີເຄື່ອງພິມທີ່ສາມາດໃຊ້ໄດ້.</translation>
 <translation id="397703832102027365">ກໍາລັງເຮັດໃຫ້ແລ້ວ...</translation>
 <translation id="3977886311744775419">ການດາວໂຫຼດອັດຕະໂນມັດບໍ່ດາວໂຫຼດໃນເຄືອຂ່າຍປະເພດນີ້, ແຕ່ທ່ານສາມາດກວດຫາການອັບເດດດ້ວຍຕົນເອງໄດ້.</translation>
@@ -2336,6 +2342,7 @@
 <translation id="4068506536726151626">ຫນ້າ​ນີ້​ມີ​ອົງ​ປະ​ກອບ​ຈາກ​ເວັບໄຊທ໌​ຕໍ່​ໄປ​ນີ້​ທີ່​ກໍາລັງຕິດ​ຕາມ​ທີ່​ຕັ້ງຂອງ​ທ່ານ​:</translation>
 <translation id="4068776064906523561">ລາຍນິ້ວມືທີ່ບັນທຶກໄວ້</translation>
 <translation id="407173827865827707">ເມື່ອຄລິກ</translation>
+<translation id="4073520450811433493">ການຊິ້ງຂໍ້ມູນການຕັ້ງຄ່າ</translation>
 <translation id="4074900173531346617">ໃບຢັ້ງຢືນຜູ້ເຊັນອີເມວ</translation>
 <translation id="407520071244661467">ຂະໜາດ</translation>
 <translation id="4075639477629295004">ບໍ່ສາມາດສົ່ງສັນຍານ <ph name="FILE_NAME" /> ໄດ້.</translation>
@@ -2572,6 +2579,7 @@
 <translation id="4421932782753506458">ຟູ</translation>
 <translation id="4423376891418188461">ກູ້ຄືນການຕັ້ງຄ່າ</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານກຳນົດໃຫ້ທ່ານປ່ຽນລະຫັດຜ່ານຂອງທ່ານ.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້. ກະລຸນາລອງໃໝ່ຫຼັງຈາກ 24 ຊົ່ວໂມງ.</translation>
 <translation id="4429030830601238961">ຂໍ້ມູນນີ້ລະເມີດນະໂຍບາຍຄວາມປອດໄພຂອງອົງການຂອງທ່ານ ແລະ ບໍ່ສາມາດວາງໃສ່ໄດ້.</translation>
 <translation id="4430019312045809116">ລະດັບສຽງ</translation>
 <translation id="4430369329743628066">ເພີ່ມບຸກມາກແລ້ວ</translation>
@@ -2584,6 +2592,7 @@
 <translation id="4441124369922430666">ທ່ານ​ຕ້ອງ​ການເລີ່ມແອັບນີ້ອັດ​ຕະ​ໂນ​ມັດບໍ ເມື່ອເຄື່ອງຈັກເປີດ​?</translation>
 <translation id="4441147046941420429">ເພື່ອສືບຕໍ່, ກະລຸນາຖອດກະແຈຄວາມປອດໄພຂອງທ່ານອອກຈາກອຸປະກອນ, ຈາກນັ້ນ ສຽບເຂົ້າຄືນ ແລ້ວແຕະມັນ</translation>
 <translation id="444134486829715816">ຂະຫຍາຍ...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> ສາມາດກວດເບິ່ງລະຫັດຜ່ານຂອງທ່ານ ເມື່ອທ່ານເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ Google ຂອງທ່ານໄດ້</translation>
 <translation id="4442424173763614572">ການຊອກເບິ່ງ DNS ບໍ່ສໍາເລັດ</translation>
 <translation id="4443536555189480885">ຊ່ວຍ​ເຫຼືອ</translation>
 <translation id="4444304522807523469">ເຂົ້າ​ຫາ​ເຄື່ອງ​ສະ​ແກນ​ເອ​ກະ​ສານ​ຄັດ​ຕິດ​ຜ່ານ USB ຫຼື​ຢູ່​ເທິງ​ເຄືອ​ຂ່າຍ​ກັບ​ທີ່</translation>
@@ -2610,11 +2619,13 @@
 <translation id="4476659815936224889">ເພື່ອສະແກນລະຫັດນີ້, ທ່ານສາມາດໃຊ້ແອັບໂປຣແກຣມສະແກນ QR ໃນໂທລະສບຂອງທ່ານ ຫຼື ບາງແອັບກ້ອງຖ່າຍຮູບອື່ນ.</translation>
 <translation id="4477015793815781985">ລວມມີ Ctrl, Alt ຫຼື ⌘</translation>
 <translation id="4478664379124702289">ບັນທຶກລິ້ງເປັນ...</translation>
+<translation id="4478777936860197922">ບໍ່ມີລະຫັດຜ່ານທີ່ບັນທຶກໄວ້. <ph name="IDS_SHORT_PRODUCT_NAME" /> ສາມາດກວດເບິ່ງລະຫັດຜ່ານຂອງທ່ານເມື່ອທ່ານບັນທຶກພວກມັນໄວ້.</translation>
 <translation id="4479424953165245642">ຈັດການແອັບພລິເຄຊັນ Kiosk</translation>
 <translation id="4479639480957787382">ອີເທີເນັດ</translation>
 <translation id="4479877282574735775">ກຳລັງກຳນົດຄ່າເຄື່ອງສະເໝືອນຈິງ. ນີ້ອາດຈະໃຊ້ເວລາສອງສາມນາທີ.</translation>
 <translation id="4480590691557335796">Chrome ສາມາດຊອກຫາຊອບແວອັນຕະລາຍໃນຄອມພິວເຕີຂອງທ່ານ ແລະ ລຶບມັນອອກໄດ້</translation>
 <translation id="4481530544597605423">ອຸປະກອນທີ່ບໍ່ໄດ້ຈັບຄູ່ກັນ</translation>
+<translation id="4488107067273194838">ກວດເບິ່ງຕົວເລືອກການຊິ້ງຂໍ້ມູນຫຼັງການຕັ້ງຄ່າ</translation>
 <translation id="4488502501195719518">ລຶບລ້າງຂໍ້ມູນທັງໝົດບໍ?</translation>
 <translation id="4495419450179050807">ຢ່າສະແດງຢູ່ໃນໜ້ານີ້ອີກ</translation>
 <translation id="4496054781541092778">ບລັອກ <ph name="PERMISSION" /> ອັດຕະໂນມັດແລ້ວ</translation>
@@ -2856,6 +2867,7 @@
 <translation id="4849517651082200438">ຢ່າຕິດຕັ້ງ</translation>
 <translation id="4850669014075537160">ການເລື່ອນ</translation>
 <translation id="4850886885716139402">ເບິ່ງ</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> ຈະແຈ້ງບອກທ່ານເມື່ອທ່ານເຂົ້າສູ່ລະບົບດ້ວຍລະຫັດຜ່ານທີ່ຖືກລະເມີດ</translation>
 <translation id="4853020600495124913">ເປີດ​ຢູ່​ໃນໜ້າ​ຕ່າງ​ໃຫມ່</translation>
 <translation id="4854317507773910281">ເລືອກບັນຊີພໍ່ແມ່ສຳລັບການອະນຸມັດ</translation>
 <translation id="485480310608090163">ການຕັ້ງຄ່າ ແລະ ການອະນຸຍາດເພີ່ມເຕີມ</translation>
@@ -2874,6 +2886,7 @@
 <translation id="4871322859485617074">PIN ປະກອບມີຕົວອັກສອນທີ່ບໍ່ຖືກຕ້ອງ</translation>
 <translation id="4871370605780490696">ເພີ່ມບຸກມາກຄ໌</translation>
 <translation id="4871719318659334896">ປິດກຸ່ມ</translation>
+<translation id="4871852311166078968">ເພີ່ມໃສ່ກຸ່ມ</translation>
 <translation id="4873312501243535625">ຕົວກວດ​ໄຟ​ລ໌​ມີ​ເດຍ</translation>
 <translation id="4876273079589074638">ຊ່ວຍວິສະວະກອນຂອງພວກເຮົາສືບສວນ ແລະ ແກ້ໄຂການຂັດຂ້ອງນີ້. ບອກຂັ້ນຕອນທີ່ແນ່ນອນຖ້າທ່ານສາມາດເຮັດໄດ້. ບໍ່ມີລາຍລະອຽດໃດໜ້ອຍເກີນໄປ!</translation>
 <translation id="4876895919560854374">ລັອກ ແລະປົດລັອກຫນ້າ​ຈໍ</translation>
@@ -2965,7 +2978,6 @@
 <translation id="4992473555164495036">ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານໄດ້ຈຳກັດວິທີການປ້ອນຂໍ້ມູນທີ່ສາມາດໃຊ້ໄດ້ແລ້ວ.</translation>
 <translation id="4994474651455208930">ອະນຸຍາດໃຫ້ເວັບໄຊຮ້ອງຂໍເປັນຕົວຈັດການເລີ່ມຕົ້ນສຳລັບໂປຣໂຕຄໍ</translation>
 <translation id="4994754230098574403">ກໍາລັງຕັ້ງຄ່າ</translation>
-<translation id="4996978546172906250">ແຊຣ໌ຜ່ານ</translation>
 <translation id="4997086284911172121">ບໍ່ມີການເຊື່ອມຕໍ່ອິນເຕີເນັດ.</translation>
 <translation id="4997384734315285248">ຖອນການຕິດຕັ້ງ Plugin VM</translation>
 <translation id="4998430619171209993">ເປີດ</translation>
@@ -3065,7 +3077,6 @@
 <translation id="5135085122826131075">ເຂົ້າເຖິງຜູ້ຊ່ວຍຂອງທ່ານເມື່ອທ່ານເວົ້າ "Ok Google."</translation>
 <translation id="5135533361271311778">ບໍ່​ສາ​ມາດ​ສ້າງ​ລາຍການບຸກມາກຄ໌ໄດ້.</translation>
 <translation id="5137501176474113045">ລຶບ​ລາຍ​ການ​ນີ້</translation>
-<translation id="5138982052046316113">ປັບຂະໜາດດິສ Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> ຊອກຫາ</translation>
 <translation id="5139823398361067371">ປ້ອນ PIN ສຳລັບກະແຈຄວາມປອດໄພຂອງທ່ານ. ຖ້າທ່ານບໍ່ຮູ້ PIN, ທ່ານຈະຈຳເປັນຕ້ອງຣີເຊັດກະແຈຄວາມປອດໄພ</translation>
 <translation id="5139955368427980650">ເປີດ</translation>
@@ -3517,6 +3528,7 @@
 <translation id="5739235828260127894">ກຳລັງລໍຖ້າການຢັ້ງຢືນ. <ph name="LINK_BEGIN" />ສຶກສາເພີ່ມເຕີມ<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">​ໃຫຍ່​ຫຼາຍ</translation>
 <translation id="574209121243317957">ລະດັບສຽງ</translation>
+<translation id="5745136023067925867">ຮັບເຄັດລັບ, ຂໍ້ສະເໜີ ແລະ ການອັບເດດກ່ຽວກັບ <ph name="DEVICE_TYPE" /> ແລະ ແບ່ງປັນຄຳຕິຊົມ</translation>
 <translation id="5746169159649715125">ບັນທຶກເປັນ PDF</translation>
 <translation id="5747552184818312860">ໝົດອາຍຸ</translation>
 <translation id="5747785204778348146">ຜູ້ພັດ​ທະ​ນາ - ບໍ່ໝັ້ນຄົງ</translation>
@@ -3929,7 +3941,6 @@
 <translation id="6291953229176937411">ສະແດງຢູ່ໃນຕົວຊອກ​ຫາ</translation>
 <translation id="6295158916970320988">ທຸກ​ເວັບ​ໄຊ​ທ໌</translation>
 <translation id="6295855836753816081">ກໍາລັງບັນທຶກ...</translation>
-<translation id="629730747756840877">ບັນ​ຊີ</translation>
 <translation id="6298962879096096191">ໃຊ້ Google Play ເພື່ອຕິດຕັ້ງແອັບ Android</translation>
 <translation id="630065524203833229">ອອກ</translation>
 <translation id="6300718114348072351">ບໍ່ສາມາດຕັ້ງຄ່າ <ph name="PRINTER_NAME" /> ໂດຍອັດຕະໂນມັດໄດ້. ກະລຸນາລະບຸລາຍລະອຽດເຄື່ອງພິມຂັ້ນສູງ. <ph name="LINK_BEGIN" />ສຶກສາເພີ່ມເຕີມ<ph name="LINK_END" /></translation>
@@ -4335,7 +4346,6 @@
 <translation id="6865598234501509159">ໜ້ານີ້ບໍ່ແມ່ນພາສາ <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">ບັນທຶກເຫດການ WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">ອຸນຫະພູມສີ</translation>
-<translation id="6870888490422746447">ເລືອກແອັບເພື່ອແບ່ງປັນເປັນ:</translation>
 <translation id="6871644448911473373">ເຄື່ອງຕອບຮັບ OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">ລະຫັດຜ່ານທີ່ທ່ານປ້ອນເຂົ້າຖືກປະຕິເສດໂດຍເຊີບເວີແລ້ວ.</translation>
 <translation id="6876155724392614295">ຖີບລົດ</translation>
@@ -4428,6 +4438,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - ບັນທຶກການເຄື່ອນໄຫວ</translation>
 <translation id="6997707937646349884">ໃນອຸປະກອນຂອງທ່ານ:</translation>
 <translation id="6998793565256476099">ລົງທະບຽນອຸປະກອນສຳລັບການປະຊຸມຜ່ານວິດີໂອ</translation>
+<translation id="6999956497249459195">ກຸ່ມໃໝ່</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> ເຊື່ອມຕໍ່ແລ້ວ ແຕ່ຕ້ອງໄດ້ກຳນົດຄ່າ</translation>
 <translation id="7000347579424117903">ລວມມີ Ctrl, Alt ຫຼື ຊອກຫາ</translation>
 <translation id="7001036685275644873">ກຳລັງສຳຮອງແອັບ ແລະ ໄຟລ໌ Linux</translation>
@@ -4726,6 +4737,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">ຕັ້ງຄ່າການເຊື່ອມຕໍ່ໃນ <ph name="PHONE_NAME" /> ຂອງທ່ານ</translation>
 <translation id="7401778920660465883">ປິດຂໍ້ຄວາມນີ້</translation>
+<translation id="7403642243184989645">ກຳລັງດາວໂຫຼດຊັບພະຍາກອນ</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{ດຳເນີນການກວດສອບຄວາມປອດໄພເມື່ອ 1 ຊົ່ວໂມງກ່ອນ}other{ດຳເນີນການກວດສອບຄວາມປອດໄພເມື່ອ {NUM_HOURS} ຊົ່ວໂມງກ່ອນ}}</translation>
 <translation id="740624631517654988">ບລັອກປັອບອັບແລ້ວ</translation>
 <translation id="7407430846095439694">ນຳເຂົ້າ ແລະ ຜູກມັດ</translation>
@@ -4962,6 +4974,7 @@
 <translation id="7716781361494605745">URL ນະໂຍບາຍໜ່ວຍງານອອກໃບຢັ້ງຢືນ Netscape</translation>
 <translation id="7717014941119698257">ກໍາລັງດາວ​​ໂຫລດ​: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">ກວດເບິ່ງການອັບເດດ</translation>
+<translation id="7719070594859855691">ໃຫ້ສິດເຂົ້າເຖິງກ້ອງ</translation>
 <translation id="7719367874908701697">ຊູມໜ້າ</translation>
 <translation id="7721179060400456005">ອະນຸຍາດໃຫ້ໜ້າຈໍຂະຫຍາຍການສະແດງຜົນ</translation>
 <translation id="7722040605881499779">ຈຳເປັນຕ້ອງມີເພື່ອອັບເດດ: <ph name="NECESSARY_SPACE" /></translation>
@@ -4976,7 +4989,6 @@
 <translation id="7744047395460924128">ເບິ່ງປະຫວັດການພິມຂອງທ່ານ</translation>
 <translation id="7744192722284567281">ພົບເຫັນໃນການລະເມີດຂໍ້ມູນ</translation>
 <translation id="7750228210027921155">ສະແດງຜົນຊ້ອນກັນ</translation>
-<translation id="7751229152614300329">Safe Browsing ໃໝ່ຫຼ້າສຸດແລ້ວ ແລະ ກຳລັງປົກປ້ອງທ່ານຈາກເວັບໄຊ ແລະ ການດາວໂຫຼດທີ່ອັນຕະລາຍ</translation>
 <translation id="7751260505918304024">ສະ​ແດງ​ທັງ​ຫມົດ</translation>
 <translation id="7754704193130578113">ຖາມບ່ອນທີ່ຈະບັນທຶກແຕ່ລະໄຟລ໌ກ່ອນການດາວໂຫຼດ</translation>
 <translation id="7755287808199759310">ພໍ່ແມ່ຂອງທ່ານສາມາດຍົກເລີກການບລັອກມັນໃຫ້ທ່ານໄດ້</translation>
@@ -5063,6 +5075,7 @@
     <ph name="BEGIN_BOLD" />ໝາຍເຫດ:<ph name="END_BOLD" /> ລະບົບຈະປິດເປີດເຄື່ອງຄືນໃໝ່ໃນລະຫວ່າງຂະບວນການນັ້ນ.</translation>
 <translation id="7828731929332799387">ນີ້ຈະລຶບຄຸກກີ້ ແລະ ຂໍ້ມູນເວັບໄຊທັງໝົດທີ່ມີໃຫ້ໃນບໍລິບົດພາກສ່ວນທີສາມ. ທ່ານຕ້ອງການດຳເນີນການຕໍ່ບໍ?</translation>
 <translation id="7829298379596169484">ການ​ເຂົ້າ​ໃຊ້ການປ້ອນຂໍ້ມູນ​ສຽງ</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້. ລອງກວດເບິ່ງການເຊື່ອມຕໍ່ອິນເຕີເນັດຂອງທ່ານ.</translation>
 <translation id="7829877209233347340">ຂໍໃຫ້ພໍ່ແມ່ເຂົ້າສູ່ລະບົບເພື່ອອະນຸຍາດໃຫ້ເພີ່ມບັນຊີໂຮງຮຽນ</translation>
 <translation id="7830594666202422257">ເຊື່ອມຕໍ່ກັບ Linux</translation>
 <translation id="7831491651892296503">ມີຄວາມຜິດພາດໃນການກຳນົດຄ່າເຄືອຂ່າຍ</translation>
@@ -5284,6 +5297,7 @@
 <translation id="8107015733319732394">ກຳລັງຕິດຕັ້ງ Google Play Store ໃນ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ. ນີ້ສາມາດໃຊ້ເວລາສອງສາມນາທີ.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{ບໍ່ມີຄຸກກີ້ພາກສ່ວນທີສາມ}=1{ບລັອກຄຸກກີ້ພາກສ່ວນທີສາມໄວ້ 1 ລາຍການ}other{ບລັອກຄຸກກີ້ພາກສ່ວນທີສາມໄວ້ # ລາຍການ}}</translation>
 <translation id="810875025413331850">ບໍ່ພົບອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງ.</translation>
+<translation id="8114199541033039755">ໄປຫາໜ້າຫຼັກ, ກັບຄືນ ແລະ ສະຫຼັບແອັບດ້ວຍປຸ່ມໃນໂໝດແທັບເລັດ. ເປີດເມື່ອເປີດການນຳໃຊ້ ChromeVox ຫຼື Automatic clicks.</translation>
 <translation id="8114875720387900039">ແຍກຕາມລວງນອນ</translation>
 <translation id="8116972784401310538">ຕົວຈັດການບຸກມາກຄ໌</translation>
 <translation id="8117620576188476503">ຈັດການການເຊື່ອມຕໍ່, ການອັບເດດ ແລະ ການຕັ້ງຄ່າດ້ວຍຖາດສະຖານະ. ເພື່ອມາທີ່ນີ້ໂດຍໃຊ້ແປ້ນພິມ, ກະລຸນາກົດ Alt + Shift + S.</translation>
@@ -5403,6 +5417,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ປິດໃຊ້ງານເຄີເຊີເມົາສ໌ຂອງທ່ານແລ້ວ.</translation>
 <translation id="8264024885325823677">ການຕັ້ງຄ່ານີ້ຈັດການໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ໄດ້ກະຕຸ້ນໜ້າຈໍເຕັມ.</translation>
+<translation id="826511437356419340">ເຂົ້າສູ່ໂໝດພາບຮວມໜ້າຈໍແລ້ວ. ປັດເພື່ອໄປຍັງສ່ວນຕ່າງໆ ຫຼື ກົດຖ້າກຳລັງໃຊ້ແປ້ນພິມຢູ່.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />ນີ້ແມ່ນຂໍ້ມູນທົ່ວໄປກ່ຽວກັບອຸປະກອນນີ້ ແລະ ມັນຖືກໃຊ້ມັນແນວໃດ (ເຊັ່ນ: ລະດັບແບັດເຕີຣີ, ການເຄື່ອນໄຫວໃນລະບົບ ແລະ ແອັບ ແລະ ຂໍ້ຜິດພາດຕ່າງໆ). ຂໍ້ມູນຈະຖືກໃຊ້ເພື່ອປັບປຸງ Android ແລະ ບາງຂໍ້ມູນແບບຮວມກັນຈະຊ່ວຍແອັບ ແລະ ບັນດາຮຸ້ນສ່ວນຂອງ Google ເຊັ່ນ ຜູ້ພັດທະນາ Android ເຮັດໃຫ້ແອັບ ແລະ ຜະລິດຕະພັນຂອງເຂົາເຈົ້າດີຂຶ້ນ.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />ການປິດຄຸນສົມບັດນີ້ບໍ່ມີຜົນຕໍ່ກັບຄວາມສາມາດຂອງອຸປະກອນນີ້ໃນການສົ່ງຂໍ້ມູນທີ່ຈຳເປັນເພື່ອໄດ້ຮັບການບໍລິການທີ່ສຳຄັນ ເຊັ່ນ: ການອັບເດດລະບົບ ແລະ ຄວາມປອດໄພ.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />ເຈົ້າຂອງສາມາດຄວບຄຸມຄຸນສົມບັດນີ້ຈາກການຕັ້ງຄ່າ &gt; ຂັ້ນສູງ &gt; ສົ່ງຂໍ້ມູນການວິເຄາະ ແລະ ການໃຊ້ໃຫ້ Google ໂດຍອັດຕະໂນມັດ.<ph name="END_PARAGRAPH3" />
@@ -5511,6 +5526,7 @@
 <translation id="8426713856918551002">ກຳລັງເປີດນຳໃຊ້</translation>
 <translation id="8427292751741042100">ຝັງຕິດໃນແມ່ຂ່າຍໃດກໍໄດ້</translation>
 <translation id="8428213095426709021">ການ​ຕັ້ງຄ່າ</translation>
+<translation id="8428271547607112339">ເພີ່ມບັນຊີໂຮງຮຽນ</translation>
 <translation id="8428628598981198790">ບໍ່ສາມາດໃຊ້ກະແຈຄວາມປອດໄພຂອງທ່ານກັບເວັບໄຊນີ້ໄດ້</translation>
 <translation id="84297032718407999">ທ່ານຈະຖືກນຳອອກຈາກລະບົບໃນ <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">ສະແດງການແຕະ</translation>
@@ -5574,6 +5590,7 @@
 <translation id="851263357009351303">​ອະ​ນຸ​ຍາດ​ໃຫ້ <ph name="HOST" /> ສະ​ແດງຮູບທຸກຄັ້ງ</translation>
 <translation id="8513108775083588393">ໝຸນອັດຕະໂນມັດ</translation>
 <translation id="8514746246728959655">ລອງກະແຈຄວາມປອດໄພອື່ນ</translation>
+<translation id="851960115758509829">ແອັບ, ການຕັ້ງຄ່າ ແລະ ການປັບແຕ່ງອື່ນຂອງທ່ານຈະຊິ້ງຂໍ້ມູນໃນທົ່ວອຸປະກອນ Chrome OS ທີ່ເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ Google ຂອງທ່ານ.</translation>
 <translation id="8521475323816527629">ໄປຫາແອັບຂອງທ່ານໄດ້ຢ່າງວ່ອງໄວ</translation>
 <translation id="8523493869875972733">ຮັກສາການປ່ຽນແປງ</translation>
 <translation id="8523849605371521713">ເພີ່ມໂດຍນະໂຍບາຍ</translation>
@@ -5855,11 +5872,13 @@
 <translation id="885701979325669005">ການເກັບຂໍ້ມູນ</translation>
 <translation id="8859057652521303089">ເລືອກ​ພາ​ສາ​ຂອງ​ທ່ານ​:</translation>
 <translation id="8859174528519900719">ຂອບຍ່ອຍ: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">ບັນຊີພໍ່ແມ່</translation>
 <translation id="8862003515646449717">ປ່ຽນເປັນໂປຣແກຣມທ່ອງເວັບທີ່ໄວ</translation>
 <translation id="8863753581171631212">ເປີດລິ້ງໃນ <ph name="APP" /> ໃໝ່</translation>
 <translation id="8864055848767439877">ກຳລັງແບ່ງປັນ <ph name="TAB_NAME" /> ໄປໃສ່ <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">ລຶບ <ph name="EMAIL" /> ອອກຈາກອຸປະກອນນີ້ແລ້ວ</translation>
 <translation id="8867228703146808825">ສຳເນົາລາຍລະອຽດເວີຊັນໄປໃສ່ຄລິບບອດ</translation>
+<translation id="8868333925931032127">ກຳລັງເລີ່ມໂໝດສາທິດ</translation>
 <translation id="8868626022555786497">ໃຊ້ແລ້ວ</translation>
 <translation id="8870413625673593573">ປິດ​ບໍ່​ດົນ​ມາ​ນີ້</translation>
 <translation id="8871551568777368300">ປັກໝຸດໂດຍຜູ້ເບິ່ງແຍງລະບົບ</translation>
@@ -5938,6 +5957,7 @@
 <translation id="8966870118594285808">ເປີດແຖບຄືນໃໝ່ຖ້າທ່ານປິດມັນໂດຍບໍ່ຕັ້ງໃຈ</translation>
 <translation id="8967866634928501045">ກົດປຸ່ມ Alt Shift A ເພື່ອສະແດງ</translation>
 <translation id="8968766641738584599">ບັນທຶກບັດໄວ້</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້. ລອງໃໝ່ຫຼັງຈາກ 24 ຊົ່ວໂມງ ຫຼື <ph name="BEGIN_LINK" />ກວດລະຫັດຜ່ານໃນບັນຊີ Google ຂອງທ່ານ<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">ກະລຸນາກວດເບິ່ງກັບຜູ້ຄຸ້ມຄອງເຄືອຂ່າຍຂອງທ່ານ ເພື່ອເບິ່ງໃຫ້ແນ່ໃຈວ່າ ບໍ່ມີໄຟວອລບລັອກການດາວໂຫຼດຈາກເຊີບເວີ Google ແລ້ວ.</translation>
 <translation id="8973557916016709913">ລຶບລະດັບການຊູມອອກ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index f85ea8a..56927e0a 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Pasiekiami įrenginiai</translation>
 <translation id="1042174272890264476">Jūsų kompiuteryje taip pat įdiegta „<ph name="SHORT_PRODUCT_NAME" />“ RLZ biblioteka. RLZ priskiria neunikalią, asmens neidentifikuojančią žymą, kad įvertintų tam tikros reklamos kampanijos paieškas ir „<ph name="SHORT_PRODUCT_NAME" />“ naudojimą. Šios etiketės kartais rodomos „Google“ paieškos užklausose „<ph name="PRODUCT_NAME" />“.</translation>
 <translation id="1043818413152647937">Taip pat išvalyti duomenis iš šių programų?</translation>
+<translation id="1045448422538531528">Pridėti prie grupės</translation>
 <translation id="1046635659603195359">Atrodo, kad jau esate nustatę funkciją „Voice Match“ naudodami „Google“ padėjėją kitame įrenginyje. Ankstesnius įrašus galima naudoti kuriant balso modelį šiame įrenginyje. Tai turėtų užtrukti mažiau nei minutę.</translation>
 <translation id="104710386808485638">Iš naujo paleisti „Linux“?</translation>
 <translation id="1047431265488717055">Kopijuoti nuorodos teks&amp;tą</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">„Microsoft Internet Explorer“</translation>
 <translation id="1079766198702302550">Visada blokuoti prieigą prie fotoaparato</translation>
 <translation id="1082398631555931481">„<ph name="THIRD_PARTY_TOOL_NAME" />“ nori atkurti „Chrome “ nustatymus į pradinius numatytuosius nustatymus. Bus iš naujo nustatyti pagrindinis puslapis, naujo skirtuko puslapis ir paieškos variklis, išjungti plėtiniai ir atsegti visi skirtukai. Taip pat bus išvalyti kiti laikini ir talpykloje esantys duomenys, pvz., slapukai, turinio ir svetainių duomenys.</translation>
+<translation id="1084096383128641877">Pašalinus šį slaptažodį jūsų paskyra domene <ph name="DOMAIN" /> nebus ištrinta. Pakeiskite slaptažodį arba ištrinkite paskyrą domene <ph name="DOMAIN_LINK" />, kad apsaugotumėte ją nuo kitų.</translation>
 <translation id="1084824384139382525">Kopijuoti nuorodos adr&amp;esą</translation>
 <translation id="1085697365578766383">Paleidžiant virtualų įrenginį įvyko klaida. Bandykite dar kartą.</translation>
 <translation id="1090126737595388931">Nėra vykdomų fono programų</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Saugos patikra atlikta vakar</translation>
 <translation id="1260451001046713751">Visada leisti rodyti iššokančiuosius langus ir peradresavimus iš <ph name="HOST" /></translation>
 <translation id="126156426083987769">Iškilo su demonstracinio režimo įrenginio licencijomis susijusi problema.</translation>
+<translation id="1263490604593716556">Paskyrą tvarko: <ph name="FIRST_PARENT_EMAIL" /> ir <ph name="SECOND_PARENT_EMAIL" />. Jei norite šiame įrenginyje atsijungti nuo pagrindinės paskyros, palieskite ekrane rodomą laiką. Pateiktame meniu spustelėkite „Atsijungti“.</translation>
 <translation id="126710816202626562">Vertimo kalba:</translation>
 <translation id="126768002343224824">16 k.</translation>
 <translation id="1272079795634619415">Sustabdyti</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Svetainė</translation>
 <translation id="15662109988763471">Pasirinktas spausdintuvas nepasiekiamas arba netinkamai įdiegtas. Patikrinkite spausdintuvą arba pabandykite pasirinkti kitą spausdintuvą.</translation>
 <translation id="1567387640189251553">Po to, kai paskutinį kartą įvedėte slaptažodį, buvo prijungta kita klaviatūra. Gali būti bandoma pavogti jūsų klavišų paspaudimus.</translation>
-<translation id="1567750922576943685">Jei patvirtinsite savo tapatybę, galėsime efektyviau apsaugoti asmens informaciją</translation>
 <translation id="1567993339577891801">„JavaScript“ pultas</translation>
 <translation id="1568323446248056064">Atidaryti įrenginio pateikties nustatymus</translation>
 <translation id="1572139610531470719">„<ph name="WINDOW_TITLE" />“ (svečias)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Menas</translation>
 <translation id="1697686431566694143">Redaguoti failą</translation>
 <translation id="1698122934742150150">Tik dabartinė inkognito režimo sesija</translation>
-<translation id="1698650002254827833">Nepavyko įkelti programų sąrašo. Bandykite dar kartą.</translation>
 <translation id="1700079447639026019">Svetainės, kuriose niekada negalima naudoti slapukų</translation>
 <translation id="1701062906490865540">Pašalinti šį asmenį</translation>
 <translation id="1703331064825191675">Niekada nesijaudinkite dėl slaptažodžių</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Tęsti</translation>
 <translation id="2173302385160625112">Patikrinkite interneto ryšį</translation>
 <translation id="2173801458090845390">Pridėti užklausų teikimo ID prie šio įrenginio</translation>
+<translation id="2174948148799307353">Paskyrą tvarko: <ph name="PARENT_EMAIL" />. Jei norite šiame įrenginyje atsijungti nuo pagrindinės paskyros, palieskite ekrane rodomą laiką. Pateiktame meniu spustelėkite „Atsijungti“.</translation>
 <translation id="2175607476662778685">Sparčiosios paleisties juosta</translation>
 <translation id="217576141146192373">Nepavyko pridėti spausdintuvo. Patikrinkite spausdintuvo konfigūraciją ir bandykite dar kartą.</translation>
 <translation id="2177950615300672361">Inkognito skirtukas: „<ph name="TAB_NAME" />“</translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Teksto šešėlis</translation>
 <translation id="2445081178310039857">Reikalingas plėtinio šakninis katalogas.</translation>
 <translation id="2445484935443597917">Kurti naują profilį</translation>
-<translation id="2446585455334014596">„<ph name="APP_NAME" />“ nori patvirtinti jūsų tapatybę</translation>
 <translation id="2448312741937722512">Tipas</translation>
 <translation id="2450223707519584812">Negalėsite pridėti naudotojų, nes trūksta „Google“ API raktų. Jei reikia išsamios informacijos, žr. <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">aktyvių rodinių nėra</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Eiti į <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Sparti, paprasta ir saugi žiniatinklio naršyklė, sukurta moderniam žiniatinkliui.</translation>
 <translation id="2949289451367477459">Naudoti vietovę. Leisti leidimą pasiekti vietovės duomenis turinčioms programoms ir paslaugoms naudoti šio įrenginio vietovę. „Google“ gali periodiškai rinkti vietovės duomenis ir juos naudoti anonimiškai siekdama patobulinti vietovės tikslumą ir pagerinti paslaugas pagal vietovę. <ph name="BEGIN_LINK1" />Sužinokite daugiau<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Užsiregistruoti</translation>
 <translation id="2956070239128776395">Skiltis įdėta į grupę: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Neleisti svetainėms redaguoti įrenginyje esančių failų ar aplankų</translation>
 <translation id="2958721676848865875">Įspėjimas dėl paketo plėtinio</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Numatytasis geltonas pseudoportretas</translation>
 <translation id="3141318088920353606">Klausoma…</translation>
 <translation id="3141917231319778873">Nurodyta užklausa nepalaikoma įrenginyje „<ph name="DEVICE_NAME" />“.</translation>
+<translation id="3142562627629111859">Nauja grupė</translation>
 <translation id="3143515551205905069">Atšaukti sinchronizavimą</translation>
 <translation id="3143754809889689516">Paleisti nuo pradžios</translation>
 <translation id="3144647712221361880">Atidaryti nuorodą kaip</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Smėlio spalva</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (atsarginė kopija sukurta aparatinėje įrangoje)</translation>
 <translation id="3161522574479303604">Visos kalbos</translation>
+<translation id="3162853326462195145">Mokyklos paskyra</translation>
 <translation id="3162899666601560689">Svetainės gali naudoti slapukus naršymo kokybei pagerinti, pavyzdžiui, kad liktumėte prisijungę ar būtų įsimintos pirkinių krepšelyje esančios prekės</translation>
 <translation id="3163201441334626963">Nežinomas produktas „<ph name="PRODUCT_ID" />“ iš teikėjo „<ph name="VENDOR_ID" />“</translation>
 <translation id="3164329792803560526">Bendrinamas šis skirtukas su „<ph name="APP_NAME" />“</translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Įrenginio atnaujinimas po dienos}one{Įrenginio atnaujinimas po # dienos}few{Įrenginio atnaujinimas po # dienų}many{Įrenginio atnaujinimas po # dienos}other{Įrenginio atnaujinimas po # dienų}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – tinklo klaida</translation>
 <translation id="3248902735035392926">Sauga yra svarbu. Skirkite šiek tiek laiko ir <ph name="BEGIN_LINK" />patikrinkite plėtinius<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636">„<ph name="APP_NAME" />“ (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Ne sertifikato dalis&gt;</translation>
 <translation id="3253225298092156258">Nepasiekiama</translation>
 <translation id="3253448572569133955">Nežinoma paskyra</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Spustelėdami mygtuką „Sutikti ir tęsti“ sutinkate, kad šios „Google“ paslaugos būtų apdorojamos, kaip aprašyta anksčiau.</translation>
 <translation id="3399432415385675819">Pranešimai bus išjungti</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz) – progresinis</translation>
+<translation id="3402585168444815892">Užregistruojama naudoti demonstracinį režimą</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Nėra išsaugotų šios svetainės slaptažodžių</translation>
 <translation id="3405664148539009465">Tinkinti šriftus</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">„Android“ telefonas</translation>
 <translation id="3470442499439619530">Pašalinti šį naudotoją</translation>
 <translation id="3471876058939596279">HDMI ir „Type-C“ USB prievadų tuo pačiu metu negalima naudoti kaip vaizdo įvesties. Naudokite kitą vaizdo prievadą.</translation>
+<translation id="3473241910002674503">Eikite į pagrindinį puslapį, naršykite atgal ir perjunkite programas naudodami mygtukus planšetinio kompiuterio režimu.</translation>
 <translation id="3473479545200714844">Ekrano didintuvas</translation>
 <translation id="3475843873335999118">Deja, piršto antspaudas vis dar neatpažintas. Įveskite slaptažodį.</translation>
 <translation id="3476303763173086583">Siųskite naudojimo ir diagnostikos duomenis. Padėkite tobulinti vaiko „Android“ funkcijas automatiškai siųsdami „Google“ diagnostikos, įrenginio ir programų naudojimo duomenis. Tai nebus naudojama siekiant nustatyti jūsų vaiko tapatybę ir padės pagerinti sistemos bei programos stabilumą ir teikti kitus patobulinimus. Kai kurie sukaupti duomenys taip pat bus naudingi „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams. Šį <ph name="BEGIN_LINK1" />nustatymą<ph name="END_LINK1" /> taiko savininkas. Savininkas gali pasirinkti siųsti šio įrenginio diagnostikos ir naudojimo duomenis „Google“. Jei papildomas „Žiniatinklio ir programų veiklos“ nustatymas įjungtas vaiko įrenginyje, šie duomenys gali būti išsaugoti vaiko „Google“ paskyroje. <ph name="BEGIN_LINK2" />Sužinokite daugiau<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Šio saugos rakto kontroliniai kodai</translation>
 <translation id="3973660817924297510">Tikrinami slaptažodžiai (<ph name="CHECKED_PASSWORDS" /> iš <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Nepavyko susisiekti su serveriu dėl srities</translation>
+<translation id="3975884715086515476">„<ph name="IDS_SHORT_PRODUCT_NAME" />“ negali patikrinti jūsų slaptažodžių. Vėliau bandykite dar kartą.</translation>
 <translation id="3976108569178263973">Nėra pasiekiamų spausdintuvų.</translation>
 <translation id="397703832102027365">Užbaigiama...</translation>
 <translation id="3977886311744775419">Automatiniai naujiniai iš šio tipo tinklo neatsisiunčiami, bet galite ieškoti naujinių patys.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Šiame puslapyje yra elementų iš šių svetainių, kuriose stebima jūsų vietovė:</translation>
 <translation id="4068776064906523561">Išsaugoti kontroliniai kodai</translation>
 <translation id="407173827865827707">Spustelėjus</translation>
+<translation id="4073520450811433493">Nustatymų sinchronizavimas</translation>
 <translation id="4074900173531346617">El. laiškus pasirašančiojo sertifikatas</translation>
 <translation id="407520071244661467">Mastelis</translation>
 <translation id="4075639477629295004">Nepavyko perduoti „<ph name="FILE_NAME" />“.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Pūkuotasis</translation>
 <translation id="4423376891418188461">Atkurti nustatymus</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, jūsų administratoriui reikia pakeisti jūsų slaptažodį.</translation>
+<translation id="4426209360861763174">„<ph name="IDS_SHORT_PRODUCT_NAME" />“ negali patikrinti jūsų slaptažodžių. Bandykite dar kartą po 24 val.</translation>
 <translation id="4429030830601238961">Šie duomenys pažeidžia organizacijos saugos politiką, todėl jų negalima įklijuoti.</translation>
 <translation id="4430019312045809116">Apimtis</translation>
 <translation id="4430369329743628066">Žymė pridėta</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Norite automatiškai paleisti šią programą, kai įjungiamas įrenginys?</translation>
 <translation id="4441147046941420429">Norėdami tęsti išimkite saugos raktą iš įrenginio, įdėkite iš naujo ir palieskite</translation>
 <translation id="444134486829715816">Išskleisti...</translation>
+<translation id="4442329324652245220">„<ph name="IDS_SHORT_PRODUCT_NAME" />“ gali tikrinti jūsų slaptažodžius, kai prisijungiate naudodami „Google“ paskyrą</translation>
 <translation id="4442424173763614572">Įvyko DNS paieškos klaida</translation>
 <translation id="4443536555189480885">&amp;Pagalba</translation>
 <translation id="4444304522807523469">Pasiekti dokumentų skaitytuvus, prijungtus per USB jungtį ar vietiniame tinkle</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Jei norite nuskaityti šį kodą, galite naudoti QR skaitytuvo programą telefone arba tam tikras fotoaparato programas.</translation>
 <translation id="4477015793815781985">Naudokite „Ctrl“, „Alt“ arba ⌘</translation>
 <translation id="4478664379124702289">Išsaugoti nuoro&amp;dą kaip...</translation>
+<translation id="4478777936860197922">Nėra išsaugotų slaptažodžių. „<ph name="IDS_SHORT_PRODUCT_NAME" />“ gali tikrinti jūsų slaptažodžius, kai juos išsaugote.</translation>
 <translation id="4479424953165245642">Tvarkyti viešojo terminalo programas</translation>
 <translation id="4479639480957787382">Eternetas</translation>
 <translation id="4479877282574735775">Konfigūruojamas virtualus įrenginys. Tai gali užtrukti kelias minutes.</translation>
 <translation id="4480590691557335796">„Chrome“ gali rasti kenkėjišką programinę įrangą jūsų kompiuteryje ir ją pašalinti</translation>
 <translation id="4481530544597605423">Atsieti įrenginiai</translation>
+<translation id="4488107067273194838">Nustačius peržiūrėti naršyklės sinchronizavimo parinktis</translation>
 <translation id="4488502501195719518">Išvalyti visus duomenis?</translation>
 <translation id="4495419450179050807">Nerodyti šiame puslapyje</translation>
 <translation id="4496054781541092778">automatiškai užblokuota: <ph name="PERMISSION" /></translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Neįdiegti</translation>
 <translation id="4850669014075537160">Slinkimas</translation>
 <translation id="4850886885716139402">Žiūrėti</translation>
+<translation id="485197095346966382">„<ph name="IDS_SHORT_PRODUCT_NAME" />“ praneš jums, kai prisijungsite naudodami pažeistą slaptažodį</translation>
 <translation id="4853020600495124913">Atidaryti &amp;naujame lange</translation>
 <translation id="4854317507773910281">Pasirinkite vieno iš tėvų paskyrą norėdami patvirtinti</translation>
 <translation id="485480310608090163">Daugiau nustatymų ir leidimų</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN kodą sudaro netinkami simboliai</translation>
 <translation id="4871370605780490696">Žymės pridėjimas</translation>
 <translation id="4871719318659334896">Uždaryti grupę</translation>
+<translation id="4871852311166078968">Pridėti prie grupės</translation>
 <translation id="4873312501243535625">Medijos failų tikrinimo priemonė</translation>
 <translation id="4876273079589074638">Padėkite mūsų inžinieriams ištirti ir ištaisyti šią strigtį. Nurodykite tikslius veiksmus, jei galite. Nėra nesvarbios informacijos!</translation>
 <translation id="4876895919560854374">Užrakinti ir atrakinti ekraną</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Administratorius apribojo pasiekiamus įvesties metodus.</translation>
 <translation id="4994474651455208930">Leisti svetainėms pateikti pranešimus, kuriuose prašoma leisti tapti numatytosiomis protokolų apdorojimo programomis</translation>
 <translation id="4994754230098574403">Nustatoma</translation>
-<translation id="4996978546172906250">Bendrinti per</translation>
 <translation id="4997086284911172121">Nėra interneto ryšio.</translation>
 <translation id="4997384734315285248">„Plugin VM“ pašalinimas</translation>
 <translation id="4998430619171209993">Įjungta</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Pasiekite Padėjėją pasakę „Ok Google“.</translation>
 <translation id="5135533361271311778">Žymės elemento sukurti nepavyko.</translation>
 <translation id="5137501176474113045">Ištrinti šį elementą</translation>
-<translation id="5138982052046316113">„Linux“ disko dydžio keitimas</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, „<ph name="DEFAULT_SEARCH_ENGINE_NAME" />“ paieška</translation>
 <translation id="5139823398361067371">Įveskite saugos rakto PIN kodą. Jei PIN kodo nežinote, reikės iš naujo nustatyti saugos raktą.</translation>
 <translation id="5139955368427980650">&amp;Atidaryti</translation>
@@ -3520,6 +3531,7 @@
 <translation id="5739235828260127894">Laukiama patvirtinimo. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Labai didelis</translation>
 <translation id="574209121243317957">Tonas</translation>
+<translation id="5745136023067925867">Gaukite „<ph name="DEVICE_TYPE" />“ patarimų, pasiūlymų ir naujinių bei pateikite atsiliepimų</translation>
 <translation id="5746169159649715125">Išsaugoti kaip PDF</translation>
 <translation id="5747552184818312860">Galioja iki</translation>
 <translation id="5747785204778348146">Kūrėjas – nestabilus</translation>
@@ -3932,7 +3944,6 @@
 <translation id="6291953229176937411">&amp;Rodyti ieškojimo priemonėje</translation>
 <translation id="6295158916970320988">Visos svetainės</translation>
 <translation id="6295855836753816081">Išsaugoma...</translation>
-<translation id="629730747756840877">Paskyra</translation>
 <translation id="6298962879096096191">Naudoti „Google Play“ diegiant „Android“ programas</translation>
 <translation id="630065524203833229">I&amp;šeiti</translation>
 <translation id="6300718114348072351">„<ph name="PRINTER_NAME" />“ nepavyko sukonfigūruoti automatiškai. Nurodykite išplėstinius spausdintuvo duomenis. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
@@ -4338,7 +4349,6 @@
 <translation id="6865598234501509159">Puslapis rodomas ne <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">„WebRTC“ įvykių žurnalai (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Spalvų temperatūra</translation>
-<translation id="6870888490422746447">Pasirinkti programą bendrinti su:</translation>
 <translation id="6871644448911473373">OCSP atsakiklis: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Serveris atmetė įvestą slaptažodį.</translation>
 <translation id="6876155724392614295">Dviratis</translation>
@@ -4431,6 +4441,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – veiklos žurnalas</translation>
 <translation id="6997707937646349884">Jūsų įrenginiuose:</translation>
 <translation id="6998793565256476099">Užregistruoti įrenginį dalyvauti vaizdo konferencijoje</translation>
+<translation id="6999956497249459195">Nauja grupė</translation>
 <translation id="7000206553895739324">„<ph name="PRINTER_NAME" />“ prijungtas, bet jį reikia sukonfigūruoti</translation>
 <translation id="7000347579424117903">Naudokite „Ctrl“, „Alt“ arba „Search“</translation>
 <translation id="7001036685275644873">Kuriama atsarginė „Linux“ programų ir failų kopija</translation>
@@ -4729,6 +4740,7 @@
 <translation id="7400418766976504921">URL adresas</translation>
 <translation id="7400839060291901923">Nustatykite ryšį „<ph name="PHONE_NAME" />“ įrenginyje</translation>
 <translation id="7401778920660465883">Atsisakyti šio pranešimo</translation>
+<translation id="7403642243184989645">Atsisiunčiami ištekliai</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Saugos patikra atlikta prieš 1 valandą}one{Saugos patikra atlikta prieš {NUM_HOURS} valandą}few{Saugos patikra atlikta prieš {NUM_HOURS} valandas}many{Saugos patikra atlikta prieš {NUM_HOURS} valandos}other{Saugos patikra atlikta prieš {NUM_HOURS} valandų}}</translation>
 <translation id="740624631517654988">Iššokantysis langas užblokuotas</translation>
 <translation id="7407430846095439694">Importuoti ir susaistyti</translation>
@@ -4965,6 +4977,7 @@
 <translation id="7716781361494605745">„Netscape“ sertifikavimo institucijos politikos URL</translation>
 <translation id="7717014941119698257">Atsisiunčiama: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Patikrinkite, ar nėra naujinių</translation>
+<translation id="7719070594859855691">Suteikti prieigą prie fotoaparato</translation>
 <translation id="7719367874908701697">Puslapio mastelis</translation>
 <translation id="7721179060400456005">Leisti langams perdengti vaizdus</translation>
 <translation id="7722040605881499779">Kad būtų galima atnaujinti, reikia laisvos vietos: <ph name="NECESSARY_SPACE" /></translation>
@@ -4979,7 +4992,6 @@
 <translation id="7744047395460924128">Žr. spausdinimo istoriją</translation>
 <translation id="7744192722284567281">Rasta duomenų saugos pažeidime</translation>
 <translation id="7750228210027921155">Vaizdas vaizde</translation>
-<translation id="7751229152614300329">Saugaus naršymo funkcija atnaujinta ir saugo jus nuo žalingų svetainių bei atsisiuntimų</translation>
 <translation id="7751260505918304024">Rodyti visas</translation>
 <translation id="7754704193130578113">Prieš atsiunčiant failą klausti, kur jį išsaugoti</translation>
 <translation id="7755287808199759310">Jūsų tėtis ar mama gali ją atblokuoti už jus</translation>
@@ -5067,6 +5079,7 @@
     <ph name="BEGIN_BOLD" />Pastaba:<ph name="END_BOLD" /> vykdant procesą sistema bus paleista iš naujo.</translation>
 <translation id="7828731929332799387">Bus ištrinti visi su trečiosiomis šalimis susiję slapukai ir svetainių duomenys. Ar norite tęsti?</translation>
 <translation id="7829298379596169484">Pasiekiama garso įrašų įvestis</translation>
+<translation id="7829528495815477379">„<ph name="IDS_SHORT_PRODUCT_NAME" />“ negali patikrinti jūsų slaptažodžių. Pabandykite patikrinti interneto ryšį.</translation>
 <translation id="7829877209233347340">Paprašykite vieno iš tėvų prisijungti, kad suteiktų leidimą pridėti mokyklos paskyrą</translation>
 <translation id="7830594666202422257">Prijungti prie „Linux“</translation>
 <translation id="7831491651892296503">Klaida konfigūruojant tinklą</translation>
@@ -5289,6 +5302,7 @@
 <translation id="8107015733319732394">Įdiegiama „Google Play“ parduotuvė jūsų „<ph name="DEVICE_TYPE" />“ įrenginyje. Tai gali šiek tiek užtrukti.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Nėra trečiųjų šalių slapukų}=1{1 trečiųjų šalių slapukas}one{# trečiųjų šalių slapukas}few{# trečiųjų šalių slapukai}many{# trečiųjų šalių slapuko}other{# trečiųjų šalių slapukų}}</translation>
 <translation id="810875025413331850">Netoliese esančių įrenginių nerasta.</translation>
+<translation id="8114199541033039755">Eikite į pagrindinį puslapį, naršykite atgal ir perjunkite programas naudodami mygtukus planšetinio kompiuterio režimu. Įjungta, kai įgalinta „ChromeVox“ arba automatinių paspaudimų funkcija.</translation>
 <translation id="8114875720387900039">Horizontalus skaidymas</translation>
 <translation id="8116972784401310538">&amp;Žymių tvarkytuvė</translation>
 <translation id="8117620576188476503">Tvarkykite ryšius, naujinius ir nustatymus naudodami būsenos dėklą. Kad čia patektumėte naudodami klaviatūrą, paspauskite „Alt“ + „Shift“ + S.</translation>
@@ -5408,6 +5422,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> neleidžia pelės žymeklio.</translation>
 <translation id="8264024885325823677">Šį nustatymą tvarko jūsų administratorius.</translation>
 <translation id="8264718194193514834">„<ph name="EXTENSION_NAME" />“ suaktyvintas viso ekrano režimu.</translation>
+<translation id="826511437356419340">Įjungtas langų apžvalgos režimas. Norėdami naršyti perbraukite arba paspauskite tabuliavimo klavišą, jei naudojate klaviatūrą.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Tai yra bendroji informacija apie šį įrenginį ir jo naudojimą (pvz., akumuliatoriaus įkrovos lygis, sistemos ir programų veikla ir klaidos). Duomenys bus naudojami „Android“ sistemai tobulinti. Be to, tam tikra sukaupta informacija bus naudinga „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams, tobulinant programas ir produktus.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Išjungus šią funkciją vis tiek galima siųsti šio įrenginio informaciją, reikalingą pagrindinėms paslaugoms, pvz., sistemos naujiniams ir saugai.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Savininkas gali valdyti šią funkciją skiltyje „Nustatymai“ &gt; „Išplėstiniai“ &gt; „Automatiškai siųsti diagnostikos ir naudojimo duomenis „Google“.<ph name="END_PARAGRAPH3" />
@@ -5516,6 +5531,7 @@
 <translation id="8426713856918551002">Įgalinama</translation>
 <translation id="8427292751741042100">įterpta bet kurioje priegloboje</translation>
 <translation id="8428213095426709021">Nustatymai</translation>
+<translation id="8428271547607112339">Pridėti mokyklos paskyrą</translation>
 <translation id="8428628598981198790">Saugos rakto negalima naudoti šioje svetainėje</translation>
 <translation id="84297032718407999">Būsite atjungti po <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Rodyti palietimus</translation>
@@ -5579,6 +5595,7 @@
 <translation id="851263357009351303">Visada leisti <ph name="HOST" /> rodyti vaizdus</translation>
 <translation id="8513108775083588393">Automatiškai pasukti</translation>
 <translation id="8514746246728959655">Pabandykite naudoti kitą saugos raktą</translation>
+<translation id="851960115758509829">Programos, nustatymai ir kiti tinkinimai bus sinchronizuojami visuose „Chrome“ OS įrenginiuose, kuriuose esate prisijungę naudodami „Google“ paskyrą.</translation>
 <translation id="8521475323816527629">Greitai gaukite programas</translation>
 <translation id="8523493869875972733">Palikti pakeitimus</translation>
 <translation id="8523849605371521713">Pridėta pagal politiką</translation>
@@ -5860,11 +5877,13 @@
 <translation id="885701979325669005">Saugykla</translation>
 <translation id="8859057652521303089">Pasirinkite kalbą:</translation>
 <translation id="8859174528519900719">Antrinis kadras: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Vieno iš tėvų paskyra</translation>
 <translation id="8862003515646449717">Perjunkite į sparčią naršyklę</translation>
 <translation id="8863753581171631212">Atidaryti nuorodą naujoje programoje „<ph name="APP" />“</translation>
 <translation id="8864055848767439877">Bendrinamas skirtukas „<ph name="TAB_NAME" />“ su „<ph name="APP_NAME" />“</translation>
 <translation id="8864458770072227512">Paskyra <ph name="EMAIL" /> pašalinta iš šio įrenginio</translation>
 <translation id="8867228703146808825">Kopijuoti išsamią versijos informaciją į iškarpinę</translation>
+<translation id="8868333925931032127">Demonstracinio režimo paleidimas</translation>
 <translation id="8868626022555786497">Naudojama</translation>
 <translation id="8870413625673593573">Neseniai uždaryta</translation>
 <translation id="8871551568777368300">Prisegė administratorius</translation>
@@ -5943,6 +5962,7 @@
 <translation id="8966870118594285808">Atidaryti netyčia uždarytą skirtuką</translation>
 <translation id="8967866634928501045">Kad būtų parodyta, paspauskite „Alt“ + „Shift“ + A</translation>
 <translation id="8968766641738584599">Išsaugoti kortelę</translation>
+<translation id="8971800409073702505">„<ph name="IDS_SHORT_PRODUCT_NAME" />“ negali patikrinti jūsų slaptažodžių. Bandykite dar kartą po 24 val. arba <ph name="BEGIN_LINK" />patikrinkite slaptažodžius „Google“ paskyroje<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Grįžimo klavišas</translation>
 <translation id="8972513834460200407">Paklauskite tinklo administratoriaus, kad įsitikintumėte, jog užkarda neblokuoja atsisiuntimų iš „Google“ serverių.</translation>
 <translation id="8973557916016709913">Pašalinti mastelio keitimo lygį</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 7459983..3557818e 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Pieejamās ierīces</translation>
 <translation id="1042174272890264476">Jūsu datorā ir iebūvēta arī pārlūka <ph name="SHORT_PRODUCT_NAME" /> RLZ bibliotēka. RLZ piešķir neunikālu, personu neidentificējošu atzīmi, lai novērtētu noteiktas reklāmas kampaņas ietvaros ievadītos meklēšanas vienumus un pārlūka <ph name="SHORT_PRODUCT_NAME" /> lietojumu. Šīs atzīmes pārlūkā <ph name="PRODUCT_NAME" /> dažkārt tiek rādītas Google meklēšanas vaicājumos.</translation>
 <translation id="1043818413152647937">Vai notīrīt datus arī no šīm lietotnēm?</translation>
+<translation id="1045448422538531528">Pievienot grupai</translation>
 <translation id="1046635659603195359">Šķiet, ka jau esat iestatījis funkciju Voice Match Google asistentā citā ierīcē. Esošos ierakstus var izmantot balss modeļa izveidei šajā ierīcē. Uzgaidiet vēl īsu brīdi.</translation>
 <translation id="104710386808485638">Vai restartēt Linux?</translation>
 <translation id="1047431265488717055">Saites te&amp;ksta kopēšana</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Vienmēr bloķēt piekļuvi kamerai</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> vēlas atjaunot jūsu sākotnējos Chrome noklusējuma iestatījumus. Tādējādi tiks atiestatīta sākumlapa, jaunas cilnes lapa un meklētājprogramma, kā arī tiks atspējoti paplašinājumi un tiks atspraustas visas cilnes. Tiks notīrīti citi īslaicīgi glabātie dati un kešatmiņā saglabātie dati, piemēram, sīkfaili, satura un vietņu dati.</translation>
+<translation id="1084096383128641877">Noņemot šo paroli, netiks dzēsts jūsu konts vietnē <ph name="DOMAIN" />. Nomainiet savu paroli vai dzēsiet savu kontu vietnē <ph name="DOMAIN_LINK" />, lai aizsargātu to no citām personām.</translation>
 <translation id="1084824384139382525">Kopēt saites adresi</translation>
 <translation id="1085697365578766383">Startējot virtuālo mašīnu, radās kļūda. Lūdzu, mēģiniet vēlreiz.</translation>
 <translation id="1090126737595388931">Nedarbojas neviena fona lietotne</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Drošības pārbaude tika izpildīta vakar</translation>
 <translation id="1260451001046713751">Vienmēr atļaut uznirstošos logus un novirzīšanu no vietnes <ph name="HOST" /></translation>
 <translation id="126156426083987769">Radās problēma ar demonstrācijas režīma ierīces licencēm.</translation>
+<translation id="1263490604593716556">Kontu pārvalda <ph name="FIRST_PARENT_EMAIL" /> un <ph name="SECOND_PARENT_EMAIL" />. Lai izrakstītos no primārā konta šajā ierīcē, ekrānā noklikšķiniet uz laika. Parādītajā izvēlnē noklikšķiniet uz “Izrakstīties”.</translation>
 <translation id="126710816202626562">Tulkojuma valoda:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Apturēt</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Vietne</translation>
 <translation id="15662109988763471">Atlasītais printeris nav pieejams vai nav instalēts pareizi. Pārbaudiet printeri vai mēģiniet atlasīt citu printeri.</translation>
 <translation id="1567387640189251553">Kopš pēdējās reizes, kad ievadījāt paroli, ir pievienota cita tastatūra. Tā, iespējams, mēģina piesavināties jūsu taustiņsitienus.</translation>
-<translation id="1567750922576943685">Identitātes apstiprināšana palīdz aizsargāt jūsu personas informāciju</translation>
 <translation id="1567993339577891801">JavaScript konsole</translation>
 <translation id="1568323446248056064">Atvērt attēlojuma ierīces iestatījumus</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (viesa režīms)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Māksla</translation>
 <translation id="1697686431566694143">Rediģēt failu</translation>
 <translation id="1698122934742150150">Tikai pašreizējā inkognito sesijā</translation>
-<translation id="1698650002254827833">Lietotņu sarakstu nevar ielādēt. Lūdzu, mēģiniet vēlreiz.</translation>
 <translation id="1700079447639026019">Vietnes, kas nekad nedrīkst izmantot sīkfailus</translation>
 <translation id="1701062906490865540">Noņemt šo lietotāju</translation>
 <translation id="1703331064825191675">Nekad neraizējieties par parolēm</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Turpināt</translation>
 <translation id="2173302385160625112">Pārbaudiet interneta savienojumu</translation>
 <translation id="2173801458090845390">Pievienot pieprasījuma ID šai ierīcei</translation>
+<translation id="2174948148799307353">Kontu pārvalda <ph name="PARENT_EMAIL" />. Lai izrakstītos no primārā konta šajā ierīcē, ekrānā noklikšķiniet uz laika. Parādītajā izvēlnē noklikšķiniet uz “Izrakstīties”.</translation>
 <translation id="2175607476662778685">Ātrās darbības josla</translation>
 <translation id="217576141146192373">Nevar pievienot printeri. Lūdzu, pārbaudiet printera konfigurāciju un mēģiniet vēlreiz.</translation>
 <translation id="2177950615300672361">Inkognito režīma cilne: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Teksta ēna</translation>
 <translation id="2445081178310039857">Nepieciešams paplašinājuma saknes direktorijs.</translation>
 <translation id="2445484935443597917">Izveidot jaunu profilu</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> vēlas verificēt jūsu identitāti</translation>
 <translation id="2448312741937722512">Tips</translation>
 <translation id="2450223707519584812">Jūs nevarēsiet pievienot lietotājus, jo trūkst Google API atslēgu. Detalizētu informāciju skatiet vietnē <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Nav aktīvu skatījumu</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Doties uz lapu <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Ātrs, vienkāršs un drošs tīmekļa pārlūks, kas izstrādāts modernam tīmeklim.</translation>
 <translation id="2949289451367477459">Atrašanās vietas izmantošana. Ļauj lietotnēm un pakalpojumiem ar atrašanās vietas atļauju izmantot šīs ierīces atrašanās vietas datus. Google var periodiski apkopot atrašanās vietas datus un tos anonīmi izmantot, lai uzlabotu atrašanās vietas precizitāti un ar atrašanās vietu saistītus pakalpojumus. <ph name="BEGIN_LINK1" />Uzziniet vairāk.<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Reģistrēties</translation>
 <translation id="2956070239128776395">Sadaļa ligzdota grupā: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Neļaut nevienai vietnei rediģēt ierīces failus vai mapes</translation>
 <translation id="2958721676848865875">Paplašinājuma pakošanas brīdinājums</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Noklusējuma iemiesojums dzeltenā krāsā</translation>
 <translation id="3141318088920353606">Notiek klausīšanās…</translation>
 <translation id="3141917231319778873">Attiecīgais pieprasījums netiek atbalstīts šajā ierīcē: “<ph name="DEVICE_NAME" />”.</translation>
+<translation id="3142562627629111859">Jauna grupa</translation>
 <translation id="3143515551205905069">Atcelt sinhronizāciju</translation>
 <translation id="3143754809889689516">Atskaņot no sākuma</translation>
 <translation id="3144647712221361880">Atvērt saiti kā</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Bēša</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ar krātuvi aparatūrā)</translation>
 <translation id="3161522574479303604">Visas valodas</translation>
+<translation id="3162853326462195145">Skolas konts</translation>
 <translation id="3162899666601560689">Vietnes drīkst izmantot sīkfailus, lai uzlabotu pārlūkošanas pieredzi, piemēram, lai nodrošinātu ilgstošu pierakstīšanos vai saglabātu pirkumu grozā ievietotās preces.</translation>
 <translation id="3163201441334626963">Nezināms produkts (ID: <ph name="PRODUCT_ID" />), ko piedāvā <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Šī cilne tiek kopīgota lietotnē <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Ierīce jāatjaunina dienas laikā}zero{Ierīce jāatjaunina # dienu laikā}one{Ierīce jāatjaunina # dienas laikā}other{Ierīce jāatjaunina # dienu laikā}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> — tīkla kļūda</translation>
 <translation id="3248902735035392926">Drošība ir svarīga. Atvēliet mirkli laika un <ph name="BEGIN_LINK" />pārbaudiet paplašinājumus tūlīt<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Nav daļa no sertifikāta&gt;</translation>
 <translation id="3253225298092156258">Nav pieejams</translation>
 <translation id="3253448572569133955">Nezināms konts</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Noklikšķinot uz pogas “Piekrist un turpināt”, jūs piekrītat iepriekš aprakstītajai apstrādei šajos Google pakalpojumos.</translation>
 <translation id="3399432415385675819">Paziņojumi tiks atspējoti</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> herci) — rindpārlēces izvērse</translation>
+<translation id="3402585168444815892">Notiek reģistrēšanās demonstrācijas režīmā</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Šai vietnei nav saglabāta neviena parole</translation>
 <translation id="3405664148539009465">Pielāgot fontus</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android tālrunis</translation>
 <translation id="3470442499439619530">Noņemt šo lietotāju</translation>
 <translation id="3471876058939596279">HDMI un USB Type-C pieslēgvietas nevar izmantot vienlaikus video rādīšanai. Izmantojiet citu video pieslēgvietu.</translation>
+<translation id="3473241910002674503">Pārejiet uz sākumu, atpakaļ un pārslēdziet lietotnes, izmantojot pogas planšetdatora režīmā.</translation>
 <translation id="3473479545200714844">Ekrāna lupa</translation>
 <translation id="3475843873335999118">Diemžēl jūsu pirksta nospiedums joprojām nav atpazīts. Lūdzu, ievadiet savu paroli.</translation>
 <translation id="3476303763173086583">Lietojuma un diagnostikas datu sūtīšana. Palīdziet uzlabot bērna Android lietošanas pieredzi, automātiski nosūtot diagnostikas, ierīces un lietotņu lietojuma datus uzņēmumam Google. Šī informācija netiks izmantota jūsu bērna identificēšanai, un tā palīdzēs uzlabot sistēmas un lietotņu stabilitāti un daudz ko citu. Noteiktus apkopotus datus izmantos arī Google lietotņu izstrādātāji un partneri, piemēram, Android izstrādātāji. Šo <ph name="BEGIN_LINK1" />iestatījumu<ph name="END_LINK1" /> ir noteicis īpašnieks. Īpašnieks var izvēlēties nosūtīt šīs ierīces diagnostikas un lietojuma datus uz Google serveriem. Ja jūsu bērnam ir ieslēgts papildu iestatījums “Darbības tīmeklī un lietotnēs”, šie dati var tikt saglabāti bērna Google kontā. <ph name="BEGIN_LINK2" />Uzzināt vairāk<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Šai drošības atslēgai ir pirkstu nospiedumi</translation>
 <translation id="3973660817924297510">Notiek paroļu pārbaude (<ph name="CHECKED_PASSWORDS" /> no <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Sazināšanās ar serveri nozarojumam neizdevās</translation>
+<translation id="3975884715086515476">Pārlūkprogrammā <ph name="IDS_SHORT_PRODUCT_NAME" /> nevar pārbaudīt jūsu paroles. Vēlāk mēģiniet vēlreiz.</translation>
 <translation id="3976108569178263973">Neviens printeris nav pieejams.</translation>
 <translation id="397703832102027365">Notiek pabeigšana...</translation>
 <translation id="3977886311744775419">Kad izveidots savienojums ar šāda veida tīklu, atjauninājumi netiek lejupielādēti automātiski, taču varat manuāli pārbaudīt, vai tie ir pieejami.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Šajā lapā ir elementi no šādām vietnēm, kas izseko jūsu atrašanās vietu:</translation>
 <translation id="4068776064906523561">Saglabātie pirkstu nospiedumi</translation>
 <translation id="407173827865827707">Noklikšķinot</translation>
+<translation id="4073520450811433493">Iestatījumu sinhronizācija</translation>
 <translation id="4074900173531346617">E-pasta parakstītāja sertifikāts</translation>
 <translation id="407520071244661467">Mērogs</translation>
 <translation id="4075639477629295004">Nevar apraidīt failu <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Minka</translation>
 <translation id="4423376891418188461">Atjaunot iestatījumus</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, jūsu administrators pieprasa paroles maiņu.</translation>
+<translation id="4426209360861763174">Pārlūkprogrammā <ph name="IDS_SHORT_PRODUCT_NAME" /> nevar pārbaudīt jūsu paroles. Mēģiniet vēlreiz pēc 24 stundām.</translation>
 <translation id="4429030830601238961">Ar šiem datiem tiek pārkāptas jūsu organizācijas drošības politikas, un tos nevar ielīmēt.</translation>
 <translation id="4430019312045809116">Skaļums</translation>
 <translation id="4430369329743628066">Grāmatzīme pievienota</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Vai vēlaties automātiski startēt šo lietotni, kad tiek ieslēgta ierīce?</translation>
 <translation id="4441147046941420429">Lai turpinātu, noņemiet drošības atslēgu no savas ierīces, pēc tam ievietojiet to atkārtoti un pieskarieties tās aktivizācijas pogai.</translation>
 <translation id="444134486829715816">Izvērst...</translation>
+<translation id="4442329324652245220">Pārlūkprogrammā <ph name="IDS_SHORT_PRODUCT_NAME" /> var pārbaudīt jūsu paroles, ja esat pierakstījies savā Google kontā.</translation>
 <translation id="4442424173763614572">DNS uzmeklēšana neizdevās</translation>
 <translation id="4443536555189480885">&amp;Palīdzība</translation>
 <translation id="4444304522807523469">Piekļūt dokumentu skeneriem, kas pievienoti, izmantojot USB vai lokālajā tīklā</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Lai skenētu šo kodu, varat izmantot QR skenēšanas lietotni tālrunī vai noteiktas kameras lietotnes.</translation>
 <translation id="4477015793815781985">Iekļaujiet taustiņu Ctrl, Alt vai ⌘</translation>
 <translation id="4478664379124702289">Saglabāt saiti &amp;kā...</translation>
+<translation id="4478777936860197922">Nav saglabātu paroļu. Pārlūkprogrammā <ph name="IDS_SHORT_PRODUCT_NAME" /> var pārbaudīt jūsu paroles, ja jūs tās saglabājat.</translation>
 <translation id="4479424953165245642">Pārvaldīt kioska lietojumprogrammas</translation>
 <translation id="4479639480957787382">tīkls Ethernet</translation>
 <translation id="4479877282574735775">Notiek virtuālās mašīnas konfigurēšana. Tas var ilgt dažas minūtes.</translation>
 <translation id="4480590691557335796">Pārlūks Chrome jūsu datorā var atrast kaitīgu programmatūru un noņemt to.</translation>
 <translation id="4481530544597605423">Pārī nesavienotās ierīces</translation>
+<translation id="4488107067273194838">Pārskatīt pārlūkprogrammas sinhronizācijas opcijas pēc iestatīšanas</translation>
 <translation id="4488502501195719518">Vai dzēst visus datus?</translation>
 <translation id="4495419450179050807">Nerādīt šajā lapā</translation>
 <translation id="4496054781541092778">automātiski bloķēta atļauja “<ph name="PERMISSION" />”</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Neinstalēt</translation>
 <translation id="4850669014075537160">Ritināšana</translation>
 <translation id="4850886885716139402">Skatīt</translation>
+<translation id="485197095346966382">Ja pierakstīsieties ar uzlauztu paroli, pārlūkprogrammā <ph name="IDS_SHORT_PRODUCT_NAME" /> tiks parādīts paziņojums.</translation>
 <translation id="4853020600495124913">Atvērt &amp;jaunā logā</translation>
 <translation id="4854317507773910281">Izvēlieties vecāku kontu apstiprinājuma saņemšanai.</translation>
 <translation id="485480310608090163">Citi iestatījumi un atļaujas</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN satur nederīgas rakstzīmes</translation>
 <translation id="4871370605780490696">Pievienot grāmatzīmi</translation>
 <translation id="4871719318659334896">Aizvērt grupu</translation>
+<translation id="4871852311166078968">Pievienot grupai</translation>
 <translation id="4873312501243535625">Multivides failu pārbaudītājs</translation>
 <translation id="4876273079589074638">Palīdziet mūsu inženieriem izpētīt un novērst šo avāriju. Ja varat, norādiet konkrētas darbības (jo detalizētāk, jo labāk).</translation>
 <translation id="4876895919560854374">Bloķēt un atbloķēt ekrānu</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Administrators ir ierobežojis pieejamās ievades metodes.</translation>
 <translation id="4994474651455208930">Ļaut vietnēm lūgt kļūt par protokolu noklusējuma apdarinātājiem</translation>
 <translation id="4994754230098574403">Notiek iestatīšana</translation>
-<translation id="4996978546172906250">Kopīgošanas veids:</translation>
 <translation id="4997086284911172121">Nav interneta savienojuma.</translation>
 <translation id="4997384734315285248">Atinstalēt Plugin VM</translation>
 <translation id="4998430619171209993">Ieslēgts</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Piekļūt Asistentam, kad sakāt: “Ok Google.”</translation>
 <translation id="5135533361271311778">Nevarēja izveidot grāmatzīmes vienumu.</translation>
 <translation id="5137501176474113045">Dzēst šo vienumu</translation>
-<translation id="5138982052046316113">Linux diska lieluma mainīšana</translation>
 <translation id="5139112070765735680">Meklēšana: <ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Ievadiet drošības atslēgas PIN. Ja nezināt PIN, būs jāatiestata drošības atslēga.</translation>
 <translation id="5139955368427980650">Atvērt</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Tiek gaidīta verifikācija. <ph name="LINK_BEGIN" />Uzziniet vairāk<ph name="LINK_END" />.</translation>
 <translation id="5739458112391494395">Ļoti liels</translation>
 <translation id="574209121243317957">Tonis</translation>
+<translation id="5745136023067925867">Saņemiet ierīces (<ph name="DEVICE_TYPE" />) padomus, piedāvājumus un jaunumus, kā arī sniedziet atsauksmes.</translation>
 <translation id="5746169159649715125">Saglabāt kā PDF failu</translation>
 <translation id="5747552184818312860">Termiņš</translation>
 <translation id="5747785204778348146">Izstrādātāju — nav stabila</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">Rādīt lietojumprogrammā &amp;Finder</translation>
 <translation id="6295158916970320988">Visas vietnes</translation>
 <translation id="6295855836753816081">Notiek saglabāšana...</translation>
-<translation id="629730747756840877">Konts</translation>
 <translation id="6298962879096096191">Izmantojiet Google Play, lai instalētu Android lietotnes</translation>
 <translation id="630065524203833229">I&amp;ziet</translation>
 <translation id="6300718114348072351">Printeri (<ph name="PRINTER_NAME" />) neizdevās konfigurēt automātiski. Lūdzu, norādiet detalizētu informāciju par printeri. <ph name="LINK_BEGIN" />Uzzināt vairāk<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Lapa nav šādā valodā: <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC notikumu žurnāli (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Krāsu temperatūra</translation>
-<translation id="6870888490422746447">Izvēlieties koplietojamo lietotni:</translation>
 <translation id="6871644448911473373">OCSP atbildētājs: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Ievadīto paroli noraidīja serveris.</translation>
 <translation id="6876155724392614295">Velosipēds</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" />— darbību žurnāls</translation>
 <translation id="6997707937646349884">Jūsu ierīcēs:</translation>
 <translation id="6998793565256476099">Reģistrēt ierīci videokonferencēm</translation>
+<translation id="6999956497249459195">Jauna grupa</translation>
 <translation id="7000206553895739324">Printeris <ph name="PRINTER_NAME" /> ir pievienots, bet tam ir nepieciešama konfigurācija</translation>
 <translation id="7000347579424117903">Jāiekļauj “Ctrl”, “Alt” vai “Search”</translation>
 <translation id="7001036685275644873">Linux lietotņu un failu dublēšana</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Savienojuma iestatīšana tālrunī <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Noraidīt šo ziņojumu</translation>
+<translation id="7403642243184989645">Notiek resursu lejupielāde</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Drošības pārbaude tika izpildīta pirms 1 stundas}zero{Drošības pārbaude tika izpildīta pirms {NUM_HOURS} stundām}one{Drošības pārbaude tika izpildīta pirms {NUM_HOURS} stundas}other{Drošības pārbaude tika izpildīta pirms {NUM_HOURS} stundām}}</translation>
 <translation id="740624631517654988">Uznirstošie logi bloķēti</translation>
 <translation id="7407430846095439694">Importēt un saistīt</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">Netscape sertifikāta izdevējiestādes politikas URL</translation>
 <translation id="7717014941119698257">Notiek lejupielāde: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Atjauninājumu pieejamības pārbaude</translation>
+<translation id="7719070594859855691">Piekļuves piešķiršana kamerai</translation>
 <translation id="7719367874908701697">Lapas tālummaiņa</translation>
 <translation id="7721179060400456005">Atļaut izvērst logus pa vairākiem displejiem</translation>
 <translation id="7722040605881499779">Atjauninājumam nepieciešamā vieta: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Skatiet savu drukāšanas vēsturi</translation>
 <translation id="7744192722284567281">Atklāta datu pārkāpuma dēļ</translation>
 <translation id="7750228210027921155">Attēls attēlā</translation>
-<translation id="7751229152614300329">Funkcija Droša pārlūkošana ir atjaunināta un aizsargā jūs no kaitīgām vietnēm un lejupielādēm.</translation>
 <translation id="7751260505918304024">Rādīt visu</translation>
 <translation id="7754704193130578113">Jautāt, kur saglabāt ikvienu failu pirms lejuplādēšanas</translation>
 <translation id="7755287808199759310">Lai atbloķētu, vēsieties pie vecāka</translation>
@@ -5065,6 +5077,7 @@
     <ph name="BEGIN_BOLD" />Piezīme.<ph name="END_BOLD" /> Procesa laikā sistēma tiks atkārtoti palaista.</translation>
 <translation id="7828731929332799387">Tiks dzēsti visi sīkfaili un vietņu dati, kas pieejami trešo pušu kontekstā. Vai vēlaties turpināt?</translation>
 <translation id="7829298379596169484">Notiek piekļūšana audio ievadei</translation>
+<translation id="7829528495815477379">Pārlūkprogrammā <ph name="IDS_SHORT_PRODUCT_NAME" /> nevar pārbaudīt jūsu paroles. Pārbaudiet interneta savienojumu.</translation>
 <translation id="7829877209233347340">Lūdziet vienam no vecākiem pierakstīties, lai piešķirtu atļauju mācību iestādes konta pievienošanai</translation>
 <translation id="7830594666202422257">Izveidot savienojumu ar Linux</translation>
 <translation id="7831491651892296503">Tīkla konfigurācijas kļūda</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">Notiek Google Play veikala instalēšana jūsu ierīcē (<ph name="DEVICE_TYPE" />). Tas var ilgt dažas minūtes.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Nav trešās puses sīkfailu}=1{Bloķēts 1 trešās puses sīkfails}zero{Bloķēti # trešās puses sīkfaili}one{Bloķēts # trešās puses sīkfails}other{Bloķēti # trešās puses sīkfaili}}</translation>
 <translation id="810875025413331850">Nav atrasta neviena tuvumā esoša ierīce.</translation>
+<translation id="8114199541033039755">Pārejiet uz sākumu, atpakaļ un pārslēdziet lietotnes, izmantojot pogas planšetdatora režīmā. Ieslēgts, kad ir iespējots ChromeVox vai automātiskie klikšķi.</translation>
 <translation id="8114875720387900039">Horizontāls dalījums</translation>
 <translation id="8116972784401310538">&amp;Grāmatzīmju pārvaldnieks</translation>
 <translation id="8117620576188476503">Statusa joslā varat pārvaldīt savienojumus, atjauninājumus un iestatījumus. Lai tai piekļūtu, nospiediet taustiņu kombināciju Alt + Shift + S.</translation>
@@ -5406,6 +5420,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ir atspējojis jūsu peles kursoru.</translation>
 <translation id="8264024885325823677">Šo iestatījumu pārvalda jūsu administrators.</translation>
 <translation id="8264718194193514834">Paplašinājums <ph name="EXTENSION_NAME" /> aktivizēja pilnekrāna režīmu.</translation>
+<translation id="826511437356419340">Tika atvērts logu kopsavilkuma režīms. Velciet, lai pārvietotos, vai nospiediet tabulēšanas taustiņu, ja izmantojat tastatūru.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Šī ir vispārīga informācija par šo ierīci un tās lietošanu (piemēram, par akumulatora uzlādes līmeni, sistēmas un lietotņu darbībām un kļūdām). Dati tiks izmantoti, lai uzlabotu Android darbību. Daļa apkopotās informācijas arī palīdzēs Google lietotnēm un partneriem, piemēram, Android izstrādātājiem, uzlabot lietotnes un produktus.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Izslēdzot šo funkciju, netiks ietekmēta jūsu ierīces spēja nosūtīt informāciju, kas nepieciešama, lai saņemtu būtiskus pakalpojumus, piemēram, sistēmas atjauninājumus un drošības funkcijas.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Īpašnieks var kontrolēt šo funkciju, pārejot uz sadaļu Iestatījumi &gt; Papildu &gt; Automātiski sūtīt diagnostikas un lietojuma datus Google serveriem.<ph name="END_PARAGRAPH3" />
@@ -5514,6 +5529,7 @@
 <translation id="8426713856918551002">Notiek iespējošana</translation>
 <translation id="8427292751741042100">iegulta jebkurā vietnē</translation>
 <translation id="8428213095426709021">Iestatījumi</translation>
+<translation id="8428271547607112339">Pievienot skolas kontu</translation>
 <translation id="8428628598981198790">Jūsu drošības atslēgu nevar izmantot ar šo vietni</translation>
 <translation id="84297032718407999">Jūs tiksiet izrakstīts pēc šāda laika: <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Pieskārienu rādīšana</translation>
@@ -5577,6 +5593,7 @@
 <translation id="851263357009351303">Vienmēr atļaut vietnei <ph name="HOST" /> rādīt attēlus</translation>
 <translation id="8513108775083588393">Automātiska pagriešana</translation>
 <translation id="8514746246728959655">Pamēģiniet citu drošības atslēgu</translation>
+<translation id="851960115758509829">Jūsu lietotnes, iestatījumi un citi pielāgojumi tiks sinhronizēti visās Chrome OS ierīcēs, kurās esat pierakstījies, izmantojot savu Google kontu.</translation>
 <translation id="8521475323816527629">Ātri piekļūstiet savām lietotnēm</translation>
 <translation id="8523493869875972733">Saglabāt izmaiņas</translation>
 <translation id="8523849605371521713">Pievienots, jo iestatīts politikā</translation>
@@ -5858,11 +5875,13 @@
 <translation id="885701979325669005">Krātuve</translation>
 <translation id="8859057652521303089">Atlasiet savu valodu:</translation>
 <translation id="8859174528519900719">Apakšrāmis: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Vecāku konts</translation>
 <translation id="8862003515646449717">Pāreja uz ātru pārlūku</translation>
 <translation id="8863753581171631212">Atvērt saiti jaunā <ph name="APP" /> logā</translation>
 <translation id="8864055848767439877">Notiek <ph name="TAB_NAME" /> kopīgošana lietotnē <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Konts <ph name="EMAIL" /> tika noņemts no šīs ierīces</translation>
 <translation id="8867228703146808825">Kopējiet starpliktuvē detalizētu būvējuma informāciju</translation>
+<translation id="8868333925931032127">Notiek demonstrācijas režīma palaišana</translation>
 <translation id="8868626022555786497">Tiek lietots</translation>
 <translation id="8870413625673593573">Nesen aizvērtas</translation>
 <translation id="8871551568777368300">Piesprauda administrators</translation>
@@ -5941,6 +5960,7 @@
 <translation id="8966870118594285808">Ja nejauši aizvērāt cilni, atveriet to atkārtoti</translation>
 <translation id="8967866634928501045">Lai skatītu saturu, nospiediet Alt+Shift+A.</translation>
 <translation id="8968766641738584599">Saglabāt karti</translation>
+<translation id="8971800409073702505">Pārlūkprogrammā <ph name="IDS_SHORT_PRODUCT_NAME" /> nevar pārbaudīt jūsu paroles. Mēģiniet vēlreiz pēc 24 stundām vai <ph name="BEGIN_LINK" />pārbaudiet paroles savā Google kontā<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Lūdzu, sazinieties ar savu tīkla administratoru, lai pārliecinātos, vai ugunsmūris nebloķē lejupielādes no Google serveriem.</translation>
 <translation id="8973557916016709913">Noņemt tālummaiņas līmeni</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index 5473e6e4..5d5fedee 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Достапни уреди</translation>
 <translation id="1042174272890264476">Вашиот компјутер е со вградена <ph name="SHORT_PRODUCT_NAME" /> RLZ библиотека. RLZ доделува неуникатна, не-лична идентификувачка картичка за мерење на пребарувањата и користење на <ph name="SHORT_PRODUCT_NAME" /> поттикнато од одредена промотивна кампања. Овие ознаки понекогаш се појавуваат во прашалници за пребарување на Google во <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Да се избришат податоците и од овие апликации?</translation>
+<translation id="1045448422538531528">Додајте во група</translation>
 <translation id="1046635659603195359">Изгледа веќе сте ја поставиле Voice Match за вашиот „Помошник на Google“ на друг уред. Претходните снимки може да се користат за да се направи гласовниот модел за уредов. Би требало да трае помалку од минута.</translation>
 <translation id="104710386808485638">Да се рестартира Linux?</translation>
 <translation id="1047431265488717055">Копирај го &amp;текстот на врската</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Секогаш блокирај пристап до камера</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> сака да ги врати поставките на Chrome на нивните оригинални стандардни вредности. Ова ќе ја ресетира вашата почетна страница, страницата во нова картичка и пребарувачот, ќе ги оневозможи вашите екстензии и ќе ги откачи сите картички. Исто така, ќе ги исчисти останатите привремени и кеширани податоци, како што се колачиња, содржини и податоци на локацијата.</translation>
+<translation id="1084096383128641877">Со отстранувањето на лозинкава нема да се избрише вашата сметка на <ph name="DOMAIN" />. Сменете ја лозинката или избришете ја сметката на <ph name="DOMAIN_LINK" /> за да ви биде безбедна од другите.</translation>
 <translation id="1084824384139382525">Копирај адр&amp;еса на врска</translation>
 <translation id="1085697365578766383">Грешка при стартувањето на виртуелната машина. Обидете се повторно.</translation>
 <translation id="1090126737595388931">Нема активни апликации во заднина</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Безбедносната проверка беше извршена вчера</translation>
 <translation id="1260451001046713751">Секогаш дозволувај скокачки прозорци и пренасочувања од <ph name="HOST" /></translation>
 <translation id="126156426083987769">Настана проблем со лиценците на уредот во демо-режим.</translation>
+<translation id="1263490604593716556"><ph name="FIRST_PARENT_EMAIL" /> и <ph name="SECOND_PARENT_EMAIL" /> управуваат со сметката. За да се одјавите од примарната сметка на уредов, кликнете го времето на екранот. Во менито што ќе се појави, кликнете „Одјави се“.</translation>
 <translation id="126710816202626562">Јазик на превод:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Запри</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Веб-сајт</translation>
 <translation id="15662109988763471">Избраниот печатач не е достапен или не е правилно инсталиран. Проверете го или обидете се да изберете друг печатач.</translation>
 <translation id="1567387640189251553">Поврзана е друга тастатура од последниот пат кога ја внесовте вашата лозинка. Можеби се обидува да ви ги украде ударите на тастатурата.</translation>
-<translation id="1567750922576943685">Потврдувањето на идентитетот помага да се заштитат вашите лични информации</translation>
 <translation id="1567993339577891801">Конзола за JavaScript</translation>
 <translation id="1568323446248056064">Отворете ги поставките на уредот за екранот</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Гостин)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Уметност</translation>
 <translation id="1697686431566694143">Измени датотека</translation>
 <translation id="1698122934742150150">Само тековната инкогнито сесија</translation>
-<translation id="1698650002254827833">Списокот со апликации не може да се вчита. Обидете се повторно.</translation>
 <translation id="1700079447639026019">Сајтови што никогаш не може да користат колачиња</translation>
 <translation id="1701062906490865540">Отстрани го ова лице</translation>
 <translation id="1703331064825191675">Не грижете се за своите лозинки</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Продолжи</translation>
 <translation id="2173302385160625112">Проверете ја вашата интернет-врска</translation>
 <translation id="2173801458090845390">Додајте ID на барање на уредов</translation>
+<translation id="2174948148799307353"><ph name="PARENT_EMAIL" /> управува со сметката. За да се одјавите од примарната сметка на уредов, кликнете го времето на екранот. Во менито што ќе се појави, кликнете „Одјави се“.</translation>
 <translation id="2175607476662778685">Лента за брзо активирање</translation>
 <translation id="217576141146192373">Не може да се додаде печатач. Проверете ја конфигурацијата на печатачот и обидете се повторно.</translation>
 <translation id="2177950615300672361">Инкогнито картичка: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Сенка на текстот</translation>
 <translation id="2445081178310039857">Потребен е основен директориум на наставки.</translation>
 <translation id="2445484935443597917">Создај нов профил</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> сака да го потврди вашиот идентитет</translation>
 <translation id="2448312741937722512">Тип</translation>
 <translation id="2450223707519584812">Нема да може да додадете корисници, затоа што недостасуваат клучевите на Google API. Видете ја <ph name="DETAILS_URL" /> за повеќе детали.</translation>
 <translation id="2450849356604136918">Нема активни прикази</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Оди на <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Брз, едноставен и безбеден веб-прелистувач, направен за модерениот веб.</translation>
 <translation id="2949289451367477459">Користење локација. Дозволете апликациите и услугите со дозвола за локација да ја користат локацијата на уредов. Google може повремено да собира податоци за локацијата и да ги користи на анонимен начин за да ја подобри прецизноста на локацијата и услугите што се базираат на локација. <ph name="BEGIN_LINK1" />Дознајте повеќе<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Регистрирај ме</translation>
 <translation id="2956070239128776395">Дел вгнезден во група: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Не дозволувај сајтовите да изменуваат датотеки или папки на уредот</translation>
 <translation id="2958721676848865875">Предупредување за екстензијата на пакетот</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Стандарден жолт аватар</translation>
 <translation id="3141318088920353606">Се слуша…</translation>
 <translation id="3141917231319778873">Даденото барање не е поддржано на: „<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Нова група</translation>
 <translation id="3143515551205905069">Откажи ја синхронизацијата</translation>
 <translation id="3143754809889689516">Пушти од почеток</translation>
 <translation id="3144647712221361880">Отвори ја врската како</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Беж</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (со хардверски бекап)</translation>
 <translation id="3161522574479303604">Сите јазици</translation>
+<translation id="3162853326462195145">Училишна сметка</translation>
 <translation id="3162899666601560689">Сајтовите може да користат колачиња за да го подобрат вашето доживување со прелистувањето, на пример, да ве одржат најавени или да запомнат ставки во кошничката за купување</translation>
 <translation id="3163201441334626963">Непознат производ <ph name="PRODUCT_ID" /> од продавачот <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Картичкава се споделува на <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Ажурирајте го уредот во рок од еден ден}one{Ажурирајте го уредот во рок од # ден}other{Ажурирајте го уредот во рок од # дена}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - мрежна грешка</translation>
 <translation id="3248902735035392926">Безбедноста е значајна. Одвојте малку време и <ph name="BEGIN_LINK" />проверите ги екстензиите сега<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Не е дел од сертификатот&gt;</translation>
 <translation id="3253225298092156258">Не е достапна</translation>
 <translation id="3253448572569133955">Непозната сметка</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Ако кликнете на копчето „Прифати и продолжи“, се согласувате со обработката опишана погоре за овие услуги на Google.</translation>
 <translation id="3399432415385675819">Известувањата ќе се оневозможат</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> Х <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz) - испреплетено</translation>
+<translation id="3402585168444815892">Се регистрира во демо-режим</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Нема зачувани лозинки за сајтов</translation>
 <translation id="3405664148539009465">Приспособете ги фонтовите</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Телефон со Android</translation>
 <translation id="3470442499439619530">Отстрани го овој корисник</translation>
 <translation id="3471876058939596279">HDMI-портата и USB-портата од типот C не може да се користат за видео истовремено. Користете друга видеопорта.</translation>
+<translation id="3473241910002674503">Одете на почетен екран, вратете се назад и префрлајте меѓу апликации со копчиња во режим на таблет.</translation>
 <translation id="3473479545200714844">Лупа за екран</translation>
 <translation id="3475843873335999118">За жал, сѐ уште не може да се препознае вашиот отпечаток. Внесете ја лозинката.</translation>
 <translation id="3476303763173086583">Испраќајте податоци за користење и дијагностика. Помогнете ни да го подобриме искуството на вашето дете со Android со автоматско испраќање дијагностички и податоци за користењето на уредот и апликациите до Google. Овие податоци нема да се користат за идентификација на вашето дете, а ќе ни помогнат околу стабилноста на системот и апликациите и за други подобрувања. Некои збирни податоци ќе им помогнат на апликациите и партнерите на Google, како што се програмерите на Android. Оваа <ph name="BEGIN_LINK1" />поставка<ph name="END_LINK1" /> е наметната од сопственикот. Сопственикот може да избере да испраќа дијагностички и податоци за користењето на овој уред до Google. Ако сте ја вклучиле дополнителната поставка „Активност на интернет и апликации“ за вашето дете, овие податоци може да се зачувуваат во сметката на Google на детето. <ph name="BEGIN_LINK2" />Дознајте повеќе<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Отпечатоци на овој безбедносен клуч</translation>
 <translation id="3973660817924297510">Се проверуваат лозинките (<ph name="CHECKED_PASSWORDS" /> од <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Контактирањето со серверот за домен не успеа</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може да ги провери вашите лозинки. Обидете се пак подоцна.</translation>
 <translation id="3976108569178263973">Нема достапни печатачи.</translation>
 <translation id="397703832102027365">Се финализира...</translation>
 <translation id="3977886311744775419">Автоматските ажурирања не се преземаат автоматски на овој тип мрежа, но може да проверите дали има ажурирања рачно.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Оваа страница содржи елементи од следниве локации кои ја следат вашата локација:</translation>
 <translation id="4068776064906523561">Зачувани отпечатоци</translation>
 <translation id="407173827865827707">На клик</translation>
+<translation id="4073520450811433493">Синхронизација на поставките</translation>
 <translation id="4074900173531346617">Сертификат на потписник на е-пошта</translation>
 <translation id="407520071244661467">Размер</translation>
 <translation id="4075639477629295004">Не може да се емитува <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Fluffy</translation>
 <translation id="4423376891418188461">Обнови поставки</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, администраторот бара да ја смените лозинката.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може да ги провери вашите лозинки. Обидете се пак по 24 часа.</translation>
 <translation id="4429030830601238961">Овие податоци ги прекршуваат безбедносните правила на вашата организација и не може да се залепат.</translation>
 <translation id="4430019312045809116">Гласност</translation>
 <translation id="4430369329743628066">Додаден е обележувач</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Дали сакате автоматски да ја стартувате оваа апликација кога се вклучува машината?</translation>
 <translation id="4441147046941420429">За да продолжите, отстранете го безбедносниот клуч од уредот, а потоа повторно вметнете го и допрете го</translation>
 <translation id="444134486829715816">Прошири…</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> може да ги проверува вашите лозинки кога ќе се најавите со вашата сметка на Google.</translation>
 <translation id="4442424173763614572">Барањето DNS не успеа</translation>
 <translation id="4443536555189480885">&amp;Помош</translation>
 <translation id="4444304522807523469">Пристап до скенери за документи поврзани преку USB или на локалната мрежа</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">За да го скенирате кодов, може да користите апликација за QR-скенер на вашиот телефон или некои апликации за камера.</translation>
 <translation id="4477015793815781985">Опфатете Ctrl, Alt или ⌘</translation>
 <translation id="4478664379124702289">Сними ја врс&amp;ката како…</translation>
+<translation id="4478777936860197922">Нема зачувани лозинки. <ph name="IDS_SHORT_PRODUCT_NAME" /> може да ги проверува вашите лозинки кога ги зачувувате.</translation>
 <translation id="4479424953165245642">Управување со киоск-апликации</translation>
 <translation id="4479639480957787382">Етернет</translation>
 <translation id="4479877282574735775">Се конфигурира виртуелната машина. Ова може да потрае неколку минути.</translation>
 <translation id="4480590691557335796">Chrome може да најде штетен софтвер на вашиот компјутер и да го отстрани</translation>
 <translation id="4481530544597605423">Неспарени уреди</translation>
+<translation id="4488107067273194838">Прегледајте ги опциите за синхронизирање на прелистувачот по поставувањето</translation>
 <translation id="4488502501195719518">Да се исчистат сите податоци?</translation>
 <translation id="4495419450179050807">Да не се покажува на оваа страница</translation>
 <translation id="4496054781541092778">автоматски ја блокираше <ph name="PERMISSION" /></translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Не инсталирај</translation>
 <translation id="4850669014075537160">Лизгање</translation>
 <translation id="4850886885716139402">Приказ</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> ќе ве извести кога ќе се најавите со компромитирана лозинка</translation>
 <translation id="4853020600495124913">Отвори во &amp;нов прозорец</translation>
 <translation id="4854317507773910281">Избери сметка на родител за одобрување</translation>
 <translation id="485480310608090163">Повеќе лозинки и дозволи</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN-кодот содржи неважечки знаци</translation>
 <translation id="4871370605780490696">Додајте обележувач</translation>
 <translation id="4871719318659334896">Затвори ја групата</translation>
+<translation id="4871852311166078968">Додајте во група</translation>
 <translation id="4873312501243535625">Проверувач на медиумска датотека</translation>
 <translation id="4876273079589074638">Помогнете им на нашите инженери да го истражат и поправат падот. Наведете ги прецизните чекори ако можете. Сите детали се важни.</translation>
 <translation id="4876895919560854374">Заклучи го и отклучи го екранот</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Администраторот ги ограничил достапните методи за внесување.</translation>
 <translation id="4994474651455208930">Дозволи им на сајтовите да прашуваат за да станат стандардни ракувачи на протоколи</translation>
 <translation id="4994754230098574403">Се поставува</translation>
-<translation id="4996978546172906250">Сподели преку</translation>
 <translation id="4997086284911172121">Нема интернет-врска.</translation>
 <translation id="4997384734315285248">Деинсталирајте го Plugin VM</translation>
 <translation id="4998430619171209993">Вклучено</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Пристапувајте до вашиот „Помошник“ кога ќе кажете „Ok Google“.</translation>
 <translation id="5135533361271311778">Не можеше да се создаде ставка на обележувач.</translation>
 <translation id="5137501176474113045">Избриши ја оваа ставка</translation>
-<translation id="5138982052046316113">Променете ја големината на дискот на Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, пребарајте со <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Внесете го PIN-кодот за вашиот безбедносен клуч. Ако не го знаете PIN-кодот, ќе треба да го ресетирате безбедносниот клуч.</translation>
 <translation id="5139955368427980650">&amp;Отвори</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Се чека потврда. <ph name="LINK_BEGIN" />Дознајте повеќе<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Многу голем</translation>
 <translation id="574209121243317957">Висина</translation>
+<translation id="5745136023067925867">Добивајте совети, понуди и ажурирања за <ph name="DEVICE_TYPE" /> и споделувајте повратни информации</translation>
 <translation id="5746169159649715125">Зачувај како ПДФ</translation>
 <translation id="5747552184818312860">Истекува на</translation>
 <translation id="5747785204778348146">Програмер - нестабилен</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Прикажи во Наоѓач</translation>
 <translation id="6295158916970320988">Сите локации</translation>
 <translation id="6295855836753816081">Се зачувува…</translation>
-<translation id="629730747756840877">Сметка</translation>
 <translation id="6298962879096096191">Користете Google Play за да инсталирате апликации на Android</translation>
 <translation id="630065524203833229">Из&amp;лези</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> не можеше да се конфигурира автоматски. Наведете ги напредните детали за печатачот. <ph name="LINK_BEGIN" />Дознајте повеќе<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Страницата не е на <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Листи на настани на WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Температура на боите</translation>
-<translation id="6870888490422746447">Изберете апликација на која ќе споделите:</translation>
 <translation id="6871644448911473373">OCSP-одговарач: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Серверот ја одби лозинката што ја внесовте.</translation>
 <translation id="6876155724392614295">Велосипед</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Евиденција на активности</translation>
 <translation id="6997707937646349884">На вашите уреди:</translation>
 <translation id="6998793565256476099">Запишете го уредот за видео конференции</translation>
+<translation id="6999956497249459195">Нова група</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> е поврзан, но треба да се конфигурира</translation>
 <translation id="7000347579424117903">Опфатете Ctrl, Alt или Search</translation>
 <translation id="7001036685275644873">Се прави копија на апликациите и датотеките на Linux</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Поставете врска на вашиот <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Отфрлете ја поракава</translation>
+<translation id="7403642243184989645">Се преземаат ресурси</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Безбедносната проверка беше извршена пред 1 час}one{Безбедносната проверка беше извршена пред {NUM_HOURS} час}other{Безбедносната проверка беше извршена пред {NUM_HOURS} часа}}</translation>
 <translation id="740624631517654988">Појавниот прозорец е блокиран</translation>
 <translation id="7407430846095439694">Увези и врзи</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">URL за Политика на орган за сертифицирање на Netscape</translation>
 <translation id="7717014941119698257">Преземање: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Провери за ажурирања</translation>
+<translation id="7719070594859855691">Дајте пристап до камерата</translation>
 <translation id="7719367874908701697">Зумирање страница</translation>
 <translation id="7721179060400456005">Дозволи прозорците да растегнуваат прикази</translation>
 <translation id="7722040605881499779">Потребно за ажурирање: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Видете ја историјата на печатење</translation>
 <translation id="7744192722284567281">Откриена при упад во податоци</translation>
 <translation id="7750228210027921155">Слика во слика</translation>
-<translation id="7751229152614300329">„Безбедно прелистување“ е ажурирано и ве заштитува од штетни сајтови и преземања</translation>
 <translation id="7751260505918304024">Прикажи ги сите</translation>
 <translation id="7754704193130578113">Прашај каде да се зачува секоја датотека пред преземање</translation>
 <translation id="7755287808199759310">Родителот може да го одблокира</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Напомена:<ph name="END_BOLD" /> системот ќе се рестартира во текот на процесот.</translation>
 <translation id="7828731929332799387">Ова ќе ги избрише сите колачиња и податоците за сајтовите што се достапни во контексти на трета страна. Дали сакате да продолжите?</translation>
 <translation id="7829298379596169484">Пристап до аудиовлез</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може да ги провери вашите лозинки. Проверете ја интернет-врската.</translation>
 <translation id="7829877209233347340">Побарај од родителот да се најави за да даде дозвола за додавање училишна сметка</translation>
 <translation id="7830594666202422257">Поврзи се со Linux</translation>
 <translation id="7831491651892296503">Грешка при конфигурирање на мрежата</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">Google Play Store се инсталира на вашиот <ph name="DEVICE_TYPE" />. Ова може да потрае неколку минути.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Нема колачиња од трети страни}=1{Блокирано е 1 колаче од трета страна}one{Блокирано е # колаче од трети страни}other{Блокирани се # колачиња од трети страни}}</translation>
 <translation id="810875025413331850">Не се најдени уреди во близина.</translation>
+<translation id="8114199541033039755">Одете на почетен екран, вратете се назад и префрлајте меѓу апликации со копчиња во режим на таблет. Се вклучува кога ќе се овозможи ChromeVox или „Автоматско кликнување“.</translation>
 <translation id="8114875720387900039">Подели хоризонтално</translation>
 <translation id="8116972784401310538">&amp;Управник со обележувачи</translation>
 <translation id="8117620576188476503">Управувајте со врските, ажурирањата и поставките со фиоката за статус. За да стигнете тука преку тастатурата, притиснете Alt + Shift + S.</translation>
@@ -5406,6 +5420,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> го оневозможи курсорот на глувчето.</translation>
 <translation id="8264024885325823677">Администраторот управува со поставкава.</translation>
 <translation id="8264718194193514834">„<ph name="EXTENSION_NAME" />“ активираше цел екран.</translation>
+<translation id="826511437356419340">Влеговте во режим на преглед на прозорец. Повлечете за да се движите или притиснете „Tab“ ако користите тастатура.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ова се општи информации за уредот и неговото користење (како што се нивото на батеријата, активноста на апликациите и системот и грешките). Податоците ќе се користат за подобрување на Android, а дел од собраните информации ќе им помагаат и на партнерите и апликациите на Google, како што се програмерите на Android, да ги подобрат нивните апликации и производи.<ph name="END_PARAGRAPH1" />
 
     <ph name="BEGIN_PARAGRAPH2" />Исклучувањето на функцијава не влијае врз способноста на уредот да ги испраќа информациите што се потребни за основните услуги, како што се ажурирањата на системот и безбедноста.<ph name="END_PARAGRAPH2" />
@@ -5517,6 +5532,7 @@
 <translation id="8426713856918551002">Се овозможува</translation>
 <translation id="8427292751741042100">вградено во секој хост</translation>
 <translation id="8428213095426709021">Поставки</translation>
+<translation id="8428271547607112339">Додајте училишна сметка</translation>
 <translation id="8428628598981198790">Вашиот безбедносен клуч не може да се користи со овој сајт</translation>
 <translation id="84297032718407999">Ќе ве одјавиме за <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Прикажувај допири</translation>
@@ -5580,6 +5596,7 @@
 <translation id="851263357009351303">Секогаш дозволи <ph name="HOST" /> да прикажува слики</translation>
 <translation id="8513108775083588393">Автоматско ротирање</translation>
 <translation id="8514746246728959655">Обидете се со друг безбедносен клуч</translation>
+<translation id="851960115758509829">Вашите апликации, поставки и другите приспособувања ќе се синхронизираат на сите уреди со Chrome OS каде што сте најавени со сметката на Google.</translation>
 <translation id="8521475323816527629">Стигнете брзо до апликациите</translation>
 <translation id="8523493869875972733">Откажи</translation>
 <translation id="8523849605371521713">Додадено од правилото</translation>
@@ -5861,11 +5878,13 @@
 <translation id="885701979325669005">Склад</translation>
 <translation id="8859057652521303089">Изберете го вашиот јазик:</translation>
 <translation id="8859174528519900719">Подрамка: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Сметка на родител</translation>
 <translation id="8862003515646449717">Префрлете се на брз прелистувач</translation>
 <translation id="8863753581171631212">Отвори го линкот во нов прозорец на <ph name="APP" /></translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> се споделува на <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> беше отстранета од уредов</translation>
 <translation id="8867228703146808825">Копирајте ги деталите за верзијата во привремената меморија</translation>
+<translation id="8868333925931032127">Се стартува демо-режимот</translation>
 <translation id="8868626022555786497">Во употреба</translation>
 <translation id="8870413625673593573">Неодамна затворено</translation>
 <translation id="8871551568777368300">Прикачено од администраторот</translation>
@@ -5944,6 +5963,7 @@
 <translation id="8966870118594285808">Повторно отворете картичка ако случајно сте ја затвориле</translation>
 <translation id="8967866634928501045">Притиснете Alt+Shift+A за да се прикаже</translation>
 <translation id="8968766641738584599">Зачувај ја картичката</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може да ги провери вашите лозинки. Обидете се пак по 24 часа или <ph name="BEGIN_LINK" />проверете ги лозинките во сметката на Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Проверете кај мрежниот администратор за да се осигурите дека заштитниот ѕид не ги блокира преземањата од серверите на Google.</translation>
 <translation id="8973557916016709913">Отстрани ниво на зумирање</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 5b0e71aa..d1c6081 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -414,7 +414,6 @@
 <translation id="1566049601598938765">വെബ്‌സൈറ്റ്</translation>
 <translation id="15662109988763471">തിരഞ്ഞെടുത്ത പ്രിൻ്റർ ലഭ്യമല്ല, അല്ലെങ്കിൽ ശരിയായി ഇൻസ്‌റ്റാൾ ചെയ്‌തിട്ടില്ല. നിങ്ങളുടെ പ്രിൻ്റർ പരിശോധിക്കുകയോ മറ്റൊരു പ്രിൻ്റർ തിരഞ്ഞെടുത്ത് ശ്രമിക്കുകയോ ചെയ്യുക.</translation>
 <translation id="1567387640189251553">നിങ്ങൾ അവസാനം പാസ്‍വേഡ് നൽകിയത് മുതൽ ഒരു വ്യത്യസ്ത കീബോർഡ് കണക്റ്റ് ചെയ്‌തിട്ടുണ്ട്. ഇത് നിങ്ങളുടെ കീസ്ട്രോക്കുകൾ മോഷ്‌ടിക്കാൻ ശ്രമിക്കുന്നുണ്ടാകാം.</translation>
-<translation id="1567750922576943685">ഐഡൻറിറ്റി പരിശോധിച്ചുറപ്പിക്കുന്നത്, നിങ്ങളുടെ വ്യക്തിഗത വിവരം പരിരക്ഷിക്കാൻ സഹായിക്കുന്നു</translation>
 <translation id="1567993339577891801">JavaScript കണ്‍‌സോള്‍‌</translation>
 <translation id="1568323446248056064">ഡിസ്‌പ്ലേ ഉപകരണ ക്രമീകരണം തുറക്കുക</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (അതിഥി)</translation>
@@ -516,7 +515,6 @@
 <translation id="1697150536837697295">കല</translation>
 <translation id="1697686431566694143">ഫയൽ എഡിറ്റ് ചെയ്യുക</translation>
 <translation id="1698122934742150150">നിലവിലെ അദൃശ്യ സെഷന് മാത്രം</translation>
-<translation id="1698650002254827833">ആപ്പുകളുടെ ലിസ്‌റ്റ് ലോഡ് ചെയ്യാനാവില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="1700079447639026019">ഒരിക്കലും കുക്കികൾ ഉപയോഗിക്കാനാവാത്ത സൈറ്റുകൾ</translation>
 <translation id="1701062906490865540">ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യുക</translation>
 <translation id="1703331064825191675">നിങ്ങളുടെ പാസ്‌വേഡുകളെക്കുറിച്ച് ഇനി ആശങ്ക വേണ്ട</translation>
@@ -823,6 +821,7 @@
 <translation id="2119349053129246860"><ph name="APP" /> ആപ്പിൽ തുറക്കുക</translation>
 <translation id="2120297377148151361">പ്രവർത്തനവും ആശയവിനിമയങ്ങളും</translation>
 <translation id="2120639962942052471"><ph name="PERMISSION" /> ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു</translation>
+<translation id="2121055421682309734">{COUNT,plural, =0{കുക്കികൾ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു}=1{കുക്കികൾ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു, ഒരു ഒഴിവാക്കൽ}other{കുക്കികൾ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു, {COUNT} ഒഴിവാക്കലുകൾ}}</translation>
 <translation id="2121825465123208577">വലുപ്പംമാറ്റുക</translation>
 <translation id="2122305276694332719">മറച്ച നെറ്റ്‌വർക്കിലേക്ക് സ്വയമേവ കണക്‌റ്റ് ചെയ്യുന്നതിലൂടെ നിങ്ങളുടെ ഉപകരണവും ചില നെറ്റ്‌വർക്ക് ക്രമീകരണവും കാണാൻ മറ്റുള്ളവരെ അനുവദിക്കുന്നതിനാൽ അത് ശുപാർശചെയ്യുന്നില്ല.</translation>
 <translation id="2123766928840368256">മറ്റൊരു ഫയൽ തിരഞ്ഞെടുക്കൂ</translation>
@@ -1077,7 +1076,6 @@
 <translation id="2442916515643169563">ടെക്‌സ്‌റ്റ് ഷാഡോ</translation>
 <translation id="2445081178310039857">വിപുലീകരണ റൂട്ട് ഡയറക്‌റ്ററി ആവശ്യമാണ്.</translation>
 <translation id="2445484935443597917">പുതിയ പ്രൊഫൈൽ സൃഷ്‌ടിക്കുക</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" />-ന് നിങ്ങളുടെ ഐഡന്റിറ്റി പരിശോധിച്ച് ഉറപ്പിക്കേണ്ടതുണ്ട്</translation>
 <translation id="2448312741937722512">തരം</translation>
 <translation id="2450223707519584812">Google API കീകൾ നഷ്‌ടമായതിനാൽ നിങ്ങൾക്ക് ഉപയോക്താക്കളെ ചേർക്കാനാവില്ല. വിശദാംശങ്ങൾക്ക്, <ph name="DETAILS_URL" /> കാണുക.</translation>
 <translation id="2450849356604136918">വിവരങ്ങളുടെ പ്രദർശമൊന്നും ഇപ്പോൾ സജീവമല്ല</translation>
@@ -1681,7 +1679,6 @@
 <translation id="3246107497225150582">{0,plural, =1{ഒരു ദിവസത്തിനുള്ളിൽ ഉപകരണം അപ്‌ഡേറ്റ് ചെയ്യുക}other{# ദിവസത്തിനുള്ളിൽ ഉപകരണം അപ്‌ഡേറ്റ് ചെയ്യുക}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - നെറ്റ്‌വർക്ക് പിശക്</translation>
 <translation id="3248902735035392926">സുരക്ഷ പ്രധാനമാണ്. അൽപ്പസമയം ചെലവഴിച്ച് <ph name="BEGIN_LINK" />നിങ്ങളുടെ വിപുലീകരണങ്ങൾ ഇപ്പോൾ തന്നെ പരിശോധിക്കുക<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;സര്‍‌ട്ടിഫിക്കറ്റിന്‍റെ ഭാഗമല്ല&gt;</translation>
 <translation id="3253225298092156258">ലഭ്യമല്ല</translation>
 <translation id="3253448572569133955">അജ്ഞാത അക്കൗണ്ട്</translation>
@@ -2962,7 +2959,6 @@
 <translation id="4992473555164495036">ലഭ്യമായ ഇൻപുട്ട് രീതികളെ നിങ്ങളുടെ അഡ്‌മിൻ പരിമിതപ്പെടുത്തി.</translation>
 <translation id="4994474651455208930">പ്രോട്ടോകോളുകളുടെ ഡിഫോൾട്ടായ കൈകാര്യം ചെയ്യുന്ന സംവിധാനമായി മാറാനുള്ള അനുവാദം ചോദിക്കാൻ സൈറ്റുകളെ അനുവദിക്കുന്നു</translation>
 <translation id="4994754230098574403">സജ്ജീകരിക്കുന്നു</translation>
-<translation id="4996978546172906250">ഇതുവഴി പങ്കിടുക</translation>
 <translation id="4997086284911172121">ഇന്റർനെറ്റ് കണക്ഷൻ ഇല്ല.</translation>
 <translation id="4997384734315285248">Plugin VM അൺഇൻസ്‌റ്റാൾ ചെയ്യുക</translation>
 <translation id="4998430619171209993">ഓണാണ്</translation>
@@ -3062,7 +3058,6 @@
 <translation id="5135085122826131075">"Ok Google" എന്ന് പറയുമ്പോൾ നിങ്ങളുടെ അസിസ്റ്റന്റ് ആക്സസ് ചെയ്യുക.</translation>
 <translation id="5135533361271311778">ബുക്ക്‌മാര്‍ക്ക് ഇനം സൃഷ്ടിക്കാനായില്ല.</translation>
 <translation id="5137501176474113045">ഈ ഇനം ഇല്ലാതാക്കുക</translation>
-<translation id="5138982052046316113">Linux ഡിസ്‌ക്കിന്റെ വലുപ്പം‌ മാറ്റുക</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> തിരയൽ</translation>
 <translation id="5139823398361067371">നിങ്ങളുടെ സുരക്ഷാ കീയുടെ പിൻ നൽകുക. നിങ്ങൾക്ക് പിൻ അറിയില്ലെങ്കിൽ, സുരക്ഷാ കീ റീസെറ്റ് ചെയ്യേണ്ടതുണ്ട്.</translation>
 <translation id="5139955368427980650">&amp;തുറക്കൂ</translation>
@@ -3928,7 +3923,6 @@
 <translation id="6291953229176937411">&amp;ഫൈന്‍‌ഡറില്‍ കാണിക്കുക</translation>
 <translation id="6295158916970320988">എല്ലാ സൈറ്റുകളും</translation>
 <translation id="6295855836753816081">സംരക്ഷിക്കുന്നു...</translation>
-<translation id="629730747756840877">അക്കൗണ്ട്</translation>
 <translation id="6298962879096096191">Android ആപ്പുകൾ ഇൻസ്‌റ്റാൾ ചെയ്യാൻ Google Play ഉപയോഗിക്കുക</translation>
 <translation id="630065524203833229">&amp;പുറത്തുപോകുക</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> സ്വയമേവ കോൺഫിഗർ ചെയ്യാനായില്ല. വിപുലമായ പ്രിൻ്റർ വിശദാംശങ്ങൾ വ്യക്തമാക്കുക. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
@@ -4334,7 +4328,6 @@
 <translation id="6865598234501509159"><ph name="LANGUAGE" /> ഭാഷയിൽ പേജ് ലഭ്യമല്ല</translation>
 <translation id="6865708901122695652">WebRTC ഇവന്റ് ലോഗുകൾ (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">വർണ്ണ ടെമ്പറേച്ചർ</translation>
-<translation id="6870888490422746447">ഇതിലേക്ക് പങ്കിടാൻ ഒരു ആപ്പ് തിരഞ്ഞെടുക്കുക:</translation>
 <translation id="6871644448911473373">OCSP റെസ്‌പ്പോണ്ടര്‍‌: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">നിങ്ങൾ നൽകിയ പാസ്‍വേഡ് സെർവർ നിരസിച്ചു.</translation>
 <translation id="6876155724392614295">ബൈക്കോടിക്കുക</translation>
@@ -4975,7 +4968,6 @@
 <translation id="7744047395460924128">നിങ്ങളുടെ പ്രിന്റ് ചെയ്യൽ ചരിത്രം കാണുക</translation>
 <translation id="7744192722284567281">ഡാറ്റാ ലംഘനത്തിൽ കണ്ടെത്തി</translation>
 <translation id="7750228210027921155">ചിത്രത്തിനുള്ളിലെ ചിത്രം</translation>
-<translation id="7751229152614300329">സുരക്ഷിത ബ്രൗസിംഗ് അപ് ‌ടു ഡേറ്റാണ്, കൂടാതെ ദോഷകരമായ സൈറ്റുകളിൽ നിന്നും ഡൗൺലോഡുകളിൽ നിന്നും നിങ്ങളെ പരിരക്ഷിക്കുന്നു</translation>
 <translation id="7751260505918304024">എല്ലാം കാണിക്കുക</translation>
 <translation id="7754704193130578113">ഡൗൺലോഡ് ചെയ്യുന്നതിനു മുമ്പ് ഓരോ ഫയലും എവിടെ സംരക്ഷിക്കണമെന്ന് ചോദിക്കുക</translation>
 <translation id="7755287808199759310">നിങ്ങൾക്ക് വേണ്ടി ഇത് അൺബ്ലോക്കുചെയ്യാൻ രക്ഷിതാവിന് കഴിയും</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index 0b6cdae..a766389 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Боломжтой байгаа төхөөрөмжүүд</translation>
 <translation id="1042174272890264476">Таны компьютер мөн <ph name="SHORT_PRODUCT_NAME" />-ын RLZ программын мэдээллийн сантай байдаг.  RLZ нь тодорхой кампанит ажлаар удирдуулсан хайлтууд болон <ph name="SHORT_PRODUCT_NAME" />-ын хэрэглээг хэмжих онцгой бус, мөн хувийн бус, тодорхойлох боломжтой цонхнуудыг ажиллуулдаг. Эдгээр хаягууд нь заримдаа <ph name="PRODUCT_NAME" /> дахь Google Хайлтын асуултуудад харагддаг.</translation>
 <translation id="1043818413152647937">Эдгээр аппаас мөн өгөгдлийг арилгах уу?</translation>
+<translation id="1045448422538531528">Бүлэгт нэмэх</translation>
 <translation id="1046635659603195359">Та Google Туслахаараа Voice Match-г өөр төхөөрөмж дээр аль хэдийн тохируулсан бoлолтой. Эдгээр өмнөх бичлэгийг энэ төхөөрөмжид дуу хоолойн загвар үүсгэхэд ашиглаж болно. Үүнд нэг минутаас бага хугацаа зарцуулна.</translation>
 <translation id="104710386808485638">Linux-г дахин эхлүүлэх үү?</translation>
 <translation id="1047431265488717055">Текстийн холбоосыг хуулах</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Камерын оролтыг үргэлж хориглож байх</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> нь таны Chrome-н тохиргоог өгөгдмөл хэлбэрт тохируулахыг хүсэж байна. Энэхүү тохиргоо нь таны үндсэн нүүр хуудас, шинэ цонх болон хайлтын системийн тохиргоог өөрчлөх бөгөөд таны өргөтгөлийн идэвхгүй болгож бүх цонхыг unpin хиих болно. Энэхүү тохиргоо нь күүки, мэдээлэл болон бусад сайтын мэдээлэл зэрэг түр болон хадгалагдсан бүх мэдээллийг арилгах болно.</translation>
+<translation id="1084096383128641877">Энэ нууц үгийг хасах нь <ph name="DOMAIN" /> дээрх таны бүртгэлийг устгахгүй. <ph name="DOMAIN_LINK" /> дээрх нууц үгээ өөрчилж эсвэл бүртгэлээ устган түүнийг бусдаас хамгаална уу.</translation>
 <translation id="1084824384139382525">Линкийн хаягийг хуулах</translation>
 <translation id="1085697365578766383">Виртуал машиныг эхлүүлэхэд алдаа гарлаа. Дахин оролдоно уу.</translation>
 <translation id="1090126737595388931">Ямар ч үндсэн апп ажиллаагүй байна.</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Аюулгүй байдлын шалгалтыг өчигдөр хийсэн</translation>
 <translation id="1260451001046713751"><ph name="HOST" />-н попап болон дахин чиглүүлэлтийг үргэлж зөвшөөрөх</translation>
 <translation id="126156426083987769">Демо горимтой төхөөрөмжийн лицензэд асуудал гарлаа.</translation>
+<translation id="1263490604593716556"><ph name="FIRST_PARENT_EMAIL" /> болон <ph name="SECOND_PARENT_EMAIL" />-н удирддаг бүртгэл. Энэ төхөөрөмжийн үндсэн бүртгэлээс гарахын тулд дэлгэцийнхээ цаг дээр товшино уу. Гарч ирэх цэсээс "Гарах" гэснийг товшино уу.</translation>
 <translation id="126710816202626562">Орчуулах хэл:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Зогс</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">Вэб хуудас</translation>
 <translation id="15662109988763471">Сонгосон хэвлэгч боломжгүй эсвэл буруу суулгагдсан байна. Хэвлэгчээ шалгах эсвэл өөр хэвлэгч сонгож үзнэ үү.</translation>
 <translation id="1567387640189251553">Таныг хамгийн сүүлд нууц үгээ оруулснаас хойш өөр гар холбосон байна. Энэ нь таны түлхүүрийн цуглуулгыг хулгайлахаар оролдож байж болзошгүй.</translation>
-<translation id="1567750922576943685">Өөрийгөө мөн гэдгийг баталгаажуулах нь хувийн мэдээллээ хамгаалахад тусалдаг</translation>
 <translation id="1567993339577891801">JavaScript консол</translation>
 <translation id="1568323446248056064">Төхөөрөмжийн дэлгэцийн тохиргоог харуулах</translation>
 <translation id="1572139610531470719">(Зочин) <ph name="WINDOW_TITLE" /></translation>
@@ -515,7 +517,6 @@
 <translation id="1697150536837697295">Урлаг</translation>
 <translation id="1697686431566694143">Файлыг засах</translation>
 <translation id="1698122934742150150">Зөвхөн одоогийн нууцлалын горимын тов</translation>
-<translation id="1698650002254827833">Аппын жагсаалтыг ачаалж чадсангүй. Дахин оролдоно уу.</translation>
 <translation id="1700079447639026019">Хэзээ ч күүки ашиглах боломжгүй сайтууд</translation>
 <translation id="1701062906490865540">Энэ хүнийг устга</translation>
 <translation id="1703331064825191675">Нууц үгэндээ хэзээ ч бүү санаа зов</translation>
@@ -869,6 +870,7 @@
 <translation id="2172784515318616985">Үргэлжлүүлэх</translation>
 <translation id="2173302385160625112">Интернэт холболтоо шалгана уу</translation>
 <translation id="2173801458090845390">Энэ төхөөрөмжид шаардлагын ID-г нэмэх</translation>
+<translation id="2174948148799307353"><ph name="PARENT_EMAIL" />-н удирддаг бүртгэл. Энэ төхөөрөмжийн үндсэн бүртгэлээс гарахын тулд дэлгэцийнхээ цаг дээр товшино уу. Гарч ирэх цэсээс "Гарах" гэснийг товшино уу.</translation>
 <translation id="2175607476662778685">Цонхыг хурдан эхлүүлэх</translation>
 <translation id="217576141146192373">Хэвлэгчийг нэмэх боломжгүй байна. Хэвлэгчийнхээ тохируулгыг шалгаад дахин оролдоно уу.</translation>
 <translation id="2177950615300672361">Нууцлалтай цонх: <ph name="TAB_NAME" /></translation>
@@ -1076,7 +1078,6 @@
 <translation id="2442916515643169563">Текстийн сүүдэр</translation>
 <translation id="2445081178310039857">Өргөтгөлийн стандарт директор шаардлагатай байна.</translation>
 <translation id="2445484935443597917">Шинэ профайл үүсгэх</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> таны аюулгүй байдлын түлхүүрийг баталгаажуулах хүсэлтэй байна</translation>
 <translation id="2448312741937722512">Төрөл</translation>
 <translation id="2450223707519584812">Google API-н түлхүүр байхгүй учир та хэрэглэгч нэмэх боломжгүй. Дэлгэрэнгүй мэдээлэл авахын тулд <ph name="DETAILS_URL" />-г хараарай.</translation>
 <translation id="2450849356604136918">Идэвхтэй харагдац алга</translation>
@@ -1474,6 +1475,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" /> руу очно уу</translation>
 <translation id="29488703364906173">Орчин үеийн вэб-д зориулан бүтээгдсэн хурдан, энгийн, аюулгүй вэб хөтөч.</translation>
 <translation id="2949289451367477459">Байршлыг ашиглана уу. Байршлын зөвшөөрөлтэй аппууд болон үйлчилгээнүүдэд энэ төхөөрөмжийн байршлыг ашиглахыг зөвшөөрнө үү. Google байршлын нарийвчлал болон байршилд суурилсан үйлчилгээнүүдийг сайжруулах зорилгоор байршлын өгөгдлийг үе үе цуглуулж, энэ өгөгдлийг үл мэдэгдэх байдлаар ашиглаж болзошгүй. <ph name="BEGIN_LINK1" />Нэмэлт мэдээлэл авах<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Намайг бүртгүүлэх</translation>
 <translation id="2956070239128776395">Хэсэг нь бүлэг дотор байрлана: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Ямар ч сайтад таны төхөөрөмжийн файл эсвэл фолдерыг засахыг битгий зөвшөөр</translation>
 <translation id="2958721676848865875">Өргөтгөлийг багцлах анхааруулга</translation>
@@ -1598,6 +1600,7 @@
 <translation id="3139925690611372679">Өгөгдмөл шар аватар</translation>
 <translation id="3141318088920353606">Сонсож байна...</translation>
 <translation id="3141917231319778873">Хүсэлтийг дараахд дэмжээгүй: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Шинэ бүлэг</translation>
 <translation id="3143515551205905069">Синкийг цуцлах</translation>
 <translation id="3143754809889689516">Эхнээс нь тоглуулах</translation>
 <translation id="3144647712221361880">Холбоосыг нээх</translation>
@@ -1622,6 +1625,7 @@
 <translation id="3159493096109238499">Цайвар бор (Бэйж)</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (техник хангамжаар дэмжигдсэн)</translation>
 <translation id="3161522574479303604">Бүх хэл</translation>
+<translation id="3162853326462195145">Сургуулийн бүртгэл</translation>
 <translation id="3162899666601560689">Сайтууд нь, жишээлбэл таныг нэвтэрсэн хэвээр байлгах эсвэл таны худалдан авалтын сагсны зүйлсийг санах зэргээр таны үзэх туршлагыг сайжруулахад күүки ашиглах боломжтой</translation>
 <translation id="3163201441334626963"><ph name="PRODUCT_ID" /> үйлдвэрлэгчийн <ph name="VENDOR_ID" /> тодорхойгүй бүтээгдэхүүн</translation>
 <translation id="3164329792803560526">Энэ табыг <ph name="APP_NAME" />-тай хуваалцаж байна</translation>
@@ -1680,7 +1684,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Төхөөрөмжийг нэг хоногийн дотор шинэчилнэ үү}other{Төхөөрөмжийг # хоногийн дотор шинэчилнэ үү}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Сүлжээний алдаа</translation>
 <translation id="3248902735035392926">Аюулгүй байдал чухал билээ. <ph name="BEGIN_LINK" />Одоо өргөтгөлүүдээ шалгахын<ph name="END_LINK" /> тулд хэсэг хором зарцуулаарай</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Сертификатын хэсэг биш&gt;</translation>
 <translation id="3253225298092156258">Боломжгүй байна</translation>
 <translation id="3253448572569133955">Тодорхойгүй бүртгэл</translation>
@@ -1785,6 +1788,7 @@
 <translation id="3396800784455899911">"Зөвшөөрөөд үргэлжлүүлэх" товчлуурыг товшсоноор та Google-н эдгээр үйлчилгээг дээр дурдсан байдлаар боловсруулахыг зөвшөөрч байна.</translation>
 <translation id="3399432415385675819">Мэдэгдлийг идэвхгүй болгоно</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Герц) - сүлжилдсэн</translation>
+<translation id="3402585168444815892">Туршилтын горимд бүртгүүлж байна</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" /> , <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Энэ сайтад хадгалсан нууц үг алга</translation>
 <translation id="3405664148539009465">Үсгийн хэвийг өөрчлөх</translation>
@@ -1846,6 +1850,7 @@
 <translation id="3468999815377931311">Android утас</translation>
 <translation id="3470442499439619530">Энэ хэрэглэгчийг устгах</translation>
 <translation id="3471876058939596279">HDMI болон USB C-Төрлийн портыг нэгэн зэрэг видеонд ашиглах боломжгүй. Өөр видео порт ашиглана уу.</translation>
+<translation id="3473241910002674503">Таблет горимд товчлуур ашиглан нүүр лүү шилжих, буцах, аппуудын хооронд сэлгэх.</translation>
 <translation id="3473479545200714844">Дэлгэц Томруулах</translation>
 <translation id="3475843873335999118">Уучлаарай, таны хурууны хээг танихгүй байна. Нууц үгээ оруулна уу.</translation>
 <translation id="3476303763173086583">Ашиглалт болон оношилгооны өгөгдлийг илгээнэ үү. Оношилгоо, төхөөрөмж болон аппын ашиглалтын өгөгдлийг Google-д автоматаар илгээж, хүүхдийнхээ Android-н хэрэглээг сайжруулахад тусална уу. Үүнийг таны хүүхдийг тодорхойлоход ашиглахгүй бөгөөд энэ нь систем, аппын тогтвортой байдал болон бусад зүйлийг сайжруулахад тусална. Зарим хуримтлуулсан өгөгдөл нь Google аппууд болон Android хөгжүүлэгч зэрэг түншүүдэд мөн адил тусална. Энэ <ph name="BEGIN_LINK1" />тохиргоог<ph name="END_LINK1" /> хэрэглэгчийн зүгээс хэрэгжүүлнэ. Энэ төхөөрөмжийн оношилгоо болон ашиглалтын өгөгдлийг Google-д илгээх эсэхийг хэрэглэгч өөрөө сонгож болно. Хэрэв таны хүүхдийн Вэб, Аппын нэмэлт үйл ажиллагааны тохиргоо асаалттай байвал энэ өгөгдлийг тэдний Google бүртгэлд хадгалж болзошгүй. <ph name="BEGIN_LINK2" />Нэмэлт мэдээлэл авах<ph name="END_LINK2" /></translation>
@@ -2269,6 +2274,7 @@
 <translation id="3971764089670057203">Энэ аюулгүй байдлын түлхүүр дээр байгаа хурууны хээ</translation>
 <translation id="3973660817924297510">Нууц үгийг шалгаж байна (<ph name="TOTAL_PASSWORDS" />-н <ph name="CHECKED_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Домэйнээр серверт холбогдох амжилтгүй боллоо</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> таны нууц үгсийг шалгах боломжгүй байна. Дараа дахин оролдоно уу.</translation>
 <translation id="3976108569178263973">Боломжтой хэвлэгч алга байна.</translation>
 <translation id="397703832102027365">Дуусгаж байна...</translation>
 <translation id="3977886311744775419">Автомат шинэчлэлтийг сүлжээний энэ төрөл дээр татаж авдаггүй боловч та шинэчлэлтийг гар аргаар шалгаж болно.</translation>
@@ -2332,6 +2338,7 @@
 <translation id="4068506536726151626">Энэ хуудас нь таны байршлыг илрүүлэх зорилго бүхий дараах хуудаснуудын элементийг агуулж байна.</translation>
 <translation id="4068776064906523561">Хадгалсан хурууны хээ</translation>
 <translation id="407173827865827707">Товшсон</translation>
+<translation id="4073520450811433493">Тохиргоог синк хийх</translation>
 <translation id="4074900173531346617">И-мэйл баталгаажуулалтын сертификат</translation>
 <translation id="407520071244661467">Хэмжээ</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" />-г дамжуулах боломжгүй байна.</translation>
@@ -2568,6 +2575,7 @@
 <translation id="4421932782753506458">Найдваргүй</translation>
 <translation id="4423376891418188461">Тохиргоог сэргээх</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, таны админ нууц үгээ солихыг шаардаж байна.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> таны нууц үгсийг шалгах боломжгүй байна. 24 цагийн дараа дахин оролдоно уу.</translation>
 <translation id="4429030830601238961">Энэ өгөгдөл нь танай байгууллагын аюулгүй байдлын удирдамжийг зөрчиж байгаа бөгөөд буулгах боломжгүй байна.</translation>
 <translation id="4430019312045809116">Хэмжээ</translation>
 <translation id="4430369329743628066">Хавчуурга нэмсэн</translation>
@@ -2580,6 +2588,7 @@
 <translation id="4441124369922430666">Машин асахад та энэ програмыг автоматиар эхлүүлэхийг хүсэж байна уу?</translation>
 <translation id="4441147046941420429">Үргэлжлүүлэхийн тулд аюулгүй байдлын түлхүүрээ төхөөрөмжөөсөө устгаж, дараа нь дахин залгаад дээр нь хүрнэ үү</translation>
 <translation id="444134486829715816">Өргөтгө...</translation>
+<translation id="4442329324652245220">Таныг Google Бүртгэлээрээ нэвтрэх үед <ph name="IDS_SHORT_PRODUCT_NAME" /> таны нууц үгсийг шалгах боломжтой</translation>
 <translation id="4442424173763614572">DNS хайлт амжилтгүй боллоо</translation>
 <translation id="4443536555189480885">Тусламж</translation>
 <translation id="4444304522807523469">USB-ээр эсвэл дотоод сүлжээнд холбогдсон бичиг баримт сканердагч руу нэвтрэх</translation>
@@ -2606,11 +2615,13 @@
 <translation id="4476659815936224889">Энэ кодыг скан хийхийн тулд утасныхаа хурдан хариу үйлдлийн кодын сканнерын аппыг эсвэл камерын зарим аппыг ашиглана уу.</translation>
 <translation id="4477015793815781985">Ctrl, Alt эсвэл ⌘-р эхлүүлнэ үү</translation>
 <translation id="4478664379124702289">Холбоосыг хадгалах хэлбэр...</translation>
+<translation id="4478777936860197922">Хадгалсан ямар ч нууц үг алга. Таныг нууц үгсээ хадгалах үед <ph name="IDS_SHORT_PRODUCT_NAME" /> тэднийг шалгах боломжтой.</translation>
 <translation id="4479424953165245642">Kiosk аппуудыг удирдах</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Виртуал машиныг тохируулж байна. Үүнд хэдэн хором шаардлагатай.</translation>
 <translation id="4480590691557335796">Chrome таны компьютероос хортой програм хангамжийг олж устгах боломжтой</translation>
 <translation id="4481530544597605423">Хослоогүй төхөөрөмж</translation>
+<translation id="4488107067273194838">Тохируулгын дараа хөтчийг синк хийх сонголтыг шалгах</translation>
 <translation id="4488502501195719518">Бүх өгөгдлийг устгах уу?</translation>
 <translation id="4495419450179050807">Энэ хуудсан дээр бүү үзүүл</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" />-г автоматаар блоклосон</translation>
@@ -2852,6 +2863,7 @@
 <translation id="4849517651082200438">Битгий суурьлуул</translation>
 <translation id="4850669014075537160">Гүйлгэх</translation>
 <translation id="4850886885716139402">Харах</translation>
+<translation id="485197095346966382">Таныг алдагдсан нууц үгээр нэвтрэх үед <ph name="IDS_SHORT_PRODUCT_NAME" />-c танд мэдэгдэнэ</translation>
 <translation id="4853020600495124913">&amp; Шинэ цонхонд нээх</translation>
 <translation id="4854317507773910281">Зөвшөөрөл хүсэх эцэг эхийн бүртгэлийг сонгоно уу</translation>
 <translation id="485480310608090163">Бусад тохиргоо болон зөвшөөрөл</translation>
@@ -2870,6 +2882,7 @@
 <translation id="4871322859485617074">ПИН хүчингүй тэмдэгт агуулж байна</translation>
 <translation id="4871370605780490696">Хадгалагдсан холбоос нэмэх</translation>
 <translation id="4871719318659334896">Бүлгийг хаах</translation>
+<translation id="4871852311166078968">Бүлэгт нэмэх</translation>
 <translation id="4873312501243535625">Медиа файл шалгагч</translation>
 <translation id="4876273079589074638">Манай инженерүүдэд гэмтлийн асуудлын тодруулж, засахад нь тусална уу. Боломжтой бол дэлгэрэнгүй тайлбарлана уу. Бидэнд бүх нарийвчилсан мэдээлэл хэрэг болно.</translation>
 <translation id="4876895919560854374">Дэлгэцийг түгжих, түгжээг гаргах</translation>
@@ -2961,7 +2974,6 @@
 <translation id="4992473555164495036">Танай админ боломжит оруулах аргыг хязгаарласан байна.</translation>
 <translation id="4994474651455208930">Сайтыг протоколын өгөгдмөл хариуцагч байхыг зөвшөөрөх</translation>
 <translation id="4994754230098574403">Тохируулж байна</translation>
-<translation id="4996978546172906250">-аар хуваалцах</translation>
 <translation id="4997086284911172121">Интернет холболт алга.</translation>
 <translation id="4997384734315285248">Plugin VM-г устгах</translation>
 <translation id="4998430619171209993">Асаалттай</translation>
@@ -3061,7 +3073,6 @@
 <translation id="5135085122826131075">"Ok Google" гэж хэлээд Туслахдаа хандаарай.</translation>
 <translation id="5135533361271311778">Хайлтын жагсаалтын зүйл үүсгэж чадсангүй.</translation>
 <translation id="5137501176474113045">Энэ зүйлийг устга</translation>
-<translation id="5138982052046316113">Linux дискийн хэмжээг өөрчлөх</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> хайлт</translation>
 <translation id="5139823398361067371">Аюулгүй байдлын түлхүүрийнхээ ПИН-г оруулна уу. Хэрэв та ПИН-г мэдэхгүй бол аюулгүй байдлын түлхүүрийг шинэчлэх хэрэгтэй болно.</translation>
 <translation id="5139955368427980650">&amp; Нээлттэй</translation>
@@ -3514,6 +3525,7 @@
 <translation id="5739235828260127894">Баталгаажуулалтыг хүлээж байна. <ph name="LINK_BEGIN" />Нэмэлт мэдээлэл авах<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Маш том</translation>
 <translation id="574209121243317957">Авиа</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" />-н зөвлөгөө, санал болон шинэчлэлтийг авч, cанал хүсэлт хуваалцаарай</translation>
 <translation id="5746169159649715125">PDF хэлбэрээр хадгалах</translation>
 <translation id="5747552184818312860">Дуусах хугацаа</translation>
 <translation id="5747785204778348146">Хөгжүүлэгч - тогтворгүй</translation>
@@ -3925,7 +3937,6 @@
 <translation id="6291953229176937411">&amp; Хайгч дотор харуулах</translation>
 <translation id="6295158916970320988">Бүх сайт</translation>
 <translation id="6295855836753816081">Хадгалж байна...</translation>
-<translation id="629730747756840877">Данс</translation>
 <translation id="6298962879096096191">Андройд апп суулгахын тулд Google Play-г ашиглана уу</translation>
 <translation id="630065524203833229">Гарах</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" />-г автоматаар тохируулж чадсангүй. Хэвлэгчийн нарийвчилсан дэлгэрэнгүй мэдээллийг тодорхойлно уу. <ph name="LINK_BEGIN" />Нэмэлт мэдээлэл авах<ph name="LINK_END" /></translation>
@@ -4331,7 +4342,6 @@
 <translation id="6865598234501509159">Хуудас <ph name="LANGUAGE" /> хэл дээр биш байна</translation>
 <translation id="6865708901122695652">WebRTC арга хэмжээний логууд (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Өнгөний хэм</translation>
-<translation id="6870888490422746447">Хуваалцах аппыг сонгоно уу:</translation>
 <translation id="6871644448911473373">OCSP Хариу өгөгч: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Таны оруулсан нууц үгийг серверээс зөвшөөрөөгүй байна.</translation>
 <translation id="6876155724392614295">Дугуй</translation>
@@ -4424,6 +4434,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Үйл ажиллагааны лог</translation>
 <translation id="6997707937646349884">Taны төхөөрөмжид:</translation>
 <translation id="6998793565256476099">Видео хуралд төхөөрөмж элсүүлэх</translation>
+<translation id="6999956497249459195">Шинэ бүлэг</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> холбогдсон, гэхдээ тохируулга хийх шаардлагатай</translation>
 <translation id="7000347579424117903">Ctrl, Alt эсвэл Хайлтыг оруулах</translation>
 <translation id="7001036685275644873">Linux аппууд болон файлуудыг нөөцөлж байна</translation>
@@ -4722,6 +4733,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923"><ph name="PHONE_NAME" />-д холболт тохируулах</translation>
 <translation id="7401778920660465883">Энэ зурвасыг хаах</translation>
+<translation id="7403642243184989645">Нөөцүүдийг татаж байна</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Аюулгүй байдлын шалгалтыг 1 цагийн өмнө хийсэн}other{Аюулгүй байдлын шалгалтыг {NUM_HOURS} цагийн өмнө хийсэн}}</translation>
 <translation id="740624631517654988">Зар сурталчилгааг хориглосон</translation>
 <translation id="7407430846095439694">Импортлох, батлах</translation>
@@ -4958,6 +4970,7 @@
 <translation id="7716781361494605745">Netscape Сертификат Эрхийн Журам URL</translation>
 <translation id="7717014941119698257"><ph name="STATUS" />-ыг татаж авч байна:</translation>
 <translation id="7717845620320228976">Шинэчлэлтээ шалгах</translation>
+<translation id="7719070594859855691">Камерт хандах эрх өгөх</translation>
 <translation id="7719367874908701697">Хуудсыг томруулах</translation>
 <translation id="7721179060400456005">Цонхонд дэлгэцийг спан хийхийг зөвшөөрөх</translation>
 <translation id="7722040605881499779">Шинэчлэхэд шаардлагатай: <ph name="NECESSARY_SPACE" /></translation>
@@ -4972,7 +4985,6 @@
 <translation id="7744047395460924128">Хэвлэлтийн түүхээ харах</translation>
 <translation id="7744192722284567281">Өгөгдлийн зөрчилд олдсон</translation>
 <translation id="7750228210027921155">Дэлгэцэн доторх дэлгэц</translation>
-<translation id="7751229152614300329">Аюулгүй хайлт нь шинэчлэгдсэн бөгөөд таныг аюултай сайт болон таталтаас хамгаалж байна</translation>
 <translation id="7751260505918304024">Бүгдийг үзүүлэх</translation>
 <translation id="7754704193130578113">Татахаасаа өмнө файл нэг бүрийг хаана хадгалахыг асуу</translation>
 <translation id="7755287808199759310">Таны эцэг эх үүнийг блокоос гаргах боломжтой</translation>
@@ -5059,6 +5071,7 @@
     <ph name="BEGIN_BOLD" />Санамж:<ph name="END_BOLD" />  Системийг боловсруулалтын үед дахин асаах болно.</translation>
 <translation id="7828731929332799387">Энэ нь гуравдагч талын хам сэдэв дээр боломжтой бүх күүки, сайтын өгөгдлийг устгана. Та үргэлжлүүлмээр байна уу?</translation>
 <translation id="7829298379596169484">Дууны оролтод нэвтэрч байна</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> таны нууц үгсийг шалгах боломжгүй байна. Интернэт холболтоо шалгаж үзнэ үү.</translation>
 <translation id="7829877209233347340">Эцэг эхээсээ нэвтэрч, сургуулийн бүртгэл нэмэх зөвшөөрөл олгохыг хүснэ үү</translation>
 <translation id="7830594666202422257">Linux-д холбогдох</translation>
 <translation id="7831491651892296503">Сүлжээг тохируулахад алдаа гарлаа</translation>
@@ -5279,6 +5292,7 @@
 <translation id="8107015733319732394">Google Play Дэлгүүрийг таны <ph name="DEVICE_TYPE" />-д суулгаж байна. Суулгахад хэдэн хором болно.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Гуравдагч талын күүки байхгүй}=1{Гуравдагч талын 1 күүкиг блоклосон}other{Гуравдагч талын # күүкиг блоклосон}}</translation>
 <translation id="810875025413331850">Ойролцоох төхөөрөмж олдсонгүй.</translation>
+<translation id="8114199541033039755">Таблет горимд товчлуур ашиглан нүүр лүү шилжих, буцах, аппуудын хооронд сэлгэх. ChromeVox эсвэл Автомат товшилтыг идэвхжүүлсэн үед асаалттай байна.</translation>
 <translation id="8114875720387900039">Хэвтээ чиглэлд хуваах</translation>
 <translation id="8116972784401310538">Хадгалагдсан хуудсын менежер</translation>
 <translation id="8117620576188476503">Статусын хэсгээр холболт, шинэчлэлт болон тохиргоог удирдана уу. Энд гараар очихын тулд Alt + Shift + S-г дарна уу.</translation>
@@ -5397,6 +5411,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> нь таны хулганын заагчийг идэвхгүй болгосон байна.</translation>
 <translation id="8264024885325823677">Энэ тохиргоог таны администратор удирддаг.</translation>
 <translation id="8264718194193514834">" <ph name="EXTENSION_NAME" /> нь дэлгэцийг томосгох үйлдлийг идэвхжүүлсэн байна.</translation>
+<translation id="826511437356419340">Цонхны тойм горимд шилжлээ. Шилжихийн тулд шударна уу эсвэл гар ашиглаж байгаа бол Tab дээр дарна уу.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Энэ нь энэ төхөөрөмж болон үүнийг хэрхэн ашигладаг (батарейны түвшин, систем болон аппын үйл ажиллагаа, алдаа гэх мэт) талаарх ерөнхий мэдээлэл юм. Өгөгдлийг Android-г сайжруулах зорилгоор ашиглах бөгөөд зарим хуримтлуулсан мэдээллийг Android хөгжүүлэгч зэрэг Google аппууд болон түншүүдийн апп, бүтээгдэхүүнийг сайжруулахад мөн адил ашиглана.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Энэ онцлогийг унтрааснаар энэ төхөөрөмжийн системийн шинэчлэлт болон аюулгүй байдал зэрэг зайлшгүй шаардлагатай үйлчилгээнд мэдээлэл илгээх чадамжид нөлөөлөхгүй.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Энэ онцлогийг эзэмшигч нь Тохиргоо &gt; Дэвшилтэт &gt; Оношилгоо болон ашиглалтын өгөгдлийг Google-д автоматаар илгээх хэсэгт хянаж болно.<ph name="END_PARAGRAPH3" />
@@ -5505,6 +5520,7 @@
 <translation id="8426713856918551002">Идэвхжүүлж байна</translation>
 <translation id="8427292751741042100">бүх хостод оруулсан</translation>
 <translation id="8428213095426709021">Тохиргоо</translation>
+<translation id="8428271547607112339">Сургуулийн бүртгэл нэмэх</translation>
 <translation id="8428628598981198790">Таны аюулгүй байдлын түлхүүрийг энэ сайтад ашиглах боломжгүй</translation>
 <translation id="84297032718407999">Та <ph name="LOGOUT_TIME_LEFT" />-н дараа гарах болно</translation>
 <translation id="8431190899827883166">Товшилтыг харуулах</translation>
@@ -5568,6 +5584,7 @@
 <translation id="851263357009351303"><ph name="HOST" />-д зургуудыг харуулахыг үргэлж зөвшөөр</translation>
 <translation id="8513108775083588393">Автоматаар эргэх</translation>
 <translation id="8514746246728959655">Аюулгүй байдлын өөр түлхүүр туршиж үзнэ үү</translation>
+<translation id="851960115758509829">Таны Google бүртгэлээрээ нэвтэрсэн Chrome үйлдлийн системтэй бүх төхөөрөмж дээр таны аппууд, тохиргоо болон бусад тохируулгыг синк хийнэ.</translation>
 <translation id="8521475323816527629">Аппдаа хурдан хандах</translation>
 <translation id="8523493869875972733">Өөрчлөлтийг хадгалах</translation>
 <translation id="8523849605371521713">Удирдамжийн дагуу нэмсэн</translation>
@@ -5847,11 +5864,13 @@
 <translation id="885701979325669005">Хадгалалт</translation>
 <translation id="8859057652521303089">Хэлээ сонгоно уу:</translation>
 <translation id="8859174528519900719">Дэд хүрээ: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Эцэг эхийн бүртгэл</translation>
 <translation id="8862003515646449717">Хурдан хөтөч рүү сэлгэх</translation>
 <translation id="8863753581171631212">Холбоосыг шинэ <ph name="APP" />-д нээх</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" />-г <ph name="APP_NAME" />-тай хуваалцаж байна</translation>
 <translation id="8864458770072227512"><ph name="EMAIL" />-г энэ төхөөрөмжөөс устгалаа</translation>
 <translation id="8867228703146808825">Боловсруулагдсан програмын дэлгэрэнгүй мэдээллийг түр санах ойд хуулах</translation>
+<translation id="8868333925931032127">Туршилтын горимыг эхлүүлж байна</translation>
 <translation id="8868626022555786497">Ашиглалтад байгаа</translation>
 <translation id="8870413625673593573">Саяхан хаагдсан</translation>
 <translation id="8871551568777368300">Админ тэмдэглэсэн</translation>
@@ -5930,6 +5949,7 @@
 <translation id="8966870118594285808">Санамсаргүй байдлаар таб хаасан бол түүнийг дахин нээх</translation>
 <translation id="8967866634928501045">Харуулахын тулд Alt Shift A-г дарна уу</translation>
 <translation id="8968766641738584599">Картыг хадгалах</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> таны нууц үгсийг шалгах боломжгүй байна. 24 цагийн дараа дахин оролдоно уу эсвэл <ph name="BEGIN_LINK" />өөрийн Google Бүртгэл дэх нууц үгсийг шалгана уу<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Гарах</translation>
 <translation id="8972513834460200407">Google серверээс юм татаж авахыг firewall блоклосон байж болох тул сүлжээний администратортойгоо шалгана уу.</translation>
 <translation id="8973557916016709913">Томруулах түвшинг хасах</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index e2193dc7..a9489712 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">उपलब्ध असलेली डिव्हाइस</translation>
 <translation id="1042174272890264476">तुमचा कॉंप्युटर देखील <ph name="SHORT_PRODUCT_NAME" />च्या RLZ वाचनालयासह बिल्ट-इन आला आहे. एका विशिष्ट जाहिरात मोहीमेद्वारे चालविलेला शोध आणि <ph name="SHORT_PRODUCT_NAME" /> वापर मोजण्यासाठी RLZ एक अद्वितीय-नसलेला, वैयक्तिकरित्या-ओळखता न येणारा टॅग नियुक्त करते. <ph name="PRODUCT_NAME" /> मधील Google शोध क्वेरींमध्ये ही लेबल काहीवेळा दिसतात.</translation>
 <translation id="1043818413152647937">तसेच या अ‍ॅप्समधून डेटा साफ करायचा?</translation>
+<translation id="1045448422538531528">गटामध्ये जोडा</translation>
 <translation id="1046635659603195359">असे दिसते की, तुम्ही दुसर्‍या डिव्हाइसवर आधीपासून Google असिस्टंटसह Voice Match सेट केले आहे. या डिव्हाइसवर आवाजाचा नमुना बनवण्यासाठी या मागील रेकॉर्डिंग वापरल्या जाऊ शकतात. याला एका मिनिटापेक्षा कमी वेळ लागेल.</translation>
 <translation id="104710386808485638">Linux रीस्टार्ट करायचे?</translation>
 <translation id="1047431265488717055">लिंक मजकूर कॉपी करा</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">कॅमेरा ॲक्सेस नेहमी ब्लॉक करा</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> तुमच्या Chrome सेटिंग्ज त्यांच्या मूळ डीफॉल्टवर रिस्टोअर करू इच्छित आहे. हे तुमचे मुख्यपेज, नवीन टॅब पेज आणि शोध इंजिन रीसेट करेल, तुमच्या एक्स्टेंशनांना अक्षम करेल आणि सर्व टॅबना अनपिन करेल. ते कुकीज, सामग्री आणि साइट डेटासारखा इतर तात्पुरता आणि कॅश केलेला डेटा देखील साफ करेल.</translation>
+<translation id="1084096383128641877">हा पासवर्ड काढल्याने तुमचे <ph name="DOMAIN" /> वरील खाते हटवले जाणार नाही. तुमचे <ph name="DOMAIN_LINK" /> वरील खाते इतरांपासून सुरक्षित ठेवण्यासाठी तुमचा पासवर्ड बदला किंवा तुमचे खाते हटवा.</translation>
 <translation id="1084824384139382525">लिंक पत्ता कॉपी करा</translation>
 <translation id="1085697365578766383">व्हर्च्युअल मशीन सुरू करताना एरर आली. कृपया पुन्हा प्रयत्न करा.</translation>
 <translation id="1090126737595388931">कोणतेही पार्श्वभूमी ॲप्लिकेशन चालत नाहीत</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">सुरक्षा तपासणी काल रन केली गेली</translation>
 <translation id="1260451001046713751"><ph name="HOST" /> कडील पॉप-अप आणि रीडिरेक्टना नेहमी अनुमती द्या</translation>
 <translation id="126156426083987769">डेमो मोड डिव्हाइस परवान्यांना समस्या आली.</translation>
+<translation id="1263490604593716556">खाते <ph name="FIRST_PARENT_EMAIL" /> आणि <ph name="SECOND_PARENT_EMAIL" /> ने व्‍यवस्‍थापित केले आहे. या डिव्हाइसवरील प्राथमिक खात्यामधून साइन आउट करण्यासाठी, तुमच्या स्क्रीनवरील वेळेवर क्लिक करा. दिसणाऱ्या मेनूध्ये, "साइन आउट करा" वर क्लिक करा.</translation>
 <translation id="126710816202626562">भाषांतर भाषा:</translation>
 <translation id="126768002343224824">१६x</translation>
 <translation id="1272079795634619415">थांबा</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">वेबसाइट</translation>
 <translation id="15662109988763471">निवडलेला प्रिंटर उपलब्ध नाही किंवा योग्यरीत्या इंस्टॉल केलेला नाही. तुमचा प्रिंटर तपासा किंवा दुसरा प्रिंटर निवडून पाहा.</translation>
 <translation id="1567387640189251553">तुम्ही शेवटचा पासवर्ड टाकल्या नंतर वेगळा कीबोर्ड कनेक्ट करण्यात आला आहे. तो कदाचित तुमचे कीस्ट्रोक चोरण्याचा प्रयत्न करत असेल.</translation>
-<translation id="1567750922576943685">तुमची ओळख पडताळल्याने तुमच्या वैयक्तिक माहितीचे संरक्षण करण्यात मदत होते</translation>
 <translation id="1567993339577891801">JavaScript कन्सोल</translation>
 <translation id="1568323446248056064">डिस्प्ले डिव्हाइस सेटिंग्ज उघडा</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (अतिथी)</translation>
@@ -518,7 +520,6 @@
 <translation id="1697150536837697295">कला</translation>
 <translation id="1697686431566694143">फाइल संपादित करा</translation>
 <translation id="1698122934742150150">केवळ वर्तमान गुप्त सेशन</translation>
-<translation id="1698650002254827833">या ॲप्सची सूची लोड होऊ शकत नाही. कृपया पुन्हा प्रयत्न करा.</translation>
 <translation id="1700079447639026019">कधीही कुकी वापरू न शकणार्‍या साइट</translation>
 <translation id="1701062906490865540">या व्यक्तीस काढून टाका</translation>
 <translation id="1703331064825191675">तुमच्या पासवर्डची कधीही चिंता करू नका</translation>
@@ -825,6 +826,7 @@
 <translation id="2119349053129246860"><ph name="APP" /> मध्ये उघडा</translation>
 <translation id="2120297377148151361">ॲक्टिव्हिटी आणि संवाद</translation>
 <translation id="2120639962942052471">ब्लॉक केलेली <ph name="PERMISSION" /></translation>
+<translation id="2121055421682309734">{COUNT,plural, =0{कुकी ब्लॉक केल्या आहेत}=1{कुकी ब्लॉक केल्या आहेत, एक अपवाद}other{कुकी ब्लॉक केल्या आहेत, {COUNT} अपवाद}}</translation>
 <translation id="2121825465123208577">आकार बदला</translation>
 <translation id="2122305276694332719">लपलेल्या नेटवर्कवर आपोआप कनेक्ट केल्याने इतरांना तुमचे डिव्हाइस आणि काही नेटवर्क सेटिंग्ज पाहण्याची अनुमती मिळते आणि याची शिफारस केली जात नाही.</translation>
 <translation id="2123766928840368256">वेगळी फाइल निवडा</translation>
@@ -871,6 +873,7 @@
 <translation id="2172784515318616985">सुरू ठेवा</translation>
 <translation id="2173302385160625112">तुमचे इंटरनेट कनेक्शन तपासा</translation>
 <translation id="2173801458090845390">या डीव्हाइसवर मागणी आयडी जोडा</translation>
+<translation id="2174948148799307353">खाते <ph name="PARENT_EMAIL" /> ने व्‍यवस्‍थापित केले आहे. या डिव्हाइसवरील प्राथमिक खात्यामधून साइन आउट करण्यासाठी, तुमच्या स्क्रीनवरील वेळेवर क्लिक करा. दिसणाऱ्या मेनूध्ये, "साइन आउट करा" वर क्लिक करा.</translation>
 <translation id="2175607476662778685">द्रुत लाँच बार</translation>
 <translation id="217576141146192373">प्रिंटर जोडू शकत नाही. कृपया तुमच्या प्रिंटरचे कॉन्फिगरेशन तपासा आणि पुन्हा प्रयत्न करा.</translation>
 <translation id="2177950615300672361">गुप्त टॅब: <ph name="TAB_NAME" /></translation>
@@ -1079,7 +1082,6 @@
 <translation id="2442916515643169563">मजकुराची शॅडो</translation>
 <translation id="2445081178310039857">एक्स्टेंशन मूळ डिरेक्टरी आवश्यक आहे.</translation>
 <translation id="2445484935443597917">नवीन प्रोफाइल तयार करा</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> ला तुमची ओळख पडताळयची आहे</translation>
 <translation id="2448312741937722512">प्रकार</translation>
 <translation id="2450223707519584812">Google API की गहाळ असल्याने तुम्ही वापरकर्ते जोडण्‍यात सक्षम असणार नाही. तपशीलांसाठी <ph name="DETAILS_URL" /> पहा.</translation>
 <translation id="2450849356604136918">कोणतेही सक्रिय व्ह्यू नाहीत</translation>
@@ -1477,6 +1479,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" /> वर जा</translation>
 <translation id="29488703364906173">हे आधुनिक वेबसाठी बनविलेले जलद, सोपे आणि सुरक्षित वेब ब्राउझर आहे.</translation>
 <translation id="2949289451367477459">स्‍थान वापरा. स्थान परवानगी असलेल्या अ‍ॅप्स आणि सेवांना या डिव्हाइसचे स्थान वापरण्याची अनुमती द्या. Google अधूनमधून स्थान डेटा गोळा करू शकते आणि स्थान अचूकता व स्थानावर आधारित सेवांमध्ये सुधारणा करण्यासाठी हा डेटा निनावी वापरू शकते. <ph name="BEGIN_LINK1" />अधिक जाणून घ्या<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">मला साइन अप करा</translation>
 <translation id="2956070239128776395">गटामध्ये विभाग नेस्ट केले: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">कोणत्याही साइटला तुमच्या डिव्हाइसवरील फाइल किंवा फोल्डर संपादित करण्याची अनुमती देऊ नका</translation>
 <translation id="2958721676848865875">पॅक एक्स्टेंशन चेतावणी</translation>
@@ -1601,6 +1604,7 @@
 <translation id="3139925690611372679">डीफॉल्ट पिवळा अवतार</translation>
 <translation id="3141318088920353606">ऐकत आहे…</translation>
 <translation id="3141917231319778873">दिलेल्या विनंतीला यावर सपोर्ट नाही: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">नवीन गट</translation>
 <translation id="3143515551205905069">सिंक रद्द करा</translation>
 <translation id="3143754809889689516">सुरवातीपासून प्ले करा</translation>
 <translation id="3144647712221361880">लिंक या फॉरमॅटमध्ये उघडा</translation>
@@ -1625,6 +1629,7 @@
 <translation id="3159493096109238499">फिकट तपकिरी</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (हार्डवेअर-बॅक्ड)</translation>
 <translation id="3161522574479303604">सर्व भाषा</translation>
+<translation id="3162853326462195145">शाळा खाते</translation>
 <translation id="3162899666601560689">तुमच्या ब्राउझिंग अनुभवात सुधारणा करण्यासाठी, उदाहरणार्थ, तुम्हाला साइन इन केलेले ठेवण्यासाठी किंवा तुमच्या शॉपिंग कार्टमधील आयटम लक्षात ठेवण्यासाठी साइट कुकी वापरू शकतात</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> विक्रेत्याकडील <ph name="PRODUCT_ID" /> अज्ञात उत्पादन</translation>
 <translation id="3164329792803560526"><ph name="APP_NAME" /> यावर हा टॅब शेअर करत आहे</translation>
@@ -1683,7 +1688,6 @@
 <translation id="3246107497225150582">{0,plural, =1{डिव्हाइस एका दिवसाच्या आत अपडेट करा}other{डिव्हाइस # दिवसांच्या आत अपडेट करा}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - नेटवर्क एरर</translation>
 <translation id="3248902735035392926">सुरक्षा महत्त्वाची आहे. थोडा वेळ काढा आणि <ph name="BEGIN_LINK" />आता तुमची एक्स्टेंशन तपासा<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;प्रमाणपत्राचा भाग नाही&gt;</translation>
 <translation id="3253225298092156258">उपलब्ध नाही</translation>
 <translation id="3253448572569133955">अज्ञात खाते</translation>
@@ -1788,6 +1792,7 @@
 <translation id="3396800784455899911">"स्वीकारा आणि सुरू ठेवा" या बटणावर क्लिक करून तुम्ही या Google सेवांसाठी वर वर्णन केलेल्या प्रक्रियांना सहमती दर्शवता.</translation>
 <translation id="3399432415385675819">सूचना बंद केल्या जातील</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - हस्तक्षेप केला</translation>
+<translation id="3402585168444815892">डेमो मोड मध्ये नोंदणी करत आहे</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">या साइटचे कोणतेही पासवर्ड सेव्ह केलेले नाहीत</translation>
 <translation id="3405664148539009465">फॉन्ट कस्टमाइझ करा</translation>
@@ -1849,6 +1854,7 @@
 <translation id="3468999815377931311">Android फोन</translation>
 <translation id="3470442499439619530">हा वापरकर्ता काढून टाका</translation>
 <translation id="3471876058939596279">व्हिडिओसाठी HDMI आणि USB केबल एकाच वेळी वापरता येत नाहीत. वेगळी व्हिडिओ पोर्ट वापरा.</translation>
+<translation id="3473241910002674503">टॅबलेट मोडमध्ये बटणांनी होम, परत जा वर नेव्हिगेट करा आणि अ‍ॅप्स स्विच करा.</translation>
 <translation id="3473479545200714844">स्क्रीन भिंग</translation>
 <translation id="3475843873335999118">सॉरी, तुमचे फिंगरप्रिंट अद्याप ओळखले नाही. कृपया तुमचा पासवर्ड एंटर करा.</translation>
 <translation id="3476303763173086583">वापर आणि निदान डेटा पाठवा. Google ला आपोआप निदान आणि डिव्हाइस आणि अ‍ॅप वापर डेटा पाठवून तुमच्या लहान मुलाचा Android अनुभव सुधारण्यात मदत करा. हे तुमच्या लहान मुलाला ओळखण्यासाठी वापरले जाणार नाही आणि सिस्ट्म आणि अ‍ॅप स्थिरता आणि इतर सुधारणा करण्यात मदत करेल. काही एकत्रित केलेला डेटा Google अ‍ॅप्स आणि Android डेव्हलपर सारख्या भागीदारांना देखील मदत करेल. या <ph name="BEGIN_LINK1" />सेटिंगची<ph name="END_LINK1" /> मालकाद्वारे अंमलबजावणी केली जाते. मालक या डिव्हाइससाठी निदान आणि वापर डेटा Google ला पाठवणे निवडू शकतो. तुमच्या लहान मुलासाठी अतिरिक्त वेब आणि अ‍ॅप अ‍ॅक्टिव्हिटी सुरू केलेली असल्यास, ही माहिती त्याच्या Google खात्यामध्ये स्टोअर केली जाऊ शकते. <ph name="BEGIN_LINK2" />अधिक जाणून घ्या<ph name="END_LINK2" /></translation>
@@ -2273,6 +2279,7 @@
 <translation id="3971764089670057203">या सिक्युरिटी कीवरील फिंगरप्रिंट</translation>
 <translation id="3973660817924297510">पासवर्ड तपासत आहे (<ph name="TOTAL_PASSWORDS" /> पैकी <ph name="CHECKED_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">क्षेत्रासाठी सर्व्हरशी कनेक्ट करता आले नाही</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> तुमचे पासवर्ड तपासू शकत नाही. नंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="3976108569178263973">तेथे कोणतेही प्रिंटर उपलब्ध नाहीत.</translation>
 <translation id="397703832102027365">पूर्ण करीत आहे...</translation>
 <translation id="3977886311744775419">या नेटवर्क प्रकारावर आपोआप अपडेट डाउनलोड होत नाहीत पण तुम्ही मॅन्युअली अपडेट पाहू शकता.</translation>
@@ -2336,6 +2343,7 @@
 <translation id="4068506536726151626">या पेजवर तुमचे स्थान ट्रॅक करणार्‍या खालील साइटवरील घटक समाविष्ट आहेत:</translation>
 <translation id="4068776064906523561">फिंगरप्रिंट सेव्ह केले</translation>
 <translation id="407173827865827707">क्लिकवर</translation>
+<translation id="4073520450811433493">सेटिंग्ज सिंक</translation>
 <translation id="4074900173531346617">ईमेल स्वाक्षरीकर्ता सर्टिफिकेट</translation>
 <translation id="407520071244661467">स्केल</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> कास्ट करू शकलो नाही.</translation>
@@ -2570,6 +2578,7 @@
 <translation id="4421932782753506458">Fluffy</translation>
 <translation id="4423376891418188461">सेटिंग्ज पुनर्संचयित करा</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, तुम्ही तुमचा पासवर्ड बदलणे तुमच्या ॲडमिनिस्ट्रेटरलााठी आवश्यक आहे.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> तुमचे पासवर्ड तपासू शकत नाही. २४ तासांनंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="4429030830601238961">हा डेटा तुमच्या संस्थेच्या सुरक्षितता धोरणांचे उल्लंघन करतो आणि तो पेस्ट केला जाऊ शकत नाही.</translation>
 <translation id="4430019312045809116">व्हॉल्यूम</translation>
 <translation id="4430369329743628066">बुकमार्क जोडला</translation>
@@ -2582,6 +2591,7 @@
 <translation id="4441124369922430666">मशीन चालू होते तेव्हा तुम्ही हा ॲप स्वयंचलितपणे प्रारंभ करू इच्छिता?</translation>
 <translation id="4441147046941420429">पुढे सुरू ठेवण्यासाठी, तुमच्या डिव्हाइसमधून सिक्युरिटी की काढून टाका आणि नंतर ती पुन्हा घालून तिला स्पर्श करा</translation>
 <translation id="444134486829715816">विस्तार करा...</translation>
+<translation id="4442329324652245220">तुम्ही तुमचे Google खाते वापरून साइन इन करता तेव्हा, <ph name="IDS_SHORT_PRODUCT_NAME" /> तुमचे पासवर्ड तपासू शकते</translation>
 <translation id="4442424173763614572">DNS लुकअप अयश्सवी</translation>
 <translation id="4443536555189480885">&amp;मदत</translation>
 <translation id="4444304522807523469">USB द्वारा संलग्न केलेल्या किंवा स्थानिक नेटवर्कवरील दस्तऐवज स्कॅनर ॲक्सेस करा</translation>
@@ -2608,11 +2618,13 @@
 <translation id="4476659815936224889">हा कोड स्कॅन करण्यासाठी, तुम्ही तुमच्या फोनवरील QR स्कॅनर ॲप किंवा काही कॅमेरा अ‍ॅप्स वापरू शकता.</translation>
 <translation id="4477015793815781985">Ctrl, Alt किंवा ⌘ चा समावेश करा</translation>
 <translation id="4478664379124702289">या फॉरमॅटमध्ये लिंक सेव्ह करा...</translation>
+<translation id="4478777936860197922">सेव्ह केलेले पासवर्ड नाहीत. तुम्ही तुमचे पासवर्ड सेव्ह केल्यावर <ph name="IDS_SHORT_PRODUCT_NAME" /> ते तपासू शकते.</translation>
 <translation id="4479424953165245642">कियोस्क ॲप्लिकेशन व्यवस्थापित करा</translation>
 <translation id="4479639480957787382">इथरनेट</translation>
 <translation id="4479877282574735775">व्हर्च्युअल मशीन कॉन्फिगर करत आहे. यासाठी काही मिनिटे लागू शकतात.</translation>
 <translation id="4480590691557335796">Chrome तुमच्या काँप्युटरवरील नुकसानकारक सॉफ्टवेअर शोधू शकते आणि ते काढू शकते</translation>
 <translation id="4481530544597605423">जोडणी वेगळी केलेली डिव्हाइस</translation>
+<translation id="4488107067273194838">सेटअप झाल्यानंतर ब्राउझर सिंक पर्यायांचे पुनरावलोकन करा</translation>
 <translation id="4488502501195719518">सर्व डेटा साफ करायचा?</translation>
 <translation id="4495419450179050807">या पेजवर दर्शवू नका</translation>
 <translation id="4496054781541092778">आपोआप ब्लॉक केलेली <ph name="PERMISSION" /></translation>
@@ -2854,6 +2866,7 @@
 <translation id="4849517651082200438">इंस्टॉल करू नका</translation>
 <translation id="4850669014075537160">स्क्रोलिंग</translation>
 <translation id="4850886885716139402">पहा</translation>
+<translation id="485197095346966382">तुम्ही धोक्यात असलेल्या पासवर्डने साइन इन केल्यावर <ph name="IDS_SHORT_PRODUCT_NAME" /> तुम्हाला सूचित करेल</translation>
 <translation id="4853020600495124913">&amp;नवीन विंडोमध्ये उघडा</translation>
 <translation id="4854317507773910281">मंजुरीसाठी पालक खाते निवडा</translation>
 <translation id="485480310608090163">आणखी सेटिंग्ज आणि परवानग्या</translation>
@@ -2872,6 +2885,7 @@
 <translation id="4871322859485617074">पिनमध्ये अवैध वर्ण आहेत</translation>
 <translation id="4871370605780490696">बुकमार्क जोडा</translation>
 <translation id="4871719318659334896">गट बंद करा</translation>
+<translation id="4871852311166078968">गटामध्ये जोडा</translation>
 <translation id="4873312501243535625">मीडिया फाईल तपासक</translation>
 <translation id="4876273079589074638">आमच्या इंजिनियरना या क्रॅशची तपासणी करून त्याचे निराकरण करण्यात मदत करा. तुम्हाला शक्य असल्यास नेमक्या पायर्‍यांची एक सूची तयार करा. कोणताही तपशील कमी लेखण्यासारखा नसतो!</translation>
 <translation id="4876895919560854374">स्क्रीन लॉक आणि अनलॉक करा</translation>
@@ -2963,7 +2977,6 @@
 <translation id="4992473555164495036">तुमच्या ॲडमिनिस्ट्रेटरने उपलब्ध इनपुट पद्धती मर्यादित केल्या आहेत.</translation>
 <translation id="4994474651455208930">प्रोटोकॉलसाठी डीफॉल्ट हँडलर होण्यासाठी साइटना विचारण्याची परवानगी द्या</translation>
 <translation id="4994754230098574403">सेट अप करीत आहे</translation>
-<translation id="4996978546172906250">याद्वारे शेअर करा</translation>
 <translation id="4997086284911172121">इंटरनेट कनेक्‍शन नाही.</translation>
 <translation id="4997384734315285248">Plugin VM अनइंस्टॉल करा</translation>
 <translation id="4998430619171209993">सुरू</translation>
@@ -3063,7 +3076,6 @@
 <translation id="5135085122826131075">तुम्ही "Ok Google" म्हणता तेव्हा Assistant अ‍ॅक्सेस करा.</translation>
 <translation id="5135533361271311778">बुकमार्क आयटम तयार करणे शक्य नाही.</translation>
 <translation id="5137501176474113045">हा आयटम हटवा</translation>
-<translation id="5138982052046316113">Linux डिस्क चा आकार बदला</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> Search</translation>
 <translation id="5139823398361067371">तुमच्या सिक्युरिटी कीचा पिन एंटर करा. तुम्हाला पिन माहीत नसल्यास, तुम्ही सिक्युरिटी की रीसेट करणे आवश्यक आहे.</translation>
 <translation id="5139955368427980650">&amp;उघडा</translation>
@@ -3515,6 +3527,7 @@
 <translation id="5739235828260127894">पडताळणीसाठी वाट पाहत आहे. <ph name="LINK_BEGIN" />अधिक जाणून घ्या.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">खूप मोठा</translation>
 <translation id="574209121243317957">पिच</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" /> बाबत टिपा, ऑफर व अपडेट मिळवा आणि फीडबॅक शेअर करा</translation>
 <translation id="5746169159649715125">पीडीएफ म्हणून सेव्ह करा</translation>
 <translation id="5747552184818312860">कालबाह्य होईल</translation>
 <translation id="5747785204778348146">डेव्हलपर - अस्थिर</translation>
@@ -3928,7 +3941,6 @@
 <translation id="6291953229176937411">फाइंडर मध्ये &amp;दर्शवा</translation>
 <translation id="6295158916970320988">सर्व साइट</translation>
 <translation id="6295855836753816081">सेव्ह करत आहे...</translation>
-<translation id="629730747756840877">खाते</translation>
 <translation id="6298962879096096191">Android ॲप्स इंस्टॉल करण्‍यासाठी Google Play वापरा</translation>
 <translation id="630065524203833229">नि&amp;र्गमन</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> आपोआप कॉंफिगर होऊ शकत नाही. कृपया प्रगत प्रिंटर तपशील नमूद करा. <ph name="LINK_BEGIN" />अधिक जाणून घ्या<ph name="LINK_END" /></translation>
@@ -4334,7 +4346,6 @@
 <translation id="6865598234501509159">पेज <ph name="LANGUAGE" /> मध्ये नाही</translation>
 <translation id="6865708901122695652">(<ph name="WEBRTC_EVENT_LOG_COUNT" />) WebRTC कार्यक्रम नोंदी</translation>
 <translation id="686664946474413495">रंगाचे तापमान</translation>
-<translation id="6870888490422746447">यासह शेअर करण्‍यासाठी एक ॲप निवडा:</translation>
 <translation id="6871644448911473373">OCSP प्रतिसादकर्ता: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">तुम्ही टाकलेला पासवर्ड सर्व्हरने नाकारला होता.</translation>
 <translation id="6876155724392614295">सायकल</translation>
@@ -4427,6 +4438,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - ॲक्टिव्हिटी लॉग</translation>
 <translation id="6997707937646349884">तुमच्या डिव्हाइसवर:</translation>
 <translation id="6998793565256476099">डीव्हाइसची व्हिडिओ काँफरंससाठी नोंदणी करा</translation>
+<translation id="6999956497249459195">नवीन गट</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> कनेक्ट केलेला आहे पण कॉन्फिगर करणे आवश्यक आहे</translation>
 <translation id="7000347579424117903">Ctrl, Alt किंवा शोधचा समावेश करा</translation>
 <translation id="7001036685275644873">Linux अ‍ॅप्स आणि फायलींचा बॅकअप घेत आहे</translation>
@@ -4725,6 +4737,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">तुमच्या <ph name="PHONE_NAME" />वर कनेक्शन सेट अप करा</translation>
 <translation id="7401778920660465883">हा मेसेज डिसमिस करा</translation>
+<translation id="7403642243184989645">स्रोत डाउनलोड करत आहे</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{सुरक्षा तपासणी एका तासापूर्वी रन केली गेली}other{सुरक्षा तपासणी {NUM_HOURS} तासांपूर्वी रन केली गेली}}</translation>
 <translation id="740624631517654988">पॉप-अप अवरोधित</translation>
 <translation id="7407430846095439694">इंपोर्ट करा आणि प्रतिबद्ध करा</translation>
@@ -4961,6 +4974,7 @@
 <translation id="7716781361494605745">Netscape प्रमाणपत्र अधिकृतता धोरण URL</translation>
 <translation id="7717014941119698257">डाउनलोड करत आहे: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">अपडेट तपासा</translation>
+<translation id="7719070594859855691">कॅमेर्‍याचा अ‍ॅक्सेस द्या</translation>
 <translation id="7719367874908701697">पेज झूम करा</translation>
 <translation id="7721179060400456005">विंडोला दृश्ये स्पॅन करण्याची अनुमती द्या</translation>
 <translation id="7722040605881499779">अपडेटसाठी आवश्यक: <ph name="NECESSARY_SPACE" /></translation>
@@ -4975,7 +4989,6 @@
 <translation id="7744047395460924128">तुमचा प्रिंटिंग इतिहास पहा</translation>
 <translation id="7744192722284567281">डेटा भंग करत असल्याचे आढळले</translation>
 <translation id="7750228210027921155">चित्रात-चित्र</translation>
-<translation id="7751229152614300329">सुरक्षित ब्राउझिंग अप टू डेट आहे आणि हानीकारक साइट व डाउनलोडपासून तुमचे संरक्षण करत आहे</translation>
 <translation id="7751260505918304024">सर्व दर्शवा</translation>
 <translation id="7754704193130578113">डाउनलोड करण्यापूर्वी प्रत्येक फाइल कुठे सेव्ह करावी ते विचारा</translation>
 <translation id="7755287808199759310">तुमचे पालक तुमच्यासाठी ती अनावरोधित करू शकतात</translation>
@@ -5061,6 +5074,7 @@
 <ph name="BEGIN_BOLD" />सूचना:<ph name="END_BOLD" /> प्रक्रियेदरम्यान सिस्टम रीबूट होईल.</translation>
 <translation id="7828731929332799387">हे तृतीय पक्ष संदर्भात उपलब्ध असलेल्या कुकी आणि साइट हटवेल. तुम्हाला पुढे सुरू ठेवायचे आहे का?</translation>
 <translation id="7829298379596169484">ऑडिओ इनपुटमध्‍ये प्रवेश करीत आहे</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> तुमचे पासवर्ड तपासू शकत नाही. तुमचे इंटरनेट कनेक्शन तपासून पहा.</translation>
 <translation id="7829877209233347340">शाळा खाते जोडण्याची परवानगी देण्यासाठी, पालकाला साइन इन करण्यास सांगा</translation>
 <translation id="7830594666202422257">Linux शी कनेक्ट करा</translation>
 <translation id="7831491651892296503">नेटवर्क कॉन्फिगर करताना एरर आली</translation>
@@ -5283,6 +5297,7 @@
 <translation id="8107015733319732394">तुमच्या <ph name="DEVICE_TYPE" /> वर Google Play स्टोअर इंस्टॉल करत आहे. यासाठी काही मिनिटे लागतील.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{कोणत्याही तृतीय पक्ष कुकी नाहीत}=1{१ तृतीय पक्ष कुकी ब्लॉक केली आहे}other{# तृतीय पक्ष कुकी ब्लॉक केल्या आहेत}}</translation>
 <translation id="810875025413331850">कोणतीही जवळपासची डिव्हाइस आढळली नाहीत.</translation>
+<translation id="8114199541033039755">टॅबलेट मोडमध्ये बटणांनी होम, परत जा वर नेव्हिगेट करा आणि अ‍ॅप्स स्विच करा. ChromeVox किंवा ऑटोमॅटिक क्लिक सुरू केले असताना सुरू केले जाते.</translation>
 <translation id="8114875720387900039">आडवे विभाजित करा</translation>
 <translation id="8116972784401310538">&amp;बुकमार्क व्यवस्थापक</translation>
 <translation id="8117620576188476503">स्थिती ट्रेने कनेक्शन, अपडेट आणि सेटिंग्ज व्यवस्थापित करा. येथे कीबोर्डने येण्यासाठी, Alt + Shift + S दाबा.</translation>
@@ -5402,6 +5417,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> नी तुमचा माउस कर्सर बंद केला आहे.</translation>
 <translation id="8264024885325823677">हे सेटिंग तुमच्या अ‍ॅडमिनिस्ट्रेटरद्वारे व्यवस्थापित केले जाते.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" प्रवर्तित क्षेत्रे.</translation>
+<translation id="826511437356419340">विंडो अवलोकन मोड एंटर केला. नेव्हिगेट करण्यासाठी स्वाइप करा किंवा कीबोर्ड वापरत असल्यास टॅब दाबा.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />हे डिव्हाइस आणि ते कसे वापरले जाते याविषयी ही सर्वसाधारण माहिती आहे (जसे की, बॅटरी पातळी, सिस्टम आणि ॲप ॲक्टिव्हिटी आणि एरर). डेटाचा वापर Android सुधारित करण्यासाठी केला जाईल आणि काही एकत्रित केलेली माहिती Google ॲप्स आणि Android डेव्हलपरसारख्या भागीदारांना त्यांची ॲप्स आणि उत्पादने आणखी उत्तम बनवण्यातदेखील मदत करेल<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />ही वैशिष्ट्ये बंद केल्याने तुमच्या डिव्हाइसच्या सिस्टम अपडेट आणि सुरक्षितता यासारख्या अत्यावश्यक सेवांसाठी आवश्यक असलेली माहिती पाठवण्याच्या या डिव्हाइसच्या क्षमतेवर परिणाम होत नाही.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />सेटिंग्ज &gt; प्रगत &gt; Google ला आपोआप निदान आणि वापरलेला डेटा पाठवा वरून मालक हे वैशिष्ट्य नियंत्रित करू शकतो.<ph name="END_PARAGRAPH3" />
@@ -5510,6 +5526,7 @@
 <translation id="8426713856918551002">चालू करत आहे</translation>
 <translation id="8427292751741042100">कोणत्याही होस्टवर एंबेड होण्यासारखे आहे</translation>
 <translation id="8428213095426709021">सेटिंग्ज</translation>
+<translation id="8428271547607112339">शाळा खाते जोडा</translation>
 <translation id="8428628598981198790">तुमची सिक्युरिटी की या साइटसह वापरली जाऊ शकत नाही.</translation>
 <translation id="84297032718407999">तुम्हाला <ph name="LOGOUT_TIME_LEFT" /> मध्ये साइन आउट केले जाईल</translation>
 <translation id="8431190899827883166">टॅप दाखवा</translation>
@@ -5573,6 +5590,7 @@
 <translation id="851263357009351303"> <ph name="HOST" />  ना इमेज दर्शविण्यासाठी नेहमी परवानगी द्या </translation>
 <translation id="8513108775083588393">ऑटो-रोटेट</translation>
 <translation id="8514746246728959655">वेगळी सिक्युरिटी की वापरून पाहा</translation>
+<translation id="851960115758509829">तुमची अ‍ॅप्स, सेटिंग्ज आणि इतर कस्टमायझेशन तुमच्या Google खाते ने साइन इन केलेल्या सर्व Chrome OS डिव्हाइसवर सिंक होतील.</translation>
 <translation id="8521475323816527629">तुमच्या अ‍ॅप्सवर पटकन जा</translation>
 <translation id="8523493869875972733">बदल राहू द्या</translation>
 <translation id="8523849605371521713">धोरणाने जोडले</translation>
@@ -5855,11 +5873,13 @@
 <translation id="885701979325669005">स्टोरेज</translation>
 <translation id="8859057652521303089">तुमची भाषा निवडा:</translation>
 <translation id="8859174528519900719">सबफ्रेम: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">पालक खाते</translation>
 <translation id="8862003515646449717">वेगवान ब्राउझरवर बदला</translation>
 <translation id="8863753581171631212">लिंक नवीन <ph name="APP" /> मध्ये उघडा</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> <ph name="APP_NAME" />वर शेअर करत आहे</translation>
 <translation id="8864458770072227512">या डिव्हाइसवरून <ph name="EMAIL" /> काढून टाकण्यात आला</translation>
 <translation id="8867228703146808825">बिल्ड तपशील क्लिपबोर्डवर कॉपी करा</translation>
+<translation id="8868333925931032127">डेमो मोड सुरू करत आहे</translation>
 <translation id="8868626022555786497">वापरात आहे</translation>
 <translation id="8870413625673593573">अलीकडे बंद</translation>
 <translation id="8871551568777368300">ॲडमिनिस्ट्रेटरने पिन केले</translation>
@@ -5938,6 +5958,7 @@
 <translation id="8966870118594285808">तुम्ही एखादा टॅब चुकून बंद केल्यास, तो पुन्हा उघडा</translation>
 <translation id="8967866634928501045">दाखवण्यासाठी Alt Shift A दाबा</translation>
 <translation id="8968766641738584599">कार्ड सेव्ह करा</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> तुमचे पासवर्ड तपासू शकत नाही. २४ तासांनंतर पुन्हा प्रयत्न करा किंवा <ph name="BEGIN_LINK" />तुमच्या Google खाते मध्ये पासवर्ड तपासा<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">कृपया फायरवॉल Google सर्व्हरवरून डाउनलोड ब्लॉक करत नसल्याची खात्री करण्यासाठी तुमच्या नेटवर्क ॲडमिनिस्ट्रेटरच्या साहाय्याने तपासा.</translation>
 <translation id="8973557916016709913">झूम स्तर काढून टाका</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 320ef25..7d9c04d 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Peranti yang tersedia</translation>
 <translation id="1042174272890264476">Komputer anda juga disertakan dengan pustaka RLZ <ph name="SHORT_PRODUCT_NAME" /> terbina dalam. RLZ memperuntukkan tanda nama tidak unik yang tidak boleh mengenal pasti secara peribadi untuk mengukur carian dan penggunaan <ph name="SHORT_PRODUCT_NAME" /> yang didorong oleh kempen galakan tertentu. Label ini kadangkala dipaparkan dalam pertanyaan Carian Google dalam <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Kosongkan data daripada apl ini juga?</translation>
+<translation id="1045448422538531528">Tambahkan pada kumpulan</translation>
 <translation id="1046635659603195359">Nampaknya anda telah menyediakan Voice Match dengan Google Assistant anda pada peranti lain. Rakaman terdahulu ini boleh digunakan untuk membuat model suara pada peranti ini. Proses ini mengambil masa tidak sampai seminit.</translation>
 <translation id="104710386808485638">Mulakan semula Linux?</translation>
 <translation id="1047431265488717055">Salin Te&amp;ks Pautan</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Sentiasa sekat akses kamera</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> mahu memulihkan tetapan Chrome anda kepada tetapan lalainya yang asal. Tindakan ini akan menetap semula halaman utama, halaman tab baharu dan enjin carian anda, melumpuhkan sambungan anda dan menyahsemat semua tab. Data sementara yang lain dan data cache anda, seperti data kuki, kandungan dan tapak akan turut dikosongkan.</translation>
+<translation id="1084096383128641877">Pengalihan keluar kata laluan tidak akan memadamkan akaun anda pada <ph name="DOMAIN" />. Tukar kata laluan anda atau padamkan akaun anda pada <ph name="DOMAIN_LINK" /> untuk melindungi kata laluan itu daripada orang lain.</translation>
 <translation id="1084824384139382525">Salin alamat pau&amp;tan</translation>
 <translation id="1085697365578766383">Ralat semasa memulakan mesin maya. Sila cuba lagi.</translation>
 <translation id="1090126737595388931">Tiada Apl Latar Belakang Dijalankan</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Semakan keselamatan dijalankan semalam</translation>
 <translation id="1260451001046713751">Sentiasa benarkan tetingkap timbul daripada <ph name="HOST" /></translation>
 <translation id="126156426083987769">Masalah berkaitan lesen peranti mod tunjuk cara telah berlaku.</translation>
+<translation id="1263490604593716556">Akaun diurus oleh <ph name="FIRST_PARENT_EMAIL" /> dan <ph name="SECOND_PARENT_EMAIL" />. Untuk log keluar daripada akaun utama pada peranti ini, klik paparan masa pada skrin anda. Dalam menu yang dipaparkan, klik "Log keluar".</translation>
 <translation id="126710816202626562">Bahasa terjemahan:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Berhenti</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Tapak web</translation>
 <translation id="15662109988763471">Pencetak yang dipilih tidak tersedia atau tidak dipasang dengan betul. Periksa pencetak anda atau cuba pilih pencetak lain.</translation>
 <translation id="1567387640189251553">Papan kekunci lain telah disambungkan sejak kali terakhir anda memasukkan kata laluan. Papan kekunci ini mungkin sedang cuba mencuri ketukan kekunci anda.</translation>
-<translation id="1567750922576943685">Pengesahan identiti anda dapat melindungi maklumat peribadi anda</translation>
 <translation id="1567993339577891801">JavaScript Console</translation>
 <translation id="1568323446248056064">Buka tetapan peranti paparan</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Tetamu)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Seni</translation>
 <translation id="1697686431566694143">Edit fail</translation>
 <translation id="1698122934742150150">Sesi inkognito semasa sahaja</translation>
-<translation id="1698650002254827833">Senarai apl tidak dapat dimuatkan. Sila cuba lagi.</translation>
 <translation id="1700079447639026019">Tapak yang tidak boleh menggunakan kuki buat selama-lamanya</translation>
 <translation id="1701062906490865540">Alih keluar orang ini</translation>
 <translation id="1703331064825191675">Jangan bimbang tentang kata laluan anda</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Teruskan</translation>
 <translation id="2173302385160625112">Periksa sambungan Internet anda</translation>
 <translation id="2173801458090845390">Tambahkan ID permintaan pada peranti ini</translation>
+<translation id="2174948148799307353">Akaun diurus oleh <ph name="PARENT_EMAIL" />. Untuk log keluar daripada akaun utama pada peranti ini, klik paparan masa pada skrin anda. Dalam menu yang dipaparkan, klik "Log keluar".</translation>
 <translation id="2175607476662778685">Bar lancar cepat</translation>
 <translation id="217576141146192373">Tidak dapat menambahkan pencetak. Sila periksa konfigurasi pencetak anda dan cuba lagi.</translation>
 <translation id="2177950615300672361">Tab Inkognito: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Bayangan teks</translation>
 <translation id="2445081178310039857">Direktori akar sambungan adalah diperlukan.</translation>
 <translation id="2445484935443597917">Buat Profil Baharu</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> mahu mengesahkan identiti anda</translation>
 <translation id="2448312741937722512">Jenis</translation>
 <translation id="2450223707519584812">Anda tidak akan dapat menambahkan pengguna kerana kunci API Google tiada. Lihat <ph name="DETAILS_URL" /> untuk mendapatkan butiran.</translation>
 <translation id="2450849356604136918">Tiada paparan aktif</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Pergi ke <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Penyemak imbas web yang pantas, mudah dan selamat, yang dibina untuk web moden.</translation>
 <translation id="2949289451367477459">Gunakan lokasi. Benarkan apl dan perkhidmatan dengan kebenaran lokasi menggunakan lokasi peranti ini. Google mungkin mengumpulkan data lokasi secara berkala dan menggunakan data ini secara awanama untuk meningkatkan ketepatan lokasi dan perkhidmatan berasaskan lokasi. <ph name="BEGIN_LINK1" />Ketahui Lebih Lanjut<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Daftarkan saya</translation>
 <translation id="2956070239128776395">Seksyen diletakkan dalam kumpulan: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Jangan benarkan sebarang tapak mengedit fail atau folder pada peranti anda</translation>
 <translation id="2958721676848865875">Amaran sambungan pek</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Avatar kuning lalai</translation>
 <translation id="3141318088920353606">Mendengar...</translation>
 <translation id="3141917231319778873">Permintaan yang dinyatakan tidak disokong pada: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Kumpulan Baharu</translation>
 <translation id="3143515551205905069">Batalkan penyegerakan</translation>
 <translation id="3143754809889689516">Mainkan dari permulaan</translation>
 <translation id="3144647712221361880">Buka pautan sebagai</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Kuning Air</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (disokong perkakasan)</translation>
 <translation id="3161522574479303604">Semua bahasa</translation>
+<translation id="3162853326462195145">Akaun sekolah</translation>
 <translation id="3162899666601560689">Tapak boleh menggunakan kuki untuk memperbaik pengalaman penyemakan imbas anda, contohnya, untuk mengekalkan log masuk anda atau untuk mengingat item dalam troli beli-belah anda</translation>
 <translation id="3163201441334626963">Produk <ph name="PRODUCT_ID" /> daripada vendor <ph name="VENDOR_ID" /> tidak diketahui</translation>
 <translation id="3164329792803560526">Berkongsi tab ini ke <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Kemas kini pranti dalam masa sehari}other{Kemas kini peranti dalam masa # hari}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Ralat rangkaian</translation>
 <translation id="3248902735035392926">Keselamatan adalah perkara penting. Luangkan masa dan <ph name="BEGIN_LINK" />semak sambungan anda<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Bukan Sebahagian Daripada Sijil&gt;</translation>
 <translation id="3253225298092156258">Tidak tersedia</translation>
 <translation id="3253448572569133955">Akaun tidak diketahui</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Dengan mengklik butang "Terima dan teruskan", anda bersetuju membenarkan pemprosesan yang dihuraikan di atas untuk perkhidmatan Google ini.</translation>
 <translation id="3399432415385675819">Pemberitahuan akan dilumpuhkan</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - berselang-seli</translation>
+<translation id="3402585168444815892">Mendaftar dalam Mod Tunjuk Cara</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Tiada kata laluan disimpan untuk tapak ini</translation>
 <translation id="3405664148539009465">Sesuaikan fon</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Telefon Android</translation>
 <translation id="3470442499439619530">Alih Keluar Pengguna Ini</translation>
 <translation id="3471876058939596279">Port HDMI dan USB Jenis-C tidak boleh digunakan untuk video pada masa yang sama. Gunakan port video yang berbeza.</translation>
+<translation id="3473241910002674503">Navigasi ke laman utama, ke halaman sebelumnya dan bertukar apl menggunakan butang dalam mod tablet.</translation>
 <translation id="3473479545200714844">Penggadang skrin</translation>
 <translation id="3475843873335999118">Maaf, cap jari anda masih tidak dikenali. Sila masukkan kata laluan anda.</translation>
 <translation id="3476303763173086583">Hantar data penggunaan dan diagnostik. Bantu kami meningkatkan pengalaman Android anak anda dengan menghantar data diagnostik dan penggunaan peranti serta apl kepada Google secara automatik. Data ini tidak akan digunakan untuk mengenal pasti anak anda dan akan membantu peningkatan kestabilan sistem dan apl serta pelbagai lagi. Sesetengah data agregat juga akan membantu apl dan rakan kongsi Google, seperti pembangun Android. <ph name="BEGIN_LINK1" />Tetapan<ph name="END_LINK1" /> ini dikuatkuasakan oleh pemilik. Pemilik mungkin memilih untuk menghantar data diagnostik dan penggunaan bagi peranti ini kepada Google. Jika tetapan Aktiviti Web &amp; Apl tambahan dihidupkan untuk anak anda, data ini mungkin disimpan ke akaun Googlenya. <ph name="BEGIN_LINK2" />Ketahui Lebih Lanjut<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Cap jari pada kunci keselamatan ini</translation>
 <translation id="3973660817924297510">Menyemak kata laluan (<ph name="CHECKED_PASSWORDS" /> daripada <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Gagal menghubungi pelayan untuk realma</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> tidak dapat menyemak kata laluan anda. Cuba lagi nanti.</translation>
 <translation id="3976108569178263973">Pencetak tidak tersedia.</translation>
 <translation id="397703832102027365">Menyelesaikan...</translation>
 <translation id="3977886311744775419">Kemas kini automatik tidak memuat turun pada jenis rangkaian ini, tetapi anda boleh menyemak kemas kini secara manual.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Halaman ini mengandungi unsur daripada tapak berikut yang menjejaki lokasi anda:</translation>
 <translation id="4068776064906523561">Cap jari disimpan</translation>
 <translation id="407173827865827707">Apabila diklik</translation>
+<translation id="4073520450811433493">Penyegerakan tetapan</translation>
 <translation id="4074900173531346617">Sijil Penandatangan E-mel</translation>
 <translation id="407520071244661467">Skala</translation>
 <translation id="4075639477629295004">Tidak dapat menghantar <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Gebu</translation>
 <translation id="4423376891418188461">Pulihkan Tetapan</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, pentadbir anda memerlukan anda untuk menukar kata laluan.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> tidak dapat menyemak kata laluan anda. Cuba lagi selepas 24 jam.</translation>
 <translation id="4429030830601238961">Data ini melanggar dasar keselamatan organisasi anda dan tidak boleh ditampal.</translation>
 <translation id="4430019312045809116">Kelantangan</translation>
 <translation id="4430369329743628066">Penanda halaman ditambahkan</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Adakah anda ingin mulakan apl ini secara automatik apabila mesin ini dihidupkan?</translation>
 <translation id="4441147046941420429">Untuk meneruskan, alih keluar kunci keselamatan daripada peranti anda, kemudian masukkan semula dan sentuh kunci itu.</translation>
 <translation id="444134486829715816">Kembangkan...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> boleh menyemak kata laluan anda apabila anda log masuk menggunakan Akaun Google anda</translation>
 <translation id="4442424173763614572">Carian DNS gagal</translation>
 <translation id="4443536555189480885">&amp;Bantuan</translation>
 <translation id="4444304522807523469">Akses pengimbas dokumen yang disambungkan melalui USB atau pada rangkaian tempatan</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Untuk mengimbas kos ini, anda boleh menggunakan apl pengimbas QR pada telefon anda atau pada sesetengah apl kamera.</translation>
 <translation id="4477015793815781985">Sertakan Ctrl, Alt atau ⌘</translation>
 <translation id="4478664379124702289">Simpan Pau&amp;tan Sebagai...</translation>
+<translation id="4478777936860197922">Tiada kata laluan yang disimpan. <ph name="IDS_SHORT_PRODUCT_NAME" /> boleh menyemak kata laluan anda yang disimpan.</translation>
 <translation id="4479424953165245642">Urus aplikasi kios</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Mengkonfigurasikan mesin maya. Proses ini mungkin mengambil masa beberapa minit.</translation>
 <translation id="4480590691557335796">Chrome boleh mencari perisian yang berbahaya pada komputer anda dan mengalih keluar perisian tersebut</translation>
 <translation id="4481530544597605423">Peranti dinyahganding</translation>
+<translation id="4488107067273194838">Semak pilihan penyegerakan penyemak imbas selepas persediaan</translation>
 <translation id="4488502501195719518">Kosongkan semua data?</translation>
 <translation id="4495419450179050807">Jangan paparkan pada halaman ini</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> disekat secara automatik</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Jangan Pasang</translation>
 <translation id="4850669014075537160">Menatal</translation>
 <translation id="4850886885716139402">Lihat</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> akan memberitahu anda apabila anda log masuk menggunakan kata laluan yang terjejas</translation>
 <translation id="4853020600495124913">Buka dalam tetingkap &amp;baharu</translation>
 <translation id="4854317507773910281">Pilih akaun ibu/bapa untuk kelulusan</translation>
 <translation id="485480310608090163">Lagi tetapan dan kebenaran</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN mengandungi aksara tidak sah</translation>
 <translation id="4871370605780490696">Tambah penanda halaman</translation>
 <translation id="4871719318659334896">Tutup kumpulan</translation>
+<translation id="4871852311166078968">Tambahkan pada Kumpulan</translation>
 <translation id="4873312501243535625">Penyemak Fail Media</translation>
 <translation id="4876273079589074638">Bantu jurutera kami menyiasat dan menyelesaikan ranap ini. Senaraikan langkah sebenar jika boleh. Setiap butiran penting!</translation>
 <translation id="4876895919560854374">Kunci dan buka kunci skrin</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Pentadbir anda telah mengehadkan kaedah input yang tersedia.</translation>
 <translation id="4994474651455208930">Membenarkan tapak untuk meminta menjadi pengendali lalai untuk protokol</translation>
 <translation id="4994754230098574403">Menyediakan</translation>
-<translation id="4996978546172906250">Kongsi melalui</translation>
 <translation id="4997086284911172121">Tiada sambungan Internet.</translation>
 <translation id="4997384734315285248">Nyahpasang Plugin VM</translation>
 <translation id="4998430619171209993">Hidupkan</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Akses Assistant anda apabila anda menyebut "Ok Google".</translation>
 <translation id="5135533361271311778">Tidak dapat mencipta item penanda halaman.</translation>
 <translation id="5137501176474113045">Padam item ini</translation>
-<translation id="5138982052046316113">Ubah Saiz Cakera Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, Carian <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Masukkan PIN untuk kunci keselamatan anda. Jika anda tidak tahu nombor PIN, anda perlu menetapkan semula kunci keselamatan itu.</translation>
 <translation id="5139955368427980650">&amp;Buka</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Menunggu pengesahan. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Sangat besar</translation>
 <translation id="574209121243317957">Nada</translation>
+<translation id="5745136023067925867">Dapatkan petua, tawaran dan kemas kini <ph name="DEVICE_TYPE" />, serta kongsi maklum balas</translation>
 <translation id="5746169159649715125">Simpan sebagai PDF</translation>
 <translation id="5747552184818312860">Tamat tempoh</translation>
 <translation id="5747785204778348146">Pembangun - tidak stabil</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Paparkan dalam Pencari</translation>
 <translation id="6295158916970320988">Semua tapak</translation>
 <translation id="6295855836753816081">Menyimpan...</translation>
-<translation id="629730747756840877">Akaun</translation>
 <translation id="6298962879096096191">Gunakan Google Play untuk memasang apl Android</translation>
 <translation id="630065524203833229">K&amp;eluar</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> tidak dapat dikonfigurasi secara automatik. Sila nyatakan butiran terperinci pencetak. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Halaman Bukan dalam <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Log acara WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Suhu warna</translation>
-<translation id="6870888490422746447">Pilih apl untuk berkongsi ke:</translation>
 <translation id="6871644448911473373">Pengulas OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Kata laluan yang anda masukkan telah ditolak oleh pelayan.</translation>
 <translation id="6876155724392614295">Basikal</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Log Aktiviti</translation>
 <translation id="6997707937646349884">Pada peranti anda:</translation>
 <translation id="6998793565256476099">Daftar peranti untuk persidangan video</translation>
+<translation id="6999956497249459195">Kumpulan baharu</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> disambung tetapi memerlukan konfigurasi</translation>
 <translation id="7000347579424117903">Termasuk Ctrl, Alt atau Search</translation>
 <translation id="7001036685275644873">Menyandarkan apl &amp; fail Linux</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Sediakan sambungan pada <ph name="PHONE_NAME" /> anda</translation>
 <translation id="7401778920660465883">Ketepikan mesej ini</translation>
+<translation id="7403642243184989645">Memuat Turun Sumber</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Semakan keselamatan dijalankan 1 jam yang lalu}other{Semakan keselamatan dijalankan {NUM_HOURS} jam yang lalu}}</translation>
 <translation id="740624631517654988">Pop muncul disekat</translation>
 <translation id="7407430846095439694">Import dan Ikat</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">URL Dasar Pihak Berkuasa Pensijilan Netscape</translation>
 <translation id="7717014941119698257">Memuat turun: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Semak kemas kini</translation>
+<translation id="7719070594859855691">Berikan akses kepada kamera</translation>
 <translation id="7719367874908701697">Zum halaman</translation>
 <translation id="7721179060400456005">Benarkan tetingkap mengembangkan paparan</translation>
 <translation id="7722040605881499779">Diperlukan untuk mengemas kini: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Lihat sejarah pencetakan anda</translation>
 <translation id="7744192722284567281">Ditemukan dalam pelanggaran data</translation>
 <translation id="7750228210027921155">Gambar dalam gambar</translation>
-<translation id="7751229152614300329">Penyemakan Imbas Selamat telah dikemas kini dan melindungi anda daripada tapak dan muat turun berbahaya</translation>
 <translation id="7751260505918304024">Paparkan semua</translation>
 <translation id="7754704193130578113">Tanyakan tempat untuk menyimpan setiap fail sebelum memuat turun</translation>
 <translation id="7755287808199759310">Ibu bapa anda boleh menyahsekatnya untuk anda</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" />  Sistem akan mengebut semula semasa proses ini.</translation>
 <translation id="7828731929332799387">Tindakan ini akan memadam semua kuki dan data tapak yang tersedia dalam konteks pihak ketiga. Anda ingin teruskan?</translation>
 <translation id="7829298379596169484">Mengakses input audio</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> tidak dapat menyemak kata laluan anda. Cuba periksa sambungan Internet anda.</translation>
 <translation id="7829877209233347340">Minta ibu atau bapa log masuk untuk memberikan kebenaran bagi penambahan akaun institusi pengajian</translation>
 <translation id="7830594666202422257">Sambungkan ke Linux</translation>
 <translation id="7831491651892296503">Ralat mengkonfigurasi rangkaian</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Memasang Gedung Google Play pada <ph name="DEVICE_TYPE" /> anda. Proses ini mungkin mengambil masa beberapa minit.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Tiada kuki pihak ketiga}=1{1 kuki pihak ketiga disekat}other{# kuki pihak ketiga disekat}}</translation>
 <translation id="810875025413331850">Tiada peranti berdekatan dijumpai.</translation>
+<translation id="8114199541033039755">Navigasi ke laman utama, ke halaman sebelumnya dan bertukar apl menggunakan butang dalam mod tablet. Dihidupkan apabila ChromeVox atau Klik automatik didayakan.</translation>
 <translation id="8114875720387900039">Pisah mendatar</translation>
 <translation id="8116972784401310538">&amp;Pengurus penanda halaman</translation>
 <translation id="8117620576188476503">Urus sambungan, kemas kini dan tetapan dengan dulang status. Untuk ke sini menggunakan papan kekunci, tekan Alt + Shift + S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> telah melumpuhkan kursor tetikus anda.</translation>
 <translation id="8264024885325823677">Tetapan ini diurus oleh pentadbir anda.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" mencetuskan skrin penuh.</translation>
+<translation id="826511437356419340">Telah memasuki mod ikhtisar tetingkap. Leret untuk menavigasi atau tekan tab jika menggunakan papan kekunci.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Maklumat ini ialah maklumat umum tentang peranti ini dan cara peranti ini digunakan (seperti paras kuasa bateri, aktiviti sistem dan apl, serta ralat). Data tersebut akan digunakan untuk menambah baik Android, dan sesetengah maklumat teragregat akan membantu apl dan rakan kongsi Google, seperti pembangun Android, menghasilkan apl dan produk yang lebih baik juga.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Tindakan mematikan ciri ini tidak menjejaskan keupayaan peranti ini untuk menghantar maklumat yang diperlukan oleh perkhidmatan penting seperti kemas kini sistem dan keselamatan.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Pemilik boleh mengawal ciri ini daripada Tetapan &gt; Terperinci &gt; Hantar data diagnostik dan penggunaan kepada Google secara automatik.<ph name="END_PARAGRAPH3" />
@@ -5516,6 +5531,7 @@
 <translation id="8426713856918551002">Mendayakan</translation>
 <translation id="8427292751741042100">dibenam pada mana-mana hos</translation>
 <translation id="8428213095426709021">Tetapan</translation>
+<translation id="8428271547607112339">Tambahkan akaun sekolah</translation>
 <translation id="8428628598981198790">Kunci keselamatan anda tidak boleh digunakan dengan tapak ini</translation>
 <translation id="84297032718407999">Anda akan dilog keluar dalam masa <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Tunjukkan ketikan</translation>
@@ -5579,6 +5595,7 @@
 <translation id="851263357009351303">Sentiasa benarkan <ph name="HOST" /> untuk memaparkan imej</translation>
 <translation id="8513108775083588393">Autoputar</translation>
 <translation id="8514746246728959655">Cuba kunci keselamatan lain</translation>
+<translation id="851960115758509829">Apl, tetapan dan penyesuaian anda yang lain akan disegerakkan pada semua peranti OS Chrome yang dilog masuk dengan Akaun Google anda.</translation>
 <translation id="8521475323816527629">Pergi ke apl anda dengan cepat</translation>
 <translation id="8523493869875972733">Simpan Perubahan</translation>
 <translation id="8523849605371521713">Ditambahkan oleh dasar</translation>
@@ -5860,11 +5877,13 @@
 <translation id="885701979325669005">Storan</translation>
 <translation id="8859057652521303089">Pilih bahasa anda:</translation>
 <translation id="8859174528519900719">Subbingkai: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Akaun ibu bapa</translation>
 <translation id="8862003515646449717">Tukar kepada penyemak imbas yang pantas</translation>
 <translation id="8863753581171631212">Buka pautan dalam <ph name="APP" /> baharu</translation>
 <translation id="8864055848767439877">Berkongsi <ph name="TAB_NAME" /> ke <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> telah dialih keluar daripada peranti ini</translation>
 <translation id="8867228703146808825">Salin butiran binaan kepada papan keratan</translation>
+<translation id="8868333925931032127">Memulakan Mod Tunjuk Cara</translation>
 <translation id="8868626022555786497">Sedang digunakan</translation>
 <translation id="8870413625673593573">Ditutup Baru-baru Ini</translation>
 <translation id="8871551568777368300">Disematkan oleh pentadbir</translation>
@@ -5943,6 +5962,7 @@
 <translation id="8966870118594285808">Buka semula tab jika anda menutup tab itu secara tidak sengaja</translation>
 <translation id="8967866634928501045">Tekan Alt Shift A untuk memaparkan</translation>
 <translation id="8968766641738584599">Simpan kad</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> tidak dapat menyemak kata laluan anda. Cuba lagi selepas 24 jam atau <ph name="BEGIN_LINK" />semak kata laluan dalam Akaun Google anda<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Lepas</translation>
 <translation id="8972513834460200407">Sila semak dengan pentadbir rangkaian anda bagi memastikan bahawa tembok api tidak menyekat muat turun dari pelayan Google.</translation>
 <translation id="8973557916016709913">Alih keluar tahap zum</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index 333bdca3..16bd5e6a0 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -420,7 +420,6 @@
 <translation id="1566049601598938765">ဝဘ်ဆိုက်</translation>
 <translation id="15662109988763471">ရွေးထားသည့် ပုံနှိပ်စက်ကို အသုံးပြု၍မရပါ (သို့) မှန်ကန်စွာ ထည့်သွင်းမထားပါ။ သင်၏ ပုံနှိပ်စက်ကို စစ်ဆေးပါ (သို့) နောက်တစ်ခုကို ရွေးကြည့်ပါ။</translation>
 <translation id="1567387640189251553">သင်၏ စကားဝှက်ကို နောက်ဆုံးထည့်သွင်းခဲ့သည့် အချိန်နောက်ပိုင်းတွင် မတူညီသည့်ကီးဘုတ်တစ်ခုကို ချိတ်ဆက်ထားသည်။ ၎င်းသည် သင်၏ ခလုတ်နှိပ်ချက်များကို ခိုးယူရန် ကြိုးစားနိုင်သည်။</translation>
-<translation id="1567750922576943685">သင့်အထောက်အထားကို အတည်ပြုခြင်းဖြင့် သင်၏ ကိုယ်​ရေးကိုယ်တာအချက်အလက်များကို ကာကွယ်ရာတွင် အထောက်အကူ ဖြစ်စေပါသည်</translation>
 <translation id="1567993339577891801">JavaScript ခလုတ်ခုံ</translation>
 <translation id="1568323446248056064">မျက်နှာပြင်ပြသမှုကိရိယာ ဆက်တင်များကို ဖွင့်ပါ</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (ဧည့်သည်)</translation>
@@ -523,7 +522,6 @@
 <translation id="1697150536837697295">အနုပညာ</translation>
 <translation id="1697686431566694143">ဖိုင်တည်းဖြတ်ရန်</translation>
 <translation id="1698122934742150150">လက်ရှိ လျှို့ဝှက်သုံး သတ်မှတ်ချိန်သာ</translation>
-<translation id="1698650002254827833">အက်ပ်စာရင်းကို ဖွင့်၍မရပါ။ ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="1700079447639026019">ကွတ်ကီးများကို ဘယ်တော့မှ အသုံးမပြုနိုင်သည့် ဝဘ်ဆိုက်များ</translation>
 <translation id="1701062906490865540">ဒီလူကို ဖယ်ထုတ်ရန်</translation>
 <translation id="1703331064825191675">သင့်စကားဝှက်များနှင့် ပတ်သက်ပြီး မည်သည့်အခါမှ စိတ်ပူစရာမလိုခြင်း</translation>
@@ -1086,7 +1084,6 @@
 <translation id="2442916515643169563">စာသားအရိပ်</translation>
 <translation id="2445081178310039857">တိုးချဲ့ ရင်းမြစ် ဒါရိုက်ထရီ လိုအပ်သည်။</translation>
 <translation id="2445484935443597917">ပရိုဖိုင်အသစ် ပြုလုပ်ရန်</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> သည် သင်မည်သူမည်ဝါဖြစ်ကြောင်း အတည်ပြုလိုသည်</translation>
 <translation id="2448312741937722512">ပုံစံ</translation>
 <translation id="2450223707519584812">Google API သော့များ မရှိသောကြောင့် သင်သည် အသုံးပြုသူများကို ထည့်မပေးနိုင်ပါ။ အသေးစိတ်များကို <ph name="DETAILS_URL" />မှာ ကြည့်ရှုပါ။</translation>
 <translation id="2450849356604136918">လက်ရှိ ပြသမှုများ မရှိပါ</translation>
@@ -1693,7 +1690,6 @@
 <translation id="3246107497225150582">{0,plural, =1{စက်ကို တစ်ရက်အတွင်း အပ်ဒိတ်လုပ်ပါ}other{စက်ကို # ရက်အတွင်း အပ်ဒိတ်လုပ်ပါ}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - ကွန်ရက်အမှားအယွင်း</translation>
 <translation id="3248902735035392926">လုံခြုံမှုက အရေးကြီးပါသည်။ အချိန်ခဏပေး၍ <ph name="BEGIN_LINK" />ယခုပင် သင်၏နောက်ဆက်တွဲများကို စစ်ဆေးပါ<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;လက်မှတ် ထဲက အပိုင်း မဟုတ်ပါ&gt;</translation>
 <translation id="3253225298092156258">မရနိုင်ပါ</translation>
 <translation id="3253448572569133955">အမျိုးအမည်မသိ အကောင့်</translation>
@@ -2984,7 +2980,6 @@
 <translation id="4992473555164495036">စီမံခန့်ခွဲသူက ရရှိနိုင်သော လက်ကွက်များကို ကန့်သတ်ထားသည်။</translation>
 <translation id="4994474651455208930">လုပ်ထုံးလုပ်နည်းများအား မူရင်းစီမံသူများအဖြစ် ဆိုက်များကို တောင်းဆိုခွင့်ပြုပါ</translation>
 <translation id="4994754230098574403">စနစ်ထည့်သွင်းနေပါသည်</translation>
-<translation id="4996978546172906250">မှတစ်ဆင့် မျှဝေရန်</translation>
 <translation id="4997086284911172121">အင်တာနက် ချိတ်ဆက်မှု မရှိပါ။</translation>
 <translation id="4997384734315285248">Plugin VM ကို ဖယ်ရှားရန်</translation>
 <translation id="4998430619171209993">ဖွင့်ထားသည်</translation>
@@ -3084,7 +3079,6 @@
 <translation id="5135085122826131075">"Ok Google" ဟုပြောသည့်အခါ သင်၏ Assistant ကို အသုံးပြုနိုင်သည်။</translation>
 <translation id="5135533361271311778">စာညှပ် အရာကို ဖန်တီး မပေးနိုင်ခဲ့ပါ။</translation>
 <translation id="5137501176474113045">ဒီအရာကို ဖျက်ရန်</translation>
-<translation id="5138982052046316113">Linux ဒစ်ခ်ကို အရွယ်အစားပြန်ပြင်ခြင်း</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />၊ <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> Search</translation>
 <translation id="5139823398361067371">သင်၏လုံခြုံရေးကီးအတွက် ပင်နံပါတ် ထည့်ပါ။ ပင်နံပါတ်မသိပါက လုံခြုံရေးကီးကို ပြင်ဆင်သတ်မှတ်ရပါမည်။</translation>
 <translation id="5139955368427980650">&amp;ဖွင့်</translation>
@@ -3949,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;တွေ့ရှိချက် ထဲမှာ ပြရန်</translation>
 <translation id="6295158916970320988">ဆိုဒ်များအားလုံး</translation>
 <translation id="6295855836753816081">သိမ်းဆည်းနေသည်...</translation>
-<translation id="629730747756840877">အကောင့်</translation>
 <translation id="6298962879096096191">Android အက်ပ်များကို ထည့်သွင်းရန် Google Play ကို အသုံးပြုပါ</translation>
 <translation id="630065524203833229">ထွက်</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> ကို အလိုအလျောက် စီစဉ်သတ်မှတ်၍မရပါ။ ပုံနှိပ်စက်ဆိုင်ရာ အဆင့်မြင့် အသေးစိတ်အချက်များကို သတ်မှတ်ပါ။ <ph name="LINK_BEGIN" />ပိုမိုလေ့လာရန်<ph name="LINK_END" /></translation>
@@ -4353,7 +4346,6 @@
 <translation id="6865598234501509159">စာမျက်နှာသည် <ph name="LANGUAGE" /> ဘာသာဖြင့် မဟုတ်ပါ</translation>
 <translation id="6865708901122695652">WebRTC ဖြစ်စဉ်မှတ်တမ်းများ (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">အရောင်အပူချိန်</translation>
-<translation id="6870888490422746447">မျှဝေရန် အက်ပ်တစ်ခုရွေးချယ်ပါ−</translation>
 <translation id="6871644448911473373">OCSP တုံ့ပြန်သူ: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">သင်ထည့်ထားသော စကားဝှက်ကို ဆာဗာမှ ငြင်းဆိုလိုက်သည်။</translation>
 <translation id="6876155724392614295">စက်ဘီး</translation>
@@ -4997,7 +4989,6 @@
 <translation id="7744047395460924128">သင်၏ပုံနှိပ်မှတ်တမ်းကို ကြည့်ပါ</translation>
 <translation id="7744192722284567281">ဒေတာကျိုးပေါက်မှုတွင် တွေ့ထားသည်</translation>
 <translation id="7750228210027921155">တစ်ခုပေါ်တစ်ခုထပ်၍ ဖွင့်ရန်</translation>
-<translation id="7751229152614300329">'လုံခြုံစွာ ကြည့်ရှုခြင်း' အပ်ဒိတ်ဖြစ်နေပြီး အန္တရာယ်ရှိသော ဝဘ်ဆိုက်နှင့် ဒေါင်းလုဒ်များမှ သင့်ကို ကာကွယ်ပေးနေသည်</translation>
 <translation id="7751260505918304024">အားလုံးပြပါ</translation>
 <translation id="7754704193130578113">ဒေါင်းလုဒ်မလုပ်မီ ဖိုင်တိုင်းကို မည်သည့်နေရာတွင် သိမ်းမည်ကို မေးပါ</translation>
 <translation id="7755287808199759310">သင့်မိဘသည် ၎င်းကို သင့်အတွက် ဖွင့်ပေးနိုင်ပါသည်</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index b2645b7..e7dd656 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -415,7 +415,6 @@
 <translation id="1566049601598938765">वेबसाइट</translation>
 <translation id="15662109988763471">चयन गरिएको प्रिन्टर उपलब्ध छैन वा त्यसलाई राम्ररी स्थापना गरिएको छैन। आफ्नो प्रिन्टर जाँच्नुहोस् वा अर्को प्रिन्टर चयन गरी हेर्नुहोस्।</translation>
 <translation id="1567387640189251553">तपाईंले पछिल्लो पटक आफ्नो पासवर्ड प्रविष्ट गर्नुभएपछि एउटा भिन्न किबोर्ड जडान गरिएको छ। यसले तपाईंका किस्ट्रोकहरू चोर्न खोजिरहेको हुन सक्छ।</translation>
-<translation id="1567750922576943685">तपाईंको पहिचानको पुष्टि गर्नुले तपाईंको व्यक्तिगत जानकारी सुरक्षित राख्न मद्दत गर्छ</translation>
 <translation id="1567993339577891801">JavaScript कन्सोल</translation>
 <translation id="1568323446248056064">प्रदर्शन सम्बन्धी यन्त्रको सेटिङ खोल्नुहोस्</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (अतिथि)</translation>
@@ -515,7 +514,6 @@
 <translation id="1697150536837697295">कला</translation>
 <translation id="1697686431566694143">फाइल सम्पादन गर्नुहोस्</translation>
 <translation id="1698122934742150150">हालको गुप्त सत्र मात्र</translation>
-<translation id="1698650002254827833">अनुप्रयोगहरूको सूची लोड गर्न सकिएन। कृपया पुनः प्रयास गर्नुहोस्।</translation>
 <translation id="1700079447639026019">कुकीहरू कदापि प्रयोग गर्न नपाउने साइटहरू</translation>
 <translation id="1701062906490865540">यो व्यक्तिलाई हटाउनुहोस्</translation>
 <translation id="1703331064825191675">आफ्ना पासवर्डका बारेमा कहिल्यै चिन्ता नगर्नुहोस्</translation>
@@ -822,6 +820,7 @@
 <translation id="2119349053129246860"><ph name="APP" /> मा खोल्नुहोस्</translation>
 <translation id="2120297377148151361">क्रियाकलाप तथा अन्तर्क्रियाहरू</translation>
 <translation id="2120639962942052471"><ph name="PERMISSION" /> माथि रोक लगाइएको छ</translation>
+<translation id="2121055421682309734">{COUNT,plural, =0{कुकीहरूलाई रोक लगाइएको छ}=1{कुकीहरूलाई रोक लगाइएको छ, १ वटा बाहेक}other{कुकीहरूलाई रोक लगाइएको छ, {COUNT} वटा बाहेक}}</translation>
 <translation id="2121825465123208577">पुनःआकार मिलाउनुहोस्</translation>
 <translation id="2122305276694332719">कुनै लुकाइएको नेटवर्कमा स्वतः जोड्नुले तपाईंको यन्त्र र नेटवर्कसम्बन्धी केही सेटिङ अरूले देख्न सक्ने हुनाले यसो गर्न सिफारिस गरिँदैन।</translation>
 <translation id="2123766928840368256">कुनै अर्को फाइल छनौट गर्नुहोस्</translation>
@@ -1076,7 +1075,6 @@
 <translation id="2442916515643169563">पाठको छायाँ</translation>
 <translation id="2445081178310039857">एक्सटेन्सन मूल डाइरेक्टरी आवश्यक छ।</translation>
 <translation id="2445484935443597917">नयाँ प्रोफाइल बनाउनुहोस्</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> ले तपाईंको पहिचान पुष्टि गर्न चाहन्छ</translation>
 <translation id="2448312741937722512">प्रकार</translation>
 <translation id="2450223707519584812">Google API कुञ्जीहरू छुटेको कारण तपाईं प्रयोगकर्ताहरू थप गर्न सक्षम हुनु हुने छैन। विवरणहरूको लागि <ph name="DETAILS_URL" /> हेर्नुहोस्।</translation>
 <translation id="2450849356604136918">कुनै सक्रीय दृश्य छैन</translation>
@@ -1681,7 +1679,6 @@
 <translation id="3246107497225150582">{0,plural, =1{एक दिनभित्र यन्त्र अद्यावधिक गर्नुहोस्}other{# एक दिनभित्र यन्त्र अद्यावधिक गर्नुहोस्}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - नेटवर्क सम्बन्धी त्रुटि</translation>
 <translation id="3248902735035392926">सुरक्षासम्बन्धी विषयहरू केही क्षण निकालेर <ph name="BEGIN_LINK" />अहिले नै आफ्ना एक्स्टेन्सनहरू जाँच्नुहोस्<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;प्रमाणपत्रको भाग होइन&gt;</translation>
 <translation id="3253225298092156258">उपलब्ध छैन</translation>
 <translation id="3253448572569133955">अज्ञात खाता</translation>
@@ -2962,7 +2959,6 @@
 <translation id="4992473555164495036">तपाईंको प्रशासकले उपलब्ध इनपुट विधिहरूलाई सीमित गर्नुभएको छ।</translation>
 <translation id="4994474651455208930">साइटहरूलाई प्रोटोकलहरूका पूर्वनिर्धारित ह्यान्डलरहरू बन्ने अनुरोध गर्न अनुमति दिनुहोस्</translation>
 <translation id="4994754230098574403">सेटअप गरिँदैछ</translation>
-<translation id="4996978546172906250">मार्फत साझा गर्नुहोस्</translation>
 <translation id="4997086284911172121">कुनै पनि इन्टरनेट जडान छैन।</translation>
 <translation id="4997384734315285248">Plugin VM को स्थापना रद्द गर्नुहोस्</translation>
 <translation id="4998430619171209993">सक्रिय छ</translation>
@@ -3062,7 +3058,6 @@
 <translation id="5135085122826131075">"Ok Google" भनेर आफ्नो सहायकमाथि पहुँच राख्नुहोस्।</translation>
 <translation id="5135533361271311778">बुकमार्क वस्तु सिर्जना गर्न सकिएन।</translation>
 <translation id="5137501176474113045">यस वस्तुलाई हटाउनुहोस्</translation>
-<translation id="5138982052046316113">Linux को डिस्कको आकार बदल्नुहोस्</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> खोज</translation>
 <translation id="5139823398361067371">आफ्नो सुरक्षा साँचोको PIN प्रविष्टि गर्नुहोस् तपाईंलाई PIN थाहा छैन भने तपाईंले आफ्नो सुरक्षा साँचो रिसेट गर्नु पर्ने छ।</translation>
 <translation id="5139955368427980650">&amp;खोल्नुहोस्</translation>
@@ -3925,7 +3920,6 @@
 <translation id="6291953229176937411">&amp;फोल्डरमा देखाउनुहोस्</translation>
 <translation id="6295158916970320988">सबै साइटहरू</translation>
 <translation id="6295855836753816081">सुरक्षित गर्दै...</translation>
-<translation id="629730747756840877">खाता</translation>
 <translation id="6298962879096096191">Android का अनुप्रयोगहरूको स्थापना गर्न Google Play को प्रयोग गर्नुहोस्</translation>
 <translation id="630065524203833229">बा&amp;हिर निस्कनुहोस्</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> स्वतः कन्फिगर गर्न सकिएन। कृपया प्रिन्टरका उन्नत विवरणहरू तोक्नुहोस्। <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation>
@@ -4331,7 +4325,6 @@
 <translation id="6865598234501509159">पृष्ठ <ph name="LANGUAGE" /> भाषामा उपलब्ध छैन</translation>
 <translation id="6865708901122695652">WebRTC कार्यक्रमका लगहरू (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">रङको तापमान</translation>
-<translation id="6870888490422746447">निम्नसँग आदान प्रदान गर्नुपर्ने अनुप्रयोग छनौट गर्नुहोस्:</translation>
 <translation id="6871644448911473373">OCSP रेस्पोन्डर: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">तपाईंले प्रविष्ट गर्नुभएको पासवर्ड सर्भरद्वारा अस्वीकार गरियो।</translation>
 <translation id="6876155724392614295">साइकल</translation>
@@ -4972,7 +4965,6 @@
 <translation id="7744047395460924128">आफ्नो छपाइसम्बन्धी इतिहास हेर्नुहोस्</translation>
 <translation id="7744192722284567281">डेटा चोरीको घटनामा फेला परेको</translation>
 <translation id="7750228210027921155">Picture in picture</translation>
-<translation id="7751229152614300329">सुरक्षित ब्राउजिङ सेवा अद्यावधिक छ र यसले हानिकारक साइट र डाउनलोडहरूबाट तपाईंलाई सुरक्षित राख्दै छ</translation>
 <translation id="7751260505918304024">सबै देखाउनुहोस्</translation>
 <translation id="7754704193130578113">डाउनलोड गर्नुभन्दा पहिले प्रत्येक फाइललाई कहाँ बचत गर्ने भनेर सोध्नुहोस्</translation>
 <translation id="7755287808199759310">तपाईंको अभिभावकले तपाईंको रोक हटाउन सक्नुहुन्छ</translation>
@@ -5727,7 +5719,7 @@
 <translation id="8720200012906404956">मोबाइल नेटवर्कको खोजी गर्दै। <ph name="BEGIN_LINK" />थप जान्नुहोस्<ph name="END_LINK" /></translation>
 <translation id="8720816553731218127">स्थापना समयका विशेषताहरू सुरुवात हुने समयावधि सकिएको छ।</translation>
 <translation id="8722912030556880711">प्रयोग तथा निदानसम्बन्धी डेटा पठाउनुहोस्। यो यन्त्रले हाल निदान, यन्त्र र अनुप्रयोगको उपयोगसम्बन्धी डेटा स्वतः Google मा पठाइरहेको छ। यसले प्रणाली तथा अनुप्रयोगको स्थिरता र थप कुराहरू सुधार गर्न मद्दत गर्ने छ। केही एकीकृत डेटाले Google का अनुप्रयोग तथा Android का विकासकर्ता जस्ता साझेदारहरूलाई पनि मद्दत गर्ने छ। तपाईंको खातामा वेब तथा अनुप्रयोगसम्बन्धी अतिरिक्त क्रियाकलापको सेटिङ सक्रिय गरिएको छ भने यो डेटा तपाईंको Google खातामा सुरक्षित गरिन सक्छ। <ph name="BEGIN_LINK2" />थप जान्नुहोस्<ph name="END_LINK2" /></translation>
-<translation id="8724405322205516354">तपाईंले यस आइकनलाई देख्नुहुँदा पहिचान गर्न वा खरिदहरूको अनुमोदन गर्न आफ्नो फिंगरप्रिन्ट प्रयोग गर्नुहोस्‌।</translation>
+<translation id="8724405322205516354">यो आइकन देख्दा आफ्नो पहिचान दिन वा खरिदहरूको अनुमोदन गर्न आफ्नो फिंगरप्रिन्ट प्रयोग गर्नुहोस्‌</translation>
 <translation id="8724409975248965964">फिंगरप्रिन्ट थपियो</translation>
 <translation id="8724859055372736596">&amp;फोल्डरमा देखाउनुहोस्</translation>
 <translation id="8725066075913043281">पुन: प्रयास गर्नुहोस्</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index ed729a61..17fd770 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Beschikbare apparaten</translation>
 <translation id="1042174272890264476">Je computer is ook uitgerust met de RLZ-bibliotheek van <ph name="SHORT_PRODUCT_NAME" />. RLZ wijst een niet-unieke, niet-persoonlijke tag toe om de zoekopdrachten en het gebruik van <ph name="SHORT_PRODUCT_NAME" /> te meten als gevolg van een bepaalde promotiecampagne. Deze labels worden soms weergegeven in Google-zoekopdrachten in <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Ook gegevens van deze apps wissen?</translation>
+<translation id="1045448422538531528">Toevoegen aan groep</translation>
 <translation id="1046635659603195359">Het lijkt erop dat je Voice Match al hebt ingesteld met de Google Assistent op een ander apparaat. Deze eerdere opnamen kunnen worden gebruikt om een spraakmodel te maken op dit apparaat. Dit zou minder dan een minuut moeten duren.</translation>
 <translation id="104710386808485638">Linux opnieuw starten?</translation>
 <translation id="1047431265488717055">Lin&amp;ktekst kopiëren</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Cameratoegang altijd blokkeren</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> wil je Chrome-instellingen terugzetten op de oorspronkelijke standaardwaarden. Als je dit doet, worden je homepage, nieuwe tabbladpagina en zoekmachine opnieuw ingesteld, worden je extensies uitgeschakeld en worden alle tabbladen losgemaakt. Ook worden alle andere tijdelijke en gecachte gegevens, zoals cookies, content en sitegegevens, gewist.</translation>
+<translation id="1084096383128641877">Als je dit wachtwoord verwijdert, wordt je account in <ph name="DOMAIN" /> niet verwijderd. Wijzig je wachtwoord of verwijder je account in <ph name="DOMAIN_LINK" /> om het te beschermen.</translation>
 <translation id="1084824384139382525">Linkadr&amp;es kopiëren</translation>
 <translation id="1085697365578766383">Fout bij starten van virtuele machine. Probeer het opnieuw.</translation>
 <translation id="1090126737595388931">Geen actieve achtergrondapps</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Veiligheidscheck is gisteren uitgevoerd</translation>
 <translation id="1260451001046713751">Pop-ups en omleidingen van <ph name="HOST" /> altijd toestaan</translation>
 <translation id="126156426083987769">Er is een probleem opgetreden met apparaatlicenties voor de demomodus.</translation>
+<translation id="1263490604593716556">Account wordt beheerd door <ph name="FIRST_PARENT_EMAIL" /> en <ph name="SECOND_PARENT_EMAIL" />. Als je wilt uitloggen van het primaire account op dit apparaat, klik je op de tijd op het scherm. Klik op Uitloggen in het menu dat wordt weergegeven.</translation>
 <translation id="126710816202626562">Doeltaal:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Stop</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Website</translation>
 <translation id="15662109988763471">De geselecteerde printer is niet beschikbaar of niet correct geïnstalleerd. Controleer de printer of probeer een andere printer te selecteren.</translation>
 <translation id="1567387640189251553">Er is een ander toetsenbord aangesloten sinds de laatste keer dat je je wachtwoord hebt ingevoerd. Mogelijk wordt geprobeerd om je toetsaanslagen te stelen.</translation>
-<translation id="1567750922576943685">Wanneer je je identiteit verifieert, blijven je persoonlijke informatie beter beschermd</translation>
 <translation id="1567993339577891801">JavaScript-console</translation>
 <translation id="1568323446248056064">Weergave-instellingen van apparaat openen</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (gast)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Kunst</translation>
 <translation id="1697686431566694143">Bestand bewerken</translation>
 <translation id="1698122934742150150">Alleen huidige incognitosessie</translation>
-<translation id="1698650002254827833">De lijst met apps kan niet worden geladen. Probeer het opnieuw.</translation>
 <translation id="1700079447639026019">Sites die nooit cookies mogen gebruiken</translation>
 <translation id="1701062906490865540">Deze persoon verwijderen</translation>
 <translation id="1703331064825191675">Maak je nooit meer zorgen over je wachtwoorden</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Doorgaan</translation>
 <translation id="2173302385160625112">Controleer je internetverbinding</translation>
 <translation id="2173801458090845390">Aanvraag-ID toevoegen aan dit apparaat</translation>
+<translation id="2174948148799307353">Account wordt beheerd door <ph name="PARENT_EMAIL" />. Als je wilt uitloggen van het primaire account op dit apparaat, klik je op de tijd op het scherm. Klik op Uitloggen in het menu dat wordt weergegeven.</translation>
 <translation id="2175607476662778685">Balk Snelstarten</translation>
 <translation id="217576141146192373">Kan printer niet toevoegen. Controleer de configuratie van je printer en probeer het opnieuw.</translation>
 <translation id="2177950615300672361">Incognitotabblad: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Tekstschaduw</translation>
 <translation id="2445081178310039857">Hoofddirectory van extensie is vereist.</translation>
 <translation id="2445484935443597917">Een nieuw profiel maken</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> wil je identiteit verifiëren</translation>
 <translation id="2448312741937722512">Type</translation>
 <translation id="2450223707519584812">Je kunt geen gebruikers toevoegen omdat Google API-sleutels ontbreken. Bekijk <ph name="DETAILS_URL" /> voor details.</translation>
 <translation id="2450849356604136918">Geen actieve weergaven</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Ga naar <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Een snelle, eenvoudige en beveiligde webbrowser voor het moderne internet.</translation>
 <translation id="2949289451367477459">Locatie gebruiken. Apps en services met locatietoestemming mogen de locatie van dit apparaat gebruiken. Google kan periodiek locatiegegevens verzamelen en deze anoniem gebruiken om de locatienauwkeurigheid en locatiegebaseerde services te verbeteren. <ph name="BEGIN_LINK1" />Meer informatie<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Ik wil me aanmelden</translation>
 <translation id="2956070239128776395">Onderliggende sectie in groep: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Niet toestaan dat sites bestanden of mappen op je apparaat bewerken</translation>
 <translation id="2958721676848865875">Waarschuwing over pakketextensie</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Standaard gele avatar</translation>
 <translation id="3141318088920353606">Luisteren...</translation>
 <translation id="3141917231319778873">Het opgegeven verzoek wordt niet ondersteund voor: <ph name="DEVICE_NAME" />.</translation>
+<translation id="3142562627629111859">Nieuwe groep</translation>
 <translation id="3143515551205905069">Synchronisatie annuleren</translation>
 <translation id="3143754809889689516">Afspelen vanaf het begin</translation>
 <translation id="3144647712221361880">Link openen als</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (met hardwareondersteuning)</translation>
 <translation id="3161522574479303604">Alle talen</translation>
+<translation id="3162853326462195145">Schoolaccount</translation>
 <translation id="3162899666601560689">Sites mogen cookies gebruiken om de browsefunctionaliteit te verbeteren, bijvoorbeeld door je ingelogd te houden of door artikelen in je winkelwagen te onthouden</translation>
 <translation id="3163201441334626963">Onbekend product <ph name="PRODUCT_ID" /> van leverancier <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Dit tabblad wordt gedeeld met <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Apparaat binnen een dag updaten}other{Apparaat binnen # dagen updaten}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" />: netwerkfout</translation>
 <translation id="3248902735035392926">Veiligheid is belangrijk. Neem nu even de tijd om <ph name="BEGIN_LINK" />je extensies te controleren<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Geen onderdeel van certificaat&gt;</translation>
 <translation id="3253225298092156258">Niet beschikbaar</translation>
 <translation id="3253448572569133955">Onbekend account</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Door op de knop 'Accepteren en doorgaan' te klikken, ga je akkoord met de bovengenoemde verwerking voor deze Google-services.</translation>
 <translation id="3399432415385675819">Meldingen worden uitgeschakeld</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - geïnterlinieerd</translation>
+<translation id="3402585168444815892">Inschrijven in demomodus</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Geen wachtwoorden opgeslagen voor deze site</translation>
 <translation id="3405664148539009465">Lettertypen aanpassen</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android-telefoon</translation>
 <translation id="3470442499439619530">Gebruiker verwijderen</translation>
 <translation id="3471876058939596279">HDMI- en USB Type-C-poorten kunnen niet tegelijkertijd worden gebruikt voor video. Gebruik een andere videopoort.</translation>
+<translation id="3473241910002674503">Ga terug of naar de homepage en schakel tussen apps met knoppen in de tabletmodus.</translation>
 <translation id="3473479545200714844">Vergrootglas</translation>
 <translation id="3475843873335999118">Je vingerafdruk wordt nog steeds niet herkend. Geef je wachtwoord op.</translation>
 <translation id="3476303763173086583">Verzend gebruiks- en diagnostische gegevens. Verbeter de Android-functionaliteit voor je kind door automatisch diagnostische, apparaat- en app-gebruiksgegevens naar Google te verzenden. Deze gegevens worden niet gebruikt om je kind te identificeren en kunnen helpen om de systeem- en app-stabiliteit te verbeteren en andere optimalisaties mogelijk te maken. Daarnaast zijn bepaalde verzamelde gegevens nuttig voor Google-apps en -partners, zoals Android-ontwikkelaars. Deze <ph name="BEGIN_LINK1" />instelling<ph name="END_LINK1" /> wordt afgedwongen door de eigenaar. De eigenaar kan ervoor kiezen diagnostische en gebruiksgegevens voor dit apparaat naar Google te verzenden. Als je de instelling voor aanvullende Web- en app-activiteit hebt ingeschakeld voor je kind, kunnen deze gegevens worden opgeslagen in het Google-account van je kind. <ph name="BEGIN_LINK2" />Meer informatie<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Vingerafdrukken op deze beveiligingssleutel</translation>
 <translation id="3973660817924297510">Wachtwoorden controleren (<ph name="CHECKED_PASSWORDS" /> van <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Verbinding maken met server voor domein mislukt</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan je wachtwoorden niet checken. Probeer het opnieuw.</translation>
 <translation id="3976108569178263973">Er zijn geen printers beschikbaar.</translation>
 <translation id="397703832102027365">Wordt voltooid...</translation>
 <translation id="3977886311744775419">Automatische updates worden niet gedownload op dit type netwerk, maar je kunt handmatig op updates controleren.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Deze pagina bevat elementen van de volgende sites die je locatie bijhouden:</translation>
 <translation id="4068776064906523561">Opgeslagen vingerafdrukken</translation>
 <translation id="407173827865827707">Bij klik</translation>
+<translation id="4073520450811433493">Instellingen synchroniseren</translation>
 <translation id="4074900173531346617">Certificaat van ondertekenaar van e-mail</translation>
 <translation id="407520071244661467">Schaal</translation>
 <translation id="4075639477629295004">Kan <ph name="FILE_NAME" /> niet casten.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Pluisje</translation>
 <translation id="4423376891418188461">Instellingen herstellen</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, de beheerder vereist dat je je wachtwoord wijzigt.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan je wachtwoorden niet checken. Probeer het over 24 uur opnieuw.</translation>
 <translation id="4429030830601238961">Deze gegevens voldoen niet aan het beveiligingsbeleid van je organisatie en kunnen niet worden geplakt.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Bladwijzer toegevoegd</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Wil je dat deze app automatisch start wanneer het apparaat wordt ingeschakeld?</translation>
 <translation id="4441147046941420429">Als je wilt doorgaan, verwijder je de beveiligingssleutel uit je apparaat, steek je hem er opnieuw en tik je erop</translation>
 <translation id="444134486829715816">Uitvouwen...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan je wachtwoorden checken als je inlogt met je Google-account.</translation>
 <translation id="4442424173763614572">DNS-lookup mislukt</translation>
 <translation id="4443536555189480885">&amp;Help</translation>
 <translation id="4444304522807523469">Toegang tot documentscanners die zijn aangesloten via USB of die zich op het lokale netwerk bevinden</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Je kunt een QR-scanner-app op je telefoon of sommige camera-apps gebruiken om deze code te scannen.</translation>
 <translation id="4477015793815781985">Neem Ctrl, Alt of ⌘ op</translation>
 <translation id="4478664379124702289">Lin&amp;k opslaan als...</translation>
+<translation id="4478777936860197922">Geen opgeslagen wachtwoorden. <ph name="IDS_SHORT_PRODUCT_NAME" /> kan je wachtwoorden checken als je deze hebt opgeslagen.</translation>
 <translation id="4479424953165245642">Kiosk-apps beheren</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">De virtuele machine wordt geconfigureerd. Dit kan enkele minuten duren.</translation>
 <translation id="4480590691557335796">Chrome kan schadelijke software op je computer vinden en verwijderen</translation>
 <translation id="4481530544597605423">Ontkoppelde apparaten</translation>
+<translation id="4488107067273194838">Opties voor browsersynchronisatie bekijken na het instellen</translation>
 <translation id="4488502501195719518">Alle gegevens wissen?</translation>
 <translation id="4495419450179050807">Niet op deze pagina weergeven</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> automatisch geblokkeerd</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Niet installeren</translation>
 <translation id="4850669014075537160">Scrollen</translation>
 <translation id="4850886885716139402">Weergave</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> laat het je weten als je inlogt met een gehackt wachtwoord</translation>
 <translation id="4853020600495124913">Openen in &amp;nieuw venster</translation>
 <translation id="4854317507773910281">Kies een ouderaccount voor goedkeuring</translation>
 <translation id="485480310608090163">Meer instellingen en rechten</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">Pincode bevat ongeldige tekens</translation>
 <translation id="4871370605780490696">Bladwijzer toevoegen</translation>
 <translation id="4871719318659334896">Groep sluiten</translation>
+<translation id="4871852311166078968">Toevoegen aan groep</translation>
 <translation id="4873312501243535625">Media File Checker</translation>
 <translation id="4876273079589074638">Help onze engineers om deze crash te onderzoeken en op te lossen. Vermeld indien mogelijk je exacte stappen: elk detail is het vermelden waard.</translation>
 <translation id="4876895919560854374">Het scherm vergrendelen en ontgrendelen</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Je beheerder heeft de beschikbare invoermethoden beperkt.</translation>
 <translation id="4994474651455208930">Websites laten vragen of je ze als de standaardhandler voor protocollen wilt instellen.</translation>
 <translation id="4994754230098574403">Instellen</translation>
-<translation id="4996978546172906250">Delen via</translation>
 <translation id="4997086284911172121">Geen internetverbinding.</translation>
 <translation id="4997384734315285248">Plugin VM verwijderen</translation>
 <translation id="4998430619171209993">Aan</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Activeer je Assistent als je 'Oké Google' zegt.</translation>
 <translation id="5135533361271311778">Kan bladwijzeritem niet maken.</translation>
 <translation id="5137501176474113045">Dit item verwijderen</translation>
-<translation id="5138982052046316113">Grootte van Linux-schijf aanpassen</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, zoeken in <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Geef de pincode van je beveiligingssleutel op. Als je de pincode niet weet, moet je de beveiligingssleutel resetten.</translation>
 <translation id="5139955368427980650">&amp;Openen</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Wachten op verificatie. <ph name="LINK_BEGIN" />Meer informatie.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Zeer groot</translation>
 <translation id="574209121243317957">Toonhoogte</translation>
+<translation id="5745136023067925867">Tips, aanbiedingen en updates over <ph name="DEVICE_TYPE" /> krijgen en je feedback delen</translation>
 <translation id="5746169159649715125">Opslaan als pdf</translation>
 <translation id="5747552184818312860">Verloopt</translation>
 <translation id="5747785204778348146">Ontwikkelaar - instabiel</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Toon in Finder</translation>
 <translation id="6295158916970320988">Alle sites</translation>
 <translation id="6295855836753816081">Opslaan...</translation>
-<translation id="629730747756840877">Account</translation>
 <translation id="6298962879096096191">Gebruik Google Play om Android-apps te installeren</translation>
 <translation id="630065524203833229">&amp;Sluiten</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> kan niet automatisch worden ingesteld. Geef geavanceerde printergegevens op. <ph name="LINK_BEGIN" />Meer informatie<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Pagina is niet in het <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC-gebeurtenislogboeken (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Kleurtemperatuur</translation>
-<translation id="6870888490422746447">Kies een app waarmee je wilt delen:</translation>
 <translation id="6871644448911473373">OCSP-beantwoorder: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Het wachtwoord dat je hebt opgegeven, is afgewezen door de server.</translation>
 <translation id="6876155724392614295">Fiets</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Activiteitenlogboek</translation>
 <translation id="6997707937646349884">Op je apparaten:</translation>
 <translation id="6998793565256476099">Apparaat aanmelden voor videovergaderingen</translation>
+<translation id="6999956497249459195">Nieuwe groep</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> is verbonden moet worden geconfigureerd</translation>
 <translation id="7000347579424117903">Neem Ctrl, Alt of de zoektoets op</translation>
 <translation id="7001036685275644873">Back-up maken van Linux-apps en -bestanden</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Een verbinding instellen op je <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Dit bericht sluiten</translation>
+<translation id="7403642243184989645">Bronnen downloaden</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Veiligheidscheck is 1 uur geleden uitgevoerd}other{Veiligheidscheck is {NUM_HOURS} uur geleden uitgevoerd}}</translation>
 <translation id="740624631517654988">Pop-up geblokkeerd</translation>
 <translation id="7407430846095439694">Importeren en binden</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">URL voor beleid van certificeringsinstantie voor Netscape-certificaat</translation>
 <translation id="7717014941119698257">Downloaden: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Controleren op updates</translation>
+<translation id="7719070594859855691">Toegang geven tot camera</translation>
 <translation id="7719367874908701697">Zoomen op pagina</translation>
 <translation id="7721179060400456005">Toestaan dat vensters meerdere beeldschermen bedekken</translation>
 <translation id="7722040605881499779">Nodig voor update: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Je afdrukgeschiedenis weergeven</translation>
 <translation id="7744192722284567281">Gevonden in een gegevenslek</translation>
 <translation id="7750228210027921155">Scherm-in-scherm</translation>
-<translation id="7751229152614300329">Safe Browsing is up-to-date en beschermt je tegen schadelijke sites en downloads</translation>
 <translation id="7751260505918304024">Alles weergeven</translation>
 <translation id="7754704193130578113">Voorafgaand aan een download vragen waar een bestand moet worden opgeslagen</translation>
 <translation id="7755287808199759310">Je ouder of voogd kan de blokkering van deze site opheffen</translation>
@@ -5065,6 +5077,7 @@
     <ph name="BEGIN_BOLD" />Opmerking:<ph name="END_BOLD" /> Het systeem wordt opnieuw opgestart tijdens het proces.</translation>
 <translation id="7828731929332799387">Dit verwijdert alle cookies en sitegegevens van derden. Wil je doorgaan?</translation>
 <translation id="7829298379596169484">Audio-invoer openen</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan je wachtwoorden niet checken. Check de internetverbinding.</translation>
 <translation id="7829877209233347340">Vraag een ouder om in te loggen en toe te staan dat je een schoolaccount toevoegt</translation>
 <translation id="7830594666202422257">Verbinden met Linux</translation>
 <translation id="7831491651892296503">Fout bij configureren van netwerk</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">De Google Play Store wordt geïnstalleerd op je <ph name="DEVICE_TYPE" />. Dit kan enkele minuten duren.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Geen cookies van derden}=1{1 cookie van derden is geblokkeerd}other{# cookies van derden zijn geblokkeerd}}</translation>
 <translation id="810875025413331850">Geen apparaten in de buurt gevonden.</translation>
+<translation id="8114199541033039755">Ga terug of naar de homepage en schakel tussen apps met knoppen in de tabletmodus. Dit is ingeschakeld als ChromeVox of 'Automatische klikken' is ingeschakeld.</translation>
 <translation id="8114875720387900039">Horizontaal splitsen</translation>
 <translation id="8116972784401310538">&amp;Bladwijzerbeheer</translation>
 <translation id="8117620576188476503">Beheer verbindingen, updates en instellingen via het statusvak. Druk op Alt + Shift + S om via het toetsenbord daarnaartoe te gaan.</translation>
@@ -5406,6 +5420,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> heeft je muisaanwijzer uitgeschakeld.</translation>
 <translation id="8264024885325823677">Deze instelling wordt beheerd door je beheerder.</translation>
 <translation id="8264718194193514834">'<ph name="EXTENSION_NAME" />' heeft het volledige scherm geactiveerd.</translation>
+<translation id="826511437356419340">Modus voor vensteroverzicht ingeschakeld. Swipe om te navigeren of druk op Tab op een toetsenbord.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Dit is algemene informatie over dit apparaat en hoe het wordt gebruikt (zoals batterijniveau, systeem- en app-activiteit en fouten). De gegevens worden gebruikt om Android te verbeteren voor iedereen. Daarnaast helpen bepaalde verzamelde gegevens Google-apps en -partners (zoals Android-ontwikkelaars) bij het verbeteren van hun apps en producten.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Ook als je deze functie uitschakelt, is het mogelijk dat er via dit apparaat informatie wordt verzonden die nodig is voor essentiële services (zoals systeemupdates en beveiliging).<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />De eigenaar kan deze functie beheren via Instellingen &gt; Geavanceerd &gt; Automatisch diagnostische en gebruiksgegevens verzenden naar Google.<ph name="END_PARAGRAPH3" />
@@ -5514,6 +5529,7 @@
 <translation id="8426713856918551002">Inschakelen</translation>
 <translation id="8427292751741042100">ingesloten in een host</translation>
 <translation id="8428213095426709021">Instellingen</translation>
+<translation id="8428271547607112339">Schoolaccount toevoegen</translation>
 <translation id="8428628598981198790">Je beveiligingssleutel kan niet worden gebruikt voor deze site</translation>
 <translation id="84297032718407999">Je wordt uitgelogd over <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Tikken weergeven</translation>
@@ -5577,6 +5593,7 @@
 <translation id="851263357009351303"><ph name="HOST" /> altijd toestaan afbeeldingen weer te geven</translation>
 <translation id="8513108775083588393">Automatisch draaien</translation>
 <translation id="8514746246728959655">Probeer een andere beveiligingssleutel</translation>
+<translation id="851960115758509829">Je apps, instellingen en andere aanpassingen worden gesynchroniseerd op alle Chrome OS-apparaten waarop je bent ingelogd met je Google-account.</translation>
 <translation id="8521475323816527629">Snel naar je apps gaan</translation>
 <translation id="8523493869875972733">Wijzigingen behouden</translation>
 <translation id="8523849605371521713">Toegevoegd door beleid</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Opslag</translation>
 <translation id="8859057652521303089">Selecteer je taal:</translation>
 <translation id="8859174528519900719">Subframe: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Ouderaccount</translation>
 <translation id="8862003515646449717">Overschakelen naar een snelle browser</translation>
 <translation id="8863753581171631212">Link openen in nieuw <ph name="APP" />-venster</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> wordt gedeeld met <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> is verwijderd van dit apparaat</translation>
 <translation id="8867228703146808825">Details van build kopiëren naar klembord</translation>
+<translation id="8868333925931032127">Demomodus starten</translation>
 <translation id="8868626022555786497">In gebruik</translation>
 <translation id="8870413625673593573">Recent gesloten</translation>
 <translation id="8871551568777368300">Vastgezet door beheerder</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Een tabblad opnieuw openen wanneer je dit per ongeluk hebt gesloten</translation>
 <translation id="8967866634928501045">Druk op Alt+Shift+A om weer te geven</translation>
 <translation id="8968766641738584599">Pas opslaan</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan je wachtwoorden niet checken. Probeer het over 24 uur opnieuw of <ph name="BEGIN_LINK" />check de wachtwoorden in je Google-account<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Neem contact op met je netwerkbeheerder om ervoor te zorgen dat downloads van Google-servers niet door de firewall worden geblokkeerd.</translation>
 <translation id="8973557916016709913">Zoomniveau verwijderen</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index b0034e6..a92aece 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Tilgjengelige enheter</translation>
 <translation id="1042174272890264476">Datamaskinen din har <ph name="SHORT_PRODUCT_NAME" />s RLZ-bibliotek innebygget. RLZ tildeler en ikke-unik, ikke-personlig tagg for å måle søk og <ph name="SHORT_PRODUCT_NAME" />-bruk drevet av en bestemt markedsføringskampanje. Disse etikettene vises noen ganger i Google-søk i <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Vil du også slette data fra disse appene?</translation>
+<translation id="1045448422538531528">Legg til i gruppe</translation>
 <translation id="1046635659603195359">Det ser ut til at du allerede har konfigurert Voice Match med Google-assistenten din på en annen enhet. Disse tidligere opptakene kan brukes til å lage en stemmemodell på denne enheten. Dette burde ta mindre enn ett minutt.</translation>
 <translation id="104710386808485638">Vil du starte Linux på nytt?</translation>
 <translation id="1047431265488717055">Kopiér linkte&amp;kst</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Blokkér alltid bruk av kameraet</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> vil tilbakestille Chrome-innstillingene dine til de opprinnelige standardverdiene. Dette tilbakestiller startsiden din, ny fane-siden og søkemotoren, slår av utvidelsene dine, og løsner alle fanene. Andre midlertidige og bufrede data, for eksempel informasjonskapsler, innhold og nettstedsdata, fjernes.</translation>
+<translation id="1084096383128641877">Fjerning av dette passordet sletter ikke kontoen din på <ph name="DOMAIN" />. Endre passordet eller slett kontoen på <ph name="DOMAIN_LINK" /> for å beskytte den mot andre.</translation>
 <translation id="1084824384139382525">Kopiér linkadr&amp;essen</translation>
 <translation id="1085697365578766383">Feil ved oppstart av den virtuelle maskinen. Prøv på nytt.</translation>
 <translation id="1090126737595388931">Ingen bakgrunnsprogrammer kjører</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Sikkerhetssjekken ble kjørt i går</translation>
 <translation id="1260451001046713751">Tillat alltid forgrunnsvinduer og viderekoblinger fra <ph name="HOST" /></translation>
 <translation id="126156426083987769">Det oppsto et problem med enhetslisenser i demomodus.</translation>
+<translation id="1263490604593716556">Kontoen er administrert av <ph name="FIRST_PARENT_EMAIL" /> og <ph name="SECOND_PARENT_EMAIL" />. For å logge av primærkontoen på denne enheten, klikk på klokkeslettet på skjermen. I menyen som åpnes, klikker du på «Logg av».</translation>
 <translation id="126710816202626562">Målspråket:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Stopp</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">Nettsted</translation>
 <translation id="15662109988763471">Den valgte skriveren er ikke tilgjengelig eller har ikke blitt installert på riktig måte. Kontrollér skriveren din, eller prøv å velge en annen skriver.</translation>
 <translation id="1567387640189251553">Et annet tastatur er koblet til etter at du sist skrev inn passordet ditt. Det brukes kanskje til å stjele tastetrykkene dine.</translation>
-<translation id="1567750922576943685">Ved å bekrefte identiteten din bidrar du til å beskytte personopplysningene dine</translation>
 <translation id="1567993339577891801">JavaScript-konsoll</translation>
 <translation id="1568323446248056064">Åpne skjerminnstillingene på enheten</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (gjest)</translation>
@@ -516,7 +518,6 @@
 <translation id="1697150536837697295">Kunst</translation>
 <translation id="1697686431566694143">Rediger filen</translation>
 <translation id="1698122934742150150">Bare denne inkognitoøkten</translation>
-<translation id="1698650002254827833">Listen over apper kan ikke lastes inn. Prøv på nytt.</translation>
 <translation id="1700079447639026019">Nettsteder som aldri kan bruke informasjonskapsler</translation>
 <translation id="1701062906490865540">Fjern denne personen</translation>
 <translation id="1703331064825191675">Slutt å bekymre deg for passordene dine</translation>
@@ -870,6 +871,7 @@
 <translation id="2172784515318616985">Fortsett</translation>
 <translation id="2173302385160625112">Sjekk internettilkoblingen</translation>
 <translation id="2173801458090845390">Legg til en rekvisisjons-ID for denne enheten</translation>
+<translation id="2174948148799307353">Kontoen administreres av <ph name="PARENT_EMAIL" />. For å logge av primærkontoen på denne enheten, klikk på klokkeslettet på skjermen. I menyen som åpnes, klikker du på «Logg av».</translation>
 <translation id="2175607476662778685">Hurtigstartlinje</translation>
 <translation id="217576141146192373">Kunne ikke legge til skriveren. Kontrollér skriverkonfigurasjonen, og prøv på nytt.</translation>
 <translation id="2177950615300672361">Inkognitofane: <ph name="TAB_NAME" /></translation>
@@ -1078,7 +1080,6 @@
 <translation id="2442916515643169563">Tekstskygge</translation>
 <translation id="2445081178310039857">Det kreves en rotkatalog for utvidelsen</translation>
 <translation id="2445484935443597917">Opprett en ny profil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> ønsker å bekrefte identiteten din</translation>
 <translation id="2448312741937722512">Type</translation>
 <translation id="2450223707519584812">Du kan ikke legge til brukere fordi Google API-nøkler mangler. Se <ph name="DETAILS_URL" /> for nærmere informasjon.</translation>
 <translation id="2450849356604136918">Ingen aktive visninger</translation>
@@ -1476,6 +1477,7 @@
 <translation id="2948300991547862301">Gå til <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">En rask, enkel og sikker nettleser, utviklet for et moderne Internett.</translation>
 <translation id="2949289451367477459">Bruk posisjon. Tillat at apper og tjenester med posisjonstillatelse bruker posisjonen til enheten. Google kan samle inn posisjonsdata med jevne mellomrom og bruke disse dataene til å forbedre posisjonsnøyaktigheten og posisjonsbaserte tjenester på en anonym måte. <ph name="BEGIN_LINK1" />Finn ut mer<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Registrer meg</translation>
 <translation id="2956070239128776395">En seksjon er flettet i en gruppe: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Ikke la nettsteder redigere filer eller mapper på enheten</translation>
 <translation id="2958721676848865875">Advarsel om pakkeutvidelse</translation>
@@ -1600,6 +1602,7 @@
 <translation id="3139925690611372679">Gult standardbrukerbilde</translation>
 <translation id="3141318088920353606">Lytter …</translation>
 <translation id="3141917231319778873">Den angitte forespørselen støttes ikke til: «<ph name="DEVICE_NAME" />».</translation>
+<translation id="3142562627629111859">Ny gruppe</translation>
 <translation id="3143515551205905069">Avbryt synkronisering</translation>
 <translation id="3143754809889689516">Spill av fra begynnelsen</translation>
 <translation id="3144647712221361880">Åpne linken som</translation>
@@ -1624,6 +1627,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (maskinvarestøttet)</translation>
 <translation id="3161522574479303604">Alle språk</translation>
+<translation id="3162853326462195145">Skolekonto</translation>
 <translation id="3162899666601560689">Nettsteder kan bruke informasjonskapsler for å gi deg en bedre surfeopplevelse, for eksempel for å holde deg pålogget eller huske varene i handlekurven din</translation>
 <translation id="3163201441334626963">Ukjent produkt, <ph name="PRODUCT_ID" />, fra leverandøren <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Deler denne fanen med <ph name="APP_NAME" /></translation>
@@ -1682,7 +1686,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Oppdater enheten innen én dag}other{Oppdater enheten innen # dager}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – nettverksfeil</translation>
 <translation id="3248902735035392926">Sikkerhet er viktig. Bruk et øyeblikk på å <ph name="BEGIN_LINK" />sjekke utvidelsene dine nå<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Ikke del av sertifikat&gt;</translation>
 <translation id="3253225298092156258">Ikke tilgjengelig</translation>
 <translation id="3253448572569133955">Ukjent konto</translation>
@@ -1787,6 +1790,7 @@
 <translation id="3396800784455899911">Ved å klikke på «Godta og fortsett»-knappen godtar du behandlingen som beskrives ovenfor, for disse Google-tjenestene.</translation>
 <translation id="3399432415385675819">Varsler slås av</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz) – linjefletting</translation>
+<translation id="3402585168444815892">Registrerer i demomodus</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Ingen passord er lagret for dette nettstedet</translation>
 <translation id="3405664148539009465">Tilpass skrifttyper</translation>
@@ -1848,6 +1852,7 @@
 <translation id="3468999815377931311">Android-telefon</translation>
 <translation id="3470442499439619530">Fjern denne brukeren</translation>
 <translation id="3471876058939596279">HDMI- og USB-C-porter kan ikke brukes til video samtidig. Bruk en annen videoport.</translation>
+<translation id="3473241910002674503">Bruk knapper til å navigere hjem og tilbake samt bytte app i nettbrettmodus.</translation>
 <translation id="3473479545200714844">Skjermforstørrer</translation>
 <translation id="3475843873335999118">Fingeravtrykket ditt ble fortsatt ikke gjenkjent. Skriv inn passordet ditt.</translation>
 <translation id="3476303763173086583">Send bruks- og diagnostikkdata. Hjelp til med å gjøre Android-opplevelsen bedre for barnet ditt ved å sende diagnostikk-, enhets- og appbruksdata til Google automatisk. Disse dataene brukes ikke til å identifisere barnet ditt, men bidrar til å gjøre systemet og appene bedre og mer stabile. Noen aggregerte data hjelper også Google-apper og -partnere, for eksempel Android-utviklere. Denne <ph name="BEGIN_LINK1" />innstillingen<ph name="END_LINK1" /> håndheves av eieren. Eieren kan velge å sende diagnostikk- og bruksdata for denne enheten til Google. Hvis du har slått på innstillingen for annen nett- og appaktivitet for barnet ditt, kan disse dataene bli lagret i barnets Google-konto. <ph name="BEGIN_LINK2" />Finn ut mer<ph name="END_LINK2" /></translation>
@@ -2270,6 +2275,7 @@
 <translation id="3971764089670057203">Fingeravtrykk på denne sikkerhetsnøkkelen</translation>
 <translation id="3973660817924297510">Sjekker passord (<ph name="CHECKED_PASSWORDS" /> av <ph name="TOTAL_PASSWORDS" />) …</translation>
 <translation id="3975565978598857337">Kunne ikke kontakte tjeneren for området</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan ikke sjekke passordene dine. Prøv igjen senere.</translation>
 <translation id="3976108569178263973">Det er ingen tilgjengelige skrivere.</translation>
 <translation id="397703832102027365">Fullfører …</translation>
 <translation id="3977886311744775419">Automatiske oppdateringer lastes ikke ned på denne nettverkstypen, men du kan se etter oppdateringer manuelt.</translation>
@@ -2333,6 +2339,7 @@
 <translation id="4068506536726151626">Denne siden inneholder elementer fra følgende nettsteder som sporer posisjonen din:</translation>
 <translation id="4068776064906523561">Lagrede fingeravtrykk</translation>
 <translation id="407173827865827707">Ved klikk</translation>
+<translation id="4073520450811433493">Synkronisering av innstillinger</translation>
 <translation id="4074900173531346617">Sertifikat for signering av e-poster</translation>
 <translation id="407520071244661467">Skalér</translation>
 <translation id="4075639477629295004">Kunne ikke caste <ph name="FILE_NAME" />.</translation>
@@ -2569,6 +2576,7 @@
 <translation id="4421932782753506458">Pus</translation>
 <translation id="4423376891418188461">Gjenopprett innstillingene</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, administratoren din krever at du endrer passord.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan ikke sjekke passordene dine. Prøv igjen når det har gått 24 timer.</translation>
 <translation id="4429030830601238961">Disse dataene bryter sikkerhetsretningslinjene til organisasjonen din og kan ikke limes inn.</translation>
 <translation id="4430019312045809116">Volum</translation>
 <translation id="4430369329743628066">Bokmerke lagt til</translation>
@@ -2581,6 +2589,7 @@
 <translation id="4441124369922430666">Vil du starte denne appen automatisk når maskinen slås på?</translation>
 <translation id="4441147046941420429">For å fortsette, fjern sikkerhetsnøkkelen fra enheten, sett den inn på nytt, og berør den</translation>
 <translation id="444134486829715816">Utvid</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan sjekke passordene dine når du logger på med Google-kontoen din.</translation>
 <translation id="4442424173763614572">DNS-søk mislyktes</translation>
 <translation id="4443536555189480885">&amp;Hjelp</translation>
 <translation id="4444304522807523469">Få tilgang til dokumentskannere som er tilkoblet via USB eller på det lokale nettverket</translation>
@@ -2607,11 +2616,13 @@
 <translation id="4476659815936224889">For å skanne denne koden kan du bruke en QR-skanningsapp på telefonen eller enkelte kameraapper.</translation>
 <translation id="4477015793815781985">Inkluder Ctrl, Alt eller ⌘</translation>
 <translation id="4478664379124702289">Lagre lin&amp;ken som</translation>
+<translation id="4478777936860197922">Ingen lagrede passord. <ph name="IDS_SHORT_PRODUCT_NAME" /> kan sjekke passordene dine når du lagrer dem.</translation>
 <translation id="4479424953165245642">Administrer kiosk-apper</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Konfigurerer den virtuelle maskinen. Dette kan ta noen minutter.</translation>
 <translation id="4480590691557335796">Chrome kan finne skadelig programvare på datamaskinen din og fjerne den</translation>
 <translation id="4481530544597605423">Frakoblede enheter</translation>
+<translation id="4488107067273194838">Gå gjennom alternativer for nettlesersynkronisering når konfigureringen er fullført</translation>
 <translation id="4488502501195719518">Vil du slette alle dataene?</translation>
 <translation id="4495419450179050807">Ikke vis på denne siden</translation>
 <translation id="4496054781541092778">automatisk blokkert <ph name="PERMISSION" /></translation>
@@ -2853,6 +2864,7 @@
 <translation id="4849517651082200438">Ikke installer</translation>
 <translation id="4850669014075537160">Rulling</translation>
 <translation id="4850886885716139402">Visning</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> varsler deg når du logger på med passord som er utsatt for sikkerhetsbrudd</translation>
 <translation id="4853020600495124913">Åpne i &amp;nytt vindu</translation>
 <translation id="4854317507773910281">Velg foreldrekonto for godkjenning</translation>
 <translation id="485480310608090163">Flere innstillinger og tillatelser</translation>
@@ -2871,6 +2883,7 @@
 <translation id="4871322859485617074">PIN-koden inneholder ugyldige tegn.</translation>
 <translation id="4871370605780490696">Legg til bokmerke</translation>
 <translation id="4871719318659334896">Lukk gruppen</translation>
+<translation id="4871852311166078968">Legg til i gruppe</translation>
 <translation id="4873312501243535625">Media File Checker</translation>
 <translation id="4876273079589074638">Hjelp teknikerne våre med å undersøke og fikse denne feilen. Legg inn den nøyaktige fremgangsmåten om du kan. Ingen detaljer er ubetydelige.</translation>
 <translation id="4876895919560854374">låse og låse opp skjermen</translation>
@@ -2962,7 +2975,6 @@
 <translation id="4992473555164495036">Administratoren har begrenset de tilgjengelige inndatametodene.</translation>
 <translation id="4994474651455208930">Tillat at nettsteder kan be om å bli standard behandlere for protokoller</translation>
 <translation id="4994754230098574403">Konfigurerer</translation>
-<translation id="4996978546172906250">Del via</translation>
 <translation id="4997086284911172121">Ingen internettilkobling.</translation>
 <translation id="4997384734315285248">Avinstaller Plugin VM</translation>
 <translation id="4998430619171209993">På</translation>
@@ -3062,7 +3074,6 @@
 <translation id="5135085122826131075">Få tilgang til assistenten når du sier «Ok Google».</translation>
 <translation id="5135533361271311778">Kan ikke opprette bokmerkeelement.</translation>
 <translation id="5137501176474113045">Slett denne oppføringen</translation>
-<translation id="5138982052046316113">Endre størrelsen på Linux-disken</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" /> – <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> Søk</translation>
 <translation id="5139823398361067371">Skriv inn PIN-koden for sikkerhetsnøkkelen din. Hvis du ikke kan PIN-koden, må du tilbakestille sikkerhetsnøkkelen.</translation>
 <translation id="5139955368427980650">&amp;Åpne</translation>
@@ -3514,6 +3525,7 @@
 <translation id="5739235828260127894">Venter på bekreftelse. <ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Veldig stor</translation>
 <translation id="574209121243317957">Stemmeleie</translation>
+<translation id="5745136023067925867">Få både tips om, tilbud på og oppdateringer for <ph name="DEVICE_TYPE" />, og gi tilbakemeldinger</translation>
 <translation id="5746169159649715125">Lagre som PDF</translation>
 <translation id="5747552184818312860">Utløper</translation>
 <translation id="5747785204778348146">Utvikler – ustabil</translation>
@@ -3926,7 +3938,6 @@
 <translation id="6291953229176937411">&amp;Vis i Finder</translation>
 <translation id="6295158916970320988">Alle nettsteder</translation>
 <translation id="6295855836753816081">Lagrer …</translation>
-<translation id="629730747756840877">Konto</translation>
 <translation id="6298962879096096191">Bruk Google Play til å installere Android-apper</translation>
 <translation id="630065524203833229">&amp;Avslutt</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> kunne ikke konfigureres automatisk. Angi avanserte detaljer om skriveren. <ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" /></translation>
@@ -4332,7 +4343,6 @@
 <translation id="6865598234501509159">Siden er ikke på <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC-aktivitetslogger (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Fargetemperatur</translation>
-<translation id="6870888490422746447">Velg en app du vil dele med:</translation>
 <translation id="6871644448911473373">OCSP-svarer: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Passordet du skrev inn, ble avvist av tjeneren.</translation>
 <translation id="6876155724392614295">Sykkel</translation>
@@ -4425,6 +4435,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – aktivitetslogg</translation>
 <translation id="6997707937646349884">På enhetene dine:</translation>
 <translation id="6998793565256476099">Registrer enheten for videokonferanser</translation>
+<translation id="6999956497249459195">Ny gruppe</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> er koblet til, men må konfigureres</translation>
 <translation id="7000347579424117903">Inkluder Ctrl, Alt eller søketasten</translation>
 <translation id="7001036685275644873">Sikkerhetskopierer Linux-apper og -filer</translation>
@@ -4723,6 +4734,7 @@
 <translation id="7400418766976504921">Nettadresse</translation>
 <translation id="7400839060291901923">Konfigurerer tilkoblingen på <ph name="PHONE_NAME" />-enheten din</translation>
 <translation id="7401778920660465883">Lukk denne meldingen</translation>
+<translation id="7403642243184989645">Laster ned ressurser</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Sikkerhetssjekken ble kjørt for 1 time siden}other{Sikkerhetssjekken ble kjørt for {NUM_HOURS} timer siden}}</translation>
 <translation id="740624631517654988">Blokkerte forgrunnsvindu</translation>
 <translation id="7407430846095439694">Importér og bind</translation>
@@ -4959,6 +4971,7 @@
 <translation id="7716781361494605745">Nettadresse for retningslinjer for Netscape-sertifiseringsinstans</translation>
 <translation id="7717014941119698257">Laster ned: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Se etter oppdateringer</translation>
+<translation id="7719070594859855691">Gi tilgang til kameraet</translation>
 <translation id="7719367874908701697">Sidezoom</translation>
 <translation id="7721179060400456005">Tillat at vinduer vises over flere skjermer</translation>
 <translation id="7722040605881499779">Trengs for å oppdatere: <ph name="NECESSARY_SPACE" /></translation>
@@ -4973,7 +4986,6 @@
 <translation id="7744047395460924128">Se utskriftsloggen</translation>
 <translation id="7744192722284567281">Funnet i databrudd</translation>
 <translation id="7750228210027921155">Bilde i bilde</translation>
-<translation id="7751229152614300329">Safe Browsing er oppdatert og beskytter deg mot skadelige nettsteder og nedlastinger</translation>
 <translation id="7751260505918304024">Vis alle</translation>
 <translation id="7754704193130578113">Spør før nedlasting hvor hver fil skal lagres</translation>
 <translation id="7755287808199759310">Forelderen din kan oppheve blokkeringen for deg</translation>
@@ -5061,6 +5073,7 @@
     <ph name="BEGIN_BOLD" />Merk:<ph name="END_BOLD" /> Systemet startes på nytt i løpet av prosessen.</translation>
 <translation id="7828731929332799387">Dette sletter alle informasjonskapsler og nettstedsdata som er tilgjengelige i tredjepartskontekster. Vil du fortsette?</translation>
 <translation id="7829298379596169484">Åpner lydinngang</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan ikke sjekke passordene dine. Prøv å kontrollere internettilkoblingen.</translation>
 <translation id="7829877209233347340">Be en forelder om å logge på for å gi tillatelse til å legge til en skolekonto</translation>
 <translation id="7830594666202422257">Koble til Linux</translation>
 <translation id="7831491651892296503">En feil oppsto under konfigureringen av nettverket</translation>
@@ -5283,6 +5296,7 @@
 <translation id="8107015733319732394">Installerer Google Play-butikken på <ph name="DEVICE_TYPE" />-enheten din. Dette kan ta noen minutter.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Ingen informasjonskapsler fra tredjeparter}=1{1 informasjonskapsel fra en tredjepart er blokkert}other{# informasjonskapsler fra tredjeparter er blokkert}}</translation>
 <translation id="810875025413331850">Fant ingen enheter i nærheten.</translation>
+<translation id="8114199541033039755">Bruk knapper til å navigere hjem og tilbake samt bytte app i nettbrettmodus. Slås på når ChromeVox eller Automatiske klikk slås på.</translation>
 <translation id="8114875720387900039">Del horisontalt</translation>
 <translation id="8116972784401310538">&amp;Bokmerkebehandling</translation>
 <translation id="8117620576188476503">Administrer tilkoblinger, oppdateringer og innstillinger med statusfeltet. For å komme hit kan du også bruke tastekombinasjonen Alt + Shift + S.</translation>
@@ -5402,6 +5416,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> har deaktivert markøren din.</translation>
 <translation id="8264024885325823677">Denne innstillingen administreres av administratoren.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> utløste full skjerm.</translation>
+<translation id="826511437356419340">Du er i modusen for vindusoversikt. Sveip for å navigere, eller trykk på Tab hvis du bruker tastatur.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Dette er generell informasjon om enheten din og hvordan du bruker den (for eksempel batterinivå, system- og appaktivitet samt feil). Dataene brukes for å forbedre Android, og enkelte summerte data hjelper også Google-apper og -partnere, for eksempel Android-utviklere, med å forbedre apper og produkter.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Selv om denne funksjonen slås av, kan enheten fortsatt sende informasjonen den trenger for å motta nødvendige tjenester, som systemoppdateringer og sikkerhet.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Eieren kan kontrollere funksjonen fra Innstillinger &gt; Avansert &gt; Send diagnostikk og bruksdata til Google automatisk.<ph name="END_PARAGRAPH3" />
@@ -5510,6 +5525,7 @@
 <translation id="8426713856918551002">Aktiverer</translation>
 <translation id="8427292751741042100">innebygd på et hvilket som helst nettsted</translation>
 <translation id="8428213095426709021">Innstillinger</translation>
+<translation id="8428271547607112339">Legg til en skolekonto</translation>
 <translation id="8428628598981198790">Sikkerhetsnøkkelen din kan ikke brukes på dette nettstedet</translation>
 <translation id="84297032718407999">Du logges av om <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Vis trykk</translation>
@@ -5573,6 +5589,7 @@
 <translation id="851263357009351303">Tillat alltid <ph name="HOST" /> å vise bilder</translation>
 <translation id="8513108775083588393">Automatisk rotasjon</translation>
 <translation id="8514746246728959655">Prøv en annen sikkerhetsnøkkel</translation>
+<translation id="851960115758509829">Apper, innstillinger og andre tilpasninger blir synkronisert på alle Chrome OS-enheter som er logget på med Google-kontoen din.</translation>
 <translation id="8521475323816527629">Finn appene dine raskt</translation>
 <translation id="8523493869875972733">Behold endringene</translation>
 <translation id="8523849605371521713">Lagt til som følge av retningslinjer</translation>
@@ -5854,11 +5871,13 @@
 <translation id="885701979325669005">Lagring</translation>
 <translation id="8859057652521303089">Velg språk:</translation>
 <translation id="8859174528519900719">Underramme: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Foreldrekonto</translation>
 <translation id="8862003515646449717">Bytt til en raskere nettleser</translation>
 <translation id="8863753581171631212">Åpne linken i ny <ph name="APP" /></translation>
 <translation id="8864055848767439877">Deler <ph name="TAB_NAME" /> med <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> ble fjernet fra denne enheten</translation>
 <translation id="8867228703146808825">Kopiér detaljer om delversjonen til utklippstavlen</translation>
+<translation id="8868333925931032127">Starter demomodus</translation>
 <translation id="8868626022555786497">I bruk</translation>
 <translation id="8870413625673593573">Nylig lukket</translation>
 <translation id="8871551568777368300">Festet av administratoren</translation>
@@ -5937,6 +5956,7 @@
 <translation id="8966870118594285808">Åpne faner på nytt hvis du lukket dem ved et uhell</translation>
 <translation id="8967866634928501045">Trykk på Alt + Shift + A for å vise</translation>
 <translation id="8968766641738584599">Lagre kortet</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan ikke sjekke passordene dine. Prøv på nytt om 24 timer, eller <ph name="BEGIN_LINK" />sjekk passordene i Google-kontoen din<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Kontakt nettverksadministratoren din for å sjekke at brannmuren ikke blokkerer nedlastinger fra Google-tjenere.</translation>
 <translation id="8973557916016709913">Fjern zoomnivået</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index f23af534..8595c536 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -413,7 +413,6 @@
 <translation id="1566049601598938765">ୱେବ୍‍ସାଇଟ୍</translation>
 <translation id="15662109988763471">ଚୟନ କରାଯାଇଥିବା ପ୍ରିଣ୍ଟର୍ ଉପଲବ୍ଧ ନାହିଁ କିମ୍ବା ଠିକ୍ ଭାବେ ଇନ୍‍ଷ୍ଟଲ୍ କରାଯାଇନାହିଁ। ଆପଣଙ୍କର ପ୍ରିଣ୍ଟର୍ ଯାଞ୍ଚ କରନ୍ତୁ କିମ୍ବା ଅନ୍ୟ ଏକ ପ୍ରିଣ୍ଟର୍ ଚୟନ କରି ଦେଖନ୍ତୁ।</translation>
 <translation id="1567387640189251553">ଯେବେଠାରୁ ଆପଣ ଶେଷଥର ନିଜର ପାସ୍‌ୱର୍ଡ ଲେଖିଥିଲେ, ସେବେଠାରୁ ଏକ ଅଲଗା କୀବୋର୍ଡ ସଂଯୋଗ କରାଯାଇଛି। ଏହା ଆପଣଙ୍କର କୀ'ଷ୍ଟ୍ରୋକ୍‌କୁ ଚୋରି କରିବାକୁ ପ୍ରଚେଷ୍ଟା କରୁଥାଇପାରେ।</translation>
-<translation id="1567750922576943685">ଆପଣଙ୍କର ପରିଚୟ ଯାଞ୍ଚ କରାଇବା ଦ୍ୱାରା ଆପଣଙ୍କ ବ୍ୟକ୍ତିଗତ ସୂଚନା ସୁରକ୍ଷା କରିବାରେ ସାହାଯ୍ୟ ମିଳେ</translation>
 <translation id="1567993339577891801">&amp;JavaScript କନ୍‌ସୋଲ୍</translation>
 <translation id="1568323446248056064">ଡିସ୍‌ପ୍ଲେ ଡିଭାଇସ୍ ସେଟିଂସ୍ ଖୋଲନ୍ତୁ</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (ଅତିଥି)</translation>
@@ -515,7 +514,6 @@
 <translation id="1697150536837697295">କଳା</translation>
 <translation id="1697686431566694143">ଫାଇଲ୍ ଏଡିଟ୍ କରନ୍ତୁ</translation>
 <translation id="1698122934742150150">କେବଳ ବର୍ତ୍ତମାନର ଇନ୍‌କଗ୍ନିଟୋ ସମୟ ଅବଧି</translation>
-<translation id="1698650002254827833">ଆପ୍ସର ତାଲିକା ଲୋଡ୍ କରାଯାଇପାରିବ ନାହିଁ। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="1700079447639026019">କୁକୀଗୁଡ଼ିକୁ କେବେ ବି ବ୍ୟବହାର କରିପାରୁନଥିବା ସାଇଟଗୁଡ଼ିକ</translation>
 <translation id="1701062906490865540">ଏହି ବ୍ୟକ୍ତିଙ୍କୁ ବାହାର କରନ୍ତୁ</translation>
 <translation id="1703331064825191675">ଆପଣଙ୍କର ପାସ୍‍ୱାର୍ଡଗୁଡ଼ିକ ବିଷୟରେ କେବେ ବି ଚିନ୍ତା କରନ୍ତୁ ନାହିଁ</translation>
@@ -822,6 +820,7 @@
 <translation id="2119349053129246860"><ph name="APP" />ରେ ଖୋଲନ୍ତୁ</translation>
 <translation id="2120297377148151361">ଗତିବିଧି ଏବଂ ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ</translation>
 <translation id="2120639962942052471"><ph name="PERMISSION" /> ବ୍ଲକ୍ କରାଯାଇଛି</translation>
+<translation id="2121055421682309734">{COUNT,plural, =0{କୁକୀଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରାଯାଇଛି}=1{କୁକୀଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରାଯାଇଛି, 1ଟି ବ୍ୟତିକ୍ରମ}other{କୁକୀଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରାଯାଇଛି, {COUNT}ଟି ବ୍ୟତିକ୍ରମ}}</translation>
 <translation id="2121825465123208577">ଆକାର ବଦଳାନ୍ତୁ</translation>
 <translation id="2122305276694332719">ଏକ ଗୋପନୀୟ ଥିବା ନେଟ୍‌ୱାର୍କ ସହିତ ସ୍ୱଚାଳିତ ଭାବରେ ସଂଯୋଗ କଲେ ଅନ୍ୟ ଲୋକମାନେ ଆପଣଙ୍କ ଡିଭାଇସ୍ ଆଉ କିଛି ନେଟ୍‌ୱାର୍କ ସେଟିଂସ୍‌କୁ ଦେଖିପାରିବେ ଏବଂ ଏହା ସୁପାରିଶ କରାଯାଏ ନାହିଁ।</translation>
 <translation id="2123766928840368256">ଏକ ଭିନ୍ନ ଫାଇଲ୍ ବାଛନ୍ତୁ</translation>
@@ -1075,7 +1074,6 @@
 <translation id="2442916515643169563">ଟେକ୍ସଟ ଶାଡୋ</translation>
 <translation id="2445081178310039857">ଏକ୍ସଟେନ୍‍ସନ୍‍ ମୂଳ ଡିରେକ୍ଟୋରୀ ଆବଶ୍ୟକ ଅଟେ।</translation>
 <translation id="2445484935443597917">ଗୋଟିଏ ନୂତନ ପ୍ରୋଫାଇଲ୍ ତିଆରି କରନ୍ତୁ</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> ଆପଣଙ୍କର ପରିଚୟ ଯାଞ୍ଚ କରିବାକୁ ଚାହୁଁଛି</translation>
 <translation id="2448312741937722512">ପ୍ରକାର</translation>
 <translation id="2450223707519584812">ଆପଣ ଉପଯୋଗକର୍ତ୍ତାଙ୍କୁ ଯୋଗ କରିବାରେ ସକ୍ଷମ ହେବେ ନାହିଁ, କାରଣ Google API କୀଗୁଡ଼ିକ ମିଳୁନାହିଁ। ସବିଶେଷ ବିବରଣୀ ପାଇଁ <ph name="DETAILS_URL" /> ଦେଖନ୍ତୁ।</translation>
 <translation id="2450849356604136918">କୌଣସି ସକ୍ରିୟ ଭ୍ୟୁ ନାହିଁ</translation>
@@ -1679,7 +1677,6 @@
 <translation id="3246107497225150582">{0,plural, =1{ଗୋଟିଏ ଦିନ ଭିତରେ ଡିଭାଇସ୍ ଅପଡେଟ୍ କରନ୍ତୁ}other{# ଦିନ ଭିତରେ ଡିଭାଇସ୍ ଅପଡେଟ୍ କରନ୍ତୁ}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - ନେଟ୍‌ୱର୍କ ତ୍ରୁଟି</translation>
 <translation id="3248902735035392926">ସୁରକ୍ଷା ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ ଅଟେ। କିଛି ସମୟ ନିଅନ୍ତୁ ଏବଂ <ph name="BEGIN_LINK" />ବର୍ତ୍ତମାନ ଆପଣଙ୍କ ଏକ୍ସଟେନ୍‍ସନ୍‍ଗୁଡ଼ିକର ଯାଞ୍ଚ କରନ୍ତୁ<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;ସାର୍ଟିଫିକେଟ୍‍ର ଅଂଶ ନୁହେଁ&gt;</translation>
 <translation id="3253225298092156258">ଉପଲବ୍ଧ ନାହିଁ</translation>
 <translation id="3253448572569133955">ଅଜଣା ଆକାଉଣ୍ଟ</translation>
@@ -2960,7 +2957,6 @@
 <translation id="4992473555164495036">ଆପଣଙ୍କର ବ୍ୟବସ୍ଥାପକ ଉପଲବ୍ଧ ଇନ୍‌ପୁଟ୍ ପଦ୍ଧତିଗୁଡ଼ିକୁ ସୀମିତ କରିଛନ୍ତି।</translation>
 <translation id="4994474651455208930">ସାଇଟ୍‍ଗୁଡ଼ିକୁ ପ୍ରୋଟୋକଲ୍ ପାଇଁ ଡିଫଲ୍ଟ ହ୍ୟାଣ୍ଡଲର୍ ହେବା ପାଇଁ ପଚାରିବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ</translation>
 <translation id="4994754230098574403">ସେଟ‍ଅପ୍ ହେଉଛି</translation>
-<translation id="4996978546172906250">ଏହା ମାଧ୍ୟମରେ ସେୟାର୍ କରନ୍ତୁ</translation>
 <translation id="4997086284911172121">କୌଣସି ଇଣ୍ଟର୍ନେଟ୍ ସଂଯୋଗ ନାହିଁ</translation>
 <translation id="4997384734315285248">Plugin VM ଅନଇନଷ୍ଟଲ୍ କରନ୍ତୁ</translation>
 <translation id="4998430619171209993">ଚାଲୁ ଅଛି</translation>
@@ -3060,7 +3056,6 @@
 <translation id="5135085122826131075">"Ok Google" କହି ଆପଣଙ୍କର Assistantକୁ ଆକ୍ସେସ୍ କରନ୍ତୁ।</translation>
 <translation id="5135533361271311778">ବୁକ୍‍ମାର୍କ ଆଇଟମ୍ ତିଆରି କରିହେଲା ନାହିଁ।</translation>
 <translation id="5137501176474113045">ଏହି ଆଇଟମ୍‍ ଡିଲିଟ୍‍ କରନ୍ତୁ</translation>
-<translation id="5138982052046316113">Linux ଡିସ୍କର ଆକାର ପରିବର୍ତ୍ତନ କରନ୍ତୁ</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> ସନ୍ଧାନ</translation>
 <translation id="5139823398361067371">ଆପଣଙ୍କର ସୁରକ୍ଷା କୀ ପାଇଁ PIN ଲେଖନ୍ତୁ। ଯଦି ଆପଣ PIN ଜାଣି ନାହାଁନ୍ତି, ତେବେ ଆପଣ ସୁରକ୍ଷା କୀ ରିସେଟ୍ କରିବାକୁ ଆବଶ୍ୟକ କରିବେ।</translation>
 <translation id="5139955368427980650">&amp;ଖୋଲନ୍ତୁ</translation>
@@ -3924,7 +3919,6 @@
 <translation id="6291953229176937411">&amp;ଫାଇଣ୍ଡର୍‌ରେ ଦେଖାନ୍ତୁ</translation>
 <translation id="6295158916970320988">ସମସ୍ତ ସାଇଟ୍‍ଗୁଡ଼ିକ</translation>
 <translation id="6295855836753816081">ସେଭ୍ ହେଉଛି…</translation>
-<translation id="629730747756840877">ଆକାଉଣ୍ଟ</translation>
 <translation id="6298962879096096191">Android ଆପ୍ସ ଇନ୍‌ଷ୍ଟଲ୍‌ କରିବାକୁ Google Play ବ୍ୟବହାର କରନ୍ତୁ</translation>
 <translation id="630065524203833229">&amp;ପ୍ରସ୍ଥାନ କରନ୍ତୁ</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" />କୁ ସ୍ୱଚାଳିତ ଭାବେ କନ୍‌ଫିଗର୍ କରାଯାଇପାରିଲା ନାହିଁ। ଦୟାକରି ଉନ୍ନତ ପ୍ରିଣ୍ଟର୍ ବିବରଣୀ ନିର୍ଦ୍ଦିଷ୍ଟ କରନ୍ତୁ। <ph name="LINK_BEGIN" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="LINK_END" /></translation>
@@ -4332,7 +4326,6 @@
 <translation id="6865598234501509159">ପୃଷ୍ଠାଟି <ph name="LANGUAGE" />ରେ ନାହିଁ</translation>
 <translation id="6865708901122695652">WebRTC ଇଭେଣ୍ଟ ଲଗ୍‌ (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">ରଙ୍ଗର ତାପମାତ୍ରା</translation>
-<translation id="6870888490422746447">ସେୟାର୍ କରିବା ପାଇଁ ଏକ ଆପ୍ ବାଛନ୍ତୁ:</translation>
 <translation id="6871644448911473373">OCSP ପ୍ରତିକ୍ରିୟାଦାତା: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">ଆପଣ ଲେଖିଥିବା ପାସ୍‌ୱର୍ଡ, ସର୍ଭର୍‌ ଦ୍ୱାରା ଅଗ୍ରାହ୍ୟ କରାଯାଇଛି।</translation>
 <translation id="6876155724392614295">ବାଇକ୍</translation>
@@ -4973,7 +4966,6 @@
 <translation id="7744047395460924128">ଆପଣଙ୍କର ପ୍ରିଣ୍ଟିଂ ଇତିହାସ ଦେଖନ୍ତୁ</translation>
 <translation id="7744192722284567281">ଡାଟା ଚୋରିରେ ପାସୱାର୍ଡ ମିଳିଛି</translation>
 <translation id="7750228210027921155">ଛବି ମଧ୍ୟରେ ଛବି</translation>
-<translation id="7751229152614300329">ସେଫ୍ ବ୍ରାଉଜିଂ ଅପ୍ ଟୁ ଡେଟ୍ ଅଛି ଏବଂ ଏହା ଆପଣଙ୍କୁ କ୍ଷତିକାରକ ସାଇଟ୍ ଏବଂ ଡାଉନଲୋଡଗୁଡ଼ିକରୁ ସୁରକ୍ଷିତ ରଖିଥାଏ</translation>
 <translation id="7751260505918304024">ସବୁ ଦେଖାନ୍ତୁ</translation>
 <translation id="7754704193130578113">ଡାଉନଲୋଡିଙ୍ଗ୍ କରିବା ପୂର୍ବରୁ ପ୍ରତ୍ୟେକ ଫାଇଲ୍ କେଉଁଠି ସଞ୍ଚୟ ହେବ ପଚାରନ୍ତୁ</translation>
 <translation id="7755287808199759310">ଆପଣଙ୍କ ଅଭିଭାବକ ଆପଣଙ୍କ ପାଇଁ ଏହାର ଅବରୋଧ ହଟାଇପାରିବେ</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index e62443f..296e43a 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -417,7 +417,6 @@
 <translation id="1566049601598938765">ਵੈੱਬਸਾਈਟ</translation>
 <translation id="15662109988763471">ਚੁਣਿਆ ਗਿਆ ਪ੍ਰਿੰਟਰ ਉਪਲਬਧ ਨਹੀਂ ਹੈ ਜਾਂ ਸਹੀ ਢੰਗ ਨਾਲ ਸਥਾਪਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। ਆਪਣੇ ਪ੍ਰਿੰਟਰ ਦੀ ਜਾਂਚ ਕਰੋ ਜਾਂ ਕੋਈ ਹੋਰ ਪ੍ਰਿੰਟਰ ਚੁਣਕੇ ਦੇਖੋ।</translation>
 <translation id="1567387640189251553">ਤੁਹਾਡੇ ਵੱਲੋਂ ਪਿਛਲੀ ਵਾਰ ਆਪਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰਨ ਤੋਂ ਬਾਅਦ ਕੋਈ ਵੱਖਰਾ ਕੀ-ਬੋਰਡ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ ਹੈ। ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਇਹ ਤੁਹਾਡੇ ਕੀਸਟ੍ਰੋਕ ਚੋਰੀ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੋਵੇ।</translation>
-<translation id="1567750922576943685">ਤੁਹਾਡੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਨਾਲ ਤੁਹਾਡੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਦੀ ਸੁਰੱਖਿਆ ਕਰਨ ਵਿੱਚ ਮਦਦ ਮਿਲਦੀ ਹੈ</translation>
 <translation id="1567993339577891801">JavaScript Console</translation>
 <translation id="1568323446248056064">ਡਿਸਪਲੇ ਡੀਵਾਈਸ ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹੋ</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (ਮਹਿਮਾਨ)</translation>
@@ -519,7 +518,6 @@
 <translation id="1697150536837697295">ਕਲਾ</translation>
 <translation id="1697686431566694143">ਫ਼ਾਈਲ ਦਾ ਸੰਪਾਦਨ ਕਰੋ</translation>
 <translation id="1698122934742150150">ਸਿਰਫ਼ ਵਰਤਮਾਨ ਇਨਕੋਗਨਿਟੋ ਸੈਸ਼ਨ</translation>
-<translation id="1698650002254827833">ਐਪਾਂ ਦੀ ਸੂਚੀ ਲੋਡ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਕਿਰਪਾ ਕਰਕੇ ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="1700079447639026019">ਉਹ ਸਾਈਟਾਂ ਜੋ ਕਦੇ ਵੀ ਕੁਕੀਜ਼ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ</translation>
 <translation id="1701062906490865540">ਇਹ ਵਿਅਕਤੀ ਹਟਾਓ</translation>
 <translation id="1703331064825191675">ਕਦੇ ਆਪਣੇ ਪਾਸਵਰਡਾਂ ਦਾ ਫ਼ਿਕਰ ਨਾ ਕਰੋ</translation>
@@ -826,6 +824,7 @@
 <translation id="2119349053129246860"><ph name="APP" /> ਵਿੱਚ ਖੋਲ੍ਹੋ</translation>
 <translation id="2120297377148151361">ਸਰਗਰਮੀ ਅਤੇ ਅੰਤਰਕਿਰਿਆਵਾਂ</translation>
 <translation id="2120639962942052471">ਬਲਾਕ ਕੀਤੀ ਗਈ <ph name="PERMISSION" /></translation>
+<translation id="2121055421682309734">{COUNT,plural, =0{ਕੁਕੀਜ਼ ਬਲਾਕ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ}=1{ਕੁਕੀਜ਼ ਬਲਾਕ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ, 1 ਅਪਵਾਦ}other{ਕੁਕੀਜ਼ ਬਲਾਕ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ, {COUNT} ਅਪਵਾਦ}}</translation>
 <translation id="2121825465123208577">ਆਕਾਰ ਬਦਲੋ</translation>
 <translation id="2122305276694332719">ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਕਿਸੇ ਲੁਕਵੇਂ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰਨਾ ਹੋਰਾਂ ਨੂੰ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਅਤੇ ਕੁਝ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਦੇਖਣ ਦਿੰਦਾ ਹੈ ਅਤੇ ਇਸਦੀ ਸਿਫ਼ਾਰਸ਼ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।</translation>
 <translation id="2123766928840368256">ਕੋਈ ਵੱਖਰੀ ਫ਼ਾਈਲ ਚੁਣੋ</translation>
@@ -1079,7 +1078,6 @@
 <translation id="2442916515643169563">ਲਿਖਤ ਸ਼ੈਡੋ</translation>
 <translation id="2445081178310039857">ਐਕਸਟੈਂਸ਼ਨ ਰੂਟ ਡਾਇਰੈਕਟਰੀ ਲੋੜੀਂਦੀ ਹੈ।</translation>
 <translation id="2445484935443597917">ਇੱਕ ਨਵਾਂ ਪ੍ਰੋਫਾਈਲ ਬਣਾਓ</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> ਦੀ ਤੁਹਾਡੀ ਪਛਾਣ ਕਰਨ ਦੀ ਇੱਛਾ ਹੈ</translation>
 <translation id="2448312741937722512">ਟਾਈਪ ਕਰੋ</translation>
 <translation id="2450223707519584812">ਤੁਸੀਂ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਨਹੀਂ ਸ਼ਾਮਲ ਕਰ ਸਕੋਗੇ ਕਿਉਂਕਿ Google API ਕੁੰਜੀਆਂ ਮੌਜੂਦ ਨਹੀਂ ਹਨ। ਵੇਰਵੇ ਲਈ <ph name="DETAILS_URL" /> ਦੇਖੋ।</translation>
 <translation id="2450849356604136918">ਕੋਈ ਕਿਰਿਆਸ਼ੀਲ ਝਾਕੇ ਨਹੀਂ</translation>
@@ -1682,7 +1680,6 @@
 <translation id="3246107497225150582">{0,plural, =1{ਡੀਵਾਈਸ ਨੂੰ ਇੱਕ ਦਿਨ ਦੇ ਅੰਦਰ ਅੱਪਡੇਟ ਕਰੋ}one{ਡੀਵਾਈਸ ਨੂੰ # ਦਿਨ ਦੇ ਅੰਦਰ ਅੱਪਡੇਟ ਕਰੋ}other{ਡੀਵਾਈਸ ਨੂੰ # ਦਿਨਾਂ ਦੇ ਅੰਦਰ ਅੱਪਡੇਟ ਕਰੋ}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - ਨੈੱਟਵਰਕ ਗੜਬੜ</translation>
 <translation id="3248902735035392926">ਸੁਰੱਖਿਆ ਮਾਈਨੇ ਰੱਖਦੀ ਹੈ। <ph name="BEGIN_LINK" />ਹੁਣੇ ਆਪਣੀਆਂ ਐਕਸਟੈਂਸ਼ਨਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ<ph name="END_LINK" /> ਲਈ ਸਮਾਂ ਕੱਢੋ</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;ਸਰਟੀਫਿਕੇਟ ਦਾ ਭਾਗ ਨਹੀਂ&gt;</translation>
 <translation id="3253225298092156258">ਉਪਲਬਧ ਨਹੀਂ</translation>
 <translation id="3253448572569133955">ਅਗਿਆਤ ਖਾਤਾ</translation>
@@ -2964,7 +2961,6 @@
 <translation id="4992473555164495036">ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਨੇ ਉਪਲਬਧ ਇਨਪੁੱਟ ਵਿਧੀਆਂ ਨੂੰ ਸੀਮਤ ਕਰ ਦਿੱਤਾ ਹੈ।</translation>
 <translation id="4994474651455208930">ਸਾਈਟਾਂ ਨੂੰ ਪ੍ਰੋਟੋਕੋਲਾਂ ਲਈ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਹੈਂਡਲਰ ਬਣਨ ਲਈ ਪੁੱਛਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ</translation>
 <translation id="4994754230098574403">ਸਥਾਪਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation>
-<translation id="4996978546172906250">ਰਾਹੀਂ ਸ਼ੇਅਰ ਕਰੋ</translation>
 <translation id="4997086284911172121">ਕੋਈ ਇੰਟਰਨੈੱਟ ਕਨੈਕਸ਼ਨ ਨਹੀਂ ਹੈ।</translation>
 <translation id="4997384734315285248">Plugin VM ਨੂੰ ਅਣਸਥਾਪਤ ਕਰੋ</translation>
 <translation id="4998430619171209993">ਚਾਲੂ</translation>
@@ -3064,7 +3060,6 @@
 <translation id="5135085122826131075">"Ok Google" ਕਹਿ ਕੇ ਆਪਣੀ 'ਅਸਿਸਟੈਂਟ' ਤੱਕ ਪਹੁੰਚ ਕਰੋ।</translation>
 <translation id="5135533361271311778">ਬੁੱਕਮਾਰਕ ਆਈਟਮ ਨਹੀਂ ਬਣਾ ਸਕਿਆ।</translation>
 <translation id="5137501176474113045">ਇਸ ਆਈਟਮ ਨੂੰ ਮਿਟਾਓ</translation>
-<translation id="5138982052046316113">Linux ਡਿਸਕ ਦਾ ਆਕਾਰ ਬਦਲੋ</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> ਖੋਜ</translation>
 <translation id="5139823398361067371">ਆਪਣੀ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਦਾ ਪਿੰਨ ਦਾਖਲ ਕਰੋ। ਜੇ ਤੁਹਾਨੂੰ ਪਿੰਨ ਨਹੀਂ ਪਤਾ, ਤਾਂ ਤੁਹਾਨੂੰ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਨੂੰ ਰੀਸੈੱਟ ਕਰਨਾ ਪਵੇਗਾ।</translation>
 <translation id="5139955368427980650">&amp;ਖੋਲ੍ਹੋ</translation>
@@ -3928,7 +3923,6 @@
 <translation id="6291953229176937411">&amp;ਫਾਈਂਡਰ ਵਿੱਚ ਦਿਖਾਓ</translation>
 <translation id="6295158916970320988">ਸਾਰੀਆਂ ਸਾਈਟਾਂ</translation>
 <translation id="6295855836753816081">ਰੱਖਿਅਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...</translation>
-<translation id="629730747756840877">ਖਾਤਾ</translation>
 <translation id="6298962879096096191">Android ਐਪਾਂ ਸਥਾਪਤ ਕਰਨ ਲਈ Google Play ਦੀ ਵਰਤੋਂ ਕਰੋ</translation>
 <translation id="630065524203833229">ਬਾ&amp;ਹਰ ਜਾਓ</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> ਦਾ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਸੰਰੂਪਣ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਉੱਨਤ ਪ੍ਰਿੰਟਰ ਵੇਰਵੇ ਨਿਰਧਾਰਤ ਕਰੋ। <ph name="LINK_BEGIN" />ਹੋਰ ਜਾਣੋ<ph name="LINK_END" /></translation>
@@ -4334,7 +4328,6 @@
 <translation id="6865598234501509159">ਪੰਨਾ <ph name="LANGUAGE" /> ਭਾਸ਼ਾ ਵਿੱਚ ਨਹੀਂ ਹੈ</translation>
 <translation id="6865708901122695652">WebRTC ਇਵੈਂਟ ਲੌਗ (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">ਰੰਗ ਤਾਪਮਾਨ</translation>
-<translation id="6870888490422746447">ਇਸ ਨਾਲ ਸਾਂਝਾ ਕਰਨ ਲਈ ਇੱਕ ਐਪ ਚੁਣੋ:</translation>
 <translation id="6871644448911473373">OCSP ਉੱਤਰਦਾਤਾ: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">ਤੁਹਾਡੇ ਵੱਲੋਂ ਦਾਖਲ ਕੀਤੇ ਪਾਸਵਰਡ ਨੂੰ ਸਰਵਰ ਨੇ ਅਸਵੀਕਾਰ ਕੀਤਾ।</translation>
 <translation id="6876155724392614295">ਸਾਈਕਲ</translation>
@@ -4975,7 +4968,6 @@
 <translation id="7744047395460924128">ਆਪਣਾ ਪ੍ਰਿੰਟ ਕਰਨ ਦਾ ਇਤਿਹਾਸ ਦੇਖੋ</translation>
 <translation id="7744192722284567281">ਡਾਟਾ ਉਲੰਘਣਾ ਵਿੱਚ ਮਿਲਿਆ</translation>
 <translation id="7750228210027921155">ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ</translation>
-<translation id="7751229152614300329">ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ ਅੱਪ-ਟੂ-ਡੇਟ ਹੈ ਅਤੇ ਤੁਹਾਨੂੰ ਨੁਕਸਾਨਦੇਹ ਸਾਈਟਾਂ ਅਤੇ ਡਾਊਨਲੋਡਾਂ ਤੋਂ ਸੁਰੱਖਿਅਤ ਰੱਖ ਰਹੀ ਹੈ</translation>
 <translation id="7751260505918304024">ਸਾਰੇ  ਦਿਖਾਓ </translation>
 <translation id="7754704193130578113">ਪੁੱਛੋ ਕਿ ਹਰੇਕ ਫ਼ਾਈਲ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕਿੱਥੇ ਰੱਖਿਅਤ ਕਰਨਾ ਹੈ</translation>
 <translation id="7755287808199759310">ਤੁਹਾਡਾ ਮਾਤਾ-ਪਿਤਾ ਇਸ ਨੂੰ ਤੁਹਾਡੇ ਲਈ ਅਣਬਲੌਕ ਕਰ ਸਕਦਾ ਹੈ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 6d3fbfa..b444eb3 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -420,7 +420,6 @@
 <translation id="1566049601598938765">Strona internetowa</translation>
 <translation id="15662109988763471">Wybrana drukarka jest niedostępna lub nieprawidłowo zainstalowana. Sprawdź ją lub wybierz inną.</translation>
 <translation id="1567387640189251553">Do urządzenia jest podłączona inna klawiatura niż przy ostatnim wpisywaniu hasła. Może ona próbować przechwycić naciskane klawisze.</translation>
-<translation id="1567750922576943685">Weryfikacja tożsamości pomaga chronić Twoje dane osobowe</translation>
 <translation id="1567993339577891801">Konsola JavaScript</translation>
 <translation id="1568323446248056064">Otwórz ustawienia wyświetlacza</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (gość)</translation>
@@ -522,7 +521,6 @@
 <translation id="1697150536837697295">Sztuka</translation>
 <translation id="1697686431566694143">Edytuj plik</translation>
 <translation id="1698122934742150150">Tylko w bieżącej sesji incognito</translation>
-<translation id="1698650002254827833">Nie można załadować listy aplikacji. Spróbuj ponownie.</translation>
 <translation id="1700079447639026019">Strony, które nigdy nie mogą używać plików cookie</translation>
 <translation id="1701062906490865540">Usuń tę osobę</translation>
 <translation id="1703331064825191675">Nie musisz się już martwić o bezpieczeństwo swoich haseł</translation>
@@ -1085,7 +1083,6 @@
 <translation id="2442916515643169563">Cień tekstu</translation>
 <translation id="2445081178310039857">Wymagany jest główny katalog rozszerzenia.</translation>
 <translation id="2445484935443597917">Utwórz nowy profil</translation>
-<translation id="2446585455334014596">Aplikacja <ph name="APP_NAME" /> chce zweryfikować Twoją tożsamość</translation>
 <translation id="2448312741937722512">Typ</translation>
 <translation id="2450223707519584812">Nie będzie można dodawać użytkowników, ponieważ brakuje kluczy Google API. Więcej szczegółów znajdziesz na <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Brak aktywnych widoków</translation>
@@ -1692,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Aktualizacja urządzenia nastąpi w ciągu 1 dnia}few{Aktualizacja urządzenia nastąpi w ciągu # dni}many{Aktualizacja urządzenia nastąpi w ciągu # dni}other{Aktualizacja urządzenia nastąpi w ciągu # dnia}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – błąd sieci</translation>
 <translation id="3248902735035392926">Dbaj o bezpieczeństwo. Poświęć chwilę na <ph name="BEGIN_LINK" />sprawdzenie swoich rozszerzeń<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;brak w certyfikacie&gt;</translation>
 <translation id="3253225298092156258">Niedostępna</translation>
 <translation id="3253448572569133955">Nieznane konto</translation>
@@ -2984,7 +2980,6 @@
 <translation id="4992473555164495036">Administrator ograniczył dostępne metody wprowadzania.</translation>
 <translation id="4994474651455208930">Zezwól, by strony prosiły użytkownika o ustawienie ich jako domyślnego modułu obsługi protokołu</translation>
 <translation id="4994754230098574403">Konfiguruję</translation>
-<translation id="4996978546172906250">Udostępnij przez</translation>
 <translation id="4997086284911172121">Brak połączenia z internetem.</translation>
 <translation id="4997384734315285248">Odinstaluj Plugin VM</translation>
 <translation id="4998430619171209993">Włączono</translation>
@@ -3084,7 +3079,6 @@
 <translation id="5135085122826131075">Uruchamiaj Asystenta, mówiąc „OK Google”.</translation>
 <translation id="5135533361271311778">Nie można utworzyć zakładki.</translation>
 <translation id="5137501176474113045">Usuń ten element</translation>
-<translation id="5138982052046316113">Zmień rozmiar dysku Linuksa</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, szukaj w: <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Wpisz kod PIN klucza bezpieczeństwa. Jeśli go nie znasz, musisz zresetować klucz.</translation>
 <translation id="5139955368427980650">&amp;Otwórz</translation>
@@ -3949,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Pokaż w Finderze</translation>
 <translation id="6295158916970320988">Wszystkie witryny</translation>
 <translation id="6295855836753816081">Zapisuję…</translation>
-<translation id="629730747756840877">Konto</translation>
 <translation id="6298962879096096191">Użyj Google Play, by zainstalować aplikacje na Androida</translation>
 <translation id="630065524203833229">Z&amp;akończ</translation>
 <translation id="6300718114348072351">Nie udało się automatycznie skonfigurować drukarki <ph name="PRINTER_NAME" />. Określ zaawansowane ustawienia drukarki. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation>
@@ -4355,7 +4348,6 @@
 <translation id="6865598234501509159">Język tej strony to nie <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Logi zdarzeń WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura kolorów</translation>
-<translation id="6870888490422746447">Wybierz aplikację docelową udostępniania:</translation>
 <translation id="6871644448911473373">Obiekt odpowiadający protokołu OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Podane hasło zostało odrzucone przez serwer.</translation>
 <translation id="6876155724392614295">Rower</translation>
@@ -4999,7 +4991,6 @@
 <translation id="7744047395460924128">Zobacz swoją historię drukowania</translation>
 <translation id="7744192722284567281">Doszło do naruszenia bezpieczeństwa danych</translation>
 <translation id="7750228210027921155">Obraz w obrazie</translation>
-<translation id="7751229152614300329">Ustawienia Bezpiecznego przeglądania są aktualne i chronią Cię przed szkodliwymi witrynami i plikami.</translation>
 <translation id="7751260505918304024">Pokaż wszystkie</translation>
 <translation id="7754704193130578113">Pytaj przed pobraniem, gdzie zapisać każdy plik</translation>
 <translation id="7755287808199759310">Może ją dla Ciebie odblokować Twój rodzic</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index b58f828..c26489d 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dispositivos disponíveis</translation>
 <translation id="1042174272890264476">Seu computador já vem com a biblioteca RLZ do <ph name="SHORT_PRODUCT_NAME" /> integrada. O RLZ atribui uma tag não exclusiva e sem identificação pessoal para medir as pesquisas e o uso do <ph name="SHORT_PRODUCT_NAME" /> gerados por uma campanha promocional específica. Esses marcadores às vezes aparecem em consultas da Pesquisa Google no <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Limpar também os dados desses apps?</translation>
+<translation id="1045448422538531528">Adicionar ao grupo</translation>
 <translation id="1046635659603195359">Parece que você já configurou o "Voice Match" com seu Google Assistente em outro dispositivo. Essas gravações anteriores podem ser usadas para criar um modelo de voz neste dispositivo. Isso levará menos de um minuto.</translation>
 <translation id="104710386808485638">Reiniciar Linux?</translation>
 <translation id="1047431265488717055">Copiar te&amp;xto do link</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Sempre bloquear o acesso à câmera</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> deseja restaurar as configurações do Chrome aos padrões originais. Isso redefinirá sua página inicial, a página "Nova guia" e mecanismo de pesquisa, desativará suas extensões e liberará todas as guias. Além disso, outros dados temporários e dados armazenados em cache, tais como cookies, conteúdo e dados de site, também serão limpos.</translation>
+<translation id="1084096383128641877">Remover a senha não excluirá a conta em <ph name="DOMAIN" />. Mude a senha ou exclua a conta em <ph name="DOMAIN_LINK" /> para protegê-la.</translation>
 <translation id="1084824384139382525">Copiar &amp;endereço do link</translation>
 <translation id="1085697365578766383">Erro ao iniciar a máquina virtual. Tente novamente.</translation>
 <translation id="1090126737595388931">Nenhum aplicativo de fundo sendo executado</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">A "confirmação de segurança" foi executada ontem</translation>
 <translation id="1260451001046713751">Sempre permitir pop-ups e redirecionamentos de <ph name="HOST" /></translation>
 <translation id="126156426083987769">Ocorreu um problema com as licenças do dispositivo no modo de demonstração.</translation>
+<translation id="1263490604593716556">Conta gerenciada por <ph name="FIRST_PARENT_EMAIL" /> e <ph name="SECOND_PARENT_EMAIL" />. Para sair da conta principal deste dispositivo, clique no horário exibido na tela. No menu que aparece, clique em "Sair".</translation>
 <translation id="126710816202626562">Idioma de tradução:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Parar</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Website</translation>
 <translation id="15662109988763471">A impressora selecionada não está disponível ou não foi instalada corretamente. Verifique a impressora ou selecione outra.</translation>
 <translation id="1567387640189251553">Um teclado diferente foi conectado desde a última vez que você inseriu sua senha. Ele pode estar tentando capturar sua digitação.</translation>
-<translation id="1567750922576943685">A verificação da sua identidade ajuda a proteger suas informações pessoais</translation>
 <translation id="1567993339577891801">Console JavaScript</translation>
 <translation id="1568323446248056064">Abrir configurações de exibição do dispositivo</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (visitante)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Arte</translation>
 <translation id="1697686431566694143">Editar arquivo</translation>
 <translation id="1698122934742150150">Apenas a sessão anônima atual</translation>
-<translation id="1698650002254827833">Não é possível carregar a lista de apps. Tente novamente.</translation>
 <translation id="1700079447639026019">Sites que nunca podem usar cookies</translation>
 <translation id="1701062906490865540">Remover esta pessoa</translation>
 <translation id="1703331064825191675">Nunca se preocupe com suas senhas</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Continuar</translation>
 <translation id="2173302385160625112">Verifique sua conexão com a Internet</translation>
 <translation id="2173801458090845390">Adicionar código de requisição para este dispositivo</translation>
+<translation id="2174948148799307353">Conta gerenciada por <ph name="PARENT_EMAIL" />. Para sair da conta principal deste dispositivo, clique no horário exibido na tela. No menu que aparece, clique em "Sair".</translation>
 <translation id="2175607476662778685">Barra de inicialização rápida</translation>
 <translation id="217576141146192373">Não foi possível adicionar a impressora. Verifique a configuração da impressora e tente novamente.</translation>
 <translation id="2177950615300672361">Guia anônima: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Sombra do texto</translation>
 <translation id="2445081178310039857">O diretório raiz da extensão é obrigatório.</translation>
 <translation id="2445484935443597917">Criar um novo perfil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> quer verificar sua identidade</translation>
 <translation id="2448312741937722512">Tipo</translation>
 <translation id="2450223707519584812">Não é possível adicionar usuários, porque as chaves da API do Google estão ausentes. Consulte <ph name="DETAILS_URL" /> para ter mais detalhes.</translation>
 <translation id="2450849356604136918">Não há visualizações ativas</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Ir para a página <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Um navegador da Web rápido, simples e seguro, desenvolvido para a Web moderna.</translation>
 <translation id="2949289451367477459">Usar local. Deixe que apps e serviços com permissão de localização usem o local do dispositivo. O Google pode coletar dados de local periodicamente e usá-los de forma anônima para melhorar a precisão de local e os serviços com base na localização. <ph name="BEGIN_LINK1" />Saiba mais<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Inscrever-me</translation>
 <translation id="2956070239128776395">Seção aninhada no grupo: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Não permitir que site algum edite arquivos ou pastas do seu dispositivo</translation>
 <translation id="2958721676848865875">Aviso de extensão de pacote</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Avatar amarelo padrão</translation>
 <translation id="3141318088920353606">Ouvindo...</translation>
 <translation id="3141917231319778873">Essa solicitação não é compatível com "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Novo grupo</translation>
 <translation id="3143515551205905069">Cancelar sincronização</translation>
 <translation id="3143754809889689516">Reproduzir do início</translation>
 <translation id="3144647712221361880">Abrir link como</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Bege</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (no hardware)</translation>
 <translation id="3161522574479303604">Todos os idiomas</translation>
+<translation id="3162853326462195145">Conta escolar</translation>
 <translation id="3162899666601560689">Os sites podem usar cookies para melhorar sua experiência de navegação, como manter sua conta conectada ou se lembrar dos itens em um carrinho de compras</translation>
 <translation id="3163201441334626963">Produto <ph name="PRODUCT_ID" /> desconhecido do fornecedor <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Compartilhando esta guia com <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Atualize o dispositivo em 1 dia}one{Atualize o dispositivo em # dia}other{Atualize o dispositivo em # dias}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Erro de rede</translation>
 <translation id="3248902735035392926">A segurança é importante. Aproveite e <ph name="BEGIN_LINK" />verifique suas extensões agora<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Não faz parte do certificado&gt;</translation>
 <translation id="3253225298092156258">Indisponível</translation>
 <translation id="3253448572569133955">Conta desconhecida</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Ao clicar no botão "Aceitar e concluir", você aceita o processo descrito acima para esses serviços do Google.</translation>
 <translation id="3399432415385675819">As notificações serão desativadas</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz) - entrelaçado</translation>
+<translation id="3402585168444815892">Inscrevendo-se no modo de demonstração</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Nenhuma senha salva para este site</translation>
 <translation id="3405664148539009465">Personalizar fontes</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Smartphone Android</translation>
 <translation id="3470442499439619530">Remover este usuário</translation>
 <translation id="3471876058939596279">As portas HDMI and USB-C não podem ser usadas para vídeo ao mesmo tempo. Use uma porta de vídeo diferente.</translation>
+<translation id="3473241910002674503">Navegue para a tela inicial, volte e troque de app usando botões no modo tablet.</translation>
 <translation id="3473479545200714844">Lupa</translation>
 <translation id="3475843873335999118">Sua impressão digital ainda não foi reconhecida. Digite sua senha.</translation>
 <translation id="3476303763173086583">Envie dados de uso e diagnóstico. Ajude a melhorar a experiência do seu filho com o Android enviando automaticamente ao Google dados de diagnóstico, de uso de apps e do dispositivo. Eles não serão usados para identificar seu filho e ajudarão a melhorar o sistema, a estabilidade de apps e muito mais. Alguns dados agregados também ajudarão os apps do Google e os nossos parceiros, como os desenvolvedores Android. Essa <ph name="BEGIN_LINK1" />configuração<ph name="END_LINK1" /> é aplicada pelo proprietário, que pode optar por enviar dados de uso e diagnóstico deste dispositivo para o Google. Se a configuração "Atividade na Web e de apps adicional" estiver ativada para seu filho, esses dados poderão ser salvos na Conta do Google dele. <ph name="BEGIN_LINK2" />Saiba mais<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Impressões digitais nesta chave de segurança</translation>
 <translation id="3973660817924297510">Verificando senhas (<ph name="CHECKED_PASSWORDS" /> de <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Falha ao entrar em contato com o servidor desse domínio</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> não pode verificar suas senhas. Tente novamente mais tarde.</translation>
 <translation id="3976108569178263973">Não há impressoras disponíveis.</translation>
 <translation id="397703832102027365">Finalizando...</translation>
 <translation id="3977886311744775419">Não é possível fazer o download das atualizações automáticas neste tipo de rede, mas você pode verificar as atualizações manualmente.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Esta página contém elementos dos seguintes sites que estão rastreando o seu local:</translation>
 <translation id="4068776064906523561">Impressões digitais salvas</translation>
 <translation id="407173827865827707">Ao clicar</translation>
+<translation id="4073520450811433493">Sincronização de configurações</translation>
 <translation id="4074900173531346617">Certificado do signatário do e-mail</translation>
 <translation id="407520071244661467">Escala</translation>
 <translation id="4075639477629295004">Não foi possível transmitir o arquivo <ph name="FILE_NAME" /></translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Pelúcia</translation>
 <translation id="4423376891418188461">Restaurar configurações</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, seu administrador solicita que você altere sua senha.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> não pode verificar suas senhas. Tente novamente em 24 horas.</translation>
 <translation id="4429030830601238961">Esses dados violam as políticas de segurança da sua organização e não podem ser colados.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Página adicionada como favorito</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Quer iniciar automaticamente este aplicativo quando o computador for ligado?</translation>
 <translation id="4441147046941420429">Para continuar, remova sua chave de segurança do dispositivo, reinsira-a e toque nela</translation>
 <translation id="444134486829715816">Expandir...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> pode verificar suas senhas quando você faz login com sua Conta do Google.</translation>
 <translation id="4442424173763614572">A busca de DNS falhou</translation>
 <translation id="4443536555189480885">&amp;Ajuda</translation>
 <translation id="4444304522807523469">Acessar scanners de documentos acoplados via USB ou na rede local</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Para ler esse código, você pode usar um app leitor de QR ou alguns apps de câmera no seu smartphone.</translation>
 <translation id="4477015793815781985">Inclua Ctrl, Alt ou ⌘</translation>
 <translation id="4478664379124702289">Salvar &amp;link como...</translation>
+<translation id="4478777936860197922">Nenhuma senha salva. <ph name="IDS_SHORT_PRODUCT_NAME" /> pode verificar suas senhas quando elas são salvas.</translation>
 <translation id="4479424953165245642">Gerenciar aplicativos do quiosque</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Configurando a máquina virtual. Isso pode levar alguns minutos.</translation>
 <translation id="4480590691557335796">O Chrome pode localizar softwares nocivos no seu computador e removê-los</translation>
 <translation id="4481530544597605423">Dispositvos não pareados</translation>
+<translation id="4488107067273194838">Revisar as opções de sincronização do navegador após a configuração</translation>
 <translation id="4488502501195719518">Limpar todos os dados?</translation>
 <translation id="4495419450179050807">Não mostrar esta página</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> bloqueada automaticamente</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Não instalar</translation>
 <translation id="4850669014075537160">Rolagem</translation>
 <translation id="4850886885716139402">Visualizar</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> enviará uma notificação quando você fizer login com uma senha comprometida</translation>
 <translation id="4853020600495124913">Abrir em &amp;nova janela</translation>
 <translation id="4854317507773910281">Escolha uma conta de pai/mãe para aprovação</translation>
 <translation id="485480310608090163">Mais configurações e permissões</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">O PIN contém caracteres inválidos</translation>
 <translation id="4871370605780490696">Adicionar favorito</translation>
 <translation id="4871719318659334896">Fechar grupo</translation>
+<translation id="4871852311166078968">Adicionar ao grupo</translation>
 <translation id="4873312501243535625">Verificador de arquivo de mídia</translation>
 <translation id="4876273079589074638">Ajude nossos engenheiros a investigar e corrigir a falha. Indique as etapas exatas, se possível. Nenhum detalhe é irrelevante.</translation>
 <translation id="4876895919560854374">Bloquear e desbloquear a tela</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">O administrador limitou os métodos de entrada disponíveis.</translation>
 <translation id="4994474651455208930">Permitir que os sites peçam para se tornarem manipuladores padrão de protocolos</translation>
 <translation id="4994754230098574403">Configurando</translation>
-<translation id="4996978546172906250">Compartilhar via</translation>
 <translation id="4997086284911172121">Sem conexão com a Internet.</translation>
 <translation id="4997384734315285248">Desinstalar o Plugin VM</translation>
 <translation id="4998430619171209993">Ativado</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Acessar seu Assistente sempre que você disser "Ok Google".</translation>
 <translation id="5135533361271311778">Não foi possível criar um item de favorito.</translation>
 <translation id="5137501176474113045">Excluir este item</translation>
-<translation id="5138982052046316113">Redimensionar disco do Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, pesquisa no <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Insira o PIN da sua chave de segurança. Se não souber o PIN, redefina a chave de segurança.</translation>
 <translation id="5139955368427980650">&amp;Abrir</translation>
@@ -3520,6 +3531,7 @@
 <translation id="5739235828260127894">Aguardando verificação. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Muito grande</translation>
 <translation id="574209121243317957">Tom da fala</translation>
+<translation id="5745136023067925867">Receba ofertas, atualizações e dicas sobre o <ph name="DEVICE_TYPE" /> e compartilhe seu feedback</translation>
 <translation id="5746169159649715125">Salvar como PDF</translation>
 <translation id="5747552184818312860">Expira em</translation>
 <translation id="5747785204778348146">Desenvolvedor: instável</translation>
@@ -3933,7 +3945,6 @@
 <translation id="6291953229176937411">&amp;Mostrar no Finder</translation>
 <translation id="6295158916970320988">Todos os sites</translation>
 <translation id="6295855836753816081">Salvando...</translation>
-<translation id="629730747756840877">Conta</translation>
 <translation id="6298962879096096191">Usar o Google Play para instalar apps do Android</translation>
 <translation id="630065524203833229">&amp;Sair</translation>
 <translation id="6300718114348072351">Não foi possível configurar <ph name="PRINTER_NAME" /> automaticamente. Especifique as configurações avançadas da impressora. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
@@ -4339,7 +4350,6 @@
 <translation id="6865598234501509159">A página não está em <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Logs de eventos WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura da cor</translation>
-<translation id="6870888490422746447">Escolha um app para compartilhar:</translation>
 <translation id="6871644448911473373">Respondente OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">A senha inserida foi recusada pelo servidor.</translation>
 <translation id="6876155724392614295">Bicicleta</translation>
@@ -4432,6 +4442,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" />: registro de atividades</translation>
 <translation id="6997707937646349884">Nos seus dispositivos:</translation>
 <translation id="6998793565256476099">Cadastre o dispositivo para videoconferência</translation>
+<translation id="6999956497249459195">Novo grupo</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> está conectada, mas precisa ser configurada</translation>
 <translation id="7000347579424117903">Inclua a tecla Ctrl, Alt ou Pesquisa</translation>
 <translation id="7001036685275644873">Fazendo backup dos apps e arquivos do Linux</translation>
@@ -4730,6 +4741,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Configurar conexão no <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Dispensar esta mensagem</translation>
+<translation id="7403642243184989645">Fazendo o download de recursos</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{A confirmação de segurança foi executada há 1 hora}one{A confirmação de segurança foi executada há {NUM_HOURS} hora}other{A confirmação de segurança foi executada há {NUM_HOURS} horas}}</translation>
 <translation id="740624631517654988">Pop-up bloqueado</translation>
 <translation id="7407430846095439694">Importar e vincular</translation>
@@ -4966,6 +4978,7 @@
 <translation id="7716781361494605745">URL da diretiva de autoridade de certificação do Netscape</translation>
 <translation id="7717014941119698257">Fazendo download <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Verificar se há atualizações</translation>
+<translation id="7719070594859855691">Dar acesso à câmera</translation>
 <translation id="7719367874908701697">Zoom da página:</translation>
 <translation id="7721179060400456005">Permitir que as janelas estendam as telas</translation>
 <translation id="7722040605881499779">Atualização necessária: <ph name="NECESSARY_SPACE" /></translation>
@@ -4980,7 +4993,6 @@
 <translation id="7744047395460924128">Ver seu histórico de impressão</translation>
 <translation id="7744192722284567281">Encontrada em uma violação de dados</translation>
 <translation id="7750228210027921155">Picture-in-picture</translation>
-<translation id="7751229152614300329">O "Navegação segura" está atualizado e continua a proteger você de sites e downloads nocivos</translation>
 <translation id="7751260505918304024">Exibir todos</translation>
 <translation id="7754704193130578113">Perguntar onde salvar cada arquivo antes de fazer download</translation>
 <translation id="7755287808199759310">Seu responsável pode desbloqueá-lo para você</translation>
@@ -5068,6 +5080,7 @@
     <ph name="BEGIN_BOLD" />Observação:<ph name="END_BOLD" /> o sistema será reinicializado durante o processo.</translation>
 <translation id="7828731929332799387">Essa ação excluirá todos os cookies e dados de sites disponíveis em contextos de terceiros. Quer continuar?</translation>
 <translation id="7829298379596169484">Acessando entrada de áudio</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> não pode verificar suas senhas. Verifique sua conexão de Internet.</translation>
 <translation id="7829877209233347340">Peça a um pai/mãe para se conectar e permitir a adição de uma conta escolar</translation>
 <translation id="7830594666202422257">Conectar ao Linux</translation>
 <translation id="7831491651892296503">Erro ao configurar a rede</translation>
@@ -5290,6 +5303,7 @@
 <translation id="8107015733319732394">Instalando a Google Play Store no seu <ph name="DEVICE_TYPE" />. Isso pode demorar alguns minutos.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Sem cookies de terceiros}=1{1 cookie de terceiros foi bloqueado}one{# cookie de terceiros foi bloqueado}other{# cookies de terceiros foram bloqueados}}</translation>
 <translation id="810875025413331850">Nenhum dispositivo próximo encontrado.</translation>
+<translation id="8114199541033039755">Navegue para a tela inicial, volte e troque de app usando botões no modo tablet. Função ativada quando o ChromeVox ou os cliques automáticos estão funcionando.</translation>
 <translation id="8114875720387900039">Divisão horizontal</translation>
 <translation id="8116972784401310538">&amp;Gerenciador de favoritos</translation>
 <translation id="8117620576188476503">Gerencie conexões, atualizações e configurações com a bandeja de status. Para chegar aqui com o teclado, pressione Alt + Shift + S.</translation>
@@ -5409,6 +5423,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> desativou o cursor do mouse.</translation>
 <translation id="8264024885325823677">Essas configurações são gerenciadas pelo administrador.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ativou a tela cheia.</translation>
+<translation id="826511437356419340">Iniciado modo de visão geral da janela. Deslize para navegar ou pressione Tab se estiver usando um teclado.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Essas são informações gerais sobre esse dispositivo e como ele é utilizado (como nível da bateria, atividade do sistema e de apps e erros). Os dados serão usados para melhorar o Android, e algumas informações agregadas também ajudarão apps e parceiros do Google, como desenvolvedores do Android, que poderão melhorar os apps e produtos deles.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />A desativação desse recurso não afeta a capacidade do dispositivo de enviar as informações necessárias para serviços básicos como atualizações do sistema e segurança.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />O proprietário pode controlar esse recurso em "Configurações" &gt; "Avançado" &gt; "Enviar automaticamente dados de uso e diagnóstico ao Google".<ph name="END_PARAGRAPH3" />
@@ -5517,6 +5532,7 @@
 <translation id="8426713856918551002">Ativando</translation>
 <translation id="8427292751741042100">incorporado em qualquer host</translation>
 <translation id="8428213095426709021">Configurações</translation>
+<translation id="8428271547607112339">Adicionar conta escolar</translation>
 <translation id="8428628598981198790">Sua chave de segurança não pode ser usada com este site</translation>
 <translation id="84297032718407999">Você será desconectado em <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Mostrar toques</translation>
@@ -5580,6 +5596,7 @@
 <translation id="851263357009351303">Sempre permitir que <ph name="HOST" /> mostre imagens</translation>
 <translation id="8513108775083588393">Girar automaticamente</translation>
 <translation id="8514746246728959655">Tente usar uma chave de segurança diferente</translation>
+<translation id="851960115758509829">Seus apps, suas configurações e outras personalizações serão sincronizados por todos os dispositivos Chrome OS conectados à sua Conta do Google.</translation>
 <translation id="8521475323816527629">Acessar seus apps rapidamente</translation>
 <translation id="8523493869875972733">Manter alterações</translation>
 <translation id="8523849605371521713">Adicionada por uma política</translation>
@@ -5861,11 +5878,13 @@
 <translation id="885701979325669005">Armazenamento</translation>
 <translation id="8859057652521303089">Selecione o seu idioma:</translation>
 <translation id="8859174528519900719">Subquadro: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Conta de pai/mãe</translation>
 <translation id="8862003515646449717">Mudar para um navegador rápido</translation>
 <translation id="8863753581171631212">Abrir link em nova janela do <ph name="APP" /></translation>
 <translation id="8864055848767439877">Compartilhando <ph name="TAB_NAME" /> com <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">A conta <ph name="EMAIL" /> foi removida deste dispositivo</translation>
 <translation id="8867228703146808825">Copiar detalhes de versão para a área de transferência</translation>
+<translation id="8868333925931032127">Iniciando modo de demonstração</translation>
 <translation id="8868626022555786497">Em uso</translation>
 <translation id="8870413625673593573">Recentemente fechadas</translation>
 <translation id="8871551568777368300">Fixada pelo administrador</translation>
@@ -5944,6 +5963,7 @@
 <translation id="8966870118594285808">Reabra uma guia se você a fechou acidentalmente</translation>
 <translation id="8967866634928501045">Pressione Alt+Shift+A para exibir</translation>
 <translation id="8968766641738584599">Salvar cartão</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> não pode verificar suas senhas. Tente novamente em 24 horas ou <ph name="BEGIN_LINK" />verifique-as na sua Conta do Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Verifique com seu administrador de rede se o firewall não está bloqueando downloads dos servidores do Google.</translation>
 <translation id="8973557916016709913">Remover o nível de zoom</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 8b8b231..61ef05c3 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dispositivos disponíveis</translation>
 <translation id="1042174272890264476">O seu computador também tem a biblioteca RLZ de <ph name="SHORT_PRODUCT_NAME" /> incorporada. A RLZ atribui uma etiqueta não exclusiva e não identificável a nível pessoal para medir as pesquisas e a utilização de <ph name="SHORT_PRODUCT_NAME" /> impulsionada por uma campanha promocional específica. Estas etiquetas por vezes aparecem em consultas da Pesquisa Google em <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Também pretende limpar os dados destas apps?</translation>
+<translation id="1045448422538531528">Adicionar ao grupo</translation>
 <translation id="1046635659603195359">Parece que já configurou o Voice Match com o Assistente Google noutro dispositivo. É possível utilizar estas gravações anteriores para criar um modelo de voz neste dispositivo. Este processo deve demorar menos de um minuto.</translation>
 <translation id="104710386808485638">Pretende reiniciar o Linux?</translation>
 <translation id="1047431265488717055">Copiar te&amp;xto do link</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Bloquear sempre o acesso à câmara</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> pretende restaurar as suas definições do Chrome para as predefinições originais. Esta ação repõe a página inicial, a página novo separador e o motor de pesquisa, desativa as extensões e solta todos os separadores. Limpa também outros dados em cache e temporários, tais como cookies, conteúdos e dados de sites.</translation>
+<translation id="1084096383128641877">Remover esta palavra-passe não elimina a sua conta em <ph name="DOMAIN" />. Altere a palavra-passe ou elimine a sua conta em <ph name="DOMAIN_LINK" /> para a manter protegida contra terceiros.</translation>
 <translation id="1084824384139382525">Copiar &amp;endereço do link</translation>
 <translation id="1085697365578766383">Não foi possível iniciar a máquina virtual. Tente novamente.</translation>
 <translation id="1090126737595388931">Não há aplicações em execução em segundo plano</translation>
@@ -192,7 +194,7 @@
 <translation id="1244265436519979884">Neste momento, está a decorrer o restauro do Linux.</translation>
 <translation id="1244303850296295656">Erro de extensão</translation>
 <translation id="1246158006305844142">As suas apps e definições serão sincronizadas em todos os dispositivos Chrome OS nos quais tenha sessão iniciada com a Conta Google. Para ver as opções de sincronização do navegador, aceda às <ph name="LINK_BEGIN" />definições do Chrome<ph name="LINK_END" />.</translation>
-<translation id="1246905108078336582">Pretende remover a sugestão da área de transferência?</translation>
+<translation id="1246905108078336582">Remover a sugestão da área de transferência?</translation>
 <translation id="1249643471736608405"><ph name="PLUGIN_NAME" /> foi bloqueado por ter sido descontinuado.</translation>
 <translation id="1251366534849411931">Chaveta de abertura esperada: <ph name="ERROR_LINE" />.</translation>
 <translation id="1252987234827889034">Ocorreu um erro do perfil</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">A verificação de segurança foi efetuada ontem.</translation>
 <translation id="1260451001046713751">Permitir sempre pop-ups e redirecionamentos de <ph name="HOST" /></translation>
 <translation id="126156426083987769">Ocorreu um problema com as licenças do dispositivo no modo de demonstração.</translation>
+<translation id="1263490604593716556">Conta gerida por <ph name="FIRST_PARENT_EMAIL" /> e <ph name="SECOND_PARENT_EMAIL" />. Para terminar sessão na conta principal neste dispositivo, clique na hora no ecrã. No menu apresentado, clique em "Terminar sessão".</translation>
 <translation id="126710816202626562">Idioma de tradução:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Parar</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Website</translation>
 <translation id="15662109988763471">A impressora selecionada não está disponível ou não está instalada corretamente. Verifique a impressora ou experimente selecionar outra impressora.</translation>
 <translation id="1567387640189251553">Foi ligado um teclado diferente desde a última vez que introduziu a palavra-passe. É possível que esteja a tentar roubar os seus toques de teclas.</translation>
-<translation id="1567750922576943685">A validação da sua identidade ajuda a proteger as suas informações pessoais.</translation>
 <translation id="1567993339577891801">Consola de JavaScript</translation>
 <translation id="1568323446248056064">Abrir definições do dispositivo de visualização</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (convidado)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Arte</translation>
 <translation id="1697686431566694143">Editar ficheiro</translation>
 <translation id="1698122934742150150">Apenas para a sessão no modo de navegação anónima atual</translation>
-<translation id="1698650002254827833">Não é possível carregar a lista de aplicações. Tente novamente.</translation>
 <translation id="1700079447639026019">Sites que nunca podem utilizar cookies</translation>
 <translation id="1701062906490865540">Remover esta pessoa</translation>
 <translation id="1703331064825191675">Nunca mais se preocupe com as suas palavras-passe</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Continuar</translation>
 <translation id="2173302385160625112">Verifique a ligação à Internet</translation>
 <translation id="2173801458090845390">Adicionar ID de requisição a este dispositivo</translation>
+<translation id="2174948148799307353">Conta gerida por <ph name="PARENT_EMAIL" />. Para terminar sessão na conta principal neste dispositivo, clique na hora no ecrã. No menu apresentado, clique em "Terminar sessão".</translation>
 <translation id="2175607476662778685">Barra de início rápido</translation>
 <translation id="217576141146192373">Não é possível adicionar a impressora. Verifique a configuração da impressora e tente novamente.</translation>
 <translation id="2177950615300672361">Separador de navegação anónima: <ph name="TAB_NAME" /></translation>
@@ -1080,7 +1082,6 @@
 <translation id="2442916515643169563">Sombra do texto</translation>
 <translation id="2445081178310039857">É necessário o directório de raiz da extensão.</translation>
 <translation id="2445484935443597917">Criar um novo perfil</translation>
-<translation id="2446585455334014596">A aplicação <ph name="APP_NAME" /> pretende validar a sua identidade</translation>
 <translation id="2448312741937722512">Tipo</translation>
 <translation id="2450223707519584812">Não pode adicionar utilizadores porque as chaves da API do Google estão em falta. Consulte <ph name="DETAILS_URL" /> para obter detalhes.</translation>
 <translation id="2450849356604136918">Sem vistas ativas</translation>
@@ -1169,7 +1170,7 @@
 <translation id="2548347166720081527">Autorizou <ph name="PERMISSION" /></translation>
 <translation id="2549985041256363841">Iniciar gravação</translation>
 <translation id="2550212893339833758">Memória trocada</translation>
-<translation id="2550596535588364872">Pretende permitir que <ph name="EXTENSION_NAME" /> abra <ph name="FILE_NAME" />?</translation>
+<translation id="2550596535588364872">Permitir que <ph name="EXTENSION_NAME" /> abra <ph name="FILE_NAME" />?</translation>
 <translation id="2552966063069741410">Fuso Horário</translation>
 <translation id="2553340429761841190">O <ph name="PRODUCT_NAME" /> não conseguiu estabelecer ligação a <ph name="NETWORK_ID" />. Selecione outra rede ou tente novamente.</translation>
 <translation id="2553440850688409052">Ocultar este plug-in</translation>
@@ -1396,7 +1397,7 @@
 <translation id="2841837950101800123">Fornecedor</translation>
 <translation id="2844169650293029770">Dispositivo USB-C (porta frontal do lado esquerdo)</translation>
 <translation id="2845382757467349449">Mostrar Sempre a Barra de Marcadores</translation>
-<translation id="284805635805850872">Pretende remover software prejudicial?</translation>
+<translation id="284805635805850872">Remover software prejudicial?</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">Falha ao limpar.</translation>
 <translation id="2849936225196189499">Crítica</translation>
@@ -1478,6 +1479,7 @@
 <translation id="2948300991547862301">Aceder a <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Navegador de Internet rápido, simples e seguro, concebido para a Web moderna.</translation>
 <translation id="2949289451367477459">Utilize a localização. Permita que as aplicações e os serviços com a autorização de acesso à localização utilizem a deste dispositivo. A Google pode recolher periodicamente dados de localização e utilizar estes dados anonimamente para melhorar a precisão da localização e os serviços baseados na localização. <ph name="BEGIN_LINK1" />Saiba mais<ph name="END_LINK1" />.</translation>
+<translation id="2950666755714083615">Inscrever-me</translation>
 <translation id="2956070239128776395">Secção aninhada no grupo: <ph name="ERROR_LINE" />.</translation>
 <translation id="2957117904572187936">Não permitir que qualquer site edite ficheiros ou pastas no dispositivo</translation>
 <translation id="2958721676848865875">Aviso de extensão do pacote</translation>
@@ -1557,7 +1559,7 @@
 <translation id="3067198179881736288">Pretende instalar a aplicação?</translation>
 <translation id="3067198360141518313">Executar este plug-in</translation>
 <translation id="3071624960923923138">Pode clicar aqui para abrir um novo separador</translation>
-<translation id="3072775339180057696">Pretende permitir que o site veja o ficheiro <ph name="FILE_NAME" />?</translation>
+<translation id="3072775339180057696">Permitir que o site veja o ficheiro <ph name="FILE_NAME" />?</translation>
 <translation id="3075874217500066906">É necessário reiniciar para começar o processo Powerwash. Depois do reinício, terá de confirmar que pretende prosseguir.</translation>
 <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation>
 <translation id="3076977359333237641">Os seus dados de início de sessão foram eliminados.</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Avatar amarelo predefinido</translation>
 <translation id="3141318088920353606">A ouvir…</translation>
 <translation id="3141917231319778873">O pedido indicado não é suportado para: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Novo grupo</translation>
 <translation id="3143515551205905069">Cancelar sincronização</translation>
 <translation id="3143754809889689516">Reproduzir desde o início</translation>
 <translation id="3144647712221361880">Abrir link como</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Bege</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (suportado por hardware)</translation>
 <translation id="3161522574479303604">Todos os idiomas</translation>
+<translation id="3162853326462195145">Conta escolar</translation>
 <translation id="3162899666601560689">Os sites podem utilizar cookies para melhorar a experiência de navegação, por exemplo, para manter a sua sessão iniciada ou memorizar os artigos no seu carrinho de compras.</translation>
 <translation id="3163201441334626963">Produto desconhecido <ph name="PRODUCT_ID" /> do fornecedor <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">A partilhar este separador com o <ph name="APP_NAME" />…</translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Atualize o dispositivo dentro de um dia}other{Atualize o dispositivo dentro de # dias}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – erro de rede</translation>
 <translation id="3248902735035392926">A segurança é importante. Dedique algum tempo a <ph name="BEGIN_LINK" />verificar as extensões agora<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Não faz parte do certificado&gt;</translation>
 <translation id="3253225298092156258">Não disponível</translation>
 <translation id="3253448572569133955">Conta desconhecida</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Ao clicar no botão "Aceitar e continuar", está a aceitar o processamento descrito acima para estes serviços Google.</translation>
 <translation id="3399432415385675819">As notificações serão desativadas</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz) – entrelaçado</translation>
+<translation id="3402585168444815892">A inscrever-se no modo de demonstração…</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Sem palavras-passe guardadas para este site</translation>
 <translation id="3405664148539009465">Personalizar tipos de letra</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Telemóvel Android</translation>
 <translation id="3470442499439619530">Remover Este Utilizador</translation>
 <translation id="3471876058939596279">Não é possível utilizar as portas HDMI e USB tipo C para vídeo ao mesmo tempo. Utilize uma porta de vídeo diferente.</translation>
+<translation id="3473241910002674503">Navegue para a página inicial, para trás e mude de apps através de botões no modo de tablet.</translation>
 <translation id="3473479545200714844">Lupa</translation>
 <translation id="3475843873335999118">Lamentamos, mas a sua impressão digital ainda não foi reconhecida. Introduza a palavra-passe.</translation>
 <translation id="3476303763173086583">Envie dados de utilização e diagnóstico. Ajude a melhorar a experiência Android da criança ao enviar automaticamente dados de diagnóstico, de utilização de aplicações e do dispositivo para a Google. Estes dados não serão utilizados para identificar a criança e ajudarão a melhorar a estabilidade das aplicações e do sistema, entre outras melhorias. Alguns dados agregados também ajudarão as aplicações e os parceiros Google, como os programadores Android. Esta <ph name="BEGIN_LINK1" />definição<ph name="END_LINK1" /> é aplicada pelo proprietário. O proprietário pode optar por enviar dados de diagnóstico e de utilização deste dispositivo para a Google. Se a definição Atividade da Web e de aplicações adicional estiver ativada para a criança, estes dados podem ser guardados na respetiva Conta Google. <ph name="BEGIN_LINK2" />Saiba mais<ph name="END_LINK2" /></translation>
@@ -2087,7 +2092,7 @@
 <translation id="3759933321830434300">Bloquear partes de páginas Web</translation>
 <translation id="3760460896538743390">Inspecionar Página de Fundo</translation>
 <translation id="37613671848467444">Abrir na Janela de &amp;Navegação Anónima</translation>
-<translation id="3761556954875533505">Pretende permitir que o site edite ficheiros?</translation>
+<translation id="3761556954875533505">Permitir que o site edite ficheiros?</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Comunicar com um dispositivo USB}other{Comunicar com # dispositivos USB}}</translation>
 <translation id="3765246971671567135">Não foi possível ler a política do modo de demonstração offline.</translation>
 <translation id="3768037234834996183">A sincronizar as preferências...</translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Impressões digitais nesta chave de segurança</translation>
 <translation id="3973660817924297510">A verificar palavras-passe (<ph name="CHECKED_PASSWORDS" /> de <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Falha ao contactar o servidor do domínio.</translation>
+<translation id="3975884715086515476">O <ph name="IDS_SHORT_PRODUCT_NAME" /> não consegue verificar as suas palavras-passe. Tente novamente mais tarde.</translation>
 <translation id="3976108569178263973">Não existem impressoras disponíveis.</translation>
 <translation id="397703832102027365">A finalizar...</translation>
 <translation id="3977886311744775419">As atualizações automáticas não são transferidas neste tipo de rede, mas pode verificar se existem atualizações manualmente.</translation>
@@ -2287,7 +2293,7 @@
 <translation id="3983764759749072418">As aplicações da Play Store têm acesso a este dispositivo.</translation>
 <translation id="3983769721878416534">Atraso antes de clicar</translation>
 <translation id="3984159763196946143">Não foi possível iniciar o modo de demonstração</translation>
-<translation id="3984431586879874039">Pretende permitir que este site veja a sua chave de segurança?</translation>
+<translation id="3984431586879874039">Permitir que este site veja a sua chave de segurança?</translation>
 <translation id="3987938432087324095">Lamento, mas não compreendi.</translation>
 <translation id="3988996860813292272">Selecionar fuso horário</translation>
 <translation id="399179161741278232">Importado</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Esta página contém elementos dos seguintes sites que estão a monitorizar a sua localização:</translation>
 <translation id="4068776064906523561">Impressões digitais guardadas</translation>
 <translation id="407173827865827707">Ao clicar</translation>
+<translation id="4073520450811433493">Sincronização das definições</translation>
 <translation id="4074900173531346617">Certificado do signatário do email</translation>
 <translation id="407520071244661467">Escala</translation>
 <translation id="4075639477629295004">Não é possível transmitir <ph name="FILE_NAME" />.</translation>
@@ -2561,7 +2568,7 @@
 <translation id="4410545552906060960">Utilize um número (PIN) em vez de uma palavra-passe para desbloquear o dispositivo. Para definir o PIN mais tarde, aceda a Definições.</translation>
 <translation id="4411578466613447185">Signatário do código</translation>
 <translation id="4412698727486357573">Centro de Ajuda</translation>
-<translation id="44141919652824029">Pretende permitir que o "<ph name="APP_NAME" />" obtenha a lista dos seus dispositivos USB associados?</translation>
+<translation id="44141919652824029">Permitir que o "<ph name="APP_NAME" />" obtenha a lista dos seus dispositivos USB associados?</translation>
 <translation id="4414232939543644979">Nova Janela de Navegação Anón&amp;ima</translation>
 <translation id="4415213869328311284">Tem tudo pronto para começar a utilizar o <ph name="DEVICE_TYPE" />.</translation>
 <translation id="4415245286584082850">Não foram encontrados dispositivos. Abra um artigo do Centro de Ajuda num novo separador.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Fofo</translation>
 <translation id="4423376891418188461">Restaurar definições</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, o seu gestor requer que altere a sua palavra-passe.</translation>
+<translation id="4426209360861763174">O <ph name="IDS_SHORT_PRODUCT_NAME" /> não consegue verificar as suas palavras-passe. Tente novamente após 24 horas.</translation>
 <translation id="4429030830601238961">Estes dados violam as políticas de segurança da sua entidade e não é possível colá-los.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4430369329743628066">Marcador adicionado</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Pretende iniciar automaticamente esta aplicação quando o computador é ligado?</translation>
 <translation id="4441147046941420429">Para continuar, remova a sua chave de segurança do dispositivo e, em seguida, reinsira-a e toque na mesma.</translation>
 <translation id="444134486829715816">Expandir...</translation>
+<translation id="4442329324652245220">O <ph name="IDS_SHORT_PRODUCT_NAME" /> pode verificar as suas palavras-passe quando inicia sessão com a sua Conta Google.</translation>
 <translation id="4442424173763614572">A procura de DNS falhou</translation>
 <translation id="4443536555189480885">&amp;Ajuda</translation>
 <translation id="4444304522807523469">Aceder a scanners de documentos anexados através de USB ou na rede local</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Para ler este código, pode utilizar uma aplicação de leitura de códigos QR no telemóvel ou algumas aplicações de câmara.</translation>
 <translation id="4477015793815781985">Inclua Ctrl, Alt ou ⌘.</translation>
 <translation id="4478664379124702289">Guardar Lin&amp;k Como...</translation>
+<translation id="4478777936860197922">Não existem palavras-passe guardadas. O <ph name="IDS_SHORT_PRODUCT_NAME" /> consegue verificar as suas palavras-passe quando as guarda.</translation>
 <translation id="4479424953165245642">Gerir aplicações de quiosque</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">A configurar a máquina virtual… Esta ação pode demorar alguns minutos.</translation>
 <translation id="4480590691557335796">O Chrome pode encontrar software prejudicial no seu computador e removê-lo.</translation>
 <translation id="4481530544597605423">Dispositivos dessincronizados</translation>
+<translation id="4488107067273194838">Rever as opções de sincronização do navegador após a configuração</translation>
 <translation id="4488502501195719518">Pretende limpar todos os dados?</translation>
 <translation id="4495419450179050807">Não mostrar nesta página</translation>
 <translation id="4496054781541092778">autorização <ph name="PERMISSION" /> bloqueada automaticamente</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Não instalar</translation>
 <translation id="4850669014075537160">Deslocamento</translation>
 <translation id="4850886885716139402">Ver</translation>
+<translation id="485197095346966382">O <ph name="IDS_SHORT_PRODUCT_NAME" /> envia-lhe uma notificação quando iniciar sessão com uma palavra-passe comprometida.</translation>
 <translation id="4853020600495124913">Abrir numa &amp;nova janela</translation>
 <translation id="4854317507773910281">Escolhe a conta parental para aprovação</translation>
 <translation id="485480310608090163">Mais definições e autorizações</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">O PIN contém carateres inválidos.</translation>
 <translation id="4871370605780490696">Adicionar marcador</translation>
 <translation id="4871719318659334896">Fechar grupo</translation>
+<translation id="4871852311166078968">Adicionar ao grupo</translation>
 <translation id="4873312501243535625">Verificador de ficheiros multimédia</translation>
 <translation id="4876273079589074638">Ajude os nossos engenheiros a analisar e corrigir esta falha de sistema. Enumere os passos exatos, se possível. Nenhum detalhe é demasiado pequeno!</translation>
 <translation id="4876895919560854374">Bloquear e desbloquear o ecrã</translation>
@@ -2911,7 +2924,7 @@
 <translation id="4908811072292128752">Abra um novo separador para navegar em dois sites em simultâneo</translation>
 <translation id="4909038193460299775">Como esta conta é gerida por <ph name="DOMAIN" />, os seus marcadores, histórico, palavras-passe e outras definições serão apagados deste dispositivo. No entanto, os seus dados continuarão armazenados na sua Conta Google e podem ser geridos no <ph name="BEGIN_LINK" />Painel de Controlo Google<ph name="END_LINK" />.</translation>
 <translation id="4912643508233590958">Reativações após inatividade</translation>
-<translation id="4916542008280060967">Pretende permitir que o site edite o ficheiro <ph name="FILE_NAME" />?</translation>
+<translation id="4916542008280060967">Permitir que o site edite o ficheiro <ph name="FILE_NAME" />?</translation>
 <translation id="491691592645955587">Mude para um navegador seguro</translation>
 <translation id="4917385247580444890">Forte</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> pretende comunicar com a extensão "<ph name="EXTENSION_NAME" />"</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">O administrador limitou os métodos de introdução disponíveis.</translation>
 <translation id="4994474651455208930">Permitir que os Web sites peçam para serem os processadores predefinidos de protocolos</translation>
 <translation id="4994754230098574403">A configurar…</translation>
-<translation id="4996978546172906250">Partilhar através de</translation>
 <translation id="4997086284911172121">Sem ligação à Internet.</translation>
 <translation id="4997384734315285248">Desinstalar o Plugin VM</translation>
 <translation id="4998430619171209993">Ativado</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Aceda ao Assistente ao dizer "Ok Google".</translation>
 <translation id="5135533361271311778">Não foi possível criar item de marcador.</translation>
 <translation id="5137501176474113045">Eliminar este item</translation>
-<translation id="5138982052046316113">Redimensione o disco do Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, pesquisa no <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Introduza o PIN da sua chave de segurança. Se não souber o PIN, terá de repor a chave de segurança.</translation>
 <translation id="5139955368427980650">&amp;Abrir</translation>
@@ -3520,6 +3531,7 @@
 <translation id="5739235828260127894">A aguardar a validação. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Muito grande</translation>
 <translation id="574209121243317957">Tonalidade</translation>
+<translation id="5745136023067925867">Obtenha sugestões, ofertas e atualizações do <ph name="DEVICE_TYPE" /> e partilhe comentários.</translation>
 <translation id="5746169159649715125">Guardar como PDF</translation>
 <translation id="5747552184818312860">Expira</translation>
 <translation id="5747785204778348146">Programador – instável</translation>
@@ -3932,7 +3944,6 @@
 <translation id="6291953229176937411">Mo&amp;strar no Finder</translation>
 <translation id="6295158916970320988">Todos os sites</translation>
 <translation id="6295855836753816081">A guardar...</translation>
-<translation id="629730747756840877">Conta</translation>
 <translation id="6298962879096096191">Utilizar o Google Play para instalar aplicações para Android</translation>
 <translation id="630065524203833229">&amp;Sair</translation>
 <translation id="6300718114348072351">Não foi possível configurar automaticamente a <ph name="PRINTER_NAME" />. Especifique detalhes avançados da impressora. <ph name="LINK_BEGIN" />Saber mais<ph name="LINK_END" /></translation>
@@ -4338,7 +4349,6 @@
 <translation id="6865598234501509159">A página não está em <ph name="LANGUAGE" />.</translation>
 <translation id="6865708901122695652">Registos de eventos WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura da cor</translation>
-<translation id="6870888490422746447">Escolha uma aplicação a partilhar em:</translation>
 <translation id="6871644448911473373">Serviço de resposta de OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">A palavra-passe introduzida foi rejeitada pelo servidor.</translation>
 <translation id="6876155724392614295">Bicicleta</translation>
@@ -4431,6 +4441,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – Registo de atividade</translation>
 <translation id="6997707937646349884">Nos seus dispositivos:</translation>
 <translation id="6998793565256476099">Inscrever dispositivo para videoconferência</translation>
+<translation id="6999956497249459195">Novo grupo</translation>
 <translation id="7000206553895739324">A impressora <ph name="PRINTER_NAME" /> está ligada mas tem de ser configurada.</translation>
 <translation id="7000347579424117903">Inclua Ctrl, Alt ou Pesquisar.</translation>
 <translation id="7001036685275644873">A fazer uma cópia de segurança de ficheiros e aplicações do Linux…</translation>
@@ -4498,7 +4509,7 @@
 <translation id="708060913198414444">C&amp;opiar endereço do áudio</translation>
 <translation id="7081952801286122383">Está em modo anónimo.</translation>
 <translation id="708278670402572152">Desligar para ativar a verificação</translation>
-<translation id="7085389578340536476">Pretende permitir que o Chrome grave áudio?</translation>
+<translation id="7085389578340536476">Permitir que o Chrome grave áudio?</translation>
 <translation id="7086467953285486445">Estes ficheiros violam as políticas de segurança da sua entidade e não é possível largá-los.</translation>
 <translation id="7088434364990739311">Falha ao iniciar a verificação de atualizações (código de erro <ph name="ERROR" />).</translation>
 <translation id="7088561041432335295">Zip Archiver – abra e comprima ficheiros ZIP na aplicação Ficheiros.</translation>
@@ -4729,6 +4740,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Configurar ligação no <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Ignore esta mensagem</translation>
+<translation id="7403642243184989645">A transferir recursos…</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{A verificação de segurança foi efetuada há 1 hora.}other{A verificação de segurança foi efetuada há {NUM_HOURS} horas}}</translation>
 <translation id="740624631517654988">Janelas de pop-up bloqueadas</translation>
 <translation id="7407430846095439694">Importar e vincular</translation>
@@ -4764,7 +4776,7 @@
 <translation id="7443806024147773267">Aceda às suas palavras-passe sempre que tiver sessão iniciada na sua Conta Google.</translation>
 <translation id="7444983668544353857">Desactivar <ph name="NETWORKDEVICE" /></translation>
 <translation id="7448430327655618736">Instalar aplicações automaticamente</translation>
-<translation id="7449752890690775568">Pretende remover a palavra-passe?</translation>
+<translation id="7449752890690775568">Remover a palavra-passe?</translation>
 <translation id="7450761244949417357">A abrir no <ph name="ALTERNATIVE_BROWSER_NAME" /> agora</translation>
 <translation id="7453008956351770337">Ao selecionar esta impressora, está a conceder à seguinte extensão a autorização para aceder à sua impressora:</translation>
 <translation id="7454548535253569100">Portal: <ph name="SUBFRAME_SITE" /></translation>
@@ -4964,7 +4976,8 @@
 <translation id="7714464543167945231">Certificado</translation>
 <translation id="7716781361494605745">URL da política da autoridade de certificação Netscape</translation>
 <translation id="7717014941119698257">A transferir: <ph name="STATUS" /></translation>
-<translation id="7717845620320228976">Verificar se existem atualizações</translation>
+<translation id="7717845620320228976">Verificar atualizações</translation>
+<translation id="7719070594859855691">Conceder acesso à câmara</translation>
 <translation id="7719367874908701697">Zoom da página</translation>
 <translation id="7721179060400456005">Permitir que a área de janela corresponda à dos ecrãs</translation>
 <translation id="7722040605881499779">Necessário para atualizar: <ph name="NECESSARY_SPACE" /></translation>
@@ -4979,7 +4992,6 @@
 <translation id="7744047395460924128">Veja o seu histórico de impressão</translation>
 <translation id="7744192722284567281">Encontrada numa violação de dados</translation>
 <translation id="7750228210027921155">Ecrã no ecrã</translation>
-<translation id="7751229152614300329">A Navegação segura está atualizada e a oferecer-lhe proteção contra transferências e sites prejudiciais.</translation>
 <translation id="7751260505918304024">Mostrar tudo</translation>
 <translation id="7754704193130578113">Perguntar onde guardar cada ficheiro antes da transferência</translation>
 <translation id="7755287808199759310">O teu pai/a tua mãe pode desbloquear-te</translation>
@@ -5067,6 +5079,7 @@
     <ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> o sistema será reiniciado durante o processo.</translation>
 <translation id="7828731929332799387">Esta ação eliminará todos os cookies e dados de sites disponíveis em contextos de terceiros. Pretende continuar?</translation>
 <translation id="7829298379596169484">A aceder à entrada de áudio</translation>
+<translation id="7829528495815477379">O <ph name="IDS_SHORT_PRODUCT_NAME" /> não consegue verificar as suas palavras-passe. Experimente verificar a sua ligação à Internet.</translation>
 <translation id="7829877209233347340">Peça a um dos seus pais para lhe conceder autorização para adicionar uma conta escolar.</translation>
 <translation id="7830594666202422257">Ligar ao Linux</translation>
 <translation id="7831491651892296503">Ocorreu um erro ao configurar a rede.</translation>
@@ -5289,6 +5302,7 @@
 <translation id="8107015733319732394">A instalar a Google Play Store no <ph name="DEVICE_TYPE" />… Esta ação pode demorar alguns minutos.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Sem cookies de terceiros}=1{1 cookie de terceiros está bloqueado}other{# cookies de terceiros estão bloqueados}}</translation>
 <translation id="810875025413331850">Não foram encontrados dispositivos nas proximidades.</translation>
+<translation id="8114199541033039755">Navegue para a página inicial, para trás e mude de apps através de botões no modo de tablet. Esta definição está ativada quando o ChromeVox ou os cliques automáticos estão ativados.</translation>
 <translation id="8114875720387900039">Divisão horizontal</translation>
 <translation id="8116972784401310538">&amp;Gestor de marcadores</translation>
 <translation id="8117620576188476503">Faça a gestão de ligações, atualizações e definições através do tabuleiro de estado. Para chegar aqui através do teclado, prima Alt + Shift + S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> desativou o cursor do rato.</translation>
 <translation id="8264024885325823677">Esta definição é gerida pelo seu administrador.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ativou o ecrã inteiro.</translation>
+<translation id="826511437356419340">Entrou no modo de vista geral de janelas. Deslize rapidamente para navegar ou prima Tab se estiver a utilizar um teclado.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Estas são informações gerais acerca deste dispositivo e da forma como é utilizado (como o nível da bateria, a atividade do sistema e de aplicações, e erros). Os dados são utilizados para melhorar o Android, e algumas informações agregadas também ajudarão as aplicações e colaboradores Google, como os programadores Android, a melhorar os respetivos produtos e aplicações.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />A desativação desta funcionalidade não afeta a capacidade deste dispositivo de enviar as informações necessárias para serviços essenciais, como as atualizações do sistema e a segurança.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />O proprietário pode controlar esta funcionalidade ao aceder a Definições &gt; Avançadas &gt; Enviar automaticamente dados de diagnóstico e de utilização para a Google.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">A ativar…</translation>
 <translation id="8427292751741042100">incorporada em qualquer anfitrião</translation>
 <translation id="8428213095426709021">Definições</translation>
+<translation id="8428271547607112339">Adicionar conta escolar</translation>
 <translation id="8428628598981198790">Não é possível utilizar a sua chave de segurança neste site</translation>
 <translation id="84297032718407999">A sessão será terminada dentro de <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Mostrar toques</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Permitir sempre que o site <ph name="HOST" /> mostre imagens</translation>
 <translation id="8513108775083588393">Rotação automática</translation>
 <translation id="8514746246728959655">Experimente uma chave de segurança diferente</translation>
+<translation id="851960115758509829">As suas apps, definições e outras personalizações serão sincronizadas em todos os dispositivos Chrome OS com sessão iniciada na sua Conta Google.</translation>
 <translation id="8521475323816527629">Aceder rapidamente às suas aplicações</translation>
 <translation id="8523493869875972733">Manter alterações</translation>
 <translation id="8523849605371521713">Adicionada pela política</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Armazenamento</translation>
 <translation id="8859057652521303089">Selecionar idioma:</translation>
 <translation id="8859174528519900719">Subestrutura: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Conta parental</translation>
 <translation id="8862003515646449717">Mude para um navegador rápido</translation>
 <translation id="8863753581171631212">Abrir link numa nova janela da aplicação <ph name="APP" /></translation>
 <translation id="8864055848767439877">A partilhar <ph name="TAB_NAME" /> com o <ph name="APP_NAME" />…</translation>
 <translation id="8864458770072227512">O email <ph name="EMAIL" /> foi removido deste dispositivo.</translation>
 <translation id="8867228703146808825">Copiar detalhes da compilação para a área de transferência</translation>
+<translation id="8868333925931032127">A iniciar o modo de demonstração…</translation>
 <translation id="8868626022555786497">Em utilização</translation>
 <translation id="8870413625673593573">Fechadas recentemente</translation>
 <translation id="8871551568777368300">Fixado pelo gestor</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Reabra um separador caso o feche acidentalmente.</translation>
 <translation id="8967866634928501045">Prima Alt + Shift + A para mostrar.</translation>
 <translation id="8968766641738584599">Guardar cartão</translation>
+<translation id="8971800409073702505">O <ph name="IDS_SHORT_PRODUCT_NAME" /> não consegue verificar as suas palavras-passe. Tente novamente após 24 horas ou <ph name="BEGIN_LINK" />verifique as palavras-passe na sua Conta Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Consulte o seu gestor de rede para ter a certeza de que a firewall não está a bloquear as transferências dos servidores da Google.</translation>
 <translation id="8973557916016709913">Remover nível de zoom</translation>
@@ -6069,7 +6089,7 @@
 <translation id="9138978632494473300">Adicionar atalhos aos seguintes locais:</translation>
 <translation id="9139988741193276691">A configurar o Linux…</translation>
 <translation id="9140067245205650184">Está a utilizar um sinalizador de funcionalidade não suportado: <ph name="BAD_FLAG" />. A estabilidade e a segurança serão afetadas.</translation>
-<translation id="9143298529634201539">Pretende remover a sugestão?</translation>
+<translation id="9143298529634201539">Remover a sugestão?</translation>
 <translation id="9147392381910171771">&amp;Opções</translation>
 <translation id="9148058034647219655">Sair</translation>
 <translation id="9148126808321036104">Iniciar sessão novamente</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index dbad38d..d247c92 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dispozitive disponibile</translation>
 <translation id="1042174272890264476">Computerul este dotat, de asemenea, cu o bibliotecă RLZ încorporată, oferită de <ph name="SHORT_PRODUCT_NAME" />. Biblioteca RLZ atribuie o etichetă non-unică și care nu vă identifică în mod personal, pentru a măsura căutările și modul în care este utilizat <ph name="SHORT_PRODUCT_NAME" /> în funcție de o anumită campanie promoțională. Aceste etichete pot apărea uneori în interogările Căutării Google din <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Ștergi și datele din aceste aplicații?</translation>
+<translation id="1045448422538531528">Adaugă în grup</translation>
 <translation id="1046635659603195359">Se pare că ai configurat deja Voice Match cu Asistentul Google pe alt dispozitiv. Aceste înregistrări anterioare pot fi folosite pentru a crea un model vocal pe acest dispozitiv. Ar trebui să dureze cel mult un minut.</translation>
 <translation id="104710386808485638">Repornești Linux?</translation>
 <translation id="1047431265488717055">Copiază te&amp;xtul linkului</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Blocați întotdeauna accesul la cameră</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> dorește să restabilească setările Chrome la valorile inițiale. Astfel, pagina de pornire, pagina Filă nouă și motorul de căutare vor fi resetate, extensiile vor fi dezactivate și fixarea filelor va fi anulată. De asemenea, vor fi șterse alte date temporare și memorate în cache, cum ar fi cookie-urile, conținutul și datele despre site-uri.</translation>
+<translation id="1084096383128641877">Eliminarea acestei parole nu îți va șterge contul din <ph name="DOMAIN" />. Schimbă-ți parola sau șterge contul din <ph name="DOMAIN_LINK" /> ca să-l păstrezi în siguranță.</translation>
 <translation id="1084824384139382525">Copiază adresa linkului</translation>
 <translation id="1085697365578766383">A apărut o eroare la pornirea mașinii virtuale. Încearcă din nou.</translation>
 <translation id="1090126737595388931">Nu rulează aplicații în fundal</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Verificarea de siguranță a rulat ieri</translation>
 <translation id="1260451001046713751">Permite întotdeauna afișarea ferestrelor pop-up și redirecționărilor de la <ph name="HOST" /></translation>
 <translation id="126156426083987769">A apărut o problemă cu licențele dispozitivului din modul demo.</translation>
+<translation id="1263490604593716556">Cont gestionat de <ph name="FIRST_PARENT_EMAIL" /> și de <ph name="SECOND_PARENT_EMAIL" />. Ca să te deconectezi de la contul principal de pe acest dispozitiv, dă clic pe data și ora de pe ecran. În meniul care apare, dă clic pe „Deconectează-te”.</translation>
 <translation id="126710816202626562">Limba traducerii:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Oprește</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Site</translation>
 <translation id="15662109988763471">Imprimanta selectată nu este disponibilă sau nu este instalată corect. Verifică imprimanta sau încearcă să selectezi altă imprimantă.</translation>
 <translation id="1567387640189251553">A fost conectată o altă tastatură după ce ai introdus parola ultima dată. Aceasta ar putea încerca să înregistreze ce taste apeși.</translation>
-<translation id="1567750922576943685">Confirmarea identității te ajută să-ți protejezi informațiile cu caracter personal</translation>
 <translation id="1567993339577891801">Consolă JavaScript</translation>
 <translation id="1568323446248056064">Deschide setările dispozitivului privind afișajul</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (invitat)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Artă</translation>
 <translation id="1697686431566694143">Editează fișierul</translation>
 <translation id="1698122934742150150">Numai sesiunea incognito actuală</translation>
-<translation id="1698650002254827833">Lista de aplicații nu se poate încărca. Reîncearcă.</translation>
 <translation id="1700079447639026019">Site-uri care nu pot folosi niciodată cookie-uri</translation>
 <translation id="1701062906490865540">Exclude această persoană</translation>
 <translation id="1703331064825191675">Nu-ți face griji în privința parolelor</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Continuă</translation>
 <translation id="2173302385160625112">Verifică-ți conexiunea la internet</translation>
 <translation id="2173801458090845390">Adaugă ID-ul de solicitare la acest dispozitiv</translation>
+<translation id="2174948148799307353">Cont gestionat de <ph name="PARENT_EMAIL" />. Ca să te deconectezi de la contul principal de pe acest dispozitiv, dă clic pe data și ora de pe ecran. În meniul care apare, dă clic pe „Deconectează-te”.</translation>
 <translation id="2175607476662778685">Bara Lansare rapidă</translation>
 <translation id="217576141146192373">Nu se poate adăuga imprimanta. Verifică ce configurație are imprimanta și încearcă din nou.</translation>
 <translation id="2177950615300672361">Fila Incognito: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Umbrirea textului</translation>
 <translation id="2445081178310039857">Este necesar directorul rădăcină pentru extensie.</translation>
 <translation id="2445484935443597917">Creează un profil nou</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> dorește să-ți confirme identitatea</translation>
 <translation id="2448312741937722512">Tipul</translation>
 <translation id="2450223707519584812">Nu vei putea adăuga utilizatori, deoarece lipsesc cheile pentru API-ul Google. Pentru detalii, consultă <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Nu există afișări active</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Accesați <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Un browser web rapid, simplu și sigur, creat pentru internetul modern.</translation>
 <translation id="2949289451367477459">Folosește locația. Permite aplicațiilor și serviciilor cu permisiune pentru locație să folosească locația acestui dispozitiv. Google poate colecta periodic date despre locație și le poate folosi în mod anonim pentru a îmbunătăți precizia localizării și a serviciilor bazate pe locație. <ph name="BEGIN_LINK1" />Află mai multe<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Doresc să mă înscriu</translation>
 <translation id="2956070239128776395">Secțiune imbricată în grup: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Nu permite site-urilor să modifice fișiere sau dosare de pe dispozitiv</translation>
 <translation id="2958721676848865875">Avertisment privind pachetul pentru extensie</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Avatar galben prestabilit</translation>
 <translation id="3141318088920353606">Se ascultă...</translation>
 <translation id="3141917231319778873">Solicitarea specificată nu este acceptată pe: „<ph name="DEVICE_NAME" />”.</translation>
+<translation id="3142562627629111859">Grup nou</translation>
 <translation id="3143515551205905069">Anulează sincronizarea</translation>
 <translation id="3143754809889689516">Redă de la început</translation>
 <translation id="3144647712221361880">Deschide linkul ca</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Bej</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (stocat pe hardware)</translation>
 <translation id="3161522574479303604">Toate limbile</translation>
+<translation id="3162853326462195145">Contul de la școală</translation>
 <translation id="3162899666601560689">Site-urile pot folosi cookie-uri pentru a-ți îmbunătăți experiența de navigare, de exemplu, pentru a te menține conectat(ă) sau pentru a reține articolele din coșul de cumpărături</translation>
 <translation id="3163201441334626963">Produs necunoscut <ph name="PRODUCT_ID" /> de la furnizorul <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Se distribuie această filă către <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Actualizează dispozitivul în cel mult o zi}few{Actualizează dispozitivul în cel mult # zile}other{Actualizează dispozitivul în cel mult # de zile}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – eroare de rețea</translation>
 <translation id="3248902735035392926">Siguranța contează. <ph name="BEGIN_LINK" />Verifică-ți extensiile acum<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Nu face parte dintr-un certificat&gt;</translation>
 <translation id="3253225298092156258">Indisponibilă</translation>
 <translation id="3253448572569133955">Cont necunoscut</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Dacă dai clic pe butonul „Acceptă și continuă” înseamnă că ești de acord cu procesarea descrisă mai sus pentru aceste servicii Google.</translation>
 <translation id="3399432415385675819">Notificările vor fi dezactivate</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertzi) – întrețesut</translation>
+<translation id="3402585168444815892">Se înregistrează în modul demonstrativ</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Nu s-au salvat parole pentru acest site</translation>
 <translation id="3405664148539009465">Personalizați fonturile</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Telefon Android</translation>
 <translation id="3470442499439619530">Eliminați acest utilizator</translation>
 <translation id="3471876058939596279">Porturile HDMI și USB Type-C nu pot fi folosite simultan pentru conținut video. Folosește alt port video.</translation>
+<translation id="3473241910002674503">Navighează la ecranul de pornire, înapoi și comută între aplicații folosind butoanele în modul tabletă.</translation>
 <translation id="3473479545200714844">Lupă de ecran</translation>
 <translation id="3475843873335999118">Ne pare rău, amprenta nu este recunoscută. Introdu parola.</translation>
 <translation id="3476303763173086583">Trimite date de utilizare și diagnosticare. Contribuie la îmbunătățirea experienței Android a copilului trimițând automat la Google date de diagnosticare și utilizare a dispozitivului și a aplicațiilor. Acestea nu vor fi folosite la identificarea copilului și vor ajuta la stabilitatea sistemului, a aplicațiilor și altele. Unele date cumulate vor ajuta aplicațiile și partenerii Google, cum ar fi dezvoltatorii Android. Această <ph name="BEGIN_LINK1" />setare<ph name="END_LINK1" /> este impusă de proprietar. Proprietarul poate alege să trimită date de diagnosticare și utilizare a dispozitivului la Google. Dacă ai activat setarea Activitatea suplimentară de pe web și din aplicații pentru copilul tău, aceste date pot fi salvate în Contul său Google. <ph name="BEGIN_LINK2" />Află mai multe<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Amprentele digitale ale cheii de securitate</translation>
 <translation id="3973660817924297510">Se verifică parolele (<ph name="CHECKED_PASSWORDS" /> din <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Contactarea serverului pentru domeniu nu a reușit</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> nu îți poate verifica parolele. Încearcă din nou mai târziu.</translation>
 <translation id="3976108569178263973">Nu există imprimante disponibile.</translation>
 <translation id="397703832102027365">Se finalizează...</translation>
 <translation id="3977886311744775419">Actualizările automate nu se descarcă în acest tip de rețea, dar poți căuta actualizări manual.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Această pagină conține elemente din următoarele site-uri care îți urmăresc locația:</translation>
 <translation id="4068776064906523561">Amprentele salvate</translation>
 <translation id="407173827865827707">Când se dă clic</translation>
+<translation id="4073520450811433493">Sincronizarea setărilor</translation>
 <translation id="4074900173531346617">Certificat semnatar pentru e-mail</translation>
 <translation id="407520071244661467">Redimensionează</translation>
 <translation id="4075639477629295004">Nu se poate proiecta <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Pufoșel</translation>
 <translation id="4423376891418188461">Restabilește setările</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, administratorul solicită să îți schimbi parola.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> nu îți poate verifica parolele. Încearcă din nou după 24 de ore.</translation>
 <translation id="4429030830601238961">Aceste date încalcă politicile de securitate ale organizației și nu pot fi inserate.</translation>
 <translation id="4430019312045809116">Volum</translation>
 <translation id="4430369329743628066">Marcajul a fost adăugat</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Doriți ca această aplicație să fie lansată automat la pornirea dispozitivului?</translation>
 <translation id="4441147046941420429">Ca să continui, elimină cheia de securitate de pe dispozitiv, apoi introdu-o din nou și atinge-o</translation>
 <translation id="444134486829715816">Extinde...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> poate să îți verifice parolele atunci când te conectezi folosind Contul Google</translation>
 <translation id="4442424173763614572">Căutarea DNS nu a reușit</translation>
 <translation id="4443536555189480885">&amp;Ajutor</translation>
 <translation id="4444304522807523469">Accesează scanerele de documente atașate prin USB sau dintr-o rețea locală</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Pentru a scana codul, poți folosi o aplicație de scanare a codurilor QR pe telefon sau anumite aplicații pentru camera foto.</translation>
 <translation id="4477015793815781985">Include Ctrl, Alt sau ⌘</translation>
 <translation id="4478664379124702289">Salvează lin&amp;kul ca...</translation>
+<translation id="4478777936860197922">Nu există parole salvate. <ph name="IDS_SHORT_PRODUCT_NAME" /> îți poate verifica parolele dacă le salvezi.</translation>
 <translation id="4479424953165245642">Gestionați aplicațiile de tip chioșc</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Se configurează mașina virtuală. Poate dura câteva minute.</translation>
 <translation id="4480590691557335796">Chrome poate să găsească software dăunător pe computer și să îl elimine</translation>
 <translation id="4481530544597605423">Dispozitive neasociate</translation>
+<translation id="4488107067273194838">Examinează opțiunile de sincronizare a browserului după configurare</translation>
 <translation id="4488502501195719518">Ștergi toate datele?</translation>
 <translation id="4495419450179050807">Nu afișa pe această pagină</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> a fost blocată automat</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Nu instala</translation>
 <translation id="4850669014075537160">Derulare</translation>
 <translation id="4850886885716139402">Afișează</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> te va anunța dacă te conectezi folosind o parolă compromisă</translation>
 <translation id="4853020600495124913">Deschideți într-o &amp;fereastră nouă</translation>
 <translation id="4854317507773910281">Alege contul de părinte pentru aprobare</translation>
 <translation id="485480310608090163">Mai multe setări și permisiuni</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">Codul PIN conține caractere nevalide</translation>
 <translation id="4871370605780490696">Adaugă un marcaj</translation>
 <translation id="4871719318659334896">Închide grupul</translation>
+<translation id="4871852311166078968">Adaugă în grup</translation>
 <translation id="4873312501243535625">Verificator de fișiere media</translation>
 <translation id="4876273079589074638">Ajută-i pe inginerii noștri să investigheze și să remedieze această blocare. Dacă poți, indică pașii exacți. Orice detaliu este important!</translation>
 <translation id="4876895919560854374">Blochează și deblochează ecranul</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Administratorul a limitat metodele de introducere a textului disponibile.</translation>
 <translation id="4994474651455208930">Permiteți site-urilor să solicite să aibă rolul de programe asociate prestabilite pentru protocoale</translation>
 <translation id="4994754230098574403">Se configurează</translation>
-<translation id="4996978546172906250">Trimite prin</translation>
 <translation id="4997086284911172121">Nu există conexiune la internet.</translation>
 <translation id="4997384734315285248">Dezinstalează Plugin VM</translation>
 <translation id="4998430619171209993">Activat</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Accesează Asistentul rostind „Ok Google”.</translation>
 <translation id="5135533361271311778">Elementul de marcaj nu a putut fi creat.</translation>
 <translation id="5137501176474113045">Ștergeți acest articol</translation>
-<translation id="5138982052046316113">Redimensionează discul Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, căutare în <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Introdu codul PIN pentru cheia de securitate. Dacă nu știi codul PIN, va trebui să resetezi cheia de securitate.</translation>
 <translation id="5139955368427980650">&amp;Deschide</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Se așteaptă confirmarea. <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Foarte mare</translation>
 <translation id="574209121243317957">Tonalitatea</translation>
+<translation id="5745136023067925867">Primește sfaturi, oferte și actualizări referitoare la <ph name="DEVICE_TYPE" /> și trimite feedback</translation>
 <translation id="5746169159649715125">Salvați ca PDF</translation>
 <translation id="5747552184818312860">Expiră</translation>
 <translation id="5747785204778348146">Canal pentru dezvoltatori – instabil</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Afișează în Finder</translation>
 <translation id="6295158916970320988">Toate site-urile</translation>
 <translation id="6295855836753816081">Se salvează...</translation>
-<translation id="629730747756840877">Cont</translation>
 <translation id="6298962879096096191">Folosește Google Play pentru a instala aplicații Android</translation>
 <translation id="630065524203833229">&amp;Ieși</translation>
 <translation id="6300718114348072351">Imprimanta <ph name="PRINTER_NAME" /> nu a putut fi configurată automat. Indică detaliile de printare avansate. <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Pagina nu este în <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Jurnale de evenimente WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura culorii</translation>
-<translation id="6870888490422746447">Alege o aplicație pentru trimitere:</translation>
 <translation id="6871644448911473373">Respondent OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Parola pe care ai introdus-o a fost respinsă de server.</translation>
 <translation id="6876155724392614295">Bicicletă</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Jurnalul de activități</translation>
 <translation id="6997707937646349884">Pe dispozitivele tale:</translation>
 <translation id="6998793565256476099">Înscrie dispozitivul pentru conferințe video</translation>
+<translation id="6999956497249459195">Grup nou</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> este conectată, dar necesită configurare</translation>
 <translation id="7000347579424117903">Include Ctrl, Alt sau Căutare</translation>
 <translation id="7001036685275644873">Se face backup pentru aplicațiile și fișierele Linux</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">Adresă URL</translation>
 <translation id="7400839060291901923">Configurează conexiunea pe <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Închide acest mesaj</translation>
+<translation id="7403642243184989645">Se descarcă resursele</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Verificarea de siguranță a rulat acum o oră}few{Verificarea de siguranță a rulat acum {NUM_HOURS} ore}other{Verificarea de siguranță a rulat acum {NUM_HOURS} de ore}}</translation>
 <translation id="740624631517654988">Fereastră pop-up blocată</translation>
 <translation id="7407430846095439694">Importă și asociază</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">Adresa URL a politicii privind autoritatea de certificare Netscape</translation>
 <translation id="7717014941119698257">Se descarcă: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Caută actualizări</translation>
+<translation id="7719070594859855691">Permite accesul la camera foto</translation>
 <translation id="7719367874908701697">Zoom pe pagină</translation>
 <translation id="7721179060400456005">Permite ca ferestrele să se afișeze pe mai multe ecrane</translation>
 <translation id="7722040605881499779">Spațiul necesar pentru actualizare: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Vezi istoricul de printare</translation>
 <translation id="7744192722284567281">S-a găsit în urma încălcării securității datelor</translation>
 <translation id="7750228210027921155">Picture-in-picture</translation>
-<translation id="7751229152614300329">Navigarea sigură este actualizată și te protejează împotriva site-urilor și a descărcărilor dăunătoare</translation>
 <translation id="7751260505918304024">Afișați-le pe toate</translation>
 <translation id="7754704193130578113">Întreabă-mă unde se salvează fiecare fișier înainte de a-l descărca</translation>
 <translation id="7755287808199759310">Părintele tău îl poate debloca pentru tine</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Notă:<ph name="END_BOLD" /> sistemul va reporni în timpul acestui proces.</translation>
 <translation id="7828731929332799387">Vor fi șterse toate cookie-urile și datele privind site-urile disponibile în contexte terță parte. Dorești să continui?</translation>
 <translation id="7829298379596169484">Se accesează intrarea audio</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> nu îți poate verifica parolele. Verifică-ți conexiunea la internet.</translation>
 <translation id="7829877209233347340">Roagă-ți părintele să se conecteze pentru a-ți acorda permisiunea să adaugi un cont de la școală</translation>
 <translation id="7830594666202422257">Conectează-te la Linux</translation>
 <translation id="7831491651892296503">Eroare la configurarea rețelei</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Se instalează Magazinul Google Play pe dispozitivul <ph name="DEVICE_TYPE" />. Ar putea dura câteva minute.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Niciun cookie terță parte}=1{Un cookie terță parte este blocat}few{# cookie-uri terță parte sunt blocate}other{# de cookie-uri terță parte sunt blocate}}</translation>
 <translation id="810875025413331850">Nu a fost găsit niciun dispozitiv în apropiere.</translation>
+<translation id="8114199541033039755">Navighează la ecranul de pornire, înapoi și comută între aplicații folosind butoanele în modul tabletă. Opțiunea este activată atunci când ai activat ChromeVox sau Clicurile automate.</translation>
 <translation id="8114875720387900039">Împarte pe orizontală</translation>
 <translation id="8116972784401310538">&amp;Manager de marcaje</translation>
 <translation id="8117620576188476503">Gestionează conexiunile, actualizările și setările din bara de stare. Pentru a le accesa folosind tastatura, apasă Alt + Shift + S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> a dezactivat cursorul mouse-ului.</translation>
 <translation id="8264024885325823677">Această setare este gestionată de administrator.</translation>
 <translation id="8264718194193514834">„<ph name="EXTENSION_NAME" />” a activat modul Ecran complet.</translation>
+<translation id="826511437356419340">S-a trecut în modul de prezentare a ferestrei. Glisează pentru a naviga sau apasă tasta Tab dacă folosești tastatura.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Acestea sunt informații generale despre dispozitiv și despre cum îl folosești (cum ar fi nivelul bateriei, cât de des folosești aplicațiile, activitatea sistemului și erorile). Datele vor fi folosite pentru îmbunătățirea Android și unele informații agregate vor ajuta aplicațiile Google și partenerii, cum ar fi dezvoltatorii Android, să își îmbunătățească aplicațiile și produsele.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Dezactivarea acestei funcții nu afectează abilitatea dispozitivului de a trimite informațiile necesare pentru servicii esențiale, cum ar fi actualizările de sistem și securitatea.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Proprietarul poate controla această funcție în Setări &gt; Avansate &gt; Trimite automat la Google statistici de diagnosticare și utilizare.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Se activează</translation>
 <translation id="8427292751741042100">încorporată în orice gazdă</translation>
 <translation id="8428213095426709021">Setări</translation>
+<translation id="8428271547607112339">Adaugă un cont de la școală</translation>
 <translation id="8428628598981198790">Cheia de securitate nu poate fi folosită cu acest site</translation>
 <translation id="84297032718407999">Vei fi deconectat(ă) peste <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Afișează atingerile</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Permite întotdeauna afișarea de imagini de la <ph name="HOST" /></translation>
 <translation id="8513108775083588393">Rotire automată</translation>
 <translation id="8514746246728959655">Încearcă altă cheie de securitate</translation>
+<translation id="851960115758509829">Aplicațiile, setările și alte personalizări se vor sincroniza pe toate dispozitivele cu sistem de operare Chrome conectate la Contul Google.</translation>
 <translation id="8521475323816527629">Accesează rapid aplicațiile</translation>
 <translation id="8523493869875972733">Păstrează modificările</translation>
 <translation id="8523849605371521713">Adăugată de politică</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Stocare</translation>
 <translation id="8859057652521303089">Selectează limba:</translation>
 <translation id="8859174528519900719">Subcadru: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Cont de părinte</translation>
 <translation id="8862003515646449717">Comută la un browser rapid</translation>
 <translation id="8863753581171631212">Deschide linkul într-o fereastră nouă în <ph name="APP" /></translation>
 <translation id="8864055848767439877">Se trimite <ph name="TAB_NAME" /> la <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> a fost eliminat de pe acest dispozitiv</translation>
 <translation id="8867228703146808825">Copiază detaliile versiunii în clipboard</translation>
+<translation id="8868333925931032127">Se pornește modul demonstrativ</translation>
 <translation id="8868626022555786497">În uz</translation>
 <translation id="8870413625673593573">Închise recent</translation>
 <translation id="8871551568777368300">Fixată de administrator</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Redeschide o filă dacă ai închis-o din greșeală</translation>
 <translation id="8967866634928501045">Apasă pe Alt+Shift+A pentru a afișa</translation>
 <translation id="8968766641738584599">Salvează cardul</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> nu îți poate verifica parolele. Încearcă din nou după 24 de ore sau <ph name="BEGIN_LINK" />verifică parolele din Contul Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Tasta Esc</translation>
 <translation id="8972513834460200407">Contactați administratorul de rețea, pentru a vă asigura că firewallul nu blochează descărcările de pe serverele Google.</translation>
 <translation id="8973557916016709913">Elimină nivelul de zoom</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index afc82e1e..4833cb2 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Доступные устройства</translation>
 <translation id="1042174272890264476">В ваш компьютер встроена библиотека RLZ <ph name="SHORT_PRODUCT_NAME" />. RLZ присваивает компьютеру неуникальную и не позволяющую идентифицировать пользователя метку, с помощью которой мы можем оценить количество запросов и статистику использования этого продукта (<ph name="SHORT_PRODUCT_NAME" />) по результатам рекламных кампаний. Иногда метки могут включаться в поисковые запросы, сделанные в этом продукте (<ph name="PRODUCT_NAME" />).</translation>
 <translation id="1043818413152647937">Удалить данные этих приложений?</translation>
+<translation id="1045448422538531528">Добавить в группу</translation>
 <translation id="1046635659603195359">Вы уже настроили Voice Match в Google Ассистенте на другом устройстве. Предыдущие записи вашего голоса можно использовать для создания образца на этом устройстве. Настройка займет не больше минуты.</translation>
 <translation id="104710386808485638">Перезапустить Linux?</translation>
 <translation id="1047431265488717055">Скопировать &amp;текст ссылки</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Всегда блокировать доступ к камере</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> предлагает восстановить настройки Chrome по умолчанию. В результате произойдет сброс настроек стартовой страницы, страницы быстрого доступа и поисковой системы, а также отключение расширений и открепление всех вкладок. Кроме того, все временные и кешированные данные (такие как файлы cookie, контент и данные сайтов) будут удалены.</translation>
+<translation id="1084096383128641877">Это действие не приведет к удалению вашего аккаунта на сайте <ph name="DOMAIN" />. Чтобы защитить от злоумышленников свои данные на сайте <ph name="DOMAIN_LINK" />, удалите аккаунт или измените пароль.</translation>
 <translation id="1084824384139382525">Копировать ад&amp;рес ссылки</translation>
 <translation id="1085697365578766383">Не удалось запустить виртуальную машину. Повторите попытку.</translation>
 <translation id="1090126737595388931">Нет приложений, работающих в фоновом режиме</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Проверка безопасности выполнена вчера.</translation>
 <translation id="1260451001046713751">Всегда показывать всплывающие окна с сайта <ph name="HOST" /> и разрешить перенаправление с него</translation>
 <translation id="126156426083987769">Возникла проблема с лицензиями для устройств, работающих в демонстрационном режиме.</translation>
+<translation id="1263490604593716556">Администраторы аккаунта: <ph name="FIRST_PARENT_EMAIL" /> и <ph name="SECOND_PARENT_EMAIL" />. Чтобы выйти из основного аккаунта на этом устройстве, нажмите на время в правой нижней части экрана. В появившемся меню выберите "Выйти".</translation>
 <translation id="126710816202626562">Перевести на:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Остановить</translation>
@@ -416,7 +419,6 @@
 <translation id="1566049601598938765">Сайт</translation>
 <translation id="15662109988763471">Принтер недоступен или установлен неправильно. Проверьте его или выберите другой.</translation>
 <translation id="1567387640189251553">После ввода пароля была подключена другая клавиатура. Это может быть попыткой узнать, какие клавиши вы нажимаете.</translation>
-<translation id="1567750922576943685">В целях защиты персональных данных вам необходимо подтвердить свою личность.</translation>
 <translation id="1567993339577891801">Консоль JavaScript</translation>
 <translation id="1568323446248056064">Открыть настройки экрана</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (гость)</translation>
@@ -518,7 +520,6 @@
 <translation id="1697150536837697295">Искусство</translation>
 <translation id="1697686431566694143">Разрешить</translation>
 <translation id="1698122934742150150">Только на время текущего сеанса в режиме инкогнито</translation>
-<translation id="1698650002254827833">Не удалось загрузить список приложений. Повторите попытку.</translation>
 <translation id="1700079447639026019">Сайты, которые никогда не могут использовать файлы cookie</translation>
 <translation id="1701062906490865540">Удалить пользователя</translation>
 <translation id="1703331064825191675">Можно больше не беспокоиться о паролях</translation>
@@ -872,6 +873,7 @@
 <translation id="2172784515318616985">Далее</translation>
 <translation id="2173302385160625112">Проверьте подключение к Интернету</translation>
 <translation id="2173801458090845390">Добавить к устройству идентификатор заявки</translation>
+<translation id="2174948148799307353">Администратор аккаунта: <ph name="PARENT_EMAIL" />. Чтобы выйти из основного аккаунта на этом устройстве, нажмите на время в правой нижней части экрана. В появившемся меню выберите "Выйти".</translation>
 <translation id="2175607476662778685">Панель быстрого запуска</translation>
 <translation id="217576141146192373">Не удалось добавить принтер. Проверьте его настройки и повторите попытку.</translation>
 <translation id="2177950615300672361">Вкладка в режиме инкогнито: <ph name="TAB_NAME" /></translation>
@@ -1079,7 +1081,6 @@
 <translation id="2442916515643169563">Тень текста</translation>
 <translation id="2445081178310039857">Требуется корневой каталог расширения.</translation>
 <translation id="2445484935443597917">Создать профиль</translation>
-<translation id="2446585455334014596">Приложение "<ph name="APP_NAME" />" запрашивает подтверждение вашей личности</translation>
 <translation id="2448312741937722512">Тип</translation>
 <translation id="2450223707519584812">Отсутствуют ключи API Google. Вы не сможете добавлять пользователей. Подробная информация: <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">нет активных режимов просмотра.</translation>
@@ -1477,6 +1478,7 @@
 <translation id="2948300991547862301">Перейти на страницу <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Chrome – это простой, быстрый и безопасный браузер для современного Интернета.</translation>
 <translation id="2949289451367477459">Включение геолокации. Предоставьте приложениям и сервисам доступ к данным о местоположении устройства. Чтобы повышать точность геолокации и улучшать некоторые сервисы, компания Google может периодически собирать анонимные геоданные пользователей. <ph name="BEGIN_LINK1" />Подробнее…<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Подписаться на рассылку</translation>
 <translation id="2956070239128776395">Раздел вложен в группу: <ph name="ERROR_LINE" />.</translation>
 <translation id="2957117904572187936">Запретить сайтам напрямую изменять файлы и папки на устройстве</translation>
 <translation id="2958721676848865875">Внимание!</translation>
@@ -1601,6 +1603,7 @@
 <translation id="3139925690611372679">Аватар по умолчанию (желтый)</translation>
 <translation id="3141318088920353606">Говорите</translation>
 <translation id="3141917231319778873">Запрос не поддерживается на устройстве <ph name="DEVICE_NAME" />.</translation>
+<translation id="3142562627629111859">Новая группа</translation>
 <translation id="3143515551205905069">Отмена</translation>
 <translation id="3143754809889689516">Воспроизвести с начала</translation>
 <translation id="3144647712221361880">Открыть ссылку как</translation>
@@ -1625,6 +1628,7 @@
 <translation id="3159493096109238499">Бежевый</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> (<ph name="ISSUED_TO" />). Поддерживается аппаратным обеспечением.</translation>
 <translation id="3161522574479303604">Все языки</translation>
+<translation id="3162853326462195145">Учебный аккаунт</translation>
 <translation id="3162899666601560689">Сайты могут использовать файлы cookie, чтобы сделать работу в браузере более удобной, например запоминая товары в корзине или информацию о том, что вы уже вошли в аккаунт</translation>
 <translation id="3163201441334626963">Неизвестный продукт <ph name="PRODUCT_ID" /> от поставщика <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Отправка вкладки в приложение "<ph name="APP_NAME" />"…</translation>
@@ -1683,7 +1687,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Перезагрузите устройство в течение 1 дня}one{Перезагрузите устройство в течение # дня}few{Перезагрузите устройство в течение # дней}many{Перезагрузите устройство в течение # дней}other{Перезагрузите устройство в течение # дня}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" />: ошибка сети</translation>
 <translation id="3248902735035392926">Безопасность – это важно. <ph name="BEGIN_LINK" />Проверьте расширения<ph name="END_LINK" />, которые у вас установлены.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Не является частью сертификата&gt;</translation>
 <translation id="3253225298092156258">Недоступно</translation>
 <translation id="3253448572569133955">Неизвестный аккаунт</translation>
@@ -1788,6 +1791,7 @@
 <translation id="3396800784455899911">Нажимая кнопку "Принять условия и продолжить", вы соглашаетесь с Условиями использования сервисов Google, описанными выше.</translation>
 <translation id="3399432415385675819">Уведомления будут отключены</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Гц) – чересстрочная развертка</translation>
+<translation id="3402585168444815892">Регистрация для использования демонстрационного режима.</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Для этого сайта нет сохраненных паролей</translation>
 <translation id="3405664148539009465">Настроить шрифты</translation>
@@ -1849,6 +1853,7 @@
 <translation id="3468999815377931311">Телефон Android</translation>
 <translation id="3470442499439619530">Удалить профиль</translation>
 <translation id="3471876058939596279">Нельзя одновременно использовать порты HDMI и USB Type-C для передачи видеосигнала. Используйте другой видеопорт.</translation>
+<translation id="3473241910002674503">В режиме планшета будут видны кнопки для перехода к панели запуска, возврата на предыдущий экран и переключения между приложениями.</translation>
 <translation id="3473479545200714844">Лупа</translation>
 <translation id="3475843873335999118">Не удалось распознать отпечаток пальца. Введите пароль.</translation>
 <translation id="3476303763173086583">Отправка данных о работе устройства. Помогите сделать Android ещё лучше – разрешите автоматически отправлять в Google диагностическую информацию, данные об использовании приложений и самого устройства. Установить личность ребенка по этим данным нельзя. Они нужны нам, чтобы в будущем повысить стабильность приложений и внести другие улучшения. Некоторые данные в обобщенном виде пригодятся партнерам Google, например разработчикам Android. Эта <ph name="BEGIN_LINK1" />настройка<ph name="END_LINK1" /> принудительно применяется владельцем. Он вправе разрешить автоматическую отправку в Google данных об использовании и диагностике устройства. Если запись дополнительной истории приложений и веб-поиска включена, эта информация может сохраняться в аккаунте ребенка. <ph name="BEGIN_LINK2" />Подробнее…<ph name="END_LINK2" /></translation>
@@ -2273,6 +2278,7 @@
 <translation id="3971764089670057203">Цифровые отпечатки на этом электронном ключе</translation>
 <translation id="3973660817924297510">Проверка паролей (<ph name="CHECKED_PASSWORDS" /> из <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Не удалось связаться с областью сервера.</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> не может проверить пароли. Повторите попытку позже.</translation>
 <translation id="3976108569178263973">Нет доступных принтеров.</translation>
 <translation id="397703832102027365">Завершение…</translation>
 <translation id="3977886311744775419">Скачать обновления в вашей сети можно только вручную.</translation>
@@ -2336,6 +2342,7 @@
 <translation id="4068506536726151626">Эта страница содержит элементы со следующих сайтов, которые отслеживают ваше местоположение:</translation>
 <translation id="4068776064906523561">Сохраненные отпечатки пальцев</translation>
 <translation id="407173827865827707">При нажатии</translation>
+<translation id="4073520450811433493">Синхронизация настроек</translation>
 <translation id="4074900173531346617">Сертификат для подписи электронной почты</translation>
 <translation id="407520071244661467">Масштаб</translation>
 <translation id="4075639477629295004">Невозможно транслировать файл "<ph name="FILE_NAME" />"</translation>
@@ -2572,6 +2579,7 @@
 <translation id="4421932782753506458">Пушистик</translation>
 <translation id="4423376891418188461">Восстановить настройки</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, администратор просит вас сменить пароль.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> не может проверить пароли. Повторите попытку через 24 часа.</translation>
 <translation id="4429030830601238961">Эти данные нарушают правила безопасности организации, поэтому их нельзя вставить.</translation>
 <translation id="4430019312045809116">Объем</translation>
 <translation id="4430369329743628066">Закладка добавлена</translation>
@@ -2584,6 +2592,7 @@
 <translation id="4441124369922430666">Автоматически запускать это приложение при включении устройства?</translation>
 <translation id="4441147046941420429">Чтобы продолжить, извлеките электронный ключ и снова вставьте его в устройство. Затем нажмите кнопку на электронном ключе.</translation>
 <translation id="444134486829715816">Развернуть...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> сможет проверить ваши пароли, когда вы войдете в аккаунт Google.</translation>
 <translation id="4442424173763614572">Произошла ошибка при поиске сервера DNS</translation>
 <translation id="4443536555189480885">&amp;Справка</translation>
 <translation id="4444304522807523469">Доступ к сканерам, подключенным через USB-порт или локальную сеть</translation>
@@ -2610,11 +2619,13 @@
 <translation id="4476659815936224889">Этот код можно сканировать с помощью специального приложения или камеры на телефоне (если такая возможность поддерживается)</translation>
 <translation id="4477015793815781985">Комбинация должна начинаться с Ctrl, Alt или ⌘</translation>
 <translation id="4478664379124702289">Сохранить ссылку как...</translation>
+<translation id="4478777936860197922">Сохраненных паролей нет. Чтобы браузер <ph name="IDS_SHORT_PRODUCT_NAME" /> мог проверять пароли, сохраните их.</translation>
 <translation id="4479424953165245642">Настроить киоск-приложения</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Идет настройка виртуальной машины. Это может занять несколько минут.</translation>
 <translation id="4480590691557335796">Браузер Chrome может найти вредоносные программы на вашем компьютере и удалить их.</translation>
 <translation id="4481530544597605423">Отключенные устройства</translation>
+<translation id="4488107067273194838">Проверить параметры синхронизации браузера после настройки</translation>
 <translation id="4488502501195719518">Удалить данные?</translation>
 <translation id="4495419450179050807">Не показывать на этой странице</translation>
 <translation id="4496054781541092778">автоматически отключено разрешение "<ph name="PERMISSION" />"</translation>
@@ -2856,6 +2867,7 @@
 <translation id="4849517651082200438">Не устанавливать</translation>
 <translation id="4850669014075537160">Прокрутка</translation>
 <translation id="4850886885716139402">Посмотреть</translation>
+<translation id="485197095346966382">Вы получите уведомление от <ph name="IDS_SHORT_PRODUCT_NAME" />, если войдете в аккаунт с паролем, который был раскрыт.</translation>
 <translation id="4853020600495124913">Открыть в &amp;новом окне</translation>
 <translation id="4854317507773910281">Выберите родителя, который должен одобрить расширение:</translation>
 <translation id="485480310608090163">Дополнительные настройки и разрешения</translation>
@@ -2874,6 +2886,7 @@
 <translation id="4871322859485617074">PIN-код содержит недопустимые символы.</translation>
 <translation id="4871370605780490696">Добавить закладку</translation>
 <translation id="4871719318659334896">Закрыть группу</translation>
+<translation id="4871852311166078968">Добавить в группу</translation>
 <translation id="4873312501243535625">Проверка медиафайлов</translation>
 <translation id="4876273079589074638">Опишите свои действия максимально подробно, чтобы наши специалисты смогли быстрее выяснить причину сбоя и устранить ее.</translation>
 <translation id="4876895919560854374">Блокировка и разблокировка экрана</translation>
@@ -2965,7 +2978,6 @@
 <translation id="4992473555164495036">Администратор запретил некоторые способы ввода.</translation>
 <translation id="4994474651455208930">Разрешить запрашивать установку обработчиков протоколов для сайтов по умолчанию</translation>
 <translation id="4994754230098574403">Настройка</translation>
-<translation id="4996978546172906250">Способ отправки</translation>
 <translation id="4997086284911172121">Нет подключения к Интернету.</translation>
 <translation id="4997384734315285248">Удалить Plugin VM</translation>
 <translation id="4998430619171209993">Включено</translation>
@@ -3065,7 +3077,6 @@
 <translation id="5135085122826131075">Включите, чтобы вызывать Ассистента голосовой командой "Окей, Google"</translation>
 <translation id="5135533361271311778">Не удалось создать закладку.</translation>
 <translation id="5137501176474113045">Удалить</translation>
-<translation id="5138982052046316113">Изменение размера диска Linux</translation>
 <translation id="5139112070765735680">Запрос "<ph name="QUERY_NAME" />", поиск в <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Введите PIN-код для электронного ключа. Если вы его не знаете, сбросьте настройки ключа.</translation>
 <translation id="5139955368427980650">&amp;Открыть</translation>
@@ -3517,6 +3528,7 @@
 <translation id="5739235828260127894">Требуется подтверждение. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Очень крупный</translation>
 <translation id="574209121243317957">Высота звука</translation>
+<translation id="5745136023067925867">Вы можете подписаться на нашу рассылку и получать советы по работе с устройствами <ph name="DEVICE_TYPE" />, специальные предложения и новости, а также оставлять отзывы.</translation>
 <translation id="5746169159649715125">Сохранить как PDF</translation>
 <translation id="5747552184818312860">Срок действия</translation>
 <translation id="5747785204778348146">Нестабильная</translation>
@@ -3929,7 +3941,6 @@
 <translation id="6291953229176937411">Показать в Finder</translation>
 <translation id="6295158916970320988">Все сайты</translation>
 <translation id="6295855836753816081">Сохранение...</translation>
-<translation id="629730747756840877">Аккаунт</translation>
 <translation id="6298962879096096191">Использование Google Play для установки приложений Android</translation>
 <translation id="630065524203833229">В&amp;ыход</translation>
 <translation id="6300718114348072351">Не удалось автоматически настроить принтер "<ph name="PRINTER_NAME" />". Задайте дополнительные параметры. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation>
@@ -4335,7 +4346,6 @@
 <translation id="6865598234501509159">Язык страницы – не <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Журналы событий WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Цветовая температура</translation>
-<translation id="6870888490422746447">Выберите, через какое приложение отправить.</translation>
 <translation id="6871644448911473373">Ответчик OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Сервер отклонил введенный пароль.</translation>
 <translation id="6876155724392614295">Велосипед</translation>
@@ -4428,6 +4438,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – Журнал активности</translation>
 <translation id="6997707937646349884">На ваших устройствах:</translation>
 <translation id="6998793565256476099">Зарегистрировать как устройство для проведения видеоконференций.</translation>
+<translation id="6999956497249459195">Новая группа</translation>
 <translation id="7000206553895739324">Принтер <ph name="PRINTER_NAME" /> подключен, но ещё не настроен.</translation>
 <translation id="7000347579424117903">Сочетание должно начинаться с клавиши Ctrl, Alt или Search</translation>
 <translation id="7001036685275644873">Резервное копирование приложений и файлов Linux…</translation>
@@ -4726,6 +4737,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Настройте соединение на устройстве <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Закрыть это сообщение</translation>
+<translation id="7403642243184989645">Скачивание ресурсов</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Проверка безопасности выполнена 1 час назад.}one{Проверка безопасности выполнена {NUM_HOURS} час назад.}few{Проверка безопасности выполнена {NUM_HOURS} часа назад.}many{Проверка безопасности выполнена {NUM_HOURS} часов назад.}other{Проверка безопасности выполнена {NUM_HOURS} часа назад.}}</translation>
 <translation id="740624631517654988">Всплывающее окно заблокировано</translation>
 <translation id="7407430846095439694">Импортировать и подключить</translation>
@@ -4962,6 +4974,7 @@
 <translation id="7716781361494605745">URL политики ЦС Netscape</translation>
 <translation id="7717014941119698257">Скачивается: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Проверить наличие обновлений</translation>
+<translation id="7719070594859855691">Предоставить доступ к камере</translation>
 <translation id="7719367874908701697">Масштабирование страницы</translation>
 <translation id="7721179060400456005">Разрешить показывать окно на нескольких устройствах</translation>
 <translation id="7722040605881499779">Для обновления необходимо <ph name="NECESSARY_SPACE" />.</translation>
@@ -4976,7 +4989,6 @@
 <translation id="7744047395460924128">Просмотр истории печати</translation>
 <translation id="7744192722284567281">Раскрыт при утечке данных</translation>
 <translation id="7750228210027921155">Картинка в картинке</translation>
-<translation id="7751229152614300329">Вы используете последнюю версию Безопасного просмотра. Он защищает вас от вредоносных сайтов и файлов.</translation>
 <translation id="7751260505918304024">Показать все</translation>
 <translation id="7754704193130578113">Всегда указывать место для скачивания</translation>
 <translation id="7755287808199759310">Для разблокировки обратитесь к родителю.</translation>
@@ -5064,6 +5076,7 @@
     <ph name="BEGIN_BOLD" />Примечание.<ph name="END_BOLD" /> Система перезагрузится во время этого процесса.</translation>
 <translation id="7828731929332799387">Все сторонние файлы cookie и данные сайтов будут удалены. Продолжить?</translation>
 <translation id="7829298379596169484">Доступ к аудиовходу</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> не может проверить пароли. Убедитесь, что устройство подключено к Интернету.</translation>
 <translation id="7829877209233347340">Попросите родителя войти в систему, чтобы дать вам разрешение на добавление учебного аккаунта.</translation>
 <translation id="7830594666202422257">Подключить к Linux</translation>
 <translation id="7831491651892296503">Ошибка при настройке сети</translation>
@@ -5286,6 +5299,7 @@
 <translation id="8107015733319732394">Установка Google Play Маркета на устройство <ph name="DEVICE_TYPE" /> (может занять несколько минут)…</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Нет сторонних файлов cookie}=1{Заблокирован 1 сторонний файл cookie}one{Заблокирован # сторонний файл cookie}few{Заблокировано # сторонних файла cookie}many{Заблокировано # сторонних файлов cookie}other{Заблокировано # сторонних файла cookie}}</translation>
 <translation id="810875025413331850">Устройства поблизости не найдены.</translation>
+<translation id="8114199541033039755">В режиме планшета будут видны кнопки для перехода к панели запуска, возврата на предыдущий экран и переключения между приложениями. Этот параметр активируется, когда включается ChromeVox или автоматическое нажатие.</translation>
 <translation id="8114875720387900039">Разделить по горизонтали</translation>
 <translation id="8116972784401310538">&amp;Диспетчер закладок</translation>
 <translation id="8117620576188476503">Управляйте подключениями, обновлениями и настройками с помощью строки состояния. Для этого нажмите Alt + Shift + S.</translation>
@@ -5404,6 +5418,7 @@
 <translation id="8263744495942430914">Сайт <ph name="FULLSCREEN_ORIGIN" /> скрыл курсор.</translation>
 <translation id="8264024885325823677">Этим параметром управляет администратор.</translation>
 <translation id="8264718194193514834">Расширение "<ph name="EXTENSION_NAME" />" запущено в режиме киоска.</translation>
+<translation id="826511437356419340">Включен режим обзора. Для навигации проведите по экрану. Если вы используете клавиатуру, нажмите клавишу Tab.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Мы будем получать общие сведения о работе и использовании устройства, например об ошибках, уровне заряда батареи и действиях в системе и приложениях. Они помогут нам улучшить Android и другие сервисы Google. Наши партнеры также получат доступ к некоторым обобщенным данным, чтобы совершенствовать свои продукты.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Отключение этой функции не повлияет на возможность устройства отправлять информацию, необходимую для обновления Android и системы безопасности.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Чтобы включить или отключить функцию, нажмите "Настройки &gt; Расширенные настройки &gt; Автоматически отправлять статистику использования и данные диагностики в Google".<ph name="END_PARAGRAPH3" />
@@ -5512,6 +5527,7 @@
 <translation id="8426713856918551002">Включение</translation>
 <translation id="8427292751741042100">встроено на любом хосте</translation>
 <translation id="8428213095426709021">Настройки</translation>
+<translation id="8428271547607112339">Добавить учебный аккаунт</translation>
 <translation id="8428628598981198790">Невозможно использовать электронный ключ для этого сайта</translation>
 <translation id="84297032718407999">Выход из системы произойдет через <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Визуальный отклик</translation>
@@ -5575,6 +5591,7 @@
 <translation id="851263357009351303">Всегда показывать изображения с сайта <ph name="HOST" /></translation>
 <translation id="8513108775083588393">Автоповорот</translation>
 <translation id="8514746246728959655">Попробуйте применить другой электронный ключ</translation>
+<translation id="851960115758509829">Приложения и настройки будут синхронизироваться на всех устройствах Chrome OS, на которых вы вошли в аккаунт Google.</translation>
 <translation id="8521475323816527629">Быстрый переход к приложениям</translation>
 <translation id="8523493869875972733">Закрыть</translation>
 <translation id="8523849605371521713">Добавлено по правилу</translation>
@@ -5856,11 +5873,13 @@
 <translation id="885701979325669005">Хранилище</translation>
 <translation id="8859057652521303089">Выберите язык:</translation>
 <translation id="8859174528519900719">Субфрейм: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Аккаунт родителя</translation>
 <translation id="8862003515646449717">Перейдите на быстрый браузер</translation>
 <translation id="8863753581171631212">Открыть ссылку в новом окне приложения "<ph name="APP" />"</translation>
 <translation id="8864055848767439877">Отправка вкладки "<ph name="TAB_NAME" />" в приложение "<ph name="APP_NAME" />"…</translation>
 <translation id="8864458770072227512">Аккаунт <ph name="EMAIL" /> удален с устройства.</translation>
 <translation id="8867228703146808825">Скопировать данные о сборке в буфер обмена</translation>
+<translation id="8868333925931032127">Запуск демонстрационного режима</translation>
 <translation id="8868626022555786497">Занято</translation>
 <translation id="8870413625673593573">Недавно закрытые</translation>
 <translation id="8871551568777368300">Закреплено администратором</translation>
@@ -5939,6 +5958,7 @@
 <translation id="8966870118594285808">Если вы случайно закрыли вкладку, откройте ее снова</translation>
 <translation id="8967866634928501045">Чтобы показать, нажмите Alt + Shift + A</translation>
 <translation id="8968766641738584599">Сохранить карту</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> не может проверить пароли. Повторите попытку через 24 часа или <ph name="BEGIN_LINK" />проверьте пароли в аккаунте Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Отключить</translation>
 <translation id="8972513834460200407">Уточните у администратора сети, не блокирует ли брандмауэр скачивание файлов с серверов Google.</translation>
 <translation id="8973557916016709913">Сбросить масштаб</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index c85fde7..f51368b0 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -417,7 +417,6 @@
 <translation id="1566049601598938765">වෙබ් අඩවිය</translation>
 <translation id="15662109988763471">තෝරන ලද මුද්‍රණ යන්ත්‍රය ලද නොහැක, නැති නම් නිවැරදිව ස්ථාපන කර නැත. ඔබේ මුද්‍රණ යන්ත්‍රය පරීක්‍ෂා කරන්න නැති නම් වෙනත් මුද්‍රණ යන්ත්‍රයක් තෝරා උත්සාහ කර බලන්න.</translation>
 <translation id="1567387640189251553">ඔබ ඔබගේ මුරපදය අවසානයට ඇතුළත් කළ අවස්ථාවෙන් පසු වෙනස් යතුරු පුවරුවක් සම්බන්ධ කර ඇත. එය ඔබගේ යතුරු පහර සොරකම් කිරීමට උත්සාහ ගන්නවා විය හැක.</translation>
-<translation id="1567750922576943685">ඔබගේ අනන්‍යතාව තහවුරු කිරීම ඔබගේ පෞද්ගලික දත්ත ආරක්ෂා කර ගැනිමට උපකාරී වේ</translation>
 <translation id="1567993339577891801">JavaScript කොන්සෝලය</translation>
 <translation id="1568323446248056064">සංදර්ශක උපාංග සැකසීම් විවෘත කරන්න</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (අමුත්තා)</translation>
@@ -519,7 +518,6 @@
 <translation id="1697150536837697295">කලාව</translation>
 <translation id="1697686431566694143">ගොනුව සංස්කරණ කරන්න</translation>
 <translation id="1698122934742150150">වත්මන් අප්‍රසිද්ධ සැසිය පමණි</translation>
-<translation id="1698650002254827833">යෙදුම් ලැයිස්තුව පූරණය කළ නොහැක. කරුණාකර නැවත උත්සාහ කරන්න.</translation>
 <translation id="1700079447639026019">කිසි විටෙක කුකී භාවිත නොකළ හැකි වෙබ් අඩවි</translation>
 <translation id="1701062906490865540">මෙම පුද්ගලයා ඉවත් කරන්න</translation>
 <translation id="1703331064825191675">ඔබේ මුරපද ගැන කිසි විටෙක කනගාටු නොවන්න</translation>
@@ -1082,7 +1080,6 @@
 <translation id="2442916515643169563">පාඨ ඡායාව</translation>
 <translation id="2445081178310039857">දිගු මූල නාමාවලියක් අවශ්‍යයි</translation>
 <translation id="2445484935443597917">නව පැතිකඩක් සාදන්න</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> හට ඔබගේ අනන්‍යතාව සත්‍යාපනය කිරීමට අවශ්‍යය</translation>
 <translation id="2448312741937722512">වර්ගය</translation>
 <translation id="2450223707519584812">Google API යතුරු අස්ථානගතව ඇති නිසා ඔබට පරිශීලකයන් එක් කළ නොහැකි වනු ඇත. විස්තර සඳහා <ph name="DETAILS_URL" /> බලන්න.</translation>
 <translation id="2450849356604136918">ක්‍රියාකාරී බැලීම් නැත</translation>
@@ -1689,7 +1686,6 @@
 <translation id="3246107497225150582">{0,plural, =1{උපාංගය දිනයක් තුළ යාවත්කාලීන කරන්න}one{උපාංගය දින # ක් තුළ යාවත්කාලීන කරන්න}other{උපාංගය දින # ක් තුළ යාවත්කාලීන කරන්න}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - ජාල දෝෂය</translation>
 <translation id="3248902735035392926">ආරක්‍ෂාව වැදගත්. මොහොතක් ලබා ගෙන <ph name="BEGIN_LINK" />දැන් ඔබේ දිගු පරීක්‍ෂා කරන්න<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;සහතිකයේ කොටසක් නොවේ&gt;</translation>
 <translation id="3253225298092156258">නොතිබේ</translation>
 <translation id="3253448572569133955">නොදන්නා ගිණුම</translation>
@@ -2982,7 +2978,6 @@
 <translation id="4992473555164495036">ඔබේ පරිපාලක ලබා ගත හැකි ආදාන ක්‍රම සීමා කර ඇත.</translation>
 <translation id="4994474651455208930">නාමාවලි සඳහා වන පෙරනිමි හසුරු බවට පත් වීමට විමසීම සඳහා අඩවිවලට ඉඩ දෙන්න</translation>
 <translation id="4994754230098574403">පිහිටුවමින්...</translation>
-<translation id="4996978546172906250">හරහා බෙදාගන්න</translation>
 <translation id="4997086284911172121">අන්තර්ජාල සබැඳුමක් නැත.</translation>
 <translation id="4997384734315285248">Plugin VM අස්ථාපන කරන්න</translation>
 <translation id="4998430619171209993">සක්‍රීය</translation>
@@ -3082,7 +3077,6 @@
 <translation id="5135085122826131075">ඔබ "Ok Google" යැයි කියන විට වේලාවක ඔබේ සහකරු වෙත ප්‍රවේශ වන්න</translation>
 <translation id="5135533361271311778">පිටු සලකුණු අයිතමය සෑදිය නොහැකි විය.</translation>
 <translation id="5137501176474113045">මෙම අයිතමය මකන්න</translation>
-<translation id="5138982052046316113">ලිනක්ස් තැටිය ප්‍රතිප්‍රමාණ කරන්න</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> සෙවීම</translation>
 <translation id="5139823398361067371">ඔබේ ආරක්‍ෂක යතුර සඳහා රහස් අංකය ඇතුළත් කරන්න. ඔබ රහස් අංකය නොදනී නම්, ඔබට ආරක්‍ෂක යතුරු යළි සැකසීමට අවශ්‍ය වෙයි.</translation>
 <translation id="5139955368427980650">විවෘත කරන්න</translation>
@@ -3948,7 +3942,6 @@
 <translation id="6291953229176937411">Finder තුළ පෙන්වන්න (&amp;S)</translation>
 <translation id="6295158916970320988">සියලු අඩවි</translation>
 <translation id="6295855836753816081">සුරකිමින්...</translation>
-<translation id="629730747756840877">ගිණුම</translation>
 <translation id="6298962879096096191">Android යෙදුම් ස්ථාපනය කිරීමට Google Play භාවිත කරන්න</translation>
 <translation id="630065524203833229">පිට&amp;වන්න</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> ස්වංයක්‍රීයව වින්‍යාස කිරීමට නොහැකි විය. උසස් මුද්‍රක විස්තර සඳහන් කරන්න. <ph name="LINK_BEGIN" />තවත් දැන ගන්න<ph name="LINK_END" /></translation>
@@ -4352,7 +4345,6 @@
 <translation id="6865598234501509159">පිටුව <ph name="LANGUAGE" /> බසින් නැත</translation>
 <translation id="6865708901122695652">WebRTC සිද්ධි ලොග් (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">වර්ණ උෂ්ණත්වය</translation>
-<translation id="6870888490422746447">බෙදා ගැනීමට යෙදුමක් තෝරන්න:</translation>
 <translation id="6871644448911473373">OCSP ප්‍රතිචාරකරු: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">ඔබ ඇතුළු කළ මුරපදය සේවාදායකය විසින් ප්‍රතික්ෂේප කරන ලදී.</translation>
 <translation id="6876155724392614295">පාපැදිය</translation>
@@ -4996,7 +4988,6 @@
 <translation id="7744047395460924128">ඔබේ මුද්‍රණ ඉතිහාසය බලන්න</translation>
 <translation id="7744192722284567281">දත්ත කඩ කිරීම තුළ හමු විය</translation>
 <translation id="7750228210027921155">පින්තූරය-තුළ-පින්තූරය</translation>
-<translation id="7751229152614300329">ආරක්‍ෂිත බ්‍රවුස් කිරීම යාවත්කාලීනයි, හානිකර වෙබ් අඩවිවලින් සහ බාගැනීම්වලින් ඔබව ආරක්‍ෂා කරයි</translation>
 <translation id="7751260505918304024">සියල්ල පෙන්වන්න</translation>
 <translation id="7754704193130578113">බාගැනීමට පෙර එක් එක් ගොනුව සුරකින තැන විමසන්න</translation>
 <translation id="7755287808199759310">ඔබේ දෙමව්පියන්ගෙන් අයෙකුට එය ඔබ සඳහා අනවහිර කළ හැකිය</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 6ac0b7a..6d611ad 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dostupné zariadenia</translation>
 <translation id="1042174272890264476">Váš počítač má tiež vstavanú knižnicu RLZ prehliadača <ph name="SHORT_PRODUCT_NAME" />. Knižnica RLZ priradí nejedinečnú značku, pomocou ktorej sa nedá zistiť totožnosť, na meranie výsledkov a použitia prehliadača <ph name="SHORT_PRODUCT_NAME" /> vyplývajúceho z konkrétnej propagačnej kampane. Tieto menovky sa niekedy zobrazujú v dopytoch Vyhľadávania Google v prehliadači <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Chcete vymazať dáta aj z týchto aplikácií?</translation>
+<translation id="1045448422538531528">Pridať do skupiny</translation>
 <translation id="1046635659603195359">Zdá sa, že ste už funkciu Voice Match nastavili pomocou Asistenta Google v inom zariadení. Tieto predchádzajúce záznamy môžete použiť na vytvorenie hlasového modelu v tomto zariadení. Malo by to trvať menej ako minútu.</translation>
 <translation id="104710386808485638">Chcete Linux reštartovať?</translation>
 <translation id="1047431265488717055">Kopírovať te&amp;xt odkazu</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Vždy blokovať prístup ku kamere</translation>
 <translation id="1082398631555931481">Nástroj <ph name="THIRD_PARTY_TOOL_NAME" /> chce obnoviť vaše nastavenia prehliadača Chrome na predvolené hodnoty. Týmto sa obnoví domovská stránka, stránka na novej karte a vyhľadávač, zakážu sa rozšírenia a odopnú všetky karty. Vymažú sa tiež ďalšie dočasné údaje a údaje vyrovnávacej pamäte, ako sú napríklad súbory cookie či údaje obsahu a stránok.</translation>
+<translation id="1084096383128641877">Odstránením tohto hesla nevymažete svoj účet v doméne <ph name="DOMAIN" />. Ak chcete svoj účet chrániť pred ostatnými, odstráňte ho v doméne <ph name="DOMAIN_LINK" /> alebo zmeňte svoje heslo.</translation>
 <translation id="1084824384139382525">Kopírovať adre&amp;su odkazu</translation>
 <translation id="1085697365578766383">Pri spúšťaní virtuálneho počítača sa vyskytla chyba. Skúste to znova.</translation>
 <translation id="1090126737595388931">Na pozadí nie sú spustené žiadne aplikácie</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Kontrola bezpečnosti prebehla včera</translation>
 <translation id="1260451001046713751">Vždy povoliť zobrazovanie kontextových okien z webu <ph name="HOST" /></translation>
 <translation id="126156426083987769">Vyskytol sa problém s licenciami zariadení v režime ukážky</translation>
+<translation id="1263490604593716556">Účet spravujú <ph name="FIRST_PARENT_EMAIL" /> a <ph name="SECOND_PARENT_EMAIL" />. Ak sa chcete odhlásiť z primárneho účtu v tomto zariadení, kliknite na čas na obrazovke. V zobrazenej ponuke kliknite na Odhlásiť sa.</translation>
 <translation id="126710816202626562">Jazyk prekladu:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Zastaviť</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Webové stránky</translation>
 <translation id="15662109988763471">Vybratá tlačiareň nie je k dispozícii alebo nie je správne nainštalovaná. Skontrolujte ju alebo vyberte inú.</translation>
 <translation id="1567387640189251553">Od posledného zadania hesla bola pripojená iná klávesnica. Je možné, že sa pokúša ukradnúť vaše stlačenia klávesov.</translation>
-<translation id="1567750922576943685">Overenie totožnosti pomáha chrániť vaše osobné informácie</translation>
 <translation id="1567993339577891801">Konzola JavaScript</translation>
 <translation id="1568323446248056064">Otvoriť nastavenia obrazovky</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (hosť)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Umenie</translation>
 <translation id="1697686431566694143">Upraviť súbor</translation>
 <translation id="1698122934742150150">Iba aktuálna relácia inkognito</translation>
-<translation id="1698650002254827833">Zoznam aplikácií sa nedá načítať. Skúste to znova.</translation>
 <translation id="1700079447639026019">Weby, ktoré nemôžu nikdy používať súbory cookie</translation>
 <translation id="1701062906490865540">Odstrániť túto osobu</translation>
 <translation id="1703331064825191675">Už si nemusíte robiť starosti o heslá</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Pokračovať</translation>
 <translation id="2173302385160625112">Skontrolujte svoje internetové pripojenie</translation>
 <translation id="2173801458090845390">Pridať do tohto zariadenia ID rekvizície</translation>
+<translation id="2174948148799307353">Účet spravuje <ph name="PARENT_EMAIL" />. Ak sa chcete odhlásiť z primárneho účtu v tomto zariadení, kliknite na čas na obrazovke. V zobrazenej ponuke kliknite na Odhlásiť sa.</translation>
 <translation id="2175607476662778685">Panel Rýchle spustenie</translation>
 <translation id="217576141146192373">Tlačiareň sa nepodarilo pridať. Skontrolujte jej konfiguráciu a skúste to znova.</translation>
 <translation id="2177950615300672361">Karta inkognito: <ph name="TAB_NAME" /></translation>
@@ -1080,7 +1082,6 @@
 <translation id="2442916515643169563">Tieň textu</translation>
 <translation id="2445081178310039857">Požaduje sa koreňový adresár rozšírenia.</translation>
 <translation id="2445484935443597917">Vytvoriť nový profil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> chce overiť vašu totožnosť</translation>
 <translation id="2448312741937722512">Typ</translation>
 <translation id="2450223707519584812">Nebudete môcť pridať používateľov, pretože chýbajú kľúče rozhrania Google API. Podrobnosti si môžete prečítať na adrese <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Žiadne aktívne zobrazenia</translation>
@@ -1478,6 +1479,7 @@
 <translation id="2948300991547862301">Prejsť na stránku <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Rýchly, jednoduchý a bezpečný webový prehliadač vytvorený pre moderný web.</translation>
 <translation id="2949289451367477459">Používanie polohy. Povoľte aplikáciám a službám s povoleným prístupom k polohe používať polohu tohto zariadenia. Google môže pravidelne zhromažďovať údaje o polohe a používať ich anonymne na zlepšovanie presnosti a služieb na základe polohy. <ph name="BEGIN_LINK1" />Ďalšie informácie<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Chcem sa zaregistrovať</translation>
 <translation id="2956070239128776395">Sekcia vnorená v skupine: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Nepovoľovať žiadnym webom upravovať súbory alebo priečinky vo vašom zariadení</translation>
 <translation id="2958721676848865875">Upozornenie na zbalenie rozšírenia</translation>
@@ -1602,6 +1604,7 @@
 <translation id="3139925690611372679">Predvolený žltý avatar</translation>
 <translation id="3141318088920353606">Počúvam...</translation>
 <translation id="3141917231319778873">Zadaná žiadosť nie je na zariadení <ph name="DEVICE_NAME" /> podporovaná.</translation>
+<translation id="3142562627629111859">Nová skupina</translation>
 <translation id="3143515551205905069">Zrušiť synchronizáciu</translation>
 <translation id="3143754809889689516">Prehrať od začiatku</translation>
 <translation id="3144647712221361880">Otvoriť odkaz ako</translation>
@@ -1626,6 +1629,7 @@
 <translation id="3159493096109238499">Béžová</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (chránené hardvérom)</translation>
 <translation id="3161522574479303604">Všetky jazyky</translation>
+<translation id="3162853326462195145">Školský účet</translation>
 <translation id="3162899666601560689">Weby môžu pomocou súborov cookie zlepšovať vaše prostredie prehliadania, napríklad zabrániť odhláseniu alebo zapamätať si položky vo vašom nákupnom košíku</translation>
 <translation id="3163201441334626963">Neznámy produkt <ph name="PRODUCT_ID" /> od dodávateľa <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Táto karta sa zdieľa s aplikáciou <ph name="APP_NAME" /></translation>
@@ -1684,7 +1688,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Aktualizujte zariadenie do jedného dňa}few{Aktualizujte zariadenie # dní}many{Aktualizujte zariadenie # dňa}other{Aktualizujte zariadenie # dní}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – Chyba siete</translation>
 <translation id="3248902735035392926">Na bezpečnosti záleží. Strávte chvíľu <ph name="BEGIN_LINK" />kontrolou rozšírení<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Nie je súčasťou certifikátu&gt;</translation>
 <translation id="3253225298092156258">Nie je k dispozícii</translation>
 <translation id="3253448572569133955">Neznámy účet</translation>
@@ -1789,6 +1792,7 @@
 <translation id="3396800784455899911">Kliknutím na tlačidlo „Súhlasím, pokračovať“ vyjadrujete súhlas so spracovaním uvedeným vyššie v rámci týchto služieb Googlu.</translation>
 <translation id="3399432415385675819">Upozornenia budú zakázané</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz) – prekladané</translation>
+<translation id="3402585168444815892">Registruje sa do ukážkového režimu</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Pre tento web neboli uložené žiadne heslá</translation>
 <translation id="3405664148539009465">Prispôsobiť písma</translation>
@@ -1850,6 +1854,7 @@
 <translation id="3468999815377931311">Telefón s Androidom</translation>
 <translation id="3470442499439619530">Odstrániť tohto používateľa</translation>
 <translation id="3471876058939596279">Porty HDMI a USB typu C nie je možné naraz používať pre video. Použite iný port pre video.</translation>
+<translation id="3473241910002674503">Pomocou tlačidiel v režime tabletu môžete prejsť na plochu, späť a prepínať aplikácie.</translation>
 <translation id="3473479545200714844">Lupa</translation>
 <translation id="3475843873335999118">Ľutujeme, váš odtlačok sa stále nepodarilo rozpoznať. Zadajte heslo.</translation>
 <translation id="3476303763173086583">Odosielať údaje o využití a diagnostiky. Pomôžte zlepšiť prostredie Androidu svojho dieťaťa automatickým odosielaním diagnostík a údajov o používaní zariadenia a aplikácií do Googlu. Nebudú slúžiť na zistenie totožnosti vášho dieťaťa. Pomôžu zvýšiť stabilitu systému a aplikácií a poskytovať ďalšie vylepšenia. Niektoré súhrnné údaje tiež pomôžu aplikáciám Google a partnerom, ako napríklad vývojárom Androidu. Používanie tohto <ph name="BEGIN_LINK1" />nastavenia<ph name="END_LINK1" /> je presadzované vlastníkom. Vlastník môže odosielať Googlu diagnostiky a údaje o používaní pre toto zariadenie. Ak pre dieťa aktivujete dodatočnú aktivitu na internete a v aplikáciách, tieto údaje sa môžu uložiť do jeho účtu Google. <ph name="BEGIN_LINK2" />Ďalšie informácie<ph name="END_LINK2" /></translation>
@@ -2274,6 +2279,7 @@
 <translation id="3971764089670057203">Odltačky prsta v tomto bezpečnostnom kľúči</translation>
 <translation id="3973660817924297510">Kontrolujú sa heslá (<ph name="CHECKED_PASSWORDS" /> z <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Kontaktovanie servera pre oblasť zlyhalo</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> nemôže skontrolovať heslá. Skúste to znova neskôr.</translation>
 <translation id="3976108569178263973">Nie sú k dispozícii žiadne tlačiarne.</translation>
 <translation id="397703832102027365">Prebieha dokončovanie...</translation>
 <translation id="3977886311744775419">Automatické aktualizácie sa nestiahnu v tomto type siete, ale dostupnosť aktualizácií môžete skontrolovať manuálne.</translation>
@@ -2337,6 +2343,7 @@
 <translation id="4068506536726151626">Táto stránka obsahuje prvky z nasledujúcich webov, ktoré sledujú vašu polohu:</translation>
 <translation id="4068776064906523561">Uložené odtlačky prstov</translation>
 <translation id="407173827865827707">Po kliknutí</translation>
+<translation id="4073520450811433493">Synchronizácia nastavení</translation>
 <translation id="4074900173531346617">Certifikát podpisovateľa e-mailu</translation>
 <translation id="407520071244661467">Prispôsobiť veľkosť</translation>
 <translation id="4075639477629295004">Nie je možné prenášať súbor <ph name="FILE_NAME" />.</translation>
@@ -2573,6 +2580,7 @@
 <translation id="4421932782753506458">Páperový</translation>
 <translation id="4423376891418188461">Obnoviť nastavenia</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, váš správca vyžaduje zmenu hesla.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> nemôže skontrolovať heslá. Skúste to znova o 24 hodín.</translation>
 <translation id="4429030830601238961">Tieto údaje porušujú pravidlá zabezpečenia vašej organizácie a nie je možné ich prilepiť.</translation>
 <translation id="4430019312045809116">Hlasitosť</translation>
 <translation id="4430369329743628066">Záložka bola pridaná</translation>
@@ -2585,6 +2593,7 @@
 <translation id="4441124369922430666">Chcete automaticky spustiť túto aplikáciu po zapnutí zariadenia?</translation>
 <translation id="4441147046941420429">Ak chcete pokračovať, vyberte bezpečnostný kľúč zo svojho zariadenia, potom ho znova vložte a klepnite naň</translation>
 <translation id="444134486829715816">Rozbaliť...</translation>
+<translation id="4442329324652245220">Keď sa prihlásite pomocou účtu Google, <ph name="IDS_SHORT_PRODUCT_NAME" /> môže skontrolovať vaše heslá.</translation>
 <translation id="4442424173763614572">Vyhľadanie DNS zlyhalo</translation>
 <translation id="4443536555189480885">&amp;Pomocník</translation>
 <translation id="4444304522807523469">Mať prístup ku skenerom dokumentov pripojeným cez USB alebo v miestnej sieti</translation>
@@ -2611,11 +2620,13 @@
 <translation id="4476659815936224889">Tento kód môžete naskenovať pomocou aplikácie na skenovanie QR kódov vo svojom telefóne alebo pomocou niektorých aplikácií fotoaparátu.</translation>
 <translation id="4477015793815781985">Použite kláves Ctrl, Alt alebo ⌘</translation>
 <translation id="4478664379124702289">Uložiť &amp;odkaz ako...</translation>
+<translation id="4478777936860197922">Žiadne uložené heslá. <ph name="IDS_SHORT_PRODUCT_NAME" /> môže skontrolovať heslá, keď ich uložíte.</translation>
 <translation id="4479424953165245642">Spravovať aplikácie pre režim kiosku</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Konfiguruje sa virtuálny počítač. Môže to trvať niekoľko minút.</translation>
 <translation id="4480590691557335796">Chrome dokáže vo vašom počítači nájsť škodlivý softvér a odstrániť ho</translation>
 <translation id="4481530544597605423">Nespárované zariadenia</translation>
+<translation id="4488107067273194838">Kontrolovať po nastavení možnosti synchronizácie prehliadača</translation>
 <translation id="4488502501195719518">Chcete vymazať všetky údaje?</translation>
 <translation id="4495419450179050807">Nezobrazovať na tejto stránke</translation>
 <translation id="4496054781541092778">prehliadač automaticky blokuje <ph name="PERMISSION" /></translation>
@@ -2857,6 +2868,7 @@
 <translation id="4849517651082200438">Neinštalovať</translation>
 <translation id="4850669014075537160">Posúvanie</translation>
 <translation id="4850886885716139402">Zobraziť</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> vás upozorní, keď sa prihlásite pomocou prelomeného hesla</translation>
 <translation id="4853020600495124913">Otvoriť v &amp;novom okne</translation>
 <translation id="4854317507773910281">Vyberte účet rodiča na schválenie</translation>
 <translation id="485480310608090163">Ďalšie nastavenia a povolenia</translation>
@@ -2875,6 +2887,7 @@
 <translation id="4871322859485617074">Kód PIN obsahuje neplatné znaky</translation>
 <translation id="4871370605780490696">Pridanie záložky</translation>
 <translation id="4871719318659334896">Zavrieť skupinu</translation>
+<translation id="4871852311166078968">Pridať do skupiny</translation>
 <translation id="4873312501243535625">Media File Checker</translation>
 <translation id="4876273079589074638">Pomôžte našim programátorom prešetriť toto zlyhanie a vyriešiť ho. Ak je to možné, uveďte presné kroky. Poskytnite čo najpodrobnejšie informácie.</translation>
 <translation id="4876895919560854374">Zamknúť alebo odomknúť obrazovku</translation>
@@ -2966,7 +2979,6 @@
 <translation id="4992473555164495036">Správca obmedzil dostupné metódy vstupu.</translation>
 <translation id="4994474651455208930">Povoliť webom žiadať o nastavenie za predvolený obslužný nástroj protokolu</translation>
 <translation id="4994754230098574403">Nastavuje sa</translation>
-<translation id="4996978546172906250">Zdieľať</translation>
 <translation id="4997086284911172121">Žiadne internetové pripojenie.</translation>
 <translation id="4997384734315285248">Odinštalovať Plugin VM</translation>
 <translation id="4998430619171209993">Zapnuté</translation>
@@ -3066,7 +3078,6 @@
 <translation id="5135085122826131075">Aktivujte svojho Asistenta vyslovením výrazu „OK Google“.</translation>
 <translation id="5135533361271311778">Nepodarilo sa vytvoriť položku záložiek</translation>
 <translation id="5137501176474113045">Odstrániť túto položku</translation>
-<translation id="5138982052046316113">Zmena veľkosti disku Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, vyhľadávanie vo vyhľadávači <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Zadajte kód PIN bezpečnostného kľúča Ak si ho nepamätáte, budete musieť bezpečnostný kľúč resetovať.</translation>
 <translation id="5139955368427980650">&amp;Otvoriť</translation>
@@ -3518,6 +3529,7 @@
 <translation id="5739235828260127894">Čaká sa na overenie. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Veľmi veľké</translation>
 <translation id="574209121243317957">Výška hlasu</translation>
+<translation id="5745136023067925867">Dostávajte tipy, ponuky a aktuality týkajúce sa zariadenia <ph name="DEVICE_TYPE" /> a zdieľajte spätnú väzbu</translation>
 <translation id="5746169159649715125">Uložiť ako PDF</translation>
 <translation id="5747552184818312860">Koniec platnosti</translation>
 <translation id="5747785204778348146">Vývojár – nestabilné</translation>
@@ -3930,7 +3942,6 @@
 <translation id="6291953229176937411">&amp;Zobraziť v aplikácii Finder</translation>
 <translation id="6295158916970320988">Všetky stránky</translation>
 <translation id="6295855836753816081">Ukladá sa...</translation>
-<translation id="629730747756840877">Účet</translation>
 <translation id="6298962879096096191">Inštalácia aplikácií pre Android pomocou služby Google Play</translation>
 <translation id="630065524203833229">U&amp;končiť</translation>
 <translation id="6300718114348072351">Tlačiareň <ph name="PRINTER_NAME" /> sa nepodarilo automaticky nakonfigurovať. Špecifikujte rozšírené podrobnosti o tlačiarni. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation>
@@ -4336,7 +4347,6 @@
 <translation id="6865598234501509159">Stránka nie je v jazyku <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Denníky udalostí WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Teplota farieb</translation>
-<translation id="6870888490422746447">Vyberte aplikáciu, s ktorou chcete obsah zdieľať:</translation>
 <translation id="6871644448911473373">Odpovedajúce zariadenie OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Zadané heslo bolo zamietnuté serverom.</translation>
 <translation id="6876155724392614295">Bicykel</translation>
@@ -4429,6 +4439,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – denník aktivít</translation>
 <translation id="6997707937646349884">V zariadeniach:</translation>
 <translation id="6998793565256476099">Zaregistrovať zariadenie na videokonferencie</translation>
+<translation id="6999956497249459195">Nová skupina</translation>
 <translation id="7000206553895739324">Tlačiareň <ph name="PRINTER_NAME" /> je pripojená, ale je potrebné ju nakonfigurovať</translation>
 <translation id="7000347579424117903">Použite Ctrl, Alt alebo kláves vyhľadávania</translation>
 <translation id="7001036685275644873">Zálohujú sa aplikácie a súbory pre Linux</translation>
@@ -4727,6 +4738,7 @@
 <translation id="7400418766976504921">Webová adresa</translation>
 <translation id="7400839060291901923">Nastavenie pripojenia v telefóne <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Zrušiť túto správu</translation>
+<translation id="7403642243184989645">Sťahujú sa zdroje</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Kontrola bezpečnosti prebehla pred hodinou}few{Kontrola bezpečnosti prebehla pred {NUM_HOURS} hodinami}many{Kontrola bezpečnosti prebehla pred {NUM_HOURS} hodiny}other{Kontrola bezpečnosti prebehla pred {NUM_HOURS} hodinami}}</translation>
 <translation id="740624631517654988">Zablokované vyskakovacie okno</translation>
 <translation id="7407430846095439694">Importovať a spojiť</translation>
@@ -4963,6 +4975,7 @@
 <translation id="7716781361494605745">Webová adresa pre pravidlá certifikačnej autority služby Netscape</translation>
 <translation id="7717014941119698257">Sťahovanie: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Kontrola dostupnosti aktualizácií</translation>
+<translation id="7719070594859855691">Udeľte prístup k fotoaparátu</translation>
 <translation id="7719367874908701697">Priblíženie stránky</translation>
 <translation id="7721179060400456005">Povoliť oknám zobrazenie cez viacero obrazoviek</translation>
 <translation id="7722040605881499779">Potrebné miesto na aktualizáciu: <ph name="NECESSARY_SPACE" /></translation>
@@ -4977,7 +4990,6 @@
 <translation id="7744047395460924128">Zobraziť históriu tlače</translation>
 <translation id="7744192722284567281">Nájdené v rámci porušenia ochrany údajov</translation>
 <translation id="7750228210027921155">Obraz v obraze</translation>
-<translation id="7751229152614300329">Bezpečné prihlásenie je aktuálne a chráni vás pred škodlivými webmi a stiahnutými súbormi</translation>
 <translation id="7751260505918304024">Zobraziť všetky</translation>
 <translation id="7754704193130578113">Pred každým sťahovaním sa spýtať, kam uložiť súbor</translation>
 <translation id="7755287808199759310">Váš rodič ho môže pre vás odblokovať</translation>
@@ -5065,6 +5077,7 @@
     <ph name="BEGIN_BOLD" />Poznámka:<ph name="END_BOLD" />  Systém sa počas príslušného procesu reštartuje.</translation>
 <translation id="7828731929332799387">Týmto odstránite všetky súbory cookie a údaje webu dostupné v kontextoch tretích strán. Chcete pokračovať?</translation>
 <translation id="7829298379596169484">Pristupovanie k zvukovému vstupu</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> nemôže skontrolovať heslá. Skontrolujte internetové pripojenie.</translation>
 <translation id="7829877209233347340">Požiadajte rodiča, aby sa prihlásil a povolil pridanie školského účtu</translation>
 <translation id="7830594666202422257">Pripojiť k systému Linux</translation>
 <translation id="7831491651892296503">Chyba pri konfigurácii siete</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">Inštaluje sa Obchod Google Play na zariadení <ph name="DEVICE_TYPE" />. Môžete to chvíľu trvať.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Žiadne súbory cookie tretích strán}=1{Je blokovaný 1 súbor cookie tretej strany}few{Sú blokované # súbory cookie tretích strán}many{# third-party cookies are blocked}other{Je blokovaných # súborov cookie tretích strán}}</translation>
 <translation id="810875025413331850">Nenašli sa žiadne zariadenia nablízku.</translation>
+<translation id="8114199541033039755">Pomocou tlačidiel v režime tabletu môžete prejsť na plochu, späť a prepínať aplikácie. Táto funkcia je zapnutá, keď je aktivovaná čítačka ChromeVox alebo automatické kliknutia.</translation>
 <translation id="8114875720387900039">Rozdeliť vodorovne</translation>
 <translation id="8116972784401310538">&amp;Správca záložiek</translation>
 <translation id="8117620576188476503">Spravujte pripojenia, aktualizácie a nastavenia pomocou stavového panela. Ak sem chcete prejsť pomocou klávesnice, stlačte klávesy Alt + Shift + S.</translation>
@@ -5405,6 +5419,7 @@
 <translation id="8263744495942430914">Stránka <ph name="FULLSCREEN_ORIGIN" /> zakázala kurzor myši.</translation>
 <translation id="8264024885325823677">Toto nastavenie ovláda váš správca.</translation>
 <translation id="8264718194193514834">Rozšírenie <ph name="EXTENSION_NAME" /> spustilo režim celej obrazovky.</translation>
+<translation id="826511437356419340">Vstúpili ste do režimu prehľadu okien. Prechádzajte potiahnutím alebo ak používate klávesnicu, stlačte kláves Tab.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ide o všeobecné informácie o vašom zariadení a o tom, ako ho používate (napríklad stav batérie, aktivita systému, aktivita v aplikáciách a chyby). Tieto údaje sa použijú na zlepšenie Androidu a niektoré súhrnné informácie tiež pomôžu aplikáciám Google a partnerom, ako sú vývojári systému Android, zlepšovať svoje aplikácie a produkty.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Vypnutím tejto funkcie neovplyvníte schopnosť zariadenia odosielať informácie potrebné na zaistenie základných služieb, ako sú aktualizácie systému a zabezpečenie.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Vlastník môže túto funkciu ovládať v časti Nastavenia &gt; Rozšírené &gt; Automaticky odosielať diagnostiky a údaje o používaní Googlu.<ph name="END_PARAGRAPH3" />
@@ -5513,6 +5528,7 @@
 <translation id="8426713856918551002">Aktivuje sa</translation>
 <translation id="8427292751741042100">vložené do ľubovoľného webu</translation>
 <translation id="8428213095426709021">Nastavenia</translation>
+<translation id="8428271547607112339">Pridať školský účet</translation>
 <translation id="8428628598981198790">Bezpečnostný kľúč sa s týmto webom nedá použiť</translation>
 <translation id="84297032718407999">Odhlásenie prebehne o <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Zobrazovanie klepnutí</translation>
@@ -5576,6 +5592,7 @@
 <translation id="851263357009351303">Vždy povoliť stránkam <ph name="HOST" /> zobrazovať obrázky</translation>
 <translation id="8513108775083588393">Automatické otáčanie</translation>
 <translation id="8514746246728959655">Vyskúšajte iný bezpečnostný kľúč</translation>
+<translation id="851960115758509829">Vaše aplikácie, nastavenia a ďalšie prispôsobenia budú synchronizované vo všetkých zariadeniach so systémom Chrome OS prihlásených pomocou vášho účtu Google.</translation>
 <translation id="8521475323816527629">Rýchlo získajte svoje aplikácie</translation>
 <translation id="8523493869875972733">Zachovať zmeny</translation>
 <translation id="8523849605371521713">Pridané pravidlom</translation>
@@ -5857,11 +5874,13 @@
 <translation id="885701979325669005">Úložisko</translation>
 <translation id="8859057652521303089">Vyberte svoj jazyk:</translation>
 <translation id="8859174528519900719">Podrámec: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Účet rodiča</translation>
 <translation id="8862003515646449717">Prepnite na rýchly prehliadač</translation>
 <translation id="8863753581171631212">Otvoriť odkaz v novom okne aplikácie <ph name="APP" /></translation>
 <translation id="8864055848767439877">Karta <ph name="TAB_NAME" /> sa zdieľa s aplikáciou <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Adresa <ph name="EMAIL" /> bola odstránená z tohto zariadenia</translation>
 <translation id="8867228703146808825">Skopírovať podrobnosti o zostave do schránky</translation>
+<translation id="8868333925931032127">Spúšťa sa ukážkový režim</translation>
 <translation id="8868626022555786497">Využité miesto</translation>
 <translation id="8870413625673593573">Nedávno zatvorené</translation>
 <translation id="8871551568777368300">Pripnuté správcom</translation>
@@ -5940,6 +5959,7 @@
 <translation id="8966870118594285808">Ak ste kartu omylom zavreli, znova ju otvorte</translation>
 <translation id="8967866634928501045">Zobrazíte pomocou klávesov Alt + Shift + A</translation>
 <translation id="8968766641738584599">Uložiť kartu</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> nemôže skontrolovať heslá. Skúste to znova o 24 hodín alebo <ph name="BEGIN_LINK" />skontrolujte heslá vo svojom účte Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Kontaktujte správcu siete a uistite sa, že brána firewall neblokuje sťahovanie súborov zo serverov Google.</translation>
 <translation id="8973557916016709913">Odstrániť úroveň priblíženia</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index a7b8e39..a9dbc91 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Razpoložljive naprave</translation>
 <translation id="1042174272890264476">V vašem računalniku je tudi vgrajena knjižnica RLZ izdelka <ph name="SHORT_PRODUCT_NAME" />. RLZ za merjenje iskanj in uporabe izdelka <ph name="SHORT_PRODUCT_NAME" /> v okviru določene promocijske akcije dodeli neenolično oznako, ki ne omogoča osebne prepoznave. Te oznake so včasih v izdelku <ph name="PRODUCT_NAME" /> prikazane v iskalnih poizvedbah v Googlu.</translation>
 <translation id="1043818413152647937">Želite izbrisati tudi podatke iz teh aplikacij?</translation>
+<translation id="1045448422538531528">Dodajanje v skupino</translation>
 <translation id="1046635659603195359">Videti je, da ste Voice Match z Google Pomočnikom že nastavili v drugi napravi. Te prejšnje posnetke je mogoče uporabiti za ustvarjanje glasovnega modela v tej napravi. Trajalo bo manj kot minuto.</translation>
 <translation id="104710386808485638">Želite znova zagnati Linux?</translation>
 <translation id="1047431265488717055">&amp;Kopiraj besedilo povezave</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Vedno prepreči dostop do kamere</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> želi vaše nastavitve za Chrome ponastaviti na izvirne privzete nastavitve. S tem bodo ponastavljeni domača stran, nov zavihek s povezavami in iskalnik ter onemogočene razširitve in odpeti vsi zavihki. S tem bodo tudi izbrisani začasni in predpomnjeni podatki, kot so piškotki, vsebina in podatki spletnih mest.</translation>
+<translation id="1084096383128641877">Če odstranite to geslo, ne izbrišete računa na <ph name="DOMAIN" />. Če želite račun zaščititi pred drugimi, spremenite geslo ali izbrišite račun na <ph name="DOMAIN_LINK" />.</translation>
 <translation id="1084824384139382525">Kopiraj naslov pove&amp;zave</translation>
 <translation id="1085697365578766383">Navideznega računalnika ni bilo mogoče zagnati. Poskusite znova.</translation>
 <translation id="1090126737595388931">Ni aktivnih programov v ozadju</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Varnostno preverjanje je bilo izvedeno včeraj</translation>
 <translation id="1260451001046713751">Vedno dovoli pojavna okna in preusmeritve spletnega mesta <ph name="HOST" /></translation>
 <translation id="126156426083987769">Prišlo je do težave z licencami naprave za predstavitveni način.</translation>
+<translation id="1263490604593716556">Račun upravljata <ph name="FIRST_PARENT_EMAIL" /> in <ph name="SECOND_PARENT_EMAIL" />. Če se želite odjaviti iz glavnega računa v napravi, kliknite uro na zaslonu. V meniju, ki se pojavi, kliknite »Odjava«.</translation>
 <translation id="126710816202626562">Jezik prevoda:</translation>
 <translation id="126768002343224824">16 x</translation>
 <translation id="1272079795634619415">Ustavi</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Spletno mesto</translation>
 <translation id="15662109988763471">Izbrani tiskalnik ni na voljo ali ni pravilno nameščen. Preverite tiskalnik ali izberite drugega.</translation>
 <translation id="1567387640189251553">Od zadnjega vnosa gesla je bila priklopljena druga tipkovnica, ki morda poskuša beležiti vse, kar natipkate.</translation>
-<translation id="1567750922576943685">Če preverite identiteto, bodo vaši osebni podatki varnejši</translation>
 <translation id="1567993339577891801">Konzola JavaScript</translation>
 <translation id="1568323446248056064">Odpiranje nastavitev zaslona v napravi</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (gost)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Umetnost</translation>
 <translation id="1697686431566694143">Uredi datoteko</translation>
 <translation id="1698122934742150150">Samo za trenutno sejo brez beleženja zgodovine</translation>
-<translation id="1698650002254827833">Seznama aplikacij ni mogoče naložiti. Poskusite znova.</translation>
 <translation id="1700079447639026019">Spletna mesta, ki nikoli ne morejo uporabiti piškotkov</translation>
 <translation id="1701062906490865540">Odstrani to osebo</translation>
 <translation id="1703331064825191675">Naj vas nikoli ne skrbi glede gesel</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Naprej</translation>
 <translation id="2173302385160625112">Preverite internetno povezavo</translation>
 <translation id="2173801458090845390">Dodajanje ID-ja zahteve tej napravi</translation>
+<translation id="2174948148799307353">Račun upravlja <ph name="PARENT_EMAIL" />. Če se želite odjaviti iz glavnega računa v napravi, kliknite uro na zaslonu. V meniju, ki se pojavi, kliknite »Odjava«.</translation>
 <translation id="2175607476662778685">Vrstica za hitri zagon</translation>
 <translation id="217576141146192373">Tiskalnika ni mogoče dodati. Preverite konfiguracijo tiskalnika in poskusite znova.</translation>
 <translation id="2177950615300672361">Zavihek za način brez beleženja zgodovine: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Senčenje besedila</translation>
 <translation id="2445081178310039857">Potreben je korenski imenik razširitve.</translation>
 <translation id="2445484935443597917">Ustvari nov profil</translation>
-<translation id="2446585455334014596">Aplikacija <ph name="APP_NAME" /> želi preveriti vašo identiteto</translation>
 <translation id="2448312741937722512">Vrsta</translation>
 <translation id="2450223707519584812">Uporabnikov ne boste mogli dodati, ker manjkajo ključi Googlovega API-ja. Za podrobnosti obiščite <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Ni aktivnih pogledov</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Pojdi na <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Hiter, preprost in varen brskalnik, razvit za sodobni splet.</translation>
 <translation id="2949289451367477459">Uporaba lokacije. Aplikacijam in storitvam z dovoljenjem za lokacijo dovolite uporabo lokacije te naprave. Google bo morda občasno zbiral podatke o lokacijah ter jih na anonimen način uporabil za izboljšanje natančnosti zaznavanja lokacije in izpopolnjevanje storitev, ki pri delovanju uporabljajo lokacijo. <ph name="BEGIN_LINK1" />Več o tem<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Prijavi me</translation>
 <translation id="2956070239128776395">Razdelek je ugnezden v skupini: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Ne dovoli spletnim mestom urejanja datotek ali map v vaši napravi</translation>
 <translation id="2958721676848865875">Opozorilo glede pakiranja razširitve</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Privzeti rumeni avatar</translation>
 <translation id="3141318088920353606">Poslušanje ...</translation>
 <translation id="3141917231319778873">Dana zahteva ni podprta za to napravo: »<ph name="DEVICE_NAME" />«.</translation>
+<translation id="3142562627629111859">Nova skupina</translation>
 <translation id="3143515551205905069">Prekliči sinhronizacijo</translation>
 <translation id="3143754809889689516">Predvajaj od začetka</translation>
 <translation id="3144647712221361880">Odpiranje povezave kot</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Bež</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (podprto s strojno opremo)</translation>
 <translation id="3161522574479303604">Vsi jeziki</translation>
+<translation id="3162853326462195145">Šolski račun</translation>
 <translation id="3162899666601560689">Spletna mesta lahko uporabljajo piškotke za izboljšanje izkušnje brskanja, in sicer tako, da na primer poskrbijo, da ostanete prijavljeni, ali si zapomnijo izdelke v nakupovalnem vozičku.</translation>
 <translation id="3163201441334626963">Neznan izdelek <ph name="PRODUCT_ID" /> dobavitelja <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Deljenje tega zavihka z aplikacijo <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Napravo posodobite v enem dnevu}one{Napravo posodobite v # dnevu}two{Napravo posodobite v # dnevih}few{Napravo posodobite v # dnevih}other{Napravo posodobite v # dnevih}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – napaka omrežja</translation>
 <translation id="3248902735035392926">Varnost je pomembna. Vzemite si trenutek in <ph name="BEGIN_LINK" />preverite razširitve<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Ni del potrdila&gt;</translation>
 <translation id="3253225298092156258">Ni na voljo</translation>
 <translation id="3253448572569133955">Neznan račun</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Če kliknete gumb »Sprejmi in nadaljuj«, se strinjate z obdelavo, ki je opisana zgoraj za te Googlove storitve.</translation>
 <translation id="3399432415385675819">Obvestila bodo onemogočena</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz) – prepleteno</translation>
+<translation id="3402585168444815892">Včlanitev v predstavitveni način</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Za to spletno mesto ni shranjenih gesel</translation>
 <translation id="3405664148539009465">Prilagodi pisave</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Telefon Android</translation>
 <translation id="3470442499439619530">Odstranitev tega uporabnika</translation>
 <translation id="3471876058939596279">Vrat HDMI in USB Type-C ni mogoče hkrati uporabljati za sliko. Uporabite druga vrata za sliko.</translation>
+<translation id="3473241910002674503">Premikanje na začetni zaslon in nazaj ter preklop med aplikacijami z gumbi v načinu tabličnega računalnika.</translation>
 <translation id="3473479545200714844">Lupa</translation>
 <translation id="3475843873335999118">Prstni odtis še vedno ni prepoznan. Vnesite geslo.</translation>
 <translation id="3476303763173086583">Pošiljanje podatkov o uporabi in diagnostičnih podatkov. Pomagajte izboljšati otrokovo izkušnjo z Androidom s samodejnim pošiljanjem diagnostičnih podatkov ter podatkov o uporabi naprave in aplikacij Googlu. Teh podatkov ne bomo uporabljali, da bi prepoznali vašega otroka, temveč za izboljšanje stabilnosti sistema in izvajanja aplikacij ter drugega. Nekateri združeni podatki bodo pomagali tudi Googlovim aplikacijam in partnerjem, na primer razvijalcem za Android. To <ph name="BEGIN_LINK1" />nastavitev<ph name="END_LINK1" /> je uveljavil lastnik naprave. Lastnik bo morda izbral, da se za to napravo pošiljajo diagnostični podatki in podatki o uporabi Googlu. Če ste za otroka vklopili dodatno beleženje dejavnosti v spletu in aplikacijah, bodo ti podatki morda shranjeni v njegovem računu za Google. <ph name="BEGIN_LINK2" />Več o tem<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Prstni odtisi v tem varnostnem ključu</translation>
 <translation id="3973660817924297510">Preverjanje gesel (<ph name="CHECKED_PASSWORDS" /> od <ph name="TOTAL_PASSWORDS" />) …</translation>
 <translation id="3975565978598857337">Vzpostavljanje stika s strežnikom območja ni uspelo</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne more preveriti vaših gesel. Poskusite pozneje.</translation>
 <translation id="3976108569178263973">Noben tiskalnik ni na voljo.</translation>
 <translation id="397703832102027365">Dokončanje ...</translation>
 <translation id="3977886311744775419">Samodejne posodobitve se ne prenesejo v tej vrsti omrežja, vendar lahko ročno preverite, ali so na voljo posodobitve.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Na tej strani so elementi iz teh spletnih mest, ki sledijo vaši lokaciji:</translation>
 <translation id="4068776064906523561">Shranjeni prstni odtisi</translation>
 <translation id="407173827865827707">Ob kliku</translation>
+<translation id="4073520450811433493">Sinhronizacija nastavitev</translation>
 <translation id="4074900173531346617">Potrdilo podpisnika e-pošte</translation>
 <translation id="407520071244661467">Prilagajanje velikosti</translation>
 <translation id="4075639477629295004">Ni mogoče predvajati <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Puhek</translation>
 <translation id="4423376891418188461">Obnovi nastavitve</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, skrbnik zahteva, da spremenite geslo.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne more preveriti vaših gesel. Poskusite znova čez 24 ur.</translation>
 <translation id="4429030830601238961">Ti podatki kršijo varnostne pravilnike organizacije in jih ni mogoče prilepiti.</translation>
 <translation id="4430019312045809116">Glasnost</translation>
 <translation id="4430369329743628066">Zaznamek dodan</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Ali želite samodejno zagnati to aplikacijo, ko se naprava vklopi?</translation>
 <translation id="4441147046941420429">Če želite nadaljevati, odstranite varnostni ključ iz naprave, nato ga znova vstavite in se ga dotaknite</translation>
 <translation id="444134486829715816">Razširi ...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> lahko preveri vaša gesla, ko se prijavite z računom Google</translation>
 <translation id="4442424173763614572">Iskanje DNS ni uspelo</translation>
 <translation id="4443536555189480885">&amp;Pomoč</translation>
 <translation id="4444304522807523469">Dostop do optičnih bralnikov, priklopljenih prek USB-ja ali povezanih v lokalno omrežje.</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Če želite optično prebrati to kodo, lahko uporabite aplikacijo za optično branje kod QR v telefonu ali nekatere aplikacije fotoaparata.</translation>
 <translation id="4477015793815781985">Vključevati morajo Ctrl, Alt ali ⌘</translation>
 <translation id="4478664379124702289">Shrani povezav&amp;o kot ...</translation>
+<translation id="4478777936860197922">Ni shranjenih gesel. <ph name="IDS_SHORT_PRODUCT_NAME" /> lahko preveri gesla, če jih shranite.</translation>
 <translation id="4479424953165245642">Upravljaj aplikacije Kiosk</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Konfiguriranje navideznega računalnika. To lahko traja nekaj minut.</translation>
 <translation id="4480590691557335796">Chrome lahko poišče škodljivo programsko opremo v računalniku in jo odstrani</translation>
 <translation id="4481530544597605423">Naprave, za katere je bila preklicana seznanitev</translation>
+<translation id="4488107067273194838">Pregled možnosti sinhronizacije brskalnika po nastavitvi</translation>
 <translation id="4488502501195719518">Želite izbrisati vse podatke?</translation>
 <translation id="4495419450179050807">Ne pokaži na tej strani</translation>
 <translation id="4496054781541092778">samodejno je blokirano dovoljenje <ph name="PERMISSION" /></translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Ne namesti</translation>
 <translation id="4850669014075537160">Drsenje</translation>
 <translation id="4850886885716139402">Pogled</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> vas bo obvestil, če se prijavite z ogroženim geslom</translation>
 <translation id="4853020600495124913">Odpri v &amp;novem oknu</translation>
 <translation id="4854317507773910281">Izbira starševskega računa za odobritev</translation>
 <translation id="485480310608090163">Več nastavitev in dovoljenj</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">Koda PIN vsebuje neveljavne znake</translation>
 <translation id="4871370605780490696">Dodajanje zaznamka</translation>
 <translation id="4871719318659334896">Zapri skupino</translation>
+<translation id="4871852311166078968">Dodajanje v skupino</translation>
 <translation id="4873312501243535625">Pripomoček za preverjanje predstavnostnih datotek</translation>
 <translation id="4876273079589074638">Pomagajte našim tehnikom preučiti in odpraviti to zrušitev. Natančno navedite svoje korake, če lahko. Pomembna je vsaka podrobnost.</translation>
 <translation id="4876895919560854374">Zaklepanje in odklepanje zaslona</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Skrbnik je omejil razpoložljive načine vnosa.</translation>
 <translation id="4994474651455208930">Dovoli spletnim mestom, da zahtevajo, da postanejo privzete rutine za obravnavo protokolov</translation>
 <translation id="4994754230098574403">Nastavljanje</translation>
-<translation id="4996978546172906250">Skupna raba prek</translation>
 <translation id="4997086284911172121">Ni internetne povezave.</translation>
 <translation id="4997384734315285248">Odmestitev vtičnika Plugin VM</translation>
 <translation id="4998430619171209993">Vklopljeno</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Dostopajte do Pomočnika, ko izgovorite »Ok Google«.</translation>
 <translation id="5135533361271311778">Elementa zaznamka ni bilo mogoče ustvariti.</translation>
 <translation id="5137501176474113045">Izbriši ta element</translation>
-<translation id="5138982052046316113">Spreminjanje velikosti diska Linuxa</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, iskanje z iskalnikom <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Vnesite kodo PIN za varnostni ključ. Če ne veste kode PIN, morate ponastaviti varnostni ključ.</translation>
 <translation id="5139955368427980650">&amp;Odpri</translation>
@@ -3521,6 +3532,7 @@
 <translation id="5739235828260127894">Čakanje na potrditev. <ph name="LINK_BEGIN" />Več o tem<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Zelo velika</translation>
 <translation id="574209121243317957">Višina tona</translation>
+<translation id="5745136023067925867">Prejmite nasvete, ponudbe in obvestila za napravo <ph name="DEVICE_TYPE" /> ter pošiljajte povratne informacije</translation>
 <translation id="5746169159649715125">Shrani kot PDF</translation>
 <translation id="5747552184818312860">Poteče</translation>
 <translation id="5747785204778348146">Razvijalska različica – ni stabilna</translation>
@@ -3933,7 +3945,6 @@
 <translation id="6291953229176937411">&amp;Pokaži v Finderju</translation>
 <translation id="6295158916970320988">Vsa spletna mesta</translation>
 <translation id="6295855836753816081">Shranjevanje ...</translation>
-<translation id="629730747756840877">Račun</translation>
 <translation id="6298962879096096191">Uporaba Googla Play za nameščanje aplikacij za Android</translation>
 <translation id="630065524203833229">I&amp;zhod</translation>
 <translation id="6300718114348072351">Tiskalnika <ph name="PRINTER_NAME" /> ni bilo mogoče samodejno konfigurirati. Določite dodatne podrobnosti tiskalnika. <ph name="LINK_BEGIN" />Več o tem<ph name="LINK_END" /></translation>
@@ -4339,7 +4350,6 @@
 <translation id="6865598234501509159">Stran ni v jeziku <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Dnevniki dogodkov WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Barvna temperatura</translation>
-<translation id="6870888490422746447">Izberite aplikacijo, s katero želite deliti:</translation>
 <translation id="6871644448911473373">Odzivnik OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Vneseno geslo je zavrnil strežnik.</translation>
 <translation id="6876155724392614295">Kolo</translation>
@@ -4432,6 +4442,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – dnevnik dejavnosti</translation>
 <translation id="6997707937646349884">V vaših napravah:</translation>
 <translation id="6998793565256476099">Včlanitev naprave za videokonference</translation>
+<translation id="6999956497249459195">Nova skupina</translation>
 <translation id="7000206553895739324">Tiskalnik <ph name="PRINTER_NAME" /> je povezan, vendar ga je treba konfigurirati</translation>
 <translation id="7000347579424117903">Vključevati morajo Ctrl, Alt ali tipko za iskanje</translation>
 <translation id="7001036685275644873">Varnostno kopiranje aplikacij in datotek za Linux</translation>
@@ -4730,6 +4741,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Nastavitev povezave v telefonu <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Opusti to sporočilo</translation>
+<translation id="7403642243184989645">Prenos sredstev</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Varnostno preverjanje je bilo izvedeno pred 1 uro}one{Varnostno preverjanje je bilo izvedeno pred {NUM_HOURS} uro}two{Varnostno preverjanje je bilo izvedeno pred {NUM_HOURS} urama}few{Varnostno preverjanje je bilo izvedeno pred {NUM_HOURS} urami}other{Varnostno preverjanje je bilo izvedeno pred {NUM_HOURS} urami}}</translation>
 <translation id="740624631517654988">Pojavno okno je blokirano</translation>
 <translation id="7407430846095439694">Uvoz in vezava</translation>
@@ -4966,6 +4978,7 @@
 <translation id="7716781361494605745">Spletni naslov pravilnika overitelja Netscapeovega potrdila</translation>
 <translation id="7717014941119698257">Prenos: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Preveri, ali so na voljo posodobitve</translation>
+<translation id="7719070594859855691">Omogočite dostop do kamere</translation>
 <translation id="7719367874908701697">Povečava/pomanjšava strani</translation>
 <translation id="7721179060400456005">Dovoli prikaz oken čez več zaslonov</translation>
 <translation id="7722040605881499779">Potrebno za posodobitev: <ph name="NECESSARY_SPACE" /></translation>
@@ -4980,7 +4993,6 @@
 <translation id="7744047395460924128">Ogled zgodovine tiskanja</translation>
 <translation id="7744192722284567281">Najdeno pri podatkovni kršitvi</translation>
 <translation id="7750228210027921155">Slika v sliki</translation>
-<translation id="7751229152614300329">Varno brskanje je posodobljeno in vas ščiti pred škodljivimi spletnimi mesti in prenosi</translation>
 <translation id="7751260505918304024">Prikaži vse</translation>
 <translation id="7754704193130578113">Pred prenosom vprašaj, kam želim shraniti vsako datoteko</translation>
 <translation id="7755287808199759310">Starš ga lahko odblokira</translation>
@@ -5068,6 +5080,7 @@
     <ph name="BEGIN_BOLD" />Opomba:<ph name="END_BOLD" /> sistem se bo med postopkom znova zagnal.</translation>
 <translation id="7828731929332799387">S tem bodo izbrisani vsi piškotki in podatki spletnih mest, na voljo v kontekstih drugih ponudnikov. Ali želite nadaljevati?</translation>
 <translation id="7829298379596169484">Dostopanje do zvočnega vhoda</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne more preveriti vaših gesel. Poskusite preveriti internetno povezavo.</translation>
 <translation id="7829877209233347340">Prosi starša, naj se prijavi, da odobri dovoljenje za dodajanje šolskega računa</translation>
 <translation id="7830594666202422257">Povezava z Linuxom</translation>
 <translation id="7831491651892296503">Napaka pri konfiguriranju omrežja</translation>
@@ -5290,6 +5303,7 @@
 <translation id="8107015733319732394">Nameščanje Trgovine Google Play v napravi <ph name="DEVICE_TYPE" />. To lahko traja nekaj minut.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Ni piškotkov drugih spletnih mest}=1{1 piškotek drugega spletnega mesta je blokiran}one{# piškotek drugih spletnih mest je blokiran}two{# piškotka drugih spletnih mest sta blokirana}few{# piškotki drugih spletnih mest so blokirani}other{# piškotkov drugih spletnih mest je blokiranih}}</translation>
 <translation id="810875025413331850">Ni naprav v bližini.</translation>
+<translation id="8114199541033039755">Premikanje na začetni zaslon in nazaj ter preklop med aplikacijami z gumbi v načinu tabličnega računalnika. Ta možnost je vklopljena, če je omogočen ChromeVox ali je omogočena možnost samodejnih klikov.</translation>
 <translation id="8114875720387900039">Razdeli vodoravno</translation>
 <translation id="8116972784401310538">&amp;Upravitelj zaznamkov</translation>
 <translation id="8117620576188476503">Upravljanje povezav, posodobitev in nastavitev v vrstici stanja. Če želite dostopati s tipkovnico, pritisnite Alt + Shift + S.</translation>
@@ -5409,6 +5423,7 @@
 <translation id="8263744495942430914">Stran <ph name="FULLSCREEN_ORIGIN" /> je onemogočila miškin kazalec.</translation>
 <translation id="8264024885325823677">To nastavitev upravlja skrbnik.</translation>
 <translation id="8264718194193514834">Razširitev »<ph name="EXTENSION_NAME" />« je sprožila celozaslonski način.</translation>
+<translation id="826511437356419340">Izbran je način pregleda okna. Povlecite, če se želite premikati, ali pritisnite tabulatorko, če uporabljate tipkovnico.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />To so splošni podatki o napravi in tem, kako jo uporabljate (na primer raven napolnjenosti akumulatorja, dejavnost sistema in aplikacij ter napake). Podatki bodo uporabljeni za izboljšanje Androida, nekateri združeni podatki pa bodo v pomoč Googlovim aplikacijam in partnerjem, kot so razvijalci za Android, pri izboljšanju aplikacij in izdelkov.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Izklop te funkcije ne vpliva na zmožnost naprave, da pošilja podatke, potrebne za ključne storitve, kot so posodobitve in varnost sistema.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Lastnik lahko nadzira to funkcijo v »Nastavitve« &gt; »Dodatno« &gt; »Samodejno pošiljanje diagnostičnih podatkov in podatkov o uporabi Googlu«.<ph name="END_PARAGRAPH3" />
@@ -5517,6 +5532,7 @@
 <translation id="8426713856918551002">Omogočanje</translation>
 <translation id="8427292751741042100">vdelano v katerem koli gostitelju</translation>
 <translation id="8428213095426709021">Nastavitve</translation>
+<translation id="8428271547607112339">Dodaj šolski račun</translation>
 <translation id="8428628598981198790">Vašega varnostnega ključa na tem spletnem mestu ni mogoče uporabiti</translation>
 <translation id="84297032718407999">Odjavljeni boste čez <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Prikaz dotikov</translation>
@@ -5580,6 +5596,7 @@
 <translation id="851263357009351303">Vedno dovoli mestu <ph name="HOST" />, da pokaže slike</translation>
 <translation id="8513108775083588393">Samodejni zasuk</translation>
 <translation id="8514746246728959655">Poskusite z drugim varnostnim ključem</translation>
+<translation id="851960115758509829">Vaše aplikacije, nastavitve in druge prilagoditve se bodo sinhronizirale v vseh napravah s sistemom Chrome OS, v katerih ste prijavljeni z računom Google.</translation>
 <translation id="8521475323816527629">Hiter dostop do aplikacij</translation>
 <translation id="8523493869875972733">Ohranitev sprememb</translation>
 <translation id="8523849605371521713">Dodano s pravilnikom</translation>
@@ -5861,11 +5878,13 @@
 <translation id="885701979325669005">Shramba</translation>
 <translation id="8859057652521303089">Izberite jezik:</translation>
 <translation id="8859174528519900719">Podokvir: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Starševski račun</translation>
 <translation id="8862003515646449717">Preklop na hitrejši brskalnik</translation>
 <translation id="8863753581171631212">Odpiranje povezave v novem oknu aplikacije <ph name="APP" /></translation>
 <translation id="8864055848767439877">Deljenje zavihka <ph name="TAB_NAME" /> z aplikacijo <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Račun <ph name="EMAIL" /> je bil odstranjen iz te naprave</translation>
 <translation id="8867228703146808825">Kopiranje podrobnosti gradnje v odložišče</translation>
+<translation id="8868333925931032127">Zagon predstavitvenega načina</translation>
 <translation id="8868626022555786497">V uporabi</translation>
 <translation id="8870413625673593573">Nedavno zaprto</translation>
 <translation id="8871551568777368300">Pripel skrbnik</translation>
@@ -5944,6 +5963,7 @@
 <translation id="8966870118594285808">Znova odprite zavihek, če ste ga pomotoma zaprli</translation>
 <translation id="8967866634928501045">Pritisnite Alt + Shift + A, če želite pokazati</translation>
 <translation id="8968766641738584599">Shrani kartico</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne more preveriti vaših gesel. Poskusite znova čez 24 ur ali <ph name="BEGIN_LINK" />preverite gesla v računu Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Pri skrbniku omrežja se prepričajte, da požarni zid ne blokira prenosov iz Googlovih strežnikov.</translation>
 <translation id="8973557916016709913">Odstranitev stopnje povečave</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index 8b58b3d..bfd833bc 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Pajisjet që ofrohen</translation>
 <translation id="1042174272890264476">Kompjuteri yt vjen po ashtu me bibliotekën RLZ të <ph name="SHORT_PRODUCT_NAME" /> të integruar. Parametri RLZ cakton një etiketë jo unike, jo personalisht të identifikueshme për të matur kërkimet dhe përdorimin e <ph name="SHORT_PRODUCT_NAME" /> të nxitur nga një fushatë promocionale të veçantë. Këto etiketa ndonjëherë shfaqen në pyetjet e "Kërko me Google" në <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Do të pastrosh po ashtu të dhënat nga këto aplikacione?</translation>
+<translation id="1045448422538531528">Shto te grupi</translation>
 <translation id="1046635659603195359">Me sa duket e ke konfiguruar tashmë Voice Match me "Asistentin tënd të Google" në një pajisje tjetër. Këto regjistrime të mëparshme mund të përdoren për të krijuar një model zanor në këtë pajisje. Kjo duhet të kërkojë më pak se një minutë.</translation>
 <translation id="104710386808485638">Do ta rinisësh Linux?</translation>
 <translation id="1047431265488717055">Kopjo tekstin e lidhjes</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Blloko gjithmonë qasjen te kamera</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> dëshiron të restaurojë cilësimet e Chrome në parazgjedhjet origjinale. Kjo do të rivendosë faqen bazë, faqen e skedës së re dhe motorin e kërkimit, do të çaktivizojë shtesa dhe do të zhgozhdojë të gjitha skedat. Ajo do të pastrojë po ashtu të dhënat e tjera të përkohshme dhe në memorien specifike, si kukit, përmbajtjet dhe të dhënat e sajtit.</translation>
+<translation id="1084096383128641877">Heqja e këtij fjalëkalimi nuk do ta fshijë llogarinë tënde në <ph name="DOMAIN" />. Ndrysho fjalëkalimin ose fshi llogarinë tënde në <ph name="DOMAIN_LINK" /> për ta mbajtur të sigurt nga të tjerët.</translation>
 <translation id="1084824384139382525">Kopjo adr&amp;esën e lidhjes</translation>
 <translation id="1085697365578766383">Gabim me hapjen e pajisjes virtuale. Provo sërish.</translation>
 <translation id="1090126737595388931">Nuk ka aplikacione sfondi në punë</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Kontrolli i sigurisë u ekzekutua dje</translation>
 <translation id="1260451001046713751">Lejo gjithmonë dritaret kërcyese nga <ph name="HOST" /></translation>
 <translation id="126156426083987769">Ndodhi një problem me licencat e pajisjes të modalitetit të demonstrimit.</translation>
+<translation id="1263490604593716556">Llogaria menaxhohet nga <ph name="FIRST_PARENT_EMAIL" /> dhe <ph name="SECOND_PARENT_EMAIL" />. Për të dalë nga llogaria parësore në këtë pajisje, kliko te koha në ekran. Në menynë që shfaqet, kliko te "Dil".</translation>
 <translation id="126710816202626562">Gjuha e përkthimit:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Ndalo</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">Sajti i uebit</translation>
 <translation id="15662109988763471">Printeri i zgjedhur nuk ofrohet ose nuk është instaluar si duhet. Kontrollo printerin ose provo të zgjedhësh një printer tjetër.</translation>
 <translation id="1567387640189251553">Është lidhur një tastierë tjetër që nga hera e fundit që fute fjalëkalimin tënd. Ajo ndoshta po përpiqet të regjistrojë goditjet e tasteve.</translation>
-<translation id="1567750922576943685">Verifikimi i identitetit tënd ndihmon në mbrojtjen e të dhënave të tua personale</translation>
 <translation id="1567993339577891801">Paneli i JavaScript</translation>
 <translation id="1568323446248056064">Hap cilësimet e ekranit të pajisjes</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (vizitor)</translation>
@@ -516,7 +518,6 @@
 <translation id="1697150536837697295">Art</translation>
 <translation id="1697686431566694143">Modifiko skedarin</translation>
 <translation id="1698122934742150150">Vetëm sesioni aktual i fshehtë</translation>
-<translation id="1698650002254827833">Lista e aplikacioneve nuk mund të ngarkohet. Provo sërish.</translation>
 <translation id="1700079447639026019">Sajtet që nuk mund t'i përdorin asnjëherë kukit</translation>
 <translation id="1701062906490865540">Hiqe këtë person</translation>
 <translation id="1703331064825191675">Mos u shqetëso asnjëherë për fjalëkalime e tua</translation>
@@ -870,6 +871,7 @@
 <translation id="2172784515318616985">Vazhdo</translation>
 <translation id="2173302385160625112">Kontrollo lidhjen e internetit</translation>
 <translation id="2173801458090845390">Shto ID-në e kërkesës në këtë pajisje</translation>
+<translation id="2174948148799307353">Llogaria menaxhohet nga <ph name="PARENT_EMAIL" />. Për të dalë nga llogaria parësore në këtë pajisje, kliko te koha në ekran. Në menynë që shfaqet, kliko te "Dil".</translation>
 <translation id="2175607476662778685">Shiriti i nisjes së shpejtë</translation>
 <translation id="217576141146192373">Printeri nuk mund të shtohet. Kontrollo konfigurimin e printerit dhe provo përsëri.</translation>
 <translation id="2177950615300672361">Skedë "e fshehtë": <ph name="TAB_NAME" /></translation>
@@ -1078,7 +1080,6 @@
 <translation id="2442916515643169563">Hija e tekstit</translation>
 <translation id="2445081178310039857">Kërkohet direktoria rrënjë e shtesës.</translation>
 <translation id="2445484935443597917">Krijo një profil të ri</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> dëshiron të verifikojë identitetin tënd</translation>
 <translation id="2448312741937722512">Shkruaj</translation>
 <translation id="2450223707519584812">Nuk do të jesh në gjendje të shtosh përdorues sepse mungojnë çelësat e API Google. Shiko <ph name="DETAILS_URL" /> për detaje.</translation>
 <translation id="2450849356604136918">Nuk ka shikime aktive</translation>
@@ -1476,6 +1477,7 @@
 <translation id="2948300991547862301">Shko te <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Një shfletues uebi i shpejtë, i thjeshtë dhe i sigurt, i krijuar për uebin modern.</translation>
 <translation id="2949289451367477459">Përdor vendndodhjen. Lejo që aplikacionet dhe shërbimet me autorizim për vendndodhje të përdorin vendndodhjen e kësaj pajisjeje. Google mund të mbledhë në mënyrë periodike të dhëna të vendndodhjes dhe t'i përdorë ato në mënyrë anonime për të përmirësuar saktësinë e vendndodhjes dhe shërbimet e bazuara te vendndodhja. <ph name="BEGIN_LINK1" />Mëso më shumë<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Më regjistro</translation>
 <translation id="2956070239128776395">Seksioni i përfshirë në grup: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Mos lejo sajtet të modifikojnë skedarët ose dosjet në pajisjen tënde</translation>
 <translation id="2958721676848865875">Paralajmërim i paketimit të shtesës</translation>
@@ -1600,6 +1602,7 @@
 <translation id="3139925690611372679">Avatari i parazgjedhur i verdhë</translation>
 <translation id="3141318088920353606">Po dëgjon…</translation>
 <translation id="3141917231319778873">Kërkesa e dhënë nuk mbështetet te: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Grup i ri</translation>
 <translation id="3143515551205905069">Anulo sinkronizimin</translation>
 <translation id="3143754809889689516">Luaj nga fillimi</translation>
 <translation id="3144647712221361880">Hape lidhjen si</translation>
@@ -1624,6 +1627,7 @@
 <translation id="3159493096109238499">Bezhë</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (mbështetu nga hardueri)</translation>
 <translation id="3161522574479303604">Të gjitha gjuhët</translation>
+<translation id="3162853326462195145">Llogaria e shkollës</translation>
 <translation id="3162899666601560689">Sajtet mund t'i përdorin kukit për të përmirësuar përvojën e shfletimit, për shembull për të të mbajtur të identifikuar ose për të kujtuar artikujt në karrocën e blerjeve</translation>
 <translation id="3163201441334626963">Produkt i panjohur <ph name="PRODUCT_ID" /> nga shitësi <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Po ndan këtë skedë në <ph name="APP_NAME" /></translation>
@@ -1682,7 +1686,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Përditëso pajisjen brenda një dite}other{Përditëso pajisjen brenda # ditësh}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - gabim i rrjetit</translation>
 <translation id="3248902735035392926">Siguria ka rëndësi. Gjej një moment <ph name="BEGIN_LINK" />për të kontrolluar shtesat e tua tani<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Jo pjesë e certifikatës&gt;</translation>
 <translation id="3253225298092156258">Nuk ofrohet</translation>
 <translation id="3253448572569133955">Llogari e panjohur</translation>
@@ -1787,6 +1790,7 @@
 <translation id="3396800784455899911">Duke klikuar butonin "Prano dhe vazhdo", bie njëherësh dakord me përpunimin e përshkruar më lart për këto shërbime të Google.</translation>
 <translation id="3399432415385675819">Njoftimet do të çaktivizohen</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> herc) - të gërshetuara</translation>
+<translation id="3402585168444815892">Po regjistrohesh në modalitetin e demonstrimit</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Nuk ka fjalëkalime të ruajtura për këtë sajt</translation>
 <translation id="3405664148539009465">Personalizo shkrimin</translation>
@@ -1848,6 +1852,7 @@
 <translation id="3468999815377931311">Telefon me Android</translation>
 <translation id="3470442499439619530">Hiqe këtë përdorues</translation>
 <translation id="3471876058939596279">HDMI dhe portat e tjera të USB-së së tipit C nuk mund të përdoren për video njëkohësisht. Përdor një portë tjetër video.</translation>
+<translation id="3473241910002674503">Navigo për në faqen kryesore, kthehu prapa dhe ndërro aplikacionet me butonat në modalitetin e tabletit.</translation>
 <translation id="3473479545200714844">Zmadhuesi i ekranit</translation>
 <translation id="3475843873335999118">Na vjen keq, por gjurma e gishtit nuk njihet ende. Fut fjalëkalimin tënd.</translation>
 <translation id="3476303763173086583">Dërgo të dhënat e përdorimit dhe të diagnostikimit. Ndihmo në përmirësimin e përvojës së fëmijës tënd me Android duke dërguar automatikisht te Google të dhënat e diagnostikimit dhe të përdorimit të pajisjes dhe aplikacioneve. Këto nuk do të përdoren për të identifikuar fëmijën tënd dhe do të ndihmojnë për qëndrueshmërinë e sistemit dhe të aplikacioneve dhe për përmirësime të tjera. Disa të dhëna të përmbledhura do të ndihmojnë po ashtu aplikacionet dhe partnerët e Google, si p.sh. zhvilluesit e Android. Ky <ph name="BEGIN_LINK1" />cilësim<ph name="END_LINK1" /> zbatohet nga zotëruesi. Zotëruesi mund të zgjedhë të dërgojë te Google të dhënat e diagnostikimit dhe të përdorimit për këtë pajisje. Nëse cilësimi i "Aktivitetit shtesë të uebit dhe të aplikacioneve" është i aktivizuar për fëmijën tënd, këto të dhëna mund të ruhen në "Llogarinë e Google" të fëmijës. <ph name="BEGIN_LINK2" />Mëso më shumë<ph name="END_LINK2" /></translation>
@@ -2272,6 +2277,7 @@
 <translation id="3971764089670057203">Gjurmët e gishtave në këtë çelës sigurie</translation>
 <translation id="3973660817924297510">Po kontrollon fjalëkalimet (<ph name="CHECKED_PASSWORDS" /> nga <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Kontaktimi me serverin për zonën e verifikimit dështoi</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> nuk mund t'i kontrollojë fjalëkalimet e tua. Provo përsëri më vonë.</translation>
 <translation id="3976108569178263973">Nuk u gjetën printerë.</translation>
 <translation id="397703832102027365">Po përfundon...</translation>
 <translation id="3977886311744775419">Përditësimet automatike nuk përditësohen në këtë lloj rrjeti, por mund të kontrollosh për përditësime manualisht.</translation>
@@ -2335,6 +2341,7 @@
 <translation id="4068506536726151626">Kjo faqe përmban elementë nga sajtet vijuese, që po gjurmojnë vendndodhjen tënde:</translation>
 <translation id="4068776064906523561">Gjurmët e ruajtura të gishtave</translation>
 <translation id="407173827865827707">Me klikim</translation>
+<translation id="4073520450811433493">Sinkronizimi i cilësimeve</translation>
 <translation id="4074900173531346617">Certifikata e nënshkruesit të mail-it</translation>
 <translation id="407520071244661467">Shkalla</translation>
 <translation id="4075639477629295004">Nuk mund të transmetojë <ph name="FILE_NAME" />.</translation>
@@ -2571,6 +2578,7 @@
 <translation id="4421932782753506458">Mace</translation>
 <translation id="4423376891418188461">Restauro cilësimet</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, administratori të kërkon që të ndryshosh fjalëkalimin.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> nuk mund t'i kontrollojë fjalëkalimet e tua. Provo përsëri pas 24 orësh.</translation>
 <translation id="4429030830601238961">Këto të dhëna shkelin politikat e sigurisë së organizatës sate dhe nuk mund të ngjiten.</translation>
 <translation id="4430019312045809116">Volumi</translation>
 <translation id="4430369329743628066">Faqeshënuesi u shtua</translation>
@@ -2583,6 +2591,7 @@
 <translation id="4441124369922430666">Dëshiron që ta nisësh automatikisht këtë aplikacion kur të ndizet kompjuteri?</translation>
 <translation id="4441147046941420429">Për të vazhduar, hiqe çelësin tënd të sigurisë nga pajisja jote dhe më pas fute përsëri dhe preke atë</translation>
 <translation id="444134486829715816">Zgjero...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> mund t'i kontrollojë fjalëkalimet e tua kur të identifikohesh me "Llogarinë tënde të Google".</translation>
 <translation id="4442424173763614572">Kërkimi i DNS-së dështoi</translation>
 <translation id="4443536555189480885">&amp;Ndihma</translation>
 <translation id="4444304522807523469">Qasu te skanerët e dokumenteve të lidhur me USB ose në rrjetin lokal</translation>
@@ -2609,11 +2618,13 @@
 <translation id="4476659815936224889">Për ta skanuar këtë kod, mund të përdorësh një aplikacion skaneri të kodeve QR në telefon ose disa aplikacione për kamera.</translation>
 <translation id="4477015793815781985">Përfshi Ctrl, Alt ose ⌘</translation>
 <translation id="4478664379124702289">Ruaje lidhj&amp;en si...</translation>
+<translation id="4478777936860197922">Nuk ka asnjë fjalëkalim të ruajtur. <ph name="IDS_SHORT_PRODUCT_NAME" /> mund t'i kontrollojë fjalëkalimet e tua kur ti i ruan ato.</translation>
 <translation id="4479424953165245642">Menaxho aplikacionet "kioskë"</translation>
 <translation id="4479639480957787382">Eternet</translation>
 <translation id="4479877282574735775">Pajisja virtuale po konfigurohet. Kjo mund të zgjasë disa minuta.</translation>
 <translation id="4480590691557335796">Chrome mund të gjejë një softuer keqdashës në kompjuterin tënd dhe ta heqë atë</translation>
 <translation id="4481530544597605423">Pajisjet e paçiftuara</translation>
+<translation id="4488107067273194838">Rishiko opsionet e sinkronizimit të shfletuesit pas konfigurimit</translation>
 <translation id="4488502501195719518">Të pastrohen të gjitha të dhënat?</translation>
 <translation id="4495419450179050807">Mos e shfaq në këtë faqe</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> është bllokuar automatikisht</translation>
@@ -2855,6 +2866,7 @@
 <translation id="4849517651082200438">Mos e instalo</translation>
 <translation id="4850669014075537160">Lëvizja</translation>
 <translation id="4850886885716139402">Pamja</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> do të të njoftojë kur të identifikohesh me një fjalëkalim të komprometuar</translation>
 <translation id="4853020600495124913">Hape në dritare &amp;të re</translation>
 <translation id="4854317507773910281">Zgjidh llogarinë e prindit për miratimin</translation>
 <translation id="485480310608090163">Cilësime dhe leje të tjera</translation>
@@ -2873,6 +2885,7 @@
 <translation id="4871322859485617074">Kodi PIN përmban karaktere të pavlefshme</translation>
 <translation id="4871370605780490696">Shto faqeshënues</translation>
 <translation id="4871719318659334896">Mbyll grupin</translation>
+<translation id="4871852311166078968">Shto te grupi</translation>
 <translation id="4873312501243535625">Kontrolluesi i skedarëve të medias</translation>
 <translation id="4876273079589074638">Ndihmo inxhinierët tanë të hetojnë dhe të rregullojnë këtë ndërprerje aksidentale. Rendit hapat e saktë nëse është e mundur. Nuk ka detaje të tepërta!</translation>
 <translation id="4876895919560854374">Kyç dhe shkyç ekranin</translation>
@@ -2964,7 +2977,6 @@
 <translation id="4992473555164495036">Administratori yt ka kufizuar mënyrat e mundshme të shkrimit.</translation>
 <translation id="4994474651455208930">Lejo faqet të pyesin dhe të bëhen përpunues të parazgjedhur për protokollet</translation>
 <translation id="4994754230098574403">Po konfiguron</translation>
-<translation id="4996978546172906250">Ndaje nëpërmjet</translation>
 <translation id="4997086284911172121">Nuk ka lidhje me internetin.</translation>
 <translation id="4997384734315285248">Çinstalo Plugin VM</translation>
 <translation id="4998430619171209993">Aktiv</translation>
@@ -3064,7 +3076,6 @@
 <translation id="5135085122826131075">Hap "Asistentin" kur thua "Ok Google".</translation>
 <translation id="5135533361271311778">Artikulli i faqeshënuesve nuk mund të krijohej.</translation>
 <translation id="5137501176474113045">Fshije këtë artikull</translation>
-<translation id="5138982052046316113">Ndrysho madhësinë e diskut të Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, kërko në <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Fut kodin PIN për çelësin e sigurisë. Nëse nuk e di kodin PIN, do të duhet ta rivendosësh çelësin e sigurisë.</translation>
 <translation id="5139955368427980650">&amp;Hape</translation>
@@ -3516,6 +3527,7 @@
 <translation id="5739235828260127894">Në pritje të verifikimit. <ph name="LINK_BEGIN" />Mëso më shumë<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Shumë të mëdha</translation>
 <translation id="574209121243317957">Tonaliteti</translation>
+<translation id="5745136023067925867">Merr këshilla, oferta dhe përditësime për <ph name="DEVICE_TYPE" /> dhe ndaj komentet e tua</translation>
 <translation id="5746169159649715125">Ruaj si PDF</translation>
 <translation id="5747552184818312860">Skadon</translation>
 <translation id="5747785204778348146">Programimi - i paqëndrueshëm</translation>
@@ -3928,7 +3940,6 @@
 <translation id="6291953229176937411">Shfaqe te "Gjetësi"</translation>
 <translation id="6295158916970320988">Të gjitha sajtet</translation>
 <translation id="6295855836753816081">Po ruan...</translation>
-<translation id="629730747756840877">Llogaria</translation>
 <translation id="6298962879096096191">Përdor Google Play për të instaluar aplikacionet e Android</translation>
 <translation id="630065524203833229">D&amp;il</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> nuk mund të konfigurohej automatikisht. Përcakto detajet e përparuara të printerit. <ph name="LINK_BEGIN" />Mëso më shumë<ph name="LINK_END" /></translation>
@@ -4334,7 +4345,6 @@
 <translation id="6865598234501509159">Faqja nuk është në <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Evidencat e ngjarjeve WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura e ngjyrës</translation>
-<translation id="6870888490422746447">Zgjidh një aplikacion për të ndarë te:</translation>
 <translation id="6871644448911473373">Reaguesi OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Fjalëkalimi që fute u refuzua nga serveri.</translation>
 <translation id="6876155724392614295">Biçikletë</translation>
@@ -4427,6 +4437,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Evidenca e aktivitetit</translation>
 <translation id="6997707937646349884">Në pajisjet e tua:</translation>
 <translation id="6998793565256476099">Regjistro pajisjen për video-konferencë</translation>
+<translation id="6999956497249459195">Grup i ri</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> është i lidhur, por ka nevojë për konfigurim</translation>
 <translation id="7000347579424117903">Përfshi tastin Ctrl, Alt ose "Kërko"</translation>
 <translation id="7001036685275644873">Po rezervon aplikacionet dhe skedarët Linux</translation>
@@ -4725,6 +4736,7 @@
 <translation id="7400418766976504921">URL-ja</translation>
 <translation id="7400839060291901923">Konfiguro lidhjen në telefonin tënd <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Hiqe këtë mesazh</translation>
+<translation id="7403642243184989645">Po shkarkohen burimet</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Kontrolli i sigurisë u ekzekutua 1 orë më parë}other{Kontrolli i sigurisë u ekzekutua {NUM_HOURS} orë më parë}}</translation>
 <translation id="740624631517654988">Dritarja kërcyese është e bllokuar</translation>
 <translation id="7407430846095439694">Importo dhe lidh</translation>
@@ -4961,6 +4973,7 @@
 <translation id="7716781361494605745">URL-ja e politikës së autoritetit të certifikimit të Netscape</translation>
 <translation id="7717014941119698257">Po shkarkon: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Kontrollo për përditësime</translation>
+<translation id="7719070594859855691">Jep qasje te kamera</translation>
 <translation id="7719367874908701697">Zmadhimi i faqes</translation>
 <translation id="7721179060400456005">Lejo që dritaret t'i zgjerojnë ekranet</translation>
 <translation id="7722040605881499779">Nevojitet për përditësimin: <ph name="NECESSARY_SPACE" /></translation>
@@ -4975,7 +4988,6 @@
 <translation id="7744047395460924128">Shiko historikun tënd të printimit</translation>
 <translation id="7744192722284567281">U gjet në një nxjerrje të paautorizuar të të dhënave</translation>
 <translation id="7750228210027921155">Figurë brenda figurës</translation>
-<translation id="7751229152614300329">"Shfletimi i sigurt" është i përditësuar dhe po të mbron nga sajtet dhe shkarkimet e dëmshme</translation>
 <translation id="7751260505918304024">Shfaq të gjitha</translation>
 <translation id="7754704193130578113">Pyet se ku do ta ruash çdo skedar para shkarkimit</translation>
 <translation id="7755287808199759310">Prindi yt mund ta zhbllokojë atë për ty</translation>
@@ -5062,6 +5074,7 @@
     <ph name="BEGIN_BOLD" />Shënim:<ph name="END_BOLD" />  Sistemi do të rifillojë punën gjatë procesit.</translation>
 <translation id="7828731929332799387">Kjo do të fshijë të gjitha kukit dhe të dhënat e sajtit që ofrohen në kontekstet e palëve të treta. Dëshiron të vazhdosh?</translation>
 <translation id="7829298379596169484">Po qaset në hyrjen e audios</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> nuk mund t'i kontrollojë fjalëkalimet e tua. Provo të kontrollosh lidhjen e internetit.</translation>
 <translation id="7829877209233347340">Kërkoji prindit që të të japë leje për të shtuar një llogari shkolle</translation>
 <translation id="7830594666202422257">Lidhe me Linux</translation>
 <translation id="7831491651892296503">Gabim gjatë konfigurimit të rrjetit</translation>
@@ -5283,6 +5296,7 @@
 <translation id="8107015733319732394">Po instalon Google Play Store në pajisjen tënde <ph name="DEVICE_TYPE" />. Kjo mund të kërkojë disa minuta kohë.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Asnjë kuki e palëve të treta}=1{1 kuki e palëve të treta është bllokuar}other{# kuki të palëve të treta janë bllokuar}}</translation>
 <translation id="810875025413331850">Nuk u gjetën pajisje afër.</translation>
+<translation id="8114199541033039755">Navigo për në faqen kryesore, kthehu prapa dhe ndërro aplikacionet me butonat në modalitetin e tabletit. Aktivizohet kur bëhen aktive ChromeVox ose "Klikimet automatike".</translation>
 <translation id="8114875720387900039">Horizontal i ndarë</translation>
 <translation id="8116972784401310538">&amp;Menaxheri i faqeshënuesve</translation>
 <translation id="8117620576188476503">Menaxho lidhjet, përditësimet dhe cilësimet me tabakanë e statusit. Për të arritur këtu me anë të tastierës, shtyp Alt + Shift + S.</translation>
@@ -5402,6 +5416,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ka çaktivizuar kursorin e miut.</translation>
 <translation id="8264024885325823677">Ky cilësim menaxhohet nga administratori yt.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" aktivizoi ekranin e plotë.</translation>
+<translation id="826511437356419340">Hyre në modalitetin e përmbledhjes së dritares. Rrëshqit shpejt për të naviguar ose shtyp Tab nëse po përdor një tastierë.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ky është informacion i përgjithshëm për këtë pajisje dhe se si e përdor (si p.sh. niveli i baterisë, aktiviteti i sistemit dhe i aplikacioneve dhe gabimet). Të dhënat do të përdoren për të përmirësuar Android, ndërsa disa informacione të grumbulluara do të ndihmojnë gjithashtu aplikacionet dhe partnerët e Google, si p.sh. zhvilluesit e Android, për të përmirësuar aplikacionet dhe produktet e tyre.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Çaktivizimi i këtij funksioni nuk ndikon në aftësinë e pajisjes sate për të dërguar informacionin që nevojitet për shërbime bazë si p.sh. përditësimet dhe siguria e sistemit.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Zotëruesi mund ta kontrollojë këtë veçori nga "Cilësimet &gt; "Të përparuara" &gt; "Dërgoji automatikisht te Google të dhënat diagnostikuese dhe të përdorimit".<ph name="END_PARAGRAPH3" />
@@ -5510,6 +5525,7 @@
 <translation id="8426713856918551002">Po aktivizohet</translation>
 <translation id="8427292751741042100">integruar në çdo strehues</translation>
 <translation id="8428213095426709021">Cilësimet</translation>
+<translation id="8428271547607112339">Shto llogarinë e shkollës</translation>
 <translation id="8428628598981198790">Çelësi yt i sigurisë nuk mund të përdoret me këtë sajt</translation>
 <translation id="84297032718407999">Do të dalësh për <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Shfaq trokitjet</translation>
@@ -5573,6 +5589,7 @@
 <translation id="851263357009351303">Lejo gjithmonë që <ph name="HOST" /> të shfaqë imazhet</translation>
 <translation id="8513108775083588393">Rrotullim automatik</translation>
 <translation id="8514746246728959655">Provo një çelës tjetër sigurie</translation>
+<translation id="851960115758509829">Aplikacionet, cilësimet dhe personalizimet e tua të tjera do të sinkronizohen nëpër të gjitha pajisjet me Chrome OS ku je identifikuar me "Llogarinë tënde të Google".</translation>
 <translation id="8521475323816527629">Merr aplikacionet e tua me shpejtësi</translation>
 <translation id="8523493869875972733">Mbaji ndryshimet</translation>
 <translation id="8523849605371521713">Shtuar sipas politikës</translation>
@@ -5854,11 +5871,13 @@
 <translation id="885701979325669005">Hapësira ruajtëse</translation>
 <translation id="8859057652521303089">Përzgjidh gjuhën tënde:</translation>
 <translation id="8859174528519900719">Nënkuadri: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Llogaria e prindit</translation>
 <translation id="8862003515646449717">Kalo te një shfletues i shpejtë</translation>
 <translation id="8863753581171631212">Hape lidhjen në dritaren e re të <ph name="APP" /></translation>
 <translation id="8864055848767439877">Po ndahet <ph name="TAB_NAME" /> te <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> u hoq nga kjo pajisje</translation>
 <translation id="8867228703146808825">Kopjo detajet e ndërtimit në kujtesën e fragmenteve</translation>
+<translation id="8868333925931032127">Po niset modaliteti i demonstrimit</translation>
 <translation id="8868626022555786497">Në përdorim</translation>
 <translation id="8870413625673593573">Të mbyllura së fundi</translation>
 <translation id="8871551568777368300">Gozhduar nga administratori</translation>
@@ -5937,6 +5956,7 @@
 <translation id="8966870118594285808">Hape përsëri një skedë nëse e ke mbyllur aksidentalisht</translation>
 <translation id="8967866634928501045">Shtyp Alt Shift A për të shfaqur</translation>
 <translation id="8968766641738584599">Ruaj kartën</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> nuk mund t'i kontrollojë fjalëkalimet e tua. Provo përsëri pas 24 orësh ose <ph name="BEGIN_LINK" />kontrollo fjalëkalimet në "Llogarinë tënde të Google"<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Largohu</translation>
 <translation id="8972513834460200407">Kontrollo me administratorin e rrjetit tënd për t'u siguruar se muri mbrojtës nuk po bllokon shkarkimet nga serverët e Google.</translation>
 <translation id="8973557916016709913">Hiq nivelin e zmadhimit</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index 9eb3d361..2f2b9a0 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Dostupni uređaji</translation>
 <translation id="1042174272890264476">Uz računar takođe dobijate ugrađenu RLZ biblioteku proizvoda <ph name="SHORT_PRODUCT_NAME" />. RLZ dodeljuje nejedinstvenu oznaku pomoću koje vas nije moguće lično identifikovati da bi izmerio pretrage i korišćenje proizvoda <ph name="SHORT_PRODUCT_NAME" /> koji su podstaknuti određenom promotivnom kampanjom. Te oznake se ponekad prikazuju u upitima Google pretrage u proizvodu <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Želite i da obrišete podatke iz ovih aplikacija?</translation>
+<translation id="1045448422538531528">Dodajte u grupu</translation>
 <translation id="1046635659603195359">Izgleda da ste već podesili Voice Match sa Google pomoćnikom na nekom drugom uređaju. Ovi prethodni snimci mogu da se koriste za pravljenje glasovnog modela na ovom uređaju. To bi trebalo da traje manje od jednog minuta.</translation>
 <translation id="104710386808485638">Želite li da restartujete Linux?</translation>
 <translation id="1047431265488717055">Kopiraj tek&amp;st linka</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Uvek blokiraj pristup kameri</translation>
 <translation id="1082398631555931481">Alatka <ph name="THIRD_PARTY_TOOL_NAME" /> želi da vrati podešavanja Chrome-a na prvobitne podrazumevane vrednosti. To će resetovati početnu stranicu, stranicu nove kartice i pretraživač, onemogućiće dodatke i otkačiti sve kartice. Takođe će obrisati druge privremene i keširane podatke, poput kolačića, sadržaja i podataka o sajtovima.</translation>
+<translation id="1084096383128641877">Uklanjanjem ove lozinke nećete izbrisati nalog na <ph name="DOMAIN" />. Promenite lozinku ili izbrišite nalog na <ph name="DOMAIN_LINK" /> da biste ga zaštitili od drugih.</translation>
 <translation id="1084824384139382525">Kopiraj adr&amp;esu linka</translation>
 <translation id="1085697365578766383">Greška pri pokretanju virtuelne mašine. Probajte ponovo.</translation>
 <translation id="1090126737595388931">Nije pokrenuta nijedna pozadinska aplikacija</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Bezbednosna provera je pokrenuta juče</translation>
 <translation id="1260451001046713751">Uvek dozvoli iskačuće prozore i preusmeravanja sa <ph name="HOST" /></translation>
 <translation id="126156426083987769">Došlo je do problema sa licencama za uređaj u režimu demonstracije.</translation>
+<translation id="1263490604593716556">Nalogom upravljaju <ph name="FIRST_PARENT_EMAIL" /> i <ph name="SECOND_PARENT_EMAIL" />. Da biste se odjavili sa primarnog naloga na ovom uređaju, kliknite na vreme na ekranu. U meniju koji se pojavljuje kliknite na Odjavi me.</translation>
 <translation id="126710816202626562">Jezik na koji se prevodi:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Zaustavi</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">Veb-sajt</translation>
 <translation id="15662109988763471">Izabrani štampač nije dostupan ili nije pravilno instaliran. Proverite štampač ili izaberite neki drugi.</translation>
 <translation id="1567387640189251553">Neka druga tastatura je povezana otkako ste poslednji put uneli lozinku. Možda pokušava da ukrade vašu kombinaciju tastera.</translation>
-<translation id="1567750922576943685">Potvrda identiteta pomaže u zaštiti ličnih podataka</translation>
 <translation id="1567993339577891801">JavaScript konzola</translation>
 <translation id="1568323446248056064">Otvori podešavanja uređaja za ekran</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (gost)</translation>
@@ -516,7 +518,6 @@
 <translation id="1697150536837697295">Umetnost</translation>
 <translation id="1697686431566694143">Izmeni datoteku</translation>
 <translation id="1698122934742150150">Samo aktuelna sesija bez arhiviranja</translation>
-<translation id="1698650002254827833">Ne možemo da učitamo listu aplikacija. Pokušajte ponovo.</translation>
 <translation id="1700079447639026019">Sajtovi koji nikada ne mogu da koriste kolačiće</translation>
 <translation id="1701062906490865540">Ukloni ovu osobu</translation>
 <translation id="1703331064825191675">Nikada ne brinite o lozinkama</translation>
@@ -870,6 +871,7 @@
 <translation id="2172784515318616985">Nastavi</translation>
 <translation id="2173302385160625112">Proverite internet vezu</translation>
 <translation id="2173801458090845390">Dodajte ID zahteva na ovaj uređaj</translation>
+<translation id="2174948148799307353">Nalogom upravlja <ph name="PARENT_EMAIL" />. Da biste se odjavili sa primarnog naloga na ovom uređaju, kliknite na vreme na ekranu. U meniju koji se pojavljuje kliknite na Odjavi me.</translation>
 <translation id="2175607476662778685">Traka „Brzo pokretanje“</translation>
 <translation id="217576141146192373">Dodavanje štampača nije uspelo. Proverite konfiguraciju štampača i probajte ponovo.</translation>
 <translation id="2177950615300672361">Kartica Bez arhiviranja: <ph name="TAB_NAME" /></translation>
@@ -1078,7 +1080,6 @@
 <translation id="2442916515643169563">Senka teksta</translation>
 <translation id="2445081178310039857">Osnovni direktorijum dodatka je obavezan.</translation>
 <translation id="2445484935443597917">Napravi nov profil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> želi da potvrdi vaš identitet</translation>
 <translation id="2448312741937722512">Tip</translation>
 <translation id="2450223707519584812">Nećete moći da dodajete korisnike zato što nedostaju šifre za Google API. Potražite detalje na <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Nema aktivnih prikaza</translation>
@@ -1476,6 +1477,7 @@
 <translation id="2948300991547862301">Idi na <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Brz, jednostavan i bezbedan veb-pregledač napravljen za moderni veb.</translation>
 <translation id="2949289451367477459">Koristite lokaciju. Dozvolite aplikacijama i uslugama sa dozvolom za lokaciju da koriste lokaciju ovog uređaja. Google može povremeno da prikuplja podatke o lokaciji i da ih koristi na anoniman način za poboljšanje preciznosti lokacije i usluga zasnovanih na lokaciji. <ph name="BEGIN_LINK1" />Saznajte više<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Registruj me</translation>
 <translation id="2956070239128776395">Odeljak ugnežden u grupu: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Onemogućite da bilo koji sajt menja datoteke ili direktorijume na uređaju</translation>
 <translation id="2958721676848865875">Upozorenje o pakovanju dodatka</translation>
@@ -1600,6 +1602,7 @@
 <translation id="3139925690611372679">Podrazumevani žuti avatar</translation>
 <translation id="3141318088920353606">Sluša se...</translation>
 <translation id="3141917231319778873">Dati zahtev nije podržan na: „<ph name="DEVICE_NAME" />“.</translation>
+<translation id="3142562627629111859">Nova grupa</translation>
 <translation id="3143515551205905069">Otkaži sinhronizaciju</translation>
 <translation id="3143754809889689516">Pusti ispočetka</translation>
 <translation id="3144647712221361880">Otvorite link kao</translation>
@@ -1624,6 +1627,7 @@
 <translation id="3159493096109238499">Bež</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardver je sertifikovan)</translation>
 <translation id="3161522574479303604">Svi jezici</translation>
+<translation id="3162853326462195145">Školski nalog</translation>
 <translation id="3162899666601560689">Sajtovi mogu da koriste kolačiće za poboljšanje doživljaja pregledanja, na primer, da biste ostali prijavljeni ili da bi stavke u vašoj korpi za kupovinu ostale sačuvane</translation>
 <translation id="3163201441334626963">Nepoznati proizvod <ph name="PRODUCT_ID" /> prodavca <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Ova kartica se deli sa aplikacijom <ph name="APP_NAME" /></translation>
@@ -1682,7 +1686,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Ažurirajte uređaj u roku od jednog dana}one{Ažurirajte uređaj u roku od # dana}few{Ažurirajte uređaj u roku od # dana}other{Ažurirajte uređaj u roku od # dana}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – greška na mreži</translation>
 <translation id="3248902735035392926">Bezbednost je važna. Odvojite malo vremena i <ph name="BEGIN_LINK" />proverite dodatke<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Nije deo sertifikata&gt;</translation>
 <translation id="3253225298092156258">Nije dostupno</translation>
 <translation id="3253448572569133955">Nepoznat nalog</translation>
@@ -1787,6 +1790,7 @@
 <translation id="3396800784455899911">Ako kliknete na dugme „Prihvati i nastavi“, prihvatate gorenavedenu obradu za ove Google usluge.</translation>
 <translation id="3399432415385675819">Obaveštenja će biti onemogućena</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" />×<ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> herca) – prepleteno</translation>
+<translation id="3402585168444815892">Registrovanje za režim demonstracije</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Nijedna lozinka nije sačuvana za ovaj sajt</translation>
 <translation id="3405664148539009465">Prilagodi fontove</translation>
@@ -1848,6 +1852,7 @@
 <translation id="3468999815377931311">Android telefon</translation>
 <translation id="3470442499439619530">Ukloni ovog korisnika</translation>
 <translation id="3471876058939596279">HDMI i USB portovi tipa C ne mogu da se koriste za video u isto vreme. Koristite drugi video port.</translation>
+<translation id="3473241910002674503">Idite na početnu stranicu ili nazad i menjajte aplikacije pomoću dugmadi u režimu tableta.</translation>
 <translation id="3473479545200714844">Lupa ekrana</translation>
 <translation id="3475843873335999118">Žao nam je, otisak prsta i dalje nije prepoznat. Unesite lozinku.</translation>
 <translation id="3476303763173086583">Šaljite podatke o korišćenju i dijagnostičke podatke. Pomozite nam da poboljšamo Android doživljaj za dete tako što ćete automatski slati Google-u podatke o dijagnostici i korišćenju uređaja i aplikacija. Te informacije se neće koristiti za identifikaciju deteta i pomoći će u održavanju stabilnosti sistema i aplikacije i drugim podešavanjima. Neki objedinjeni podaci će takođe pomoći Google aplikacijama i partnerima, poput Android programera. To <ph name="BEGIN_LINK1" />podešavanje<ph name="END_LINK1" /> primenjuje vlasnik. Vlasnik može da izabere da se podaci o dijagnostici i korišćenju za ovaj uređaj šalju Google-u. Ako za dete uključite podešavanje dodatne aktivnosti na vebu i u aplikacijama, ti podaci će se možda čuvati na Google nalogu deteta. <ph name="BEGIN_LINK2" />Saznajte više<ph name="END_LINK2" /></translation>
@@ -2272,6 +2277,7 @@
 <translation id="3971764089670057203">Otisci prstiju na ovom bezbednosnom ključu</translation>
 <translation id="3973660817924297510">Lozinke se proveravaju (<ph name="CHECKED_PASSWORDS" /> od <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Povezivanje sa serverom za domen nije uspelo</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne može da vam proverava lozinke. Probajte ponovo kasnije.</translation>
 <translation id="3976108569178263973">Nema dostupnih štampača.</translation>
 <translation id="397703832102027365">Dovršavanje...</translation>
 <translation id="3977886311744775419">Automatska ažuriranja se ne preuzimaju na ovom tipu mreže, ali možete ručno da proverite da li ima ažuriranja.</translation>
@@ -2335,6 +2341,7 @@
 <translation id="4068506536726151626">Ova stranica sadrži elemente sa sledećih sajtova koji prate lokaciju na kojoj se nalazite:</translation>
 <translation id="4068776064906523561">Sačuvani otisci prstiju</translation>
 <translation id="407173827865827707">Pri kliku</translation>
+<translation id="4073520450811433493">Sinhronizovanje podešavanja</translation>
 <translation id="4074900173531346617">Sertifikat potpisnika e-pošte</translation>
 <translation id="407520071244661467">Razmera</translation>
 <translation id="4075639477629295004">Nije uspelo prebacivanje za <ph name="FILE_NAME" />.</translation>
@@ -2571,6 +2578,7 @@
 <translation id="4421932782753506458">Pufnica</translation>
 <translation id="4423376891418188461">Vrati podešavanja</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, administrator zahteva da promenite lozinku.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne može da vam proverava lozinke. Probajte ponovo za 24 sata.</translation>
 <translation id="4429030830601238961">Ovi podaci krše bezbednosne smernice organizacije i ne mogu da se nalepe.</translation>
 <translation id="4430019312045809116">Jačina zvuka</translation>
 <translation id="4430369329743628066">Obeleživač je dodat</translation>
@@ -2583,6 +2591,7 @@
 <translation id="4441124369922430666">Želite li da se ova aplikacija pokreće automatski kada uključite uređaj?</translation>
 <translation id="4441147046941420429">Da biste nastavili, uklonite bezbednosni ključ sa uređaja, pa ga ponovo umetnite i dodirnite</translation>
 <translation id="444134486829715816">Proširi...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> može da vam proverava lozinke kada se prijavite pomoću Google naloga.</translation>
 <translation id="4442424173763614572">DNS pretraga nije uspela</translation>
 <translation id="4443536555189480885">&amp;Help (Pomoć)</translation>
 <translation id="4444304522807523469">Pristup skenerima za dokumente priključenim preko USB-a ili na lokalnoj mreži</translation>
@@ -2609,11 +2618,13 @@
 <translation id="4476659815936224889">Da biste skenirali ovaj kôd, možete da koristite aplikaciju skenera QR kodova na telefonu ili neke aplikacije za kameru.</translation>
 <translation id="4477015793815781985">Koristite Ctrl, Alt ili ⌘</translation>
 <translation id="4478664379124702289">Sačuvaj li&amp;nk kao...</translation>
+<translation id="4478777936860197922">Nema sačuvanih lozinki. <ph name="IDS_SHORT_PRODUCT_NAME" /> može da proverava lozinke kada ih sačuvate.</translation>
 <translation id="4479424953165245642">Upravljaj kiosk aplikacijama</translation>
 <translation id="4479639480957787382">Eternet</translation>
 <translation id="4479877282574735775">Virtuelna mašina se konfiguruše. To može da potraje nekoliko minuta.</translation>
 <translation id="4480590691557335796">Chrome može da pronađe štetan softver na računaru i da ga ukloni</translation>
 <translation id="4481530544597605423">Uređaji čije je uparivanje opozvano</translation>
+<translation id="4488107067273194838">Otvori opcije sinhronizacije pregledača posle podešavanja</translation>
 <translation id="4488502501195719518">Želite da obrišete sve podatke?</translation>
 <translation id="4495419450179050807">Ne prikazuj na ovoj stranici</translation>
 <translation id="4496054781541092778">funkcija <ph name="PERMISSION" /> je automatski blokirana</translation>
@@ -2855,6 +2866,7 @@
 <translation id="4849517651082200438">Ne instaliraj</translation>
 <translation id="4850669014075537160">Pomeranje</translation>
 <translation id="4850886885716139402">Prikaz</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> će vas obavestiti kada se prijavite pomoću ugrožene lozinke</translation>
 <translation id="4853020600495124913">Otvori u &amp;novom prozoru</translation>
 <translation id="4854317507773910281">Odaberi nalog roditelja za odobrenje</translation>
 <translation id="485480310608090163">Još podešavanja i dozvola</translation>
@@ -2873,6 +2885,7 @@
 <translation id="4871322859485617074">PIN sadrži nevažeće znakove</translation>
 <translation id="4871370605780490696">Dodavanje obeleživača</translation>
 <translation id="4871719318659334896">Zatvori grupu</translation>
+<translation id="4871852311166078968">Dodajte u grupu</translation>
 <translation id="4873312501243535625">Provera medijskih datoteka</translation>
 <translation id="4876273079589074638">Pomozite inženjerima da istraže i reše probleme sa otkazivanjem. Navedite tačne korake ako možete. Nijedan detalj nije nevažan!</translation>
 <translation id="4876895919560854374">Zaključavanje i otključavanje ekrana</translation>
@@ -2964,7 +2977,6 @@
 <translation id="4992473555164495036">Administrator je ograničio dostupne metode unosa.</translation>
 <translation id="4994474651455208930">Dozvoli sajtovima da zahtevaju da postanu podrazumevani obrađivači protokola</translation>
 <translation id="4994754230098574403">Podešava se</translation>
-<translation id="4996978546172906250">Deljenje preko</translation>
 <translation id="4997086284911172121">Nema internet veze.</translation>
 <translation id="4997384734315285248">Deinstalirajte Plugin VM</translation>
 <translation id="4998430619171209993">Uključeno</translation>
@@ -3064,7 +3076,6 @@
 <translation id="5135085122826131075">Pristupajte Pomoćniku kada kažete „Ok Google“.</translation>
 <translation id="5135533361271311778">Nije moguće napraviti obeleživač.</translation>
 <translation id="5137501176474113045">Izbriši ovu stavku</translation>
-<translation id="5138982052046316113">Promenite veličinu Linux diska</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> pretraga</translation>
 <translation id="5139823398361067371">Unesite PIN za bezbednosni ključ. Ako ne znate PIN, treba da resetujete bezbednosni ključ.</translation>
 <translation id="5139955368427980650">&amp;Otvori</translation>
@@ -3517,6 +3528,7 @@
 <translation id="5739235828260127894">Čeka se verifikacija. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Jako veliki</translation>
 <translation id="574209121243317957">Nivo</translation>
+<translation id="5745136023067925867">Preuzmite <ph name="DEVICE_TYPE" /> savete, ponude i ažuriranja i delite povratne informacije</translation>
 <translation id="5746169159649715125">Sačuvaj kao PDF</translation>
 <translation id="5747552184818312860">Ističe</translation>
 <translation id="5747785204778348146">Programer – nestabilno</translation>
@@ -3929,7 +3941,6 @@
 <translation id="6291953229176937411">&amp;Prikaži u Finder-u</translation>
 <translation id="6295158916970320988">Svi sajtovi</translation>
 <translation id="6295855836753816081">Čuva se…</translation>
-<translation id="629730747756840877">nalog</translation>
 <translation id="6298962879096096191">Koristite Google Play da biste instalirali Android aplikacije</translation>
 <translation id="630065524203833229">I&amp;zađi</translation>
 <translation id="6300718114348072351">Štampač <ph name="PRINTER_NAME" /> ne može da se konfiguriše automatski. Navedite podatke o naprednom podešavanju štampača. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
@@ -4335,7 +4346,6 @@
 <translation id="6865598234501509159">Jezik ove stranice nije <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC evidencije događaja (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Temperatura boja</translation>
-<translation id="6870888490422746447">Izaberite aplikaciju za deljenje:</translation>
 <translation id="6871644448911473373">OCSP odzivnik: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Server je odbio lozinku koju ste uneli.</translation>
 <translation id="6876155724392614295">Bicikl</translation>
@@ -4428,6 +4438,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – Evidencija aktivnosti</translation>
 <translation id="6997707937646349884">Na uređajima:</translation>
 <translation id="6998793565256476099">Registruj uređaj za video konferencije</translation>
+<translation id="6999956497249459195">Nova grupa</translation>
 <translation id="7000206553895739324">Štampač <ph name="PRINTER_NAME" /> je povezan, ali treba da se konfiguriše</translation>
 <translation id="7000347579424117903">Koristite Ctrl, Alt ili Search</translation>
 <translation id="7001036685275644873">Prave se rezervne kopije Linux aplikacija i datoteka</translation>
@@ -4726,6 +4737,7 @@
 <translation id="7400418766976504921">URL adresa</translation>
 <translation id="7400839060291901923">Podesite vezu na telefonu <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Odbaci ovu poruku</translation>
+<translation id="7403642243184989645">Preuzimanje resursa</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Bezbednosna provera je pokrenuta pre 1 sat}one{Bezbednosna provera je pokrenuta pre {NUM_HOURS} sat}few{Bezbednosna provera je pokrenuta pre {NUM_HOURS} sata}other{Bezbednosna provera je pokrenuta pre {NUM_HOURS} sati}}</translation>
 <translation id="740624631517654988">Iskačući prozori su blokirani</translation>
 <translation id="7407430846095439694">Uvezi i obaveži se</translation>
@@ -4962,6 +4974,7 @@
 <translation id="7716781361494605745">URL adresa za smernice autoriteta za izdavanje Netscape sertifikata</translation>
 <translation id="7717014941119698257">Preuzimanje: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Traženje ažuriranja</translation>
+<translation id="7719070594859855691">Dajte pristup kameri</translation>
 <translation id="7719367874908701697">Zumiranje stranice</translation>
 <translation id="7721179060400456005">Dozvoli da se prozori prostiru na više ekrana</translation>
 <translation id="7722040605881499779">Za ažuriranje je potrebno: <ph name="NECESSARY_SPACE" /></translation>
@@ -4976,7 +4989,6 @@
 <translation id="7744047395460924128">Pogledajte istoriju štampanja</translation>
 <translation id="7744192722284567281">Pronađeno u upadu u podatke</translation>
 <translation id="7750228210027921155">Slika u slici</translation>
-<translation id="7751229152614300329">Bezbedno pregledanje je ažurirano i štiti vas od štetnih sajtova i preuzimanja</translation>
 <translation id="7751260505918304024">Prikaži sve</translation>
 <translation id="7754704193130578113">Pitaj gde treba sačuvati svaku datoteku pre preuzimanja</translation>
 <translation id="7755287808199759310">Roditelj može da ga odblokira za tebe</translation>
@@ -5064,6 +5076,7 @@
     <ph name="BEGIN_BOLD" />Napomena:<ph name="END_BOLD" /> Sistem će se restartovati tokom ovog procesa.</translation>
 <translation id="7828731929332799387">Ovim ćete izbrisati sve kolačiće i podatke o sajtovima koji su dostupni u kontekstima trećih strana. Želite li da nastavite?</translation>
 <translation id="7829298379596169484">Pristupa se audio ulazu</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne može da vam proverava lozinke. Proverite internet vezu.</translation>
 <translation id="7829877209233347340">Zatraži od roditelja da se prijavi da bi dao dozvolu za dodavanje školskog naloga</translation>
 <translation id="7830594666202422257">Poveži sa Linux-om</translation>
 <translation id="7831491651892296503">Greška pri konfiguraciji mreže</translation>
@@ -5286,6 +5299,7 @@
 <translation id="8107015733319732394">Google Play prodavnica se instalira na uređaju <ph name="DEVICE_TYPE" />. To može da potraje nekoliko minuta.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Nema kolačića treće strane}=1{1 kolačić treće strane je blokiran}one{# kolačić treće strane je blokiran}few{# kolačića treće strane su blokirana}other{# kolačića treće strane je blokirano}}</translation>
 <translation id="810875025413331850">Nije pronađen nijedan uređaj u blizini.</translation>
+<translation id="8114199541033039755">Idite na početnu stranicu ili nazad i menjajte aplikacije pomoću dugmadi u režimu tableta. Uključeno je kada su ChromeVox ili Automatski klikovi omogućeni.</translation>
 <translation id="8114875720387900039">Podeli horizontalno</translation>
 <translation id="8116972784401310538">&amp;Menadžer obeleživača</translation>
 <translation id="8117620576188476503">Upravljajte vezama, ažuriranjima i podešavanjima pomoću statusne trake. Da biste došli ovde pomoću tastature, pritisnite Alt + Shift + S.</translation>
@@ -5405,6 +5419,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> je onemogućio kursor.</translation>
 <translation id="8264024885325823677">Ovim podešavanjem upravlja administrator.</translation>
 <translation id="8264718194193514834">Dodatak „<ph name="EXTENSION_NAME" />“ je aktivirao režim celog ekrana.</translation>
+<translation id="826511437356419340">Ušli ste u režim pregleda prozora. Prevucite da biste se kretali ili pritisnite Tab ako koristite tastaturu.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ovo su uopštene informacije o ovom uređaju i načinu na koji se koristi (poput nivoa baterije, aktivnosti sistema i aplikacija i grešaka). Podaci će se koristiti za poboljšavanje Android-a, a neke objedinjene informacije će pomoći i Google aplikacijama i partnerima, kao što su Android programeri, da poboljšaju svoje aplikacije i proizvode.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Isključivanje ove funkcije neće uticati na mogućnost ovog uređaja da šalje informacije potrebne za neophodne usluge, poput ažuriranja sistema i bezbednosnih funkcija.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Vlasnik može da upravlja ovom funkcijom u odeljku Podešavanja &gt; Napredno &gt; Automatski šalji dijagnostiku i podatke o korišćenju Google-u.<ph name="END_PARAGRAPH3" />
@@ -5513,6 +5528,7 @@
 <translation id="8426713856918551002">Omogućava se</translation>
 <translation id="8427292751741042100">ugrađeno na bilo kom hostu</translation>
 <translation id="8428213095426709021">Podešavanja</translation>
+<translation id="8428271547607112339">Dodajte školski nalog</translation>
 <translation id="8428628598981198790">Ne možete da koristite bezbednosni ključ na ovom sajtu</translation>
 <translation id="84297032718407999">Odjavićete se za <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Prikaz dodira</translation>
@@ -5576,6 +5592,7 @@
 <translation id="851263357009351303">Uvek dozvoli sajtu <ph name="HOST" /> da prikazuje slike</translation>
 <translation id="8513108775083588393">Automatsko rotiranje</translation>
 <translation id="8514746246728959655">Probajte sa nekim drugim bezbednosnim ključem</translation>
+<translation id="851960115758509829">Aplikacije, podešavanja i druga prilagođavanja će se sinhronizovati na svim Chrome OS uređajima na kojima ste prijavljeni pomoću svog Google naloga.</translation>
 <translation id="8521475323816527629">Brzo pristupajte aplikacijama</translation>
 <translation id="8523493869875972733">Zadrži promene</translation>
 <translation id="8523849605371521713">Dodale su smernice</translation>
@@ -5857,11 +5874,13 @@
 <translation id="885701979325669005">Memorijski prostor</translation>
 <translation id="8859057652521303089">Izaberite jezik:</translation>
 <translation id="8859174528519900719">Podokvir: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Nalog roditelja</translation>
 <translation id="8862003515646449717">Pređite na brz pregledač</translation>
 <translation id="8863753581171631212">Otvori link u novom <ph name="APP" /> prozoru</translation>
 <translation id="8864055848767439877">Kartica <ph name="TAB_NAME" /> se deli sa aplikacijom <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Nalog <ph name="EMAIL" /> je uklonjen sa ovog uređaja</translation>
 <translation id="8867228703146808825">Kopirajte detalje verzije u privremenu memoriju</translation>
+<translation id="8868333925931032127">Pokreće se režim demonstracije</translation>
 <translation id="8868626022555786497">U upotrebi</translation>
 <translation id="8870413625673593573">Nedavno zatvoreno</translation>
 <translation id="8871551568777368300">Zakačio je administrator</translation>
@@ -5940,6 +5959,7 @@
 <translation id="8966870118594285808">Ponovo otvorite karticu ako ste je slučajno zatvorili</translation>
 <translation id="8967866634928501045">Za prikazivanje pritisnite Alt + Shift + A</translation>
 <translation id="8968766641738584599">Sačuvaj karticu</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ne može da vam proverava lozinke. Probajte ponovo posle 24 sata ili <ph name="BEGIN_LINK" />proverite lozinke na Google nalogu<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Proverite sa administratorom mreže da biste se uverili da zaštitni zid ne blokira preuzimanja sa Google servera.</translation>
 <translation id="8973557916016709913">Ukloni nivo zumiranja</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index be97116..8a6de3e 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Доступни уређаји</translation>
 <translation id="1042174272890264476">Уз рачунар такође добијате уграђену RLZ библиотеку производа <ph name="SHORT_PRODUCT_NAME" />. RLZ додељује нејединствену ознаку помоћу које вас није могуће лично идентификовати да би измерио претраге и коришћење производа <ph name="SHORT_PRODUCT_NAME" /> који су подстакнути одређеном промотивном кампањом. Те ознаке се понекад приказују у упитима Google претраге у производу <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Желите и да обришете податке из ових апликација?</translation>
+<translation id="1045448422538531528">Додајте у групу</translation>
 <translation id="1046635659603195359">Изгледа да сте већ подесили Voice Match са Google помоћником на неком другом уређају. Ови претходни снимци могу да се користе за прављење гласовног модела на овом уређају. То би требало да траје мање од једног минута.</translation>
 <translation id="104710386808485638">Желите ли да рестартујете Linux?</translation>
 <translation id="1047431265488717055">Копирај тек&amp;ст линка</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Увек блокирај приступ камери</translation>
 <translation id="1082398631555931481">Алатка <ph name="THIRD_PARTY_TOOL_NAME" /> жели да врати подешавања Chrome-а на првобитне подразумеване вредности. То ће ресетовати почетну страницу, страницу нове картице и претраживач, онемогућиће додатке и откачити све картице. Такође ће обрисати друге привремене и кеширане податке, попут колачића, садржаја и података о сајтовима.</translation>
+<translation id="1084096383128641877">Уклањањем ове лозинке нећете избрисати налог на <ph name="DOMAIN" />. Промените лозинку или избришите налог на <ph name="DOMAIN_LINK" /> да бисте га заштитили од других.</translation>
 <translation id="1084824384139382525">Копирај адр&amp;есу линка</translation>
 <translation id="1085697365578766383">Грешка при покретању виртуелне машине. Пробајте поново.</translation>
 <translation id="1090126737595388931">Није покренута ниједна позадинска апликација</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Безбедносна провера је покренута јуче</translation>
 <translation id="1260451001046713751">Увек дозволи искачуће прозоре и преусмеравања са <ph name="HOST" /></translation>
 <translation id="126156426083987769">Дошло је до проблема са лиценцама за уређај у режиму демонстрације.</translation>
+<translation id="1263490604593716556">Налогом управљају <ph name="FIRST_PARENT_EMAIL" /> и <ph name="SECOND_PARENT_EMAIL" />. Да бисте се одјавили са примарног налога на овом уређају, кликните на време на екрану. У менију који се појављује кликните на Одјави ме.</translation>
 <translation id="126710816202626562">Језик на који се преводи:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Заустави</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">Веб-сајт</translation>
 <translation id="15662109988763471">Изабрани штампач није доступан или није правилно инсталиран. Проверите штампач или изаберите неки други.</translation>
 <translation id="1567387640189251553">Нека друга тастатура је повезана откако сте последњи пут унели лозинку. Можда покушава да украде вашу комбинацију тастера.</translation>
-<translation id="1567750922576943685">Потврда идентитета помаже у заштити личних података</translation>
 <translation id="1567993339577891801">JavaScript конзола</translation>
 <translation id="1568323446248056064">Отвори подешавања уређаја за екран</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (гост)</translation>
@@ -516,7 +518,6 @@
 <translation id="1697150536837697295">Уметност</translation>
 <translation id="1697686431566694143">Измени датотеку</translation>
 <translation id="1698122934742150150">Само актуелна сесија без архивирања</translation>
-<translation id="1698650002254827833">Не можемо да учитамо листу апликација. Покушајте поново.</translation>
 <translation id="1700079447639026019">Сајтови који никада не могу да користе колачиће</translation>
 <translation id="1701062906490865540">Уклони ову особу</translation>
 <translation id="1703331064825191675">Никада не брините о лозинкама</translation>
@@ -870,6 +871,7 @@
 <translation id="2172784515318616985">Настави</translation>
 <translation id="2173302385160625112">Проверите интернет везу</translation>
 <translation id="2173801458090845390">Додајте ИД захтева на овај уређај</translation>
+<translation id="2174948148799307353">Налогом управља <ph name="PARENT_EMAIL" />. Да бисте се одјавили са примарног налога на овом уређају, кликните на време на екрану. У менију који се појављује кликните на Одјави ме.</translation>
 <translation id="2175607476662778685">Трака „Брзо покретање“</translation>
 <translation id="217576141146192373">Додавање штампача није успело. Проверите конфигурацију штампача и пробајте поново.</translation>
 <translation id="2177950615300672361">Картица Без архивирања: <ph name="TAB_NAME" /></translation>
@@ -1078,7 +1080,6 @@
 <translation id="2442916515643169563">Сенка текста</translation>
 <translation id="2445081178310039857">Основни директоријум додатка је обавезан.</translation>
 <translation id="2445484935443597917">Направи нов профил</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> жели да потврди ваш идентитет</translation>
 <translation id="2448312741937722512">Тип</translation>
 <translation id="2450223707519584812">Нећете моћи да додајете кориснике зато што недостају шифре за Google API. Потражите детаље на <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Нема активних приказа</translation>
@@ -1476,6 +1477,7 @@
 <translation id="2948300991547862301">Иди на <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Брз, једноставан и безбедан веб-прегледач направљен за модерни веб.</translation>
 <translation id="2949289451367477459">Користите локацију. Дозволите апликацијама и услугама са дозволом за локацију да користе локацију овог уређаја. Google може повремено да прикупља податке о локацији и да их користи на анониман начин за побољшање прецизности локације и услуга заснованих на локацији. <ph name="BEGIN_LINK1" />Сазнајте више<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Региструј ме</translation>
 <translation id="2956070239128776395">Одељак угнежден у групу: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Онемогућите да било који сајт мења датотеке или директоријуме на уређају</translation>
 <translation id="2958721676848865875">Упозорење о паковању додатка</translation>
@@ -1600,6 +1602,7 @@
 <translation id="3139925690611372679">Подразумевани жути аватар</translation>
 <translation id="3141318088920353606">Слуша се...</translation>
 <translation id="3141917231319778873">Дати захтев није подржан на: „<ph name="DEVICE_NAME" />“.</translation>
+<translation id="3142562627629111859">Нова група</translation>
 <translation id="3143515551205905069">Откажи синхронизацију</translation>
 <translation id="3143754809889689516">Пусти испочетка</translation>
 <translation id="3144647712221361880">Отворите линк као</translation>
@@ -1624,6 +1627,7 @@
 <translation id="3159493096109238499">Беж</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (хардвер је сертификован)</translation>
 <translation id="3161522574479303604">Сви језици</translation>
+<translation id="3162853326462195145">Школски налог</translation>
 <translation id="3162899666601560689">Сајтови могу да користе колачиће за побољшање доживљаја прегледања, на пример, да бисте остали пријављени или да би ставке у вашој корпи за куповину остале сачуване</translation>
 <translation id="3163201441334626963">Непознати производ <ph name="PRODUCT_ID" /> продавца <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Ова картица се дели са апликацијом <ph name="APP_NAME" /></translation>
@@ -1682,7 +1686,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Ажурирајте уређај у року од једног дана}one{Ажурирајте уређај у року од # дана}few{Ажурирајте уређај у року од # дана}other{Ажурирајте уређај у року од # дана}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – грешка на мрежи</translation>
 <translation id="3248902735035392926">Безбедност је важна. Одвојите мало времена и <ph name="BEGIN_LINK" />проверите додатке<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Није део сертификата&gt;</translation>
 <translation id="3253225298092156258">Није доступно</translation>
 <translation id="3253448572569133955">Непознат налог</translation>
@@ -1787,6 +1790,7 @@
 <translation id="3396800784455899911">Ако кликнете на дугме „Прихвати и настави“, прихватате горенаведену обраду за ове Google услуге.</translation>
 <translation id="3399432415385675819">Обавештења ће бити онемогућена</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" />×<ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> херца) – преплетено</translation>
+<translation id="3402585168444815892">Регистровање за режим демонстрације</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Ниједна лозинка није сачувана за овај сајт</translation>
 <translation id="3405664148539009465">Прилагоди фонтове</translation>
@@ -1848,6 +1852,7 @@
 <translation id="3468999815377931311">Android телефон</translation>
 <translation id="3470442499439619530">Уклони овог корисника</translation>
 <translation id="3471876058939596279">HDMI и USB портови типа C не могу да се користе за видео у исто време. Користите други видео порт.</translation>
+<translation id="3473241910002674503">Идите на почетну страницу или назад и мењајте апликације помоћу дугмади у режиму таблета.</translation>
 <translation id="3473479545200714844">Лупа екрана</translation>
 <translation id="3475843873335999118">Жао нам је, отисак прста и даље није препознат. Унесите лозинку.</translation>
 <translation id="3476303763173086583">Шаљите податке о коришћењу и дијагностичке податке. Помозите нам да побољшамо Android доживљај за дете тако што ћете аутоматски слати Google-у податке о дијагностици и коришћењу уређаја и апликација. Те информације се неће користити за идентификацију детета и помоћи ће у одржавању стабилности система и апликације и другим подешавањима. Неки обједињени подаци ће такође помоћи Google апликацијама и партнерима, попут Android програмера. То <ph name="BEGIN_LINK1" />подешавање<ph name="END_LINK1" /> примењује власник. Власник може да изабере да се подаци о дијагностици и коришћењу за овај уређај шаљу Google-у. Ако за дете укључите подешавање додатне активности на вебу и у апликацијама, ти подаци ће се можда чувати на Google налогу детета. <ph name="BEGIN_LINK2" />Сазнајте више<ph name="END_LINK2" /></translation>
@@ -2272,6 +2277,7 @@
 <translation id="3971764089670057203">Отисци прстију на овом безбедносном кључу</translation>
 <translation id="3973660817924297510">Лозинке се проверавају (<ph name="CHECKED_PASSWORDS" /> од <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Повезивање са сервером за домен није успело</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може да вам проверава лозинке. Пробајте поново касније.</translation>
 <translation id="3976108569178263973">Нема доступних штампача.</translation>
 <translation id="397703832102027365">Довршавање...</translation>
 <translation id="3977886311744775419">Аутоматска ажурирања се не преузимају на овом типу мреже, али можете ручно да проверите да ли има ажурирања.</translation>
@@ -2335,6 +2341,7 @@
 <translation id="4068506536726151626">Ова страница садржи елементе са следећих сајтова који прате локацију на којој се налазите:</translation>
 <translation id="4068776064906523561">Сачувани отисци прстију</translation>
 <translation id="407173827865827707">При клику</translation>
+<translation id="4073520450811433493">Синхронизовање подешавања</translation>
 <translation id="4074900173531346617">Сертификат потписника е-поште</translation>
 <translation id="407520071244661467">Размера</translation>
 <translation id="4075639477629295004">Није успело пребацивање за <ph name="FILE_NAME" />.</translation>
@@ -2571,6 +2578,7 @@
 <translation id="4421932782753506458">Пуфница</translation>
 <translation id="4423376891418188461">Врати подешавања</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, администратор захтева да промените лозинку.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може да вам проверава лозинке. Пробајте поново за 24 сата.</translation>
 <translation id="4429030830601238961">Ови подаци крше безбедносне смернице организације и не могу да се налепе.</translation>
 <translation id="4430019312045809116">Јачина звука</translation>
 <translation id="4430369329743628066">Обележивач је додат</translation>
@@ -2583,6 +2591,7 @@
 <translation id="4441124369922430666">Желите ли да се ова апликација покреће аутоматски када укључите уређај?</translation>
 <translation id="4441147046941420429">Да бисте наставили, уклоните безбедносни кључ са уређаја, па га поново уметните и додирните</translation>
 <translation id="444134486829715816">Прошири...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> може да вам проверава лозинке када се пријавите помоћу Google налога.</translation>
 <translation id="4442424173763614572">DNS претрага није успела</translation>
 <translation id="4443536555189480885">&amp;Help (Помоћ)</translation>
 <translation id="4444304522807523469">Приступ скенерима за документе прикљученим преко USB-а или на локалној мрежи</translation>
@@ -2609,11 +2618,13 @@
 <translation id="4476659815936224889">Да бисте скенирали овај кôд, можете да користите апликацију скенера QR кодова на телефону или неке апликације за камеру.</translation>
 <translation id="4477015793815781985">Користите Ctrl, Alt или ⌘</translation>
 <translation id="4478664379124702289">Сачувај ли&amp;нк као...</translation>
+<translation id="4478777936860197922">Нема сачуваних лозинки. <ph name="IDS_SHORT_PRODUCT_NAME" /> може да проверава лозинке када их сачувате.</translation>
 <translation id="4479424953165245642">Управљај киоск апликацијама</translation>
 <translation id="4479639480957787382">Етернет</translation>
 <translation id="4479877282574735775">Виртуелна машина се конфигуруше. То може да потраје неколико минута.</translation>
 <translation id="4480590691557335796">Chrome може да пронађе штетан софтвер на рачунару и да га уклони</translation>
 <translation id="4481530544597605423">Уређаји чије је упаривање опозвано</translation>
+<translation id="4488107067273194838">Отвори опције синхронизације прегледача после подешавања</translation>
 <translation id="4488502501195719518">Желите да обришете све податке?</translation>
 <translation id="4495419450179050807">Не приказуј на овој страници</translation>
 <translation id="4496054781541092778">функција <ph name="PERMISSION" /> је аутоматски блокирана</translation>
@@ -2855,6 +2866,7 @@
 <translation id="4849517651082200438">Не инсталирај</translation>
 <translation id="4850669014075537160">Померање</translation>
 <translation id="4850886885716139402">Приказ</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> ће вас обавестити када се пријавите помоћу угрожене лозинке</translation>
 <translation id="4853020600495124913">Отвори у &amp;новом прозору</translation>
 <translation id="4854317507773910281">Одабери налог родитеља за одобрење</translation>
 <translation id="485480310608090163">Још подешавања и дозвола</translation>
@@ -2873,6 +2885,7 @@
 <translation id="4871322859485617074">PIN садржи неважеће знакове</translation>
 <translation id="4871370605780490696">Додавање обележивача</translation>
 <translation id="4871719318659334896">Затвори групу</translation>
+<translation id="4871852311166078968">Додајте у групу</translation>
 <translation id="4873312501243535625">Провера медијских датотека</translation>
 <translation id="4876273079589074638">Помозите инжењерима да истраже и реше проблеме са отказивањем. Наведите тачне кораке ако можете. Ниједан детаљ није неважан!</translation>
 <translation id="4876895919560854374">Закључавање и откључавање екрана</translation>
@@ -2964,7 +2977,6 @@
 <translation id="4992473555164495036">Администратор је ограничио доступне методе уноса.</translation>
 <translation id="4994474651455208930">Дозволи сајтовима да захтевају да постану подразумевани обрађивачи протокола</translation>
 <translation id="4994754230098574403">Подешава се</translation>
-<translation id="4996978546172906250">Дељење преко</translation>
 <translation id="4997086284911172121">Нема интернет везе.</translation>
 <translation id="4997384734315285248">Деинсталирајте Plugin VM</translation>
 <translation id="4998430619171209993">Укључено</translation>
@@ -3064,7 +3076,6 @@
 <translation id="5135085122826131075">Приступајте Помоћнику када кажете „Ок Google“.</translation>
 <translation id="5135533361271311778">Није могуће направити обележивач.</translation>
 <translation id="5137501176474113045">Избриши ову ставку</translation>
-<translation id="5138982052046316113">Промените величину Linux диска</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> претрага</translation>
 <translation id="5139823398361067371">Унесите PIN за безбедносни кључ. Ако не знате PIN, треба да ресетујете безбедносни кључ.</translation>
 <translation id="5139955368427980650">&amp;Отвори</translation>
@@ -3517,6 +3528,7 @@
 <translation id="5739235828260127894">Чека се верификација. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Јако велики</translation>
 <translation id="574209121243317957">Ниво</translation>
+<translation id="5745136023067925867">Преузмите <ph name="DEVICE_TYPE" /> савете, понуде и ажурирања и делите повратне информације</translation>
 <translation id="5746169159649715125">Сачувај као PDF</translation>
 <translation id="5747552184818312860">Истиче</translation>
 <translation id="5747785204778348146">Програмер – нестабилно</translation>
@@ -3929,7 +3941,6 @@
 <translation id="6291953229176937411">&amp;Прикажи у Finder-у</translation>
 <translation id="6295158916970320988">Сви сајтови</translation>
 <translation id="6295855836753816081">Чува се…</translation>
-<translation id="629730747756840877">налог</translation>
 <translation id="6298962879096096191">Користите Google Play да бисте инсталирали Android апликације</translation>
 <translation id="630065524203833229">И&amp;зађи</translation>
 <translation id="6300718114348072351">Штампач <ph name="PRINTER_NAME" /> не може да се конфигурише аутоматски. Наведите податке о напредном подешавању штампача. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation>
@@ -4335,7 +4346,6 @@
 <translation id="6865598234501509159">Језик ове странице није <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC евиденције догађаја (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Температура боја</translation>
-<translation id="6870888490422746447">Изаберите апликацију за дељење:</translation>
 <translation id="6871644448911473373">OCSP одзивник: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Сервер је одбио лозинку коју сте унели.</translation>
 <translation id="6876155724392614295">Бицикл</translation>
@@ -4428,6 +4438,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – Евиденција активности</translation>
 <translation id="6997707937646349884">На уређајима:</translation>
 <translation id="6998793565256476099">Региструј уређај за видео конференције</translation>
+<translation id="6999956497249459195">Нова група</translation>
 <translation id="7000206553895739324">Штампач <ph name="PRINTER_NAME" /> је повезан, али треба да се конфигурише</translation>
 <translation id="7000347579424117903">Користите Ctrl, Alt или Search</translation>
 <translation id="7001036685275644873">Праве се резервне копије Linux апликација и датотека</translation>
@@ -4726,6 +4737,7 @@
 <translation id="7400418766976504921">URL адреса</translation>
 <translation id="7400839060291901923">Подесите везу на телефону <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Одбаци ову поруку</translation>
+<translation id="7403642243184989645">Преузимање ресурса</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Безбедносна провера је покренута пре 1 сат}one{Безбедносна провера је покренута пре {NUM_HOURS} сат}few{Безбедносна провера је покренута пре {NUM_HOURS} сата}other{Безбедносна провера је покренута пре {NUM_HOURS} сати}}</translation>
 <translation id="740624631517654988">Искачући прозори су блокирани</translation>
 <translation id="7407430846095439694">Увези и обавежи се</translation>
@@ -4962,6 +4974,7 @@
 <translation id="7716781361494605745">URL адреса за смернице ауторитета за издавање Netscape сертификата</translation>
 <translation id="7717014941119698257">Преузимање: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Тражење ажурирања</translation>
+<translation id="7719070594859855691">Дајте приступ камери</translation>
 <translation id="7719367874908701697">Зумирање странице</translation>
 <translation id="7721179060400456005">Дозволи да се прозори простиру на више екрана</translation>
 <translation id="7722040605881499779">За ажурирање је потребно: <ph name="NECESSARY_SPACE" /></translation>
@@ -4976,7 +4989,6 @@
 <translation id="7744047395460924128">Погледајте историју штампања</translation>
 <translation id="7744192722284567281">Пронађено у упаду у податке</translation>
 <translation id="7750228210027921155">Слика у слици</translation>
-<translation id="7751229152614300329">Безбедно прегледање је ажурирано и штити вас од штетних сајтова и преузимања</translation>
 <translation id="7751260505918304024">Прикажи све</translation>
 <translation id="7754704193130578113">Питај где треба сачувати сваку датотеку пре преузимања</translation>
 <translation id="7755287808199759310">Родитељ може да га одблокира за тебе</translation>
@@ -5064,6 +5076,7 @@
     <ph name="BEGIN_BOLD" />Напомена:<ph name="END_BOLD" /> Систем ће се рестартовати током овог процеса.</translation>
 <translation id="7828731929332799387">Овим ћете избрисати све колачиће и податке о сајтовима који су доступни у контекстима трећих страна. Желите ли да наставите?</translation>
 <translation id="7829298379596169484">Приступа се аудио улазу</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може да вам проверава лозинке. Проверите интернет везу.</translation>
 <translation id="7829877209233347340">Затражи од родитеља да се пријави да би дао дозволу за додавање школског налога</translation>
 <translation id="7830594666202422257">Повежи са Linux-ом</translation>
 <translation id="7831491651892296503">Грешка при конфигурацији мреже</translation>
@@ -5286,6 +5299,7 @@
 <translation id="8107015733319732394">Google Play продавница се инсталира на уређају <ph name="DEVICE_TYPE" />. То може да потраје неколико минута.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Нема колачића треће стране}=1{1 колачић треће стране је блокиран}one{# колачић треће стране је блокиран}few{# колачића треће стране су блокирана}other{# колачића треће стране је блокирано}}</translation>
 <translation id="810875025413331850">Није пронађен ниједан уређај у близини.</translation>
+<translation id="8114199541033039755">Идите на почетну страницу или назад и мењајте апликације помоћу дугмади у режиму таблета. Укључено је када су ChromeVox или Аутоматски кликови омогућени.</translation>
 <translation id="8114875720387900039">Подели хоризонтално</translation>
 <translation id="8116972784401310538">&amp;Менаџер обележивача</translation>
 <translation id="8117620576188476503">Управљајте везама, ажурирањима и подешавањима помоћу статусне траке. Да бисте дошли овде помоћу тастатуре, притисните Alt + Shift + S.</translation>
@@ -5405,6 +5419,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> је онемогућио курсор.</translation>
 <translation id="8264024885325823677">Овим подешавањем управља администратор.</translation>
 <translation id="8264718194193514834">Додатак „<ph name="EXTENSION_NAME" />“ је активирао режим целог екрана.</translation>
+<translation id="826511437356419340">Ушли сте у режим прегледа прозора. Превуците да бисте се кретали или притисните Tab ако користите тастатуру.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ово су уопштене информације о овом уређају и начину на који се користи (попут нивоа батерије, активности система и апликација и грешака). Подаци ће се користити за побољшавање Android-а, а неке обједињене информације ће помоћи и Google апликацијама и партнерима, као што су Android програмери, да побољшају своје апликације и производе.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Искључивање ове функције неће утицати на могућност овог уређаја да шаље информације потребне за неопходне услуге, попут ажурирања система и безбедносних функција.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Власник може да управља овом функцијом у одељку Подешавања &gt; Напредно &gt; Аутоматски шаљи дијагностику и податке о коришћењу Google-у.<ph name="END_PARAGRAPH3" />
@@ -5513,6 +5528,7 @@
 <translation id="8426713856918551002">Омогућава се</translation>
 <translation id="8427292751741042100">уграђено на било ком хосту</translation>
 <translation id="8428213095426709021">Подешавања</translation>
+<translation id="8428271547607112339">Додајте школски налог</translation>
 <translation id="8428628598981198790">Не можете да користите безбедносни кључ на овом сајту</translation>
 <translation id="84297032718407999">Одјавићете се за <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Приказ додира</translation>
@@ -5576,6 +5592,7 @@
 <translation id="851263357009351303">Увек дозволи сајту <ph name="HOST" /> да приказује слике</translation>
 <translation id="8513108775083588393">Аутоматско ротирање</translation>
 <translation id="8514746246728959655">Пробајте са неким другим безбедносним кључем</translation>
+<translation id="851960115758509829">Апликације, подешавања и друга прилагођавања ће се синхронизовати на свим Chrome OS уређајима на којима сте пријављени помоћу свог Google налога.</translation>
 <translation id="8521475323816527629">Брзо приступајте апликацијама</translation>
 <translation id="8523493869875972733">Задржи промене</translation>
 <translation id="8523849605371521713">Додале су смернице</translation>
@@ -5857,11 +5874,13 @@
 <translation id="885701979325669005">Меморијски простор</translation>
 <translation id="8859057652521303089">Изаберите језик:</translation>
 <translation id="8859174528519900719">Подоквир: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Налог родитеља</translation>
 <translation id="8862003515646449717">Пређите на брз прегледач</translation>
 <translation id="8863753581171631212">Отвори линк у новом <ph name="APP" /> прозору</translation>
 <translation id="8864055848767439877">Картица <ph name="TAB_NAME" /> се дели са апликацијом <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Налог <ph name="EMAIL" /> је уклоњен са овог уређаја</translation>
 <translation id="8867228703146808825">Копирајте детаље верзије у привремену меморију</translation>
+<translation id="8868333925931032127">Покреће се режим демонстрације</translation>
 <translation id="8868626022555786497">У употреби</translation>
 <translation id="8870413625673593573">Недавно затворено</translation>
 <translation id="8871551568777368300">Закачио је администратор</translation>
@@ -5940,6 +5959,7 @@
 <translation id="8966870118594285808">Поново отворите картицу ако сте је случајно затворили</translation>
 <translation id="8967866634928501045">За приказивање притисните Alt + Shift + A</translation>
 <translation id="8968766641738584599">Сачувај картицу</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може да вам проверава лозинке. Пробајте поново после 24 сата или <ph name="BEGIN_LINK" />проверите лозинке на Google налогу<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Проверите са администратором мреже да бисте се уверили да заштитни зид не блокира преузимања са Google сервера.</translation>
 <translation id="8973557916016709913">Уклони ниво зумирања</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index cd219ac..4f06968 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Tillgängliga enheter</translation>
 <translation id="1042174272890264476">Datorn har även RLZ-biblioteket för <ph name="SHORT_PRODUCT_NAME" /> inbyggt. RLZ tilldelar en icke-unik, icke-personligt identifierbar tagg för att mäta antalet sökningar och användningen av <ph name="SHORT_PRODUCT_NAME" /> som drivs av en viss reklamkampanj. Dessa etiketter visas ibland vid sökningar på Google i <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Vill du även rensa data för dessa appar?</translation>
+<translation id="1045448422538531528">Lägg till i grupp</translation>
 <translation id="1046635659603195359">Du verkar redan ha konfigurerat Voice Match med Google Assistant på en annan enhet. Det går att skapa en röstmodell på den här enheten utifrån de tidigare inspelningarna. Detta tar knappt en minut.</translation>
 <translation id="104710386808485638">Vill du starta om Linux?</translation>
 <translation id="1047431265488717055">Kopiera länktext</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Blockera alltid kameraåtkomsten</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> önskar återställa inställningarna för Chrome till de ursprungliga standardinställningarna. Detta innebär att din startsida tillsammans med sidan ny flik och sökmotorn återställs liksom att tillägg inaktiveras och alla flikar lossas. Dessutom rensas alla tillfälliga och cachelagrade data, såsom cookies, innehåll och webbplatsdata</translation>
+<translation id="1084096383128641877">Att ta bort det här lösenordet innebär inte att ditt konto på <ph name="DOMAIN" /> raderas. Skydda kontot genom att ändra lösenordet eller ta bort ditt konto på <ph name="DOMAIN_LINK" />.</translation>
 <translation id="1084824384139382525">Kopiera länk&amp;adress</translation>
 <translation id="1085697365578766383">Det gick inte att starta den virtuella maskinen. Försök igen.</translation>
 <translation id="1090126737595388931">Inga bakgrundsprogram körs</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Säkerhetskontrollen kördes i går</translation>
 <translation id="1260451001046713751">Tillåt alltid popup-fönster och omdirigeringar från <ph name="HOST" /></translation>
 <translation id="126156426083987769">Ett problem med enhetslicenser för demoläge uppstod.</translation>
+<translation id="1263490604593716556">Kontot hanteras av <ph name="FIRST_PARENT_EMAIL" /> och <ph name="SECOND_PARENT_EMAIL" />. Klicka på klockan på skärmen om du vill logga ut från det primära kontot. Klicka på Logga ut i menyn som visas.</translation>
 <translation id="126710816202626562">Översättningsspråk:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Stopp</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Webbplats</translation>
 <translation id="15662109988763471">Den valda skrivaren är inte tillgänglig eller har inte installerats korrekt. Kontrollera skrivaren eller välj en annan.</translation>
 <translation id="1567387640189251553">Ett annat tangentbord har anslutits sedan du senast angav lösenordet. Det kan försöka stjäla dina tangenttryckningar.</translation>
-<translation id="1567750922576943685">Skydda personliga uppgifter genom att verifiera din identitet</translation>
 <translation id="1567993339577891801">JavaScript-konsol</translation>
 <translation id="1568323446248056064">Öppna enhetsinställningarna för skärm</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (gäst)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Konst</translation>
 <translation id="1697686431566694143">Redigera fil</translation>
 <translation id="1698122934742150150">Endast nuvarande inkognitosession</translation>
-<translation id="1698650002254827833">Det gick inte att läsa in listan med appar. Försök igen.</translation>
 <translation id="1700079447639026019">Webbplatser som aldrig kan använda cookies</translation>
 <translation id="1701062906490865540">Ta bort personen</translation>
 <translation id="1703331064825191675">Tänk inte mer på dina lösenord</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Fortsätt</translation>
 <translation id="2173302385160625112">Kontrollera internetanslutningen</translation>
 <translation id="2173801458090845390">Lägg till rekvirerings-id på enheten</translation>
+<translation id="2174948148799307353">Kontot hanteras av <ph name="PARENT_EMAIL" />. Klicka på klockan på skärmen om du vill logga ut från det primära kontot. Klicka på Logga ut i menyn som visas.</translation>
 <translation id="2175607476662778685">Fältet Snabbstart</translation>
 <translation id="217576141146192373">Det gick inte att lägga till en skrivare. Kontrollera skrivarens konfiguration och försök igen.</translation>
 <translation id="2177950615300672361">Fliken Inkognito: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Textskugga</translation>
 <translation id="2445081178310039857">Tilläggets rotkatalog måste anges.</translation>
 <translation id="2445484935443597917">Skapa en ny profil</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> vill verifiera din identitet</translation>
 <translation id="2448312741937722512">Typ</translation>
 <translation id="2450223707519584812">Du kan inte lägga till användare eftersom Googles API-nycklar saknas. Du hittar mer information på <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Inga aktiva vyer</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Öppna <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">En snabb, enkel och säker webbläsare som är anpassad för den moderna webben.</translation>
 <translation id="2949289451367477459">Använd plats. Tillåt att appar och tjänster med platsbehörighet använder enhetens plats. Google kan med jämna mellanrum samla in data som används anonymt i syfte att förbättra platsangivelsens exakthet och platsbaserade tjänster.<ph name="BEGIN_LINK1" />Läs mer<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Jag vill registrera mig</translation>
 <translation id="2956070239128776395">Ett avsnitt har kapslats in i en grupp: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Tillåt inga webbplatser att redigera filer eller mappar på enheten</translation>
 <translation id="2958721676848865875">Varning vid paketering av tillägg</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Gul standardavatar</translation>
 <translation id="3141318088920353606">Lyssnar …</translation>
 <translation id="3141917231319778873">Den angivna förfrågan stöds inte för: <ph name="DEVICE_NAME" />.</translation>
+<translation id="3142562627629111859">Ny grupp</translation>
 <translation id="3143515551205905069">Avbryt synkronisering</translation>
 <translation id="3143754809889689516">Spela upp från början</translation>
 <translation id="3144647712221361880">Öppna länk som</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (med maskinvarustöd)</translation>
 <translation id="3161522574479303604">Alla språk</translation>
+<translation id="3162853326462195145">Skolkonto</translation>
 <translation id="3162899666601560689">Webbplatser får förbättra surfupplevelsen med hjälp av cookies, till exempel genom att låta dig förbli inloggad eller spara vad du har lagt till i kundvagnen</translation>
 <translation id="3163201441334626963">Okänd produkt (<ph name="PRODUCT_ID" />) från leverantören <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Fliken delas med <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Uppdatera enheten inom en dag}other{Uppdatera enheten inom # dagar}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – nätverksfel</translation>
 <translation id="3248902735035392926">Säkerheten har betydelse. Ta dig tid att <ph name="BEGIN_LINK" />kolla igenom dina tillägg nu<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;ingår inte i certifikat&gt;</translation>
 <translation id="3253225298092156258">Inte tillgängligt</translation>
 <translation id="3253448572569133955">Okänt konto</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">När du klickar på Godkänn och fortsätt samtycker du till att dessa tjänster från Google får bearbeta data enligt beskrivningen ovan.</translation>
 <translation id="3399432415385675819">Aviseringar inaktiveras</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) – flätade</translation>
+<translation id="3402585168444815892">Registrerar dig för demoläget</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Inga lösenord har sparats för den här webbplatsen</translation>
 <translation id="3405664148539009465">Anpassa teckensnitt</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android-mobil</translation>
 <translation id="3470442499439619530">Ta bort denna användare</translation>
 <translation id="3471876058939596279">HDMI- och USB Type-C-portar kan inte användas till video och dockningsstation samtidigt. Använd en annan videoport.</translation>
+<translation id="3473241910002674503">Navigera till startsidan, tillbaka och byt appar med knappar i surfplatteläget.</translation>
 <translation id="3473479545200714844">Skärmförstorare</translation>
 <translation id="3475843873335999118">Fingeravtrycket känns fortfarande inte igen. Ange ditt lösenord.</translation>
 <translation id="3476303763173086583">Skicka diagnostik- och användningsdata. Hjälp till att göra Android bättre för ditt barn genom att skicka diagnostikdata, enhetsdata och data om appanvändning till Google automatiskt. Denna data används till att förbättra systemets och apparnas stabilitet med mera och inte till att identifiera ditt barn. Viss samlad data används även till att förbättra appar från Google och partner, till exempel Android-utvecklare. Ägaren har gjort denna <ph name="BEGIN_LINK1" />inställning<ph name="END_LINK1" /> obligatorisk. Ägaren kan ange att diagnostik- och användningsdata om den här enheten ska skickas till Google. Om ytterligare webb- och appaktivitet har aktiverats för ditt barn kan denna data sparas i Google-kontot. <ph name="BEGIN_LINK2" />Läs mer<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Fingeravtryck på den här säkerhetsnyckeln</translation>
 <translation id="3973660817924297510">Kontrollerar lösenord (<ph name="CHECKED_PASSWORDS" /> av <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Det gick inte att kontakta servern för sfären</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan inte kontrollera dina lösenord. Försök igen senare.</translation>
 <translation id="3976108569178263973">Inga skrivare är tillgängliga.</translation>
 <translation id="397703832102027365">Slutför ...</translation>
 <translation id="3977886311744775419">Automatiska uppdateringar laddas inte ned med den här nätverkstypen, men du kan söka efter uppdateringar manuellt.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">På den här sidan finns komponenter från följande webbplatser som spårar din plats:</translation>
 <translation id="4068776064906523561">Sparade fingeravtryck</translation>
 <translation id="407173827865827707">Vid klick</translation>
+<translation id="4073520450811433493">Inställningar synkroniseras</translation>
 <translation id="4074900173531346617">Certifikat för e-postsignering</translation>
 <translation id="407520071244661467">Skaländra</translation>
 <translation id="4075639477629295004">Det gick inte att casta <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Misse</translation>
 <translation id="4423376891418188461">Återställ inställningar</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, administratören kräver att du ändrar ditt lösenord.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan inte kontrollera dina lösenord. Försök igen om ett dygn.</translation>
 <translation id="4429030830601238961">Denna data utgör ett intrång mot organisationens säkerhetspolicy och kan inte klistras in.</translation>
 <translation id="4430019312045809116">Volym</translation>
 <translation id="4430369329743628066">Ett bokmärke har lagts till</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Vill du starta denna app automatiskt när maskinen slås på?</translation>
 <translation id="4441147046941420429">Fortsätt genom att ta bort säkerhetsnyckeln från enheten, sätta i den igen och trycka på den</translation>
 <translation id="444134486829715816">Expandera..</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan kontrollera dina lösenord när du loggar in med Google-kontot</translation>
 <translation id="4442424173763614572">DNS-sökning misslyckades</translation>
 <translation id="4443536555189480885">&amp;Hjälp</translation>
 <translation id="4444304522807523469">Åtkomst till dokumentskannrar som är anslutna via USB eller i det lokala nätverket</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Du kan skanna koden på telefonen med en app för att skanna QR-koder eller med vissa kameraappar.</translation>
 <translation id="4477015793815781985">Använd Ctrl, Alt eller ⌘</translation>
 <translation id="4478664379124702289">Spara l&amp;änk som...</translation>
+<translation id="4478777936860197922">Inga sparade lösenord. <ph name="IDS_SHORT_PRODUCT_NAME" /> kan bara kontrollera dina lösenord om du sparar dem.</translation>
 <translation id="4479424953165245642">Hantera kioskappar</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Den virtuella maskinen konfigureras. Det kan ta några minuter.</translation>
 <translation id="4480590691557335796">Chrome kan hjälpa dig att upptäcka skadlig programvara på datorn och ta bort den</translation>
 <translation id="4481530544597605423">Frånkopplade enheter</translation>
+<translation id="4488107067273194838">Granska alternativen för synkronisering av webbläsaren efter konfigureringen</translation>
 <translation id="4488502501195719518">Vill du rensa all data?</translation>
 <translation id="4495419450179050807">Visa inte den här sidan</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> blockerades automatiskt</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Installera inte</translation>
 <translation id="4850669014075537160">Rullning</translation>
 <translation id="4850886885716139402">Visa</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> aviserar dig om du loggar in med ett utsatt lösenord</translation>
 <translation id="4853020600495124913">Öppna i &amp;nytt fönster</translation>
 <translation id="4854317507773910281">Välj vilket föräldrakonto som ska godkänna</translation>
 <translation id="485480310608090163">Fler inställningar och behörigheter</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">Pinkoden innehåller ogiltiga tecken</translation>
 <translation id="4871370605780490696">Lägg till bokmärke</translation>
 <translation id="4871719318659334896">Stäng grupp</translation>
+<translation id="4871852311166078968">Lägg till i grupp</translation>
 <translation id="4873312501243535625">Mediefilkontroll</translation>
 <translation id="4876273079589074638">Hjälp våra ingenjörer att undersöka och åtgärda den här kraschen. Ange de exakta stegen om du kan. Ingen detalj är för liten.</translation>
 <translation id="4876895919560854374">Låsa och låsa upp skärmen</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Administratören har begränsat vilka inmatningsmetoder som är tillgängliga.</translation>
 <translation id="4994474651455208930">Tillåt att webbplatser begär att bli standardhanterare för protokoll</translation>
 <translation id="4994754230098574403">Konfigurerar</translation>
-<translation id="4996978546172906250">Dela via</translation>
 <translation id="4997086284911172121">Ingen internetanslutning</translation>
 <translation id="4997384734315285248">Avinstallera Plugin VM</translation>
 <translation id="4998430619171209993">På</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Starta assistenten när du säger ”Ok Google”.</translation>
 <translation id="5135533361271311778">Det gick inte att skapa bokmärkesobjektet.</translation>
 <translation id="5137501176474113045">Ta bort det här objektet</translation>
-<translation id="5138982052046316113">Ändra storlek på Linux-disken</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, sökning på <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Ange säkerhetsnyckelns pinkod. Om du inte kommer ihåg pinkoden måste du återställa säkerhetsnyckeln.</translation>
 <translation id="5139955368427980650">&amp;Öppna</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Väntar på verifiering. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Mycket stor</translation>
 <translation id="574209121243317957">Ton</translation>
+<translation id="5745136023067925867">Få tips, erbjudanden och uppdateringar för <ph name="DEVICE_TYPE" /> och dela din feedback</translation>
 <translation id="5746169159649715125">Spara som PDF</translation>
 <translation id="5747552184818312860">Upphör att gälla</translation>
 <translation id="5747785204778348146">Utvecklare – instabil</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Visa i Finder</translation>
 <translation id="6295158916970320988">Alla webbplatser</translation>
 <translation id="6295855836753816081">Sparar ...</translation>
-<translation id="629730747756840877">Konto</translation>
 <translation id="6298962879096096191">Installera appar med hjälp av Google Play</translation>
 <translation id="630065524203833229">&amp;Avsluta</translation>
 <translation id="6300718114348072351">Det gick inte att konfigurera <ph name="PRINTER_NAME" /> automatiskt. Ange avancerade utskriftsalternativ. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Sidan är inte på <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC-händelseloggar (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Färgtemperatur</translation>
-<translation id="6870888490422746447">Välj en app som du vill dela till:</translation>
 <translation id="6871644448911473373">OCSP-svarare: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Det angivna lösenordet avvisades av servern.</translation>
 <translation id="6876155724392614295">Cykel</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – aktivitetslogg</translation>
 <translation id="6997707937646349884">Gör så här på dina enheter:</translation>
 <translation id="6998793565256476099">Registrera enheten för videokonferenser</translation>
+<translation id="6999956497249459195">Ny grupp</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> har anslutits men behöver konfigureras</translation>
 <translation id="7000347579424117903">Ctrl-, alt- eller söktangenten måste finnas med</translation>
 <translation id="7001036685275644873">Säkerhetskopierar Linux-appar och Linux-filer</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">Webbadress</translation>
 <translation id="7400839060291901923">Konfigurera anslutningen på din <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Ignorera det här meddelandet</translation>
+<translation id="7403642243184989645">Laddar ned resurser</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Säkerhetskontrollen kördes för 1 timme sedan}other{Säkerhetskontrollen kördes för {NUM_HOURS} timmar sedan}}</translation>
 <translation id="740624631517654988">Blockering av popup-fönster</translation>
 <translation id="7407430846095439694">Importera och bind</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">Webbadress till Netscapes princip för certifikatutfärdare</translation>
 <translation id="7717014941119698257">Nedladdning: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Sök efter uppdateringar</translation>
+<translation id="7719070594859855691">Ge åtkomst till kameran</translation>
 <translation id="7719367874908701697">Sidzoom</translation>
 <translation id="7721179060400456005">Tillåt att fönster visas över flera skärmar.</translation>
 <translation id="7722040605881499779">Uppdateringen kräver: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Visa utskriftshistoriken</translation>
 <translation id="7744192722284567281">Upptäckt i ett dataintrång</translation>
 <translation id="7750228210027921155">Bild-i-bild</translation>
-<translation id="7751229152614300329">Säker webbsökning är uppdaterad och skyddar dig från skadliga webbplatser och nedladdningar</translation>
 <translation id="7751260505918304024">Visa alla</translation>
 <translation id="7754704193130578113">Fråga var filerna ska sparas före nedladdning</translation>
 <translation id="7755287808199759310">En förälder kan ta bort blockeringen</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Obs!<ph name="END_BOLD" /> Systemet startas om under aktiveringen.</translation>
 <translation id="7828731929332799387">Med denna åtgärd raderas alla cookies och webbplatsuppgifter som är tillgängliga i sammanhang där en tredje part är inblandad. Vill du fortsätta?</translation>
 <translation id="7829298379596169484">Får åtkomst till ljudindata</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan inte kontrollera dina lösenord. Testa att kontrollera internetanslutningen.</translation>
 <translation id="7829877209233347340">Be en förälder att logga in och ge behörighet att lägga till ett skolkonto</translation>
 <translation id="7830594666202422257">Anslut till Linux</translation>
 <translation id="7831491651892296503">Fel i nätverkskonfigurationen</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Google Play Butik installeras på din <ph name="DEVICE_TYPE" />. Det kan ta några minuter.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Inga cookies från tredje part}=1{1 cookie från tredje part har blockerats}other{# cookies från tredje part har blockerats}}</translation>
 <translation id="810875025413331850">Inga enheter i närheten hittades.</translation>
+<translation id="8114199541033039755">Navigera till startsidan, tillbaka och byt appar med knappar i surfplatteläget. Gäller när ChromeVox eller Automatiska klick aktiveras.</translation>
 <translation id="8114875720387900039">Dela vågrätt</translation>
 <translation id="8116972784401310538">&amp;Bokmärkshanteraren</translation>
 <translation id="8117620576188476503">Hantera anslutningar, uppdateringar och inställningar i statusfältet. Tryck på Alt + Skift + S om du vill öppna statusfältet.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> har inaktiverat muspekaren.</translation>
 <translation id="8264024885325823677">Den här inställningen hanteras av administratören.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> aktiverade helskärmsläge.</translation>
+<translation id="826511437356419340">Fönsteröversiktsläget har startats. Navigera genom att svepa, eller tryck på tabb om du använder ett tangentbord.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Detta är allmän information om enheten och hur den används (till exempel batterinivå, system- och appaktivitet samt fel). Med hjälp av dessa uppgifter kan vi förbättra Android. Vissa sammanställda uppgifter kan även hjälpa Googles appar och partner, till exempel Android-utvecklare, att förbättra sina appar och produkter.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Möjligheten att skicka information som behövs för viktiga tjänster, t.ex. systemuppdateringar och säkerhetstjänster, påverkas inte av att den här funktionen inaktiveras.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Ägaren kan styra denna funktion via Inställningar &gt; Avancerat &gt; Skicka diagnostik- och användningsdata automatiskt till Google.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Aktiveras</translation>
 <translation id="8427292751741042100">inbäddad på någon värd</translation>
 <translation id="8428213095426709021">Inställningar</translation>
+<translation id="8428271547607112339">Lägg till skolkonto</translation>
 <translation id="8428628598981198790">Säkerhetsnyckeln kan inte användas med den här webbplatsen</translation>
 <translation id="84297032718407999">Du loggas ut om <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Visa tryck</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Tillåt alltid att <ph name="HOST" /> visar bilder</translation>
 <translation id="8513108775083588393">Rotera automatiskt</translation>
 <translation id="8514746246728959655">Testa med en annan säkerhetsnyckel</translation>
+<translation id="851960115758509829">Appar, inställningar och andra anpassningar synkroniseras på alla Chrome OS-enheter där du är inloggad på ditt Google-konto.</translation>
 <translation id="8521475323816527629">Öppna appar snabbt</translation>
 <translation id="8523493869875972733">Behåll ändringarna</translation>
 <translation id="8523849605371521713">Har lagts till av en policy</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Lagring</translation>
 <translation id="8859057652521303089">Välj språk:</translation>
 <translation id="8859174528519900719">Underram: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Föräldrakonto</translation>
 <translation id="8862003515646449717">Byt till en snabb webbläsare</translation>
 <translation id="8863753581171631212">Öppna länken i en ny <ph name="APP" /></translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> delas med <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> har tagits bort från den här enheten</translation>
 <translation id="8867228703146808825">Kopiera versionsinformation till urklipp</translation>
+<translation id="8868333925931032127">Demoläget startas</translation>
 <translation id="8868626022555786497">Används</translation>
 <translation id="8870413625673593573">Nyligen stängda</translation>
 <translation id="8871551568777368300">Har fästs av administratören</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Öppna en flik på nytt om du stängde den av misstag</translation>
 <translation id="8967866634928501045">Visa med alt+skift+A</translation>
 <translation id="8968766641738584599">Spara kortet</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> kan inte kontrollera dina lösenord. Försök igen om 24 timmar eller <ph name="BEGIN_LINK" />kontrollera lösenorden i ditt Google-konto<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Kontrollera med nätverksadministratören att brandväggen inte blockerar nedladdning från Googles servrar.</translation>
 <translation id="8973557916016709913">Ta bort zoomnivå</translation>
@@ -6120,7 +6140,7 @@
 <translation id="930268624053534560">Detaljerade tidsstämplar</translation>
 <translation id="932327136139879170">Startsida</translation>
 <translation id="932508678520956232">Det gick inte att påbörja utskriften.</translation>
-<translation id="93343527085570547">Besök <ph name="BEGIN_LINK1" />sidan med juridisk hjälp<ph name="END_LINK1" /> om du vill begära innehållsändringar av juridiska skäl. Viss konto- och systeminformation kan skickas till Google. Med hjälp av dessa uppgifter kan vi åtgärda tekniska problem och förbättra våra tjänster. Informationen används i enlighet med Googles <ph name="BEGIN_LINK2" />sekretesspolicy<ph name="END_LINK2" /> och <ph name="BEGIN_LINK3" />användarvillkor<ph name="END_LINK3" />.</translation>
+<translation id="93343527085570547">Besök <ph name="BEGIN_LINK1" />sidan med juridisk hjälp<ph name="END_LINK1" /> om du vill begära innehållsändringar av juridiska skäl. Viss konto- och systeminformation kan skickas till Google. Med hjälp av dessa uppgifter kan vi åtgärda tekniska problem och förbättra våra tjänster. Informationen används i enlighet med Googles <ph name="BEGIN_LINK2" />sekretesspolicy<ph name="END_LINK2" /> och våra <ph name="BEGIN_LINK3" />användarvillkor<ph name="END_LINK3" />.</translation>
 <translation id="93393615658292258">Endast lösenord</translation>
 <translation id="934244546219308557">Namnge den här gruppen</translation>
 <translation id="934503638756687833">Även objekt som inte står med här tas bort om det behövs. Läs mer om &lt;a href="<ph name="URL" />"&gt;skydd mot oönskad programvara&lt;/a&gt; i vitboken om sekretess och Chrome.</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index d5cce9a3..cbfd228f 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Vifaa vinavyopatikana</translation>
 <translation id="1042174272890264476">Kompyuta yako pia huja na maktaba ya <ph name="SHORT_PRODUCT_NAME" /> ya RLZ iliyojengewa ndani. RLZ hutoa lebo isiyo ya kipekee, isiyotambulika kibinafsi ili kupima utafutaji na matumizi ya <ph name="SHORT_PRODUCT_NAME" />  yanayoendeshwa na kampeni husika ya ukwezaji. Lebo hizi wakati mwingine hutokea katika hoja za Huduma ya Tafuta na Google katika <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Pia, ungependa kufuta data kutoka kwenye programu hizi?</translation>
+<translation id="1045448422538531528">Weka kwenye kikundi</translation>
 <translation id="1046635659603195359">Inaonekana kuwa tayari umeweka mipangilio ya Voice Match katika programu ya Mratibu wa Google kwenye kifaa kingine. Rekodi hizi za awali zinaweza kutumika kutengeneza mfano wa sauti kwenye kifaa hiki. Hatua hii haitachukua zaidi ya dakika moja.</translation>
 <translation id="104710386808485638">Ungependa Kuzima Kisha Uwashe Linux?</translation>
 <translation id="1047431265488717055">Nakili Maandishi ya Kiungo</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Zuia ufikiaji wa kamera kila wakati</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> inataka kurejesha Mipangilio yako ya Chrome katika hali yake ya chaguomsingi. Hii itaweka upya ukurasa wako wa kwanza, ukurasa mpya wa kichupo na mtambo wa kutafuta, izime viendelezi vyako na kubanua vichupo vyote. Pia itafuta data nyingine iliyohifadhiwa kwa muda na iliyoakibishwa, kama vile vidakuzi, maudhui na data ya tovuti.</translation>
+<translation id="1084096383128641877">Hatua ya kuondoa nenosiri hili haitafuta akaunti yako kwenye <ph name="DOMAIN" />. Badilisha nenosiri au futa akaunti yako kwenye <ph name="DOMAIN_LINK" /> ili uilinde dhidi ya watu wengine.</translation>
 <translation id="1084824384139382525">Nakili &amp;anwani ya kiungo</translation>
 <translation id="1085697365578766383">Hitilafu imetokea wakati wa kuwasha mashine dhahania. Tafadhali jaribu tena.</translation>
 <translation id="1090126737595388931">Hakuna Programu zinazoendelea katika Mandharinyuma</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Angalizo la usalama lilitekelezwa jana</translation>
 <translation id="1260451001046713751">Ruhusu madirisha ibukizi na kuelekezwa kwingine kwenye <ph name="HOST" /> kila wakati</translation>
 <translation id="126156426083987769">Hitilafu imetokea kwenye hali ya onyesho ya leseni ya kifaa.</translation>
+<translation id="1263490604593716556">Akaunti inasimamiwa na <ph name="FIRST_PARENT_EMAIL" /> na <ph name="SECOND_PARENT_EMAIL" />. Ili uondoke katika akaunti ya msingi kwenye kifaa hiki, bofya saa kwenye skrini yako. Kwenye menyu inayoonekana, bofya "Ondoka katika akaunti".</translation>
 <translation id="126710816202626562">Lugha ya kutafsiri:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Simamisha</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">Tovuti</translation>
 <translation id="15662109988763471">Printa iliyochaguliwa haipatikani au haijasakinishwa vizuri. Angalia printa yako au ujaribu kuchagua printa nyingine.</translation>
 <translation id="1567387640189251553">Kibodi tofauti imeunganishwa baada ya tukio lako la hivi karibuni la kuweka nenosiri. Huenda inajaribu kuiba mibofyo yako.</translation>
-<translation id="1567750922576943685">Hatua ya kuthibitisha utambulisho wako inasaidia kulinda taarifa zako za binafsi</translation>
 <translation id="1567993339577891801">Kidhibiti JavaScript</translation>
 <translation id="1568323446248056064">Fungua mipangilio ya kifaa ya onyesho</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Mgeni)</translation>
@@ -516,7 +518,6 @@
 <translation id="1697150536837697295">Sanaa</translation>
 <translation id="1697686431566694143">Badilisha faili</translation>
 <translation id="1698122934742150150">Kipindi cha sasa cha hali fiche pekee</translation>
-<translation id="1698650002254827833">Imeshindwa kupakia orodha ya programu. Tafadhali jaribu tena.</translation>
 <translation id="1700079447639026019">Tovuti ambazo haziwezi kutumia vidakuzi kamwe</translation>
 <translation id="1701062906490865540">Ondoa mtumiaji huyu</translation>
 <translation id="1703331064825191675">Usiwe na wasiwasi kuhusu manenosiri yako</translation>
@@ -870,6 +871,7 @@
 <translation id="2172784515318616985">Endelea</translation>
 <translation id="2173302385160625112">Angalia muunganisho wako wa intaneti</translation>
 <translation id="2173801458090845390">Ongeza ombi la Kitambulisho kwenye kifaa hiki</translation>
+<translation id="2174948148799307353">Akaunti inasimamiwa na <ph name="PARENT_EMAIL" />. Ili uondoke katika akaunti ya msingi kwenye kifaa hiki, bofya saa kwenye skrini yako. Kwenye menyu inayoonekana, bofya "Ondoka katika akaunti".</translation>
 <translation id="2175607476662778685">Upau-Zindua-Kasi</translation>
 <translation id="217576141146192373">Imeshindwa kuweka printa. Tafadhali kagua mipangilio ya printa yako kisha ujaribu tena.</translation>
 <translation id="2177950615300672361">Kichupo Fiche: <ph name="TAB_NAME" /></translation>
@@ -1078,7 +1080,6 @@
 <translation id="2442916515643169563">Vivuli vya maandishi</translation>
 <translation id="2445081178310039857">Saraka la shina la kiendelezi linahitajika.</translation>
 <translation id="2445484935443597917">Unda Wasifu Mpya</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> inataka kuthibitisha utambulisho wako</translation>
 <translation id="2448312741937722512">Aina</translation>
 <translation id="2450223707519584812">Hutaweza kuwaongeza watumiaji kwa sababu funguo za API ya Google hazipo. Angalia <ph name="DETAILS_URL" /> kwa maelezo.</translation>
 <translation id="2450849356604136918">Haijatazamwa</translation>
@@ -1476,6 +1477,7 @@
 <translation id="2948300991547862301">Nenda kwenye <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Kivinjari kilicho na kasi, rahisi kutumia, na salama, kilichoundwa kwa ajili ya wavuti wa kisasa.</translation>
 <translation id="2949289451367477459">Tumia huduma za mahali. Ruhusu programu na huduma zenye ruhusa ya mahali zitumie data ya mahali kilipo kifaa hiki. Google inaweza kukusanya data ya mahali mara moja moja na kutumia data hii kwa njia ambayo haikutambulishi ili kuboresha usahihi wa mahali na huduma zinazohusiana na mahali. <ph name="BEGIN_LINK1" />Pata maelezo zaidi<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Nisajili</translation>
 <translation id="2956070239128776395">Sehemu imewekwa katika kikundi: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Usiruhusu tovuti zozote kubadilisha faili au folda kwenye kifaa chako</translation>
 <translation id="2958721676848865875">Onyo la kiendelezi cha kifurushi</translation>
@@ -1600,6 +1602,7 @@
 <translation id="3139925690611372679">Ishara chaguomsingi manjano</translation>
 <translation id="3141318088920353606">Inasikiliza...</translation>
 <translation id="3141917231319778873">Ombi hili maalum halitumiki kwenye: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Kikundi Kipya</translation>
 <translation id="3143515551205905069">Ghairi usawazishaji</translation>
 <translation id="3143754809889689516">Cheza kuanzia mwanzo</translation>
 <translation id="3144647712221361880">Fungua kiungo ukitumia</translation>
@@ -1624,6 +1627,7 @@
 <translation id="3159493096109238499">Kahawia Hafifu</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (inatumia maunzi)</translation>
 <translation id="3161522574479303604">Lugha zote</translation>
+<translation id="3162853326462195145">Akaunti ya shule</translation>
 <translation id="3162899666601560689">Tovuti zinaweza kutumia vidakuzi ili kuboresha hali yako ya kuvinjari, kwa mfano, ili kufanya ubaki ukiwa umeingia katika akaunti au kukumbuka bidhaa zilizo kwenye kikapu chako cha ununuzi</translation>
 <translation id="3163201441334626963">Bidhaa isiyojulikana <ph name="PRODUCT_ID" /> kutoka kwa mchuuzi <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Inashiriki kichupo hiki kwenye <ph name="APP_NAME" /></translation>
@@ -1682,7 +1686,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Sasisha kifaa ndani ya siku moja}other{Sasisha kifaa ndani ya siku #}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Hitilafu ya mtandao</translation>
 <translation id="3248902735035392926">Masuala ya usalama. Chukua muda mfupi na <ph name="BEGIN_LINK" />uangalie viendelezi vyako sasa<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Sio Sehemu Ya Cheti&gt;</translation>
 <translation id="3253225298092156258">Haipatikani</translation>
 <translation id="3253448572569133955">Akaunti isiyojulikana</translation>
@@ -1787,6 +1790,7 @@
 <translation id="3396800784455899911">Kwa kubofya kitufe cha "Kubali na uendelee", unakubali uchakataji uliobainishwa hapo juu katika huduma hizi za Google.</translation>
 <translation id="3399432415385675819">Arifa zitazimwa</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Hertz <ph name="REFRESH_RATE" />) - imejumuishwa pamoja</translation>
+<translation id="3402585168444815892">Inaandikisha katika Hali ya Onyesho</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Hakuna manenosiri ya tovuti hii yaliyohifadhiwa</translation>
 <translation id="3405664148539009465">Badilisha fonti zikufae</translation>
@@ -1848,6 +1852,7 @@
 <translation id="3468999815377931311">Simu ya Android</translation>
 <translation id="3470442499439619530">Ondoa Mtumiaji Huyu</translation>
 <translation id="3471876058939596279">Milango ya USB Aina ya C na HDMI haiwezi kutumika kuonyesha video kwa wakati mmoja. Tumia mlango tofauti wa video.</translation>
+<translation id="3473241910002674503">Nenda kwenye kitufe cha mwanzo, nyuma na ubadilishe programu ukitumia vitufe katika hali ya kompyuta kibao.</translation>
 <translation id="3473479545200714844">Kikuza skrini</translation>
 <translation id="3475843873335999118">Samahani, alama yako ya kidole bado haijatambuliwa. Tafadhali weka nenosiri lako.</translation>
 <translation id="3476303763173086583">Tuma data ya matumizi na uchunguzi. Tusaidie kuboresha jinsi mtoto wako anavyotumia Android kwa kutuma kiotomatiki data ya uchunguzi na matumizi ya kifaa na programu kwa Google. Hatutatumia data hii kumtambulisha mtoto wako na itatusaidia kuboresha uthabiti wa programu na mfumo na maboresho mengine. Baadhi ya maelezo yaliyojumlishwa pia yatasaidia programu za Google na washirika kama vile wasanidi programu za Android. <ph name="BEGIN_LINK1" />Mipangilio<ph name="END_LINK1" /> hii inatekelezwa na mmiliki. Mmiliki anaweza kuamua kutuma data ya uchunguzi na matumizi ya kifaa hiki kwa Google. Ikiwa umewasha mipangilio ya historia ya Shughuli za ziada kwenye Wavuti na Programu kwa ajili ya mtoto wako, data hii inaweza kuhifadhiwa kwenye akaunti yake ya Google. <ph name="BEGIN_LINK2" />Pata maelezo zaidi<ph name="END_LINK2" /></translation>
@@ -2272,6 +2277,7 @@
 <translation id="3971764089670057203">Alama za vidole zilizo kwenye ufunguo huu wa usalama</translation>
 <translation id="3973660817924297510">Inakagua manenosiri (<ph name="CHECKED_PASSWORDS" /> kati ya <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Imeshindwa kuwasiliana na sehemu kwenye seva</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> imeshindwa kukagua manenosiri yako. Jaribu tena baadaye.</translation>
 <translation id="3976108569178263973">Hakuna printa zinazopatikana.</translation>
 <translation id="397703832102027365">Inahitimisha</translation>
 <translation id="3977886311744775419">Masasisho ya kiotomatiki hayawezi kupakuliwa kwenye aina hii ya mtandao lakini unaweza kuangalia masasisho mwenyewe.</translation>
@@ -2335,6 +2341,7 @@
 <translation id="4068506536726151626">Ukurasa huu una vipengee kutoka tovuti zifuatazo ambazo zinafuatilia mahali ulipo:</translation>
 <translation id="4068776064906523561">Alama za vidole zilizohifadhiwa</translation>
 <translation id="407173827865827707">Unapobofya</translation>
+<translation id="4073520450811433493">Usawazishaji wa mipangilio</translation>
 <translation id="4074900173531346617">Cheti cha Anayetia Vyeti Sahihi</translation>
 <translation id="407520071244661467">Kipimo</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> haijatumwa.</translation>
@@ -2569,6 +2576,7 @@
 <translation id="4421932782753506458">Kibonge</translation>
 <translation id="4423376891418188461">Rejesha Mipangilio</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, msimamizi wako anakuhitaji ubadilishe nenosiri lako.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> imeshindwa kukagua manenosiri yako. Jaribu tena baada ya saa 24.</translation>
 <translation id="4429030830601238961">Data hii inakiuka sera za usalama za shirika lako na haiwezi kubandikwa.</translation>
 <translation id="4430019312045809116">Kiwango</translation>
 <translation id="4430369329743628066">Alamisho imeongezwa</translation>
@@ -2581,6 +2589,7 @@
 <translation id="4441124369922430666">Je, ungependa kuanzisha programu hii kiotomatiki mashine itakapowashwa?</translation>
 <translation id="4441147046941420429">Ili uendelee, ondoa ufunguo wako wa usalama kwenye kifaa chako, kisha uuweke tena na uuguse.</translation>
 <translation id="444134486829715816">Panua...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> inaweza kukagua manenosiri yako unapoingia ukitumia Akaunti yako ya Google</translation>
 <translation id="4442424173763614572">Mwonekano wa DNS umeshindikana</translation>
 <translation id="4443536555189480885">&amp;Msaada</translation>
 <translation id="4444304522807523469">Fikia vichunguzi vya hati vilivyoambatishwa kupitia USB au kwenye mtandao wa karibu</translation>
@@ -2607,11 +2616,13 @@
 <translation id="4476659815936224889">Ili uchanganue msimbo huu, unaweza kutumia programu ya kichanganuzi cha QR kwenye simu yako au baadhi ya programu za kamera.</translation>
 <translation id="4477015793815781985">Jumuisha Ctrl, Alt, au ⌘</translation>
 <translation id="4478664379124702289">Hifadhi &amp;Kiungo Kama...</translation>
+<translation id="4478777936860197922">Hakuna manenosiri yaliyohifadhiwa. <ph name="IDS_SHORT_PRODUCT_NAME" /> inaweza kukagua manenosiri yako ukiyahifadhi.</translation>
 <translation id="4479424953165245642">Programu za kioski zinazodhibitiwa</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Inaweka mipangilio ya mashine dhahania. Hatua hii inaweza kuchukua dakika kadhaa.</translation>
 <translation id="4480590691557335796">Chrome inaweza kupata programu hatari kwenye kompyuta yako na kuiondoa</translation>
 <translation id="4481530544597605423">Vifaa visivyooanishwa</translation>
+<translation id="4488107067273194838">Kagua chaguo za kusawazisha za kivinjari baada ya kuweka mipangilio</translation>
 <translation id="4488502501195719518">Je, ungependa kufuta data yote?</translation>
 <translation id="4495419450179050807">Usionyeshe kwenye ukurasa huu</translation>
 <translation id="4496054781541092778">kimezuia kiotomatiki <ph name="PERMISSION" /></translation>
@@ -2853,6 +2864,7 @@
 <translation id="4849517651082200438">Usisakinishe</translation>
 <translation id="4850669014075537160">Kusogeza</translation>
 <translation id="4850886885716139402">Mwonekano</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> itakuarifu ukiingia katika akaunti ukitumia nenosiri lililoathiriwa</translation>
 <translation id="4853020600495124913">Fungua katika &amp;dirisha jipya</translation>
 <translation id="4854317507773910281">Chagua akaunti ya mzazi ya kuidhinisha</translation>
 <translation id="485480310608090163">Mipangilio na ruhusa zaidi</translation>
@@ -2871,6 +2883,7 @@
 <translation id="4871322859485617074">PIN ina nambari zisizo sahihi</translation>
 <translation id="4871370605780490696">Ongeza alamisho</translation>
 <translation id="4871719318659334896">Funga kikundi</translation>
+<translation id="4871852311166078968">Weka kwenye Kikundi</translation>
 <translation id="4873312501243535625">Kikagua Faili za Maudhui</translation>
 <translation id="4876273079589074638">Wasaidie wahandisi wetu kuchunguza na kurekebisha hitilafu hii ya kuacha kufanya kazi. Orodhesha hatua kamili kama unaweza. Maelezo yote ni muhimu!</translation>
 <translation id="4876895919560854374">Funga na ufungue skrini</translation>
@@ -2962,7 +2975,6 @@
 <translation id="4992473555164495036">Msimamizi wako amedhibiti njia zilizopo za kuweka data.</translation>
 <translation id="4994474651455208930">Ruhusu tovuti kutuma ombi la kuwa vidhibiti chaguomsingi vya itifaki</translation>
 <translation id="4994754230098574403">Inaweka mipangilio</translation>
-<translation id="4996978546172906250">Shiriki kupitia</translation>
 <translation id="4997086284911172121">Hakuna muunganisho wa Intaneti.</translation>
 <translation id="4997384734315285248">Ondoa Plugin VM</translation>
 <translation id="4998430619171209993">Imewashwa</translation>
@@ -3062,7 +3074,6 @@
 <translation id="5135085122826131075">Fikia programu yako ya Mratibu unaposema "Ok Google"</translation>
 <translation id="5135533361271311778">Isingeweza kuunda kipengee cha alamisho.</translation>
 <translation id="5137501176474113045">Futa kipengee hiki</translation>
-<translation id="5138982052046316113">Badilisha Ukubwa wa Diski ya Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, Utafutaji wa <ph name="DEFAULT_SEARCH_ENGINE_NAME" />.</translation>
 <translation id="5139823398361067371">Weka PIN ya ufunguo wako wa usalama. Ikiwa hujui PIN, utahitaji kuweka upya mipangilio ya ufunguo wa usalama.</translation>
 <translation id="5139955368427980650">&amp;Fungua</translation>
@@ -3514,6 +3525,7 @@
 <translation id="5739235828260127894">Inasubiri uthibitishaji. <ph name="LINK_BEGIN" />Pata maelezo zaidi.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Kubwa sana</translation>
 <translation id="574209121243317957">Uzito wa sauti</translation>
+<translation id="5745136023067925867">Pata taarifa, ofa na vidokezo kuhusu <ph name="DEVICE_TYPE" /> na ushiriki maoni</translation>
 <translation id="5746169159649715125">Hifadhi kama PDF</translation>
 <translation id="5747552184818312860">Muda wake unakwisha</translation>
 <translation id="5747785204778348146">Msanidi programu - sio imara</translation>
@@ -3926,7 +3938,6 @@
 <translation id="6291953229176937411">Onye&amp;sha katika Kipataji</translation>
 <translation id="6295158916970320988">Tovuti zote</translation>
 <translation id="6295855836753816081">Inahifadhi...</translation>
-<translation id="629730747756840877">Akaunti</translation>
 <translation id="6298962879096096191">Tumia Google Play kusakinisha programu za Android</translation>
 <translation id="630065524203833229">Ondoka</translation>
 <translation id="6300718114348072351">Imeshindwa kuweka mipangilio ya <ph name="PRINTER_NAME" /> kiotomatiki. Tafadhali bainisha maelezo ya kina ya printa. <ph name="LINK_BEGIN" />Pata maelezo zaidi<ph name="LINK_END" /></translation>
@@ -4332,7 +4343,6 @@
 <translation id="6865598234501509159">Ukurasa Haujaandikwa katika <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Kumbukumbu za matukio ya WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Halijoto ya rangi</translation>
-<translation id="6870888490422746447">Chagua programu ili kushiriki kwenye:</translation>
 <translation id="6871644448911473373">Kijibu OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Nenosiri uliloweka limekataliwa na seva.</translation>
 <translation id="6876155724392614295">Baiskeli</translation>
@@ -4425,6 +4435,7 @@
 <translation id="6997642619627518301">Kumbukumbu ya Shughuli ya - <ph name="NAME_PH" /></translation>
 <translation id="6997707937646349884">Kwenye vifaa vyako:</translation>
 <translation id="6998793565256476099">Sajili vifaa vitumike kwenye mkutano wa video</translation>
+<translation id="6999956497249459195">Kikundi kipya</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> imeunganishwa lakini inahitaji kuwekewa mipangilio</translation>
 <translation id="7000347579424117903">Jumuisha kitufe cha Ctrl, Alt, au Utafutaji</translation>
 <translation id="7001036685275644873">Inaweka nakala za programu na faili za Linux</translation>
@@ -4723,6 +4734,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Weka mipangilio ya muunganisho kwenye <ph name="PHONE_NAME" /> yako</translation>
 <translation id="7401778920660465883">Ondoa ujumbe huu</translation>
+<translation id="7403642243184989645">Inapakua Nyenzo</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Angalizo la usalama lilitekelezwa saa moja iliyopita}other{Angalizo la usalama lilitekelezwa saa {NUM_HOURS} zilizopita}}</translation>
 <translation id="740624631517654988">Kidirisha ibukizi kimezuiwa</translation>
 <translation id="7407430846095439694">Leta na Ufunge</translation>
@@ -4959,6 +4971,7 @@
 <translation id="7716781361494605745">URL ya Sera ya Idhini ya Cheti cha Netscape</translation>
 <translation id="7717014941119698257">Inapakua: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Angalia masasisho</translation>
+<translation id="7719070594859855691">Ipe uwezo wa kufikia kamera</translation>
 <translation id="7719367874908701697">Kuza ukurasa</translation>
 <translation id="7721179060400456005">Ruhusu madirisha kuonyeshwa katika skrini tofauti kana kwamba ni moja</translation>
 <translation id="7722040605881499779">Nafasi inayohitajika ili kusasisha: <ph name="NECESSARY_SPACE" /></translation>
@@ -4973,7 +4986,6 @@
 <translation id="7744047395460924128">Angalia historia yako ya uchapishaji</translation>
 <translation id="7744192722284567281">Limepatikana kwenye tukio la ufichuzi haramu wa data</translation>
 <translation id="7750228210027921155">Picha ndani ya picha</translation>
-<translation id="7751229152614300329">Kipengele cha Kuvinjari Salama kimesasishwa na kinakulinda kutokana na vipakuliwa na tovuti hatari</translation>
 <translation id="7751260505918304024">Onyesha zote</translation>
 <translation id="7754704193130578113">Uliza mahali pa kuhifadhi kila faili kabla ya kuipakua.</translation>
 <translation id="7755287808199759310">Mzazi wako anaweza kukuondolea kizuizi</translation>
@@ -5063,6 +5075,7 @@
     <ph name="BEGIN_BOLD" />Kumbuka:<ph name="END_BOLD" /> Mfumo utazima na kuwaka tena wakati wa mchakato huu.</translation>
 <translation id="7828731929332799387">Hatua hii itafuta vidakuzi na data yote ya tovuti inayopatikana katika muktadha wa watu au kampuni nyingine. Je, ungependa kuendelea?</translation>
 <translation id="7829298379596169484">Inafikia vifaa vya kuingiza sauti</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> imeshindwa kukagua manenosiri yako. Jaribu kuangalia muunganisho wako wa Intaneti.</translation>
 <translation id="7829877209233347340">Mweleze mzazi aingie katika akaunti ili akupe ruhusa ya kuweka akaunti ya shuleni</translation>
 <translation id="7830594666202422257">Unganisha kwenye Linux</translation>
 <translation id="7831491651892296503">Hitilafu imetokea wakati wa kuweka mipangilio ya mtandao</translation>
@@ -5285,6 +5298,7 @@
 <translation id="8107015733319732394">Inasakinisha duka la Google Play kwenye <ph name="DEVICE_TYPE" />. Huenda hatua hii ikachukua dakika chache.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Hakuna vidakuzi vya mtu au kampuni nyingine}=1{Imezuia kidakuzi kimoja cha mtu au kampuni nyingine}other{Imezuia vidakuzi # vya mtu na kampuni nyingine}}</translation>
 <translation id="810875025413331850">Haikupata vifaa vyovyote vilivyo karibu.</translation>
+<translation id="8114199541033039755">Nenda kwenye kitufe cha mwanzo, nyuma na ubadilishe programu ukitumia vitufe katika hali ya kompyuta kibao. Huwashwa wakati ChromeVox au kipengele cha Mibofyo ya kiotomatiki kimewashwa.</translation>
 <translation id="8114875720387900039">Gawanya kimlalo</translation>
 <translation id="8116972784401310538">Kidhi&amp;biti alamisho</translation>
 <translation id="8117620576188476503">Dhibiti miunganisho, masasisho na mipangilio ukitumia treya ya hali. Ili kufikia kwa kutumia kibodi, bonyeza Alt + Shift + S.</translation>
@@ -5404,6 +5418,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> imelemaza kiteuzi chako cha kipanya.</translation>
 <translation id="8264024885325823677">Mipangilio hii inadhibitiwa na msimamizi wako.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ilianzisha skrini nzima.</translation>
+<translation id="826511437356419340">Umeweka hali ya muhtasari wa dirisha Telezesha kidole ili usogeze au bonyeza kichupo ikiwa unatumia kibodi.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Haya ni maelezo ya jumla kuhusu kifaa chako na jinsi unavyokitumia (kama vile kiasi cha chaji ya betri, shughuli za mfumo na programu na hitilafu). Data hii itatumika kuboresha Android na baadhi ya maelezo yaliyojumlishwa yatasaidia pia programu na washirika wa Google kama vile wasanidi programu za Android, kuboresha huduma na programu zao.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Hatua ya kuzima kipengele hiki haitaathiri uwezo wa kifaa chako kutuma maelezo yanayohitajika katika huduma za msingi kama vile usalama na masasisho ya mfumo.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Mmiliki anaweza kudhibiti kipengele hiki katika Mipangilio &gt; Mipangilio ya Kina &gt; Tuma kiotomatiki data ya uchunguzi na matumizi kwa Google.<ph name="END_PARAGRAPH3" />
@@ -5512,6 +5527,7 @@
 <translation id="8426713856918551002">Inawasha</translation>
 <translation id="8427292751741042100">pachika kwenye seva pangishi yoyote</translation>
 <translation id="8428213095426709021">Mipangilio</translation>
+<translation id="8428271547607112339">Weka akaunti ya shule</translation>
 <translation id="8428628598981198790">Huwezi kutumia ufunguo wako wa usalama kwenye tovuti hii</translation>
 <translation id="84297032718407999">Utaondolewa kwenye akaunti baada ya <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Onyesha unapogusa</translation>
@@ -5575,6 +5591,7 @@
 <translation id="851263357009351303">Ruhusu <ph name="HOST" /> ionyeshe picha kila wakati</translation>
 <translation id="8513108775083588393">Zungusha kiotomatiki</translation>
 <translation id="8514746246728959655">Jaribu ufunguo tofauti wa usalama</translation>
+<translation id="851960115758509829">Mipangilio, programu na mapendeleo yako mengine, yatasawazishwa kwenye vifaa vyote vinavyotumia Mfumo wa Uendeshaji wa Chrome, ambavyo umetumia kuingia katika Akaunti yako ya Google.</translation>
 <translation id="8521475323816527629">Zifikie programu zako haraka</translation>
 <translation id="8523493869875972733">Hifadhi Mabadiliko</translation>
 <translation id="8523849605371521713">Imeongezwa na sera</translation>
@@ -5856,11 +5873,13 @@
 <translation id="885701979325669005">Hifadhi</translation>
 <translation id="8859057652521303089">Chagua lugha yako:</translation>
 <translation id="8859174528519900719">Fremu ndogo: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Akaunti ya mzazi</translation>
 <translation id="8862003515646449717">Badilisha ili utumie kivinjari chenye kasi zaidi</translation>
 <translation id="8863753581171631212">Fungua kiungo katika <ph name="APP" /> mpya</translation>
 <translation id="8864055848767439877">Inashiriki <ph name="TAB_NAME" /> kwenye <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Imeondoa <ph name="EMAIL" /> kwenye kifaa hiki</translation>
 <translation id="8867228703146808825">Nakili maelezo ya muundo kwenye ubao wa kunakili</translation>
+<translation id="8868333925931032127">Inaanzisha Hali ya Onyesho</translation>
 <translation id="8868626022555786497">Inatumika</translation>
 <translation id="8870413625673593573">Zilizofungwa Hivi Karibuni</translation>
 <translation id="8871551568777368300">Imebandikwa na msimamizi</translation>
@@ -5939,6 +5958,7 @@
 <translation id="8966870118594285808">Fungua tena kichupo ikiwa umekifunga kimakosa</translation>
 <translation id="8967866634928501045">Bonyeza Alt Shift A ili uonyeshe</translation>
 <translation id="8968766641738584599">Hifadhi kadi</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> imeshindwa kukagua manenosiri yako. Jaribu tena baada ya saa 24 au <ph name="BEGIN_LINK" />kagua manenosiri katika Akaunti yako ya Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Ondoka</translation>
 <translation id="8972513834460200407">Tafadhali wasiliana na msimamzi wako wa mtandao ili uhakikishe kuwa ngome haizuii vipakuliwa kutoka seva za Google.</translation>
 <translation id="8973557916016709913">Ondoa kiwango cha kukuza</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 3f793be..cba10d1 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -417,7 +417,6 @@
 <translation id="1566049601598938765">இணையதளம்</translation>
 <translation id="15662109988763471">தேர்ந்தெடுத்த பிரிண்டர் இல்லை அல்லது சரியாக நிறுவப்படவில்லை. சரிபார்க்கவும் அல்லது வேறொன்றைத் தேர்ந்தெடுக்கவும்.</translation>
 <translation id="1567387640189251553">நீங்கள் கடைசியாகக் கடவுச்சொல்லை உள்ளிட்ட பிறகு வேறொரு விசைப்பலகை இணைக்கப்பட்டுள்ளது. அது உங்கள் விசை அழுத்தங்களைத் திருட முயற்சித்துக் கொண்டிருக்கக்கூடும்.</translation>
-<translation id="1567750922576943685">அடையாளத்தைச் சரிபார்க்கும் செயல்பாடு, உங்கள் தனிப்பட்ட தகவலைப் பாதுகாக்க உதவும்</translation>
 <translation id="1567993339577891801">JavaScript கன்சோல்</translation>
 <translation id="1568323446248056064">திரை அமைப்புகளைத் திற</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (கெஸ்ட்)</translation>
@@ -519,7 +518,6 @@
 <translation id="1697150536837697295">கலை</translation>
 <translation id="1697686431566694143">கோப்பைத் திருத்து</translation>
 <translation id="1698122934742150150">தற்போதைய மறைநிலை அமர்விற்கு மட்டும்</translation>
-<translation id="1698650002254827833">ஆப்ஸ் பட்டியலை ஏற்ற முடியவில்லை. மீண்டும் முயலவும்.</translation>
 <translation id="1700079447639026019">குக்கீகளை எப்போதுமே பயன்படுத்த முடியாத தளங்கள்</translation>
 <translation id="1701062906490865540">இவரை அகற்று</translation>
 <translation id="1703331064825191675">உங்கள் கடவுச்சொற்களைப் பற்றிய கவலை ஒருபோதும் வேண்டாம்</translation>
@@ -556,7 +554,7 @@
 <translation id="1744060673522309905">சாதனத்தை டொமைனுடன் இணைக்க முடியவில்லை. நீங்கள் சேர்க்கக்கூடிய சாதனங்களின் அதிகபட்ச எண்ணிக்கையை மீறவில்லை என்பதை உறுதிசெய்யவும்.</translation>
 <translation id="1744108098763830590">பின்புலப் பக்கம்</translation>
 <translation id="1750172676754093297">உங்கள் பாதுகாப்பு விசையில் கைரேகைகளைச் சேமிக்க முடியவில்லை</translation>
-<translation id="1751262127955453661">தாவல்கள் அனைத்தையும் நீங்கள் மூடும் வரை <ph name="ORIGIN" /> தளத்தால் <ph name="FOLDERNAME" /> இல் உள்ள கோப்புகளைத் திருத்த முடியும்</translation>
+<translation id="1751262127955453661">இந்தத் தளத்தின் தாவல்கள் அனைத்தையும் மூடும் வரை <ph name="ORIGIN" /> தளத்தால் <ph name="FOLDERNAME" /> இல் உள்ள கோப்புகளைத் திருத்த முடியும்</translation>
 <translation id="175196451752279553">மூடிய தாவலை ம&amp;றுபடி திறக்கவும்</translation>
 <translation id="1753067873202720523">உங்கள் Chromebook இயக்கத்தில் இருக்கும்போது சார்ஜ் செய்ய முடியாது.</translation>
 <translation id="1753905327828125965">அதிகமாகப் பார்க்கப்பட்டவை</translation>
@@ -623,7 +621,7 @@
 <translation id="1822140782238030981">ஏற்கனவே Chrome பயனரா? உள்நுழைக</translation>
 <translation id="18245044880483936">உங்கள் பிள்ளையின் Drive சேமிப்பக ஒதுக்கீட்டில் காப்புப் பிரதித் தரவு கணக்கிடப்படாது.</translation>
 <translation id="1826516787628120939">சரிபார்க்கிறது</translation>
-<translation id="1827738518074806965">கலைக்கூடம்</translation>
+<translation id="1827738518074806965">ஆர்ட் கேலரி</translation>
 <translation id="1828378091493947763">சாதனத்தில் இந்தச் செருகுநிரல் ஆதரிக்கப்படவில்லை</translation>
 <translation id="1828901632669367785">கம்ப்யூட்டர் உரையாடலைப் பயன்படுத்தி அச்சிடுக…</translation>
 <translation id="1829129547161959350">பென்குயின்</translation>
@@ -826,6 +824,7 @@
 <translation id="2119349053129246860"><ph name="APP" /> இல் திற</translation>
 <translation id="2120297377148151361">செயல்பாடும் தகவல் பரிமாற்றங்களும்</translation>
 <translation id="2120639962942052471"><ph name="PERMISSION" /> தடுக்கப்பட்டது</translation>
+<translation id="2121055421682309734">{COUNT,plural, =0{குக்கீகள் தடுக்கப்பட்டுள்ளன}=1{குக்கீகள் தடுக்கப்பட்டுள்ளன, 1 விதிவிலக்கு}other{குக்கீகள் தடுக்கப்பட்டுள்ளன, {COUNT} விதிவிலக்குகள்}}</translation>
 <translation id="2121825465123208577">அளவு மாற்று</translation>
 <translation id="2122305276694332719">மறைக்கப்பட்டுள்ள நெட்வொர்க்குடன் தானாக இணைந்தால் உங்கள் சாதனத்தையும் சில நெட்வொர்க் அமைப்புகளையும் பிறரால் பார்க்க முடியும் என்பதால் இது பரிந்துரைக்கப்படுவதில்லை.</translation>
 <translation id="2123766928840368256">வேறு கோப்பைத் தேர்வுசெய்</translation>
@@ -1011,7 +1010,7 @@
 <translation id="2350182423316644347">ஆப்ஸை தொடங்குகிறது...</translation>
 <translation id="2350796302381711542">எல்லா <ph name="PROTOCOL" /> இணைப்புகளையும் திறக்க, <ph name="REPLACED_HANDLER_TITLE" /> க்குப் பதிலாக <ph name="HANDLER_HOSTNAME" /> ஐ அனுமதிக்கவா?</translation>
 <translation id="2351266942280602854">மொழியும் உள்ளீடும்</translation>
-<translation id="2352495879228166246">{NUM_ITEMS,plural, =1{1 உள்ளடக்கம்}other{{NUM_ITEMS} உள்ளடக்கம்}}</translation>
+<translation id="2352495879228166246">{NUM_ITEMS,plural, =1{1 உள்ளடக்கம்}other{{NUM_ITEMS} உள்ளடக்கங்கள்}}</translation>
 <translation id="2352662711729498748">&lt; 1 மெ.பை.</translation>
 <translation id="2352810082280059586">லாக் ஸ்கிரீன் குறிப்புகள் தானாகவே <ph name="LOCK_SCREEN_APP_NAME" /> இல் சேமிக்கப்பட்டன. உங்களின் மிகச் சமீபத்திய குறிப்பானது லாக் ஸ்கிரீனில் தொடர்ந்து இருக்கும்.</translation>
 <translation id="2353297238722298836">கேமராவும் மைக்ரோஃபோனும் அனுமதிக்கப்பட்டன</translation>
@@ -1080,7 +1079,6 @@
 <translation id="2442916515643169563">டெக்ஸ்ட் ஷேடோ</translation>
 <translation id="2445081178310039857">நீட்டிப்பு மூல கோப்பகம் தேவை.</translation>
 <translation id="2445484935443597917">ஒரு புதிய சுயவிவரத்தை உருவாக்கு</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> உங்கள் அடையாளத்தைச் சரிபார்க்க விரும்புகிறது</translation>
 <translation id="2448312741937722512">வகை</translation>
 <translation id="2450223707519584812">Google API விசைகள் இல்லாததால் உங்களால் பயனர்களைச் சேர்க்க முடியாது. விவரங்களுக்கு <ph name="DETAILS_URL" /> இல் பார்க்கவும்.</translation>
 <translation id="2450849356604136918">செயலிலுள்ள காட்சிகள் எதுவுமில்லை</translation>
@@ -1329,7 +1327,7 @@
 <translation id="2762441749940182211">கேமரா தடுக்கப்பட்டது</translation>
 <translation id="2765217105034171413">சிறிய</translation>
 <translation id="2766161002040448006">பெற்றோரிடம் கேள்</translation>
-<translation id="2767127727915954024">தாவல்கள் அனைத்தையும் நீங்கள் மூடும் வரை <ph name="ORIGIN" /> தளத்தால் <ph name="FILENAME" /> கோப்பைத் திருத்த முடியும்</translation>
+<translation id="2767127727915954024">இந்தத் தளத்தின் தாவல்கள் அனைத்தையும் மூடும் வரை <ph name="ORIGIN" /> தளத்தால் <ph name="FILENAME" /> கோப்பைத் திருத்த முடியும்</translation>
 <translation id="276969039800130567"><ph name="USER_EMAIL_ADDRESS" /> ஆக உள்நுழைந்துள்ளீர்கள்.</translation>
 <translation id="2770465223704140727">பட்டியலிலிருந்து நீக்கு</translation>
 <translation id="2770690685823456775">மற்றொரு கோப்புறைக்குக் கடவுச்சொற்களை ஏற்றவும்</translation>
@@ -1654,14 +1652,14 @@
 <translation id="3208640652501208439">பள்ளிப் பாடத்திற்கான ஆதாரங்கள் கிடைக்காமலோ தானாகவே ஏற்றப்படாமலோ போகலாம்
     உங்கள் பிள்ளைக்கு இவற்றுக்கான அணுகல் இல்லாமல் இருக்கக்கூடும்:
     <ph name="BEGIN_LIST" />
-      <ph name="LIST_ITEM" />பள்ளியால் நிறுவப்பட்ட ஆப்ஸ்கள் மற்றும் நீட்டிப்புகள்
+      <ph name="LIST_ITEM" />பள்ளியால் நிறுவப்பட்ட ஆப்ஸ் மற்றும் நீட்டிப்புகள்
       <ph name="LIST_ITEM" />பள்ளி Chromebookகில் உள்ள புக்மார்க்குகள்
       <ph name="LIST_ITEM" />கல்வித் தளங்களுக்கான தன்னிரப்பிக் கடவுச்சொற்கள்
     <ph name="END_LIST" />
-    இந்தச் சாதனத்தில் பள்ளி அனுபவத்தை முழுவதுமாகப் பெற உங்கள் பிள்ளை இவற்றைச் செய்ய வேண்டும்:
+    இந்தச் சாதனத்தில் பள்ளி அனுபவத்தை முழுவதுமாகப் பெற, உங்கள் பிள்ளை இவற்றைச் செய்ய வேண்டும்:
     <ph name="BEGIN_OLIST" />
       <ph name="OLIST_ITEM" />Family Link நிர்வகிக்கும் கணக்கிலிருந்து வெளியேற வேண்டும்
-      <ph name="OLIST_ITEM" />உள்நுழையும் திரையில் G Suite for Education கணக்கைப் பயன்படுத்தி உள்நுழைய வேண்டும். கவனத்திற்கு: எனினும் உங்கள் Family Linkகின் கண்காணிப்பு அம்சங்களில் ஆப்ஸ், இணையதள அணுகல் அமைப்புகள் உள்ளிட்ட பள்ளிக் கொள்கைகள் நடைமுறைக்கு வரும் என்பது இதன் அர்த்தம் (உதாரணமாக, வீட்டுப்பாடம் செய்வதற்குத் தேவைப்படுகிறது எனில் பள்ளி நிர்வாகிகள் YouTubeஐ அனுமதிக்கலாம், பயன்படுத்திய நேரம் செயல்படுத்தப்படாது.)
+      <ph name="OLIST_ITEM" />உள்நுழையும் திரையில் G Suite for Education கணக்கைப் பயன்படுத்தி உள்நுழைய வேண்டும். கவனத்திற்கு: எனினும் Family Linkகின் கண்காணிப்பு அம்சங்களையும் மீறி, ஆப்ஸ், இணையதள அணுகல் அமைப்புகள் உள்ளிட்ட பள்ளிக் கொள்கைகளே நடைமுறைக்கு வரும் என்று பொருள் (உதாரணமாக, வீட்டுப்பாடம் செய்வதற்குத் தேவையெனில் பள்ளி நிர்வாகிகள் YouTubeஐ அனுமதிக்கலாம், சாதனத்தைப் பயன்படுத்தும் நேரத்திற்கான கட்டுப்பாடுகள் இதற்குப் பொருந்தாது.)
     <ph name="END_OLIST" /></translation>
 <translation id="3208703785962634733">உறுதிசெய்யப்படாதது</translation>
 <translation id="32101887417650595">பிரிண்டருடன் இணைக்க இயலவில்லை</translation>
@@ -1684,7 +1682,6 @@
 <translation id="3246107497225150582">{0,plural, =1{ஒரு நாளுக்குள் சாதனத்தைப் புதுப்பிக்கவும்}other{# நாட்களுக்குள் சாதனத்தைப் புதுப்பிக்கவும்}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - நெட்வொர்க் பிழை</translation>
 <translation id="3248902735035392926">பாதுகாப்பாக இருப்பது முக்கியமானது. சிறிது நேரம் ஒதுக்கி <ph name="BEGIN_LINK" />இப்போதே உங்கள் நீட்டிப்புகளைச் சரிபாருங்கள்<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;சான்றிதழின் பகுதியல்ல&gt;</translation>
 <translation id="3253225298092156258">இணைப்பு கிடைக்கவில்லை</translation>
 <translation id="3253448572569133955">அறியப்படாத கணக்கு</translation>
@@ -1739,7 +1736,7 @@
 <translation id="3312424061798279731">இயக்கத்திலுள்ள மொழிகள்</translation>
 <translation id="3313622045786997898">சான்றிதழ் கையொப்ப மதிப்பு</translation>
 <translation id="3315158641124845231"><ph name="PRODUCT_NAME" /> ஐ மறை</translation>
-<translation id="3317284582048881482">பெற்றோர்களுக்கான பள்ளிக் கணக்குத் தகவல்</translation>
+<translation id="3317284582048881482">பெற்றோருக்கான பள்ளிக் கணக்குத் தகவல்</translation>
 <translation id="3317459757438853210">இரு-பக்கம்</translation>
 <translation id="3317678681329786349">கேமராவும் மைக்ரோஃபோனும் தடுக்கப்பட்டன</translation>
 <translation id="3319048459796106952">புதிய &amp;மறைநிலை சாளரம்</translation>
@@ -2756,7 +2753,7 @@
 <translation id="4689235506267737042">டெமோ விருப்பங்களைத் தேர்வுசெய்தல்</translation>
 <translation id="4689421377817139245">இந்தப் புத்தகக்குறியை iPhone உடன் ஒத்திசையுங்கள்</translation>
 <translation id="4690091457710545971">&lt;Intel வைஃபை நிலைபொருள் உருவாக்கிய நான்கு கோப்புகள்: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon.  முதல் மூன்று கோப்புகளும் பதிவு டம்ப்களைக் கொண்டுள்ள பைனரிக் கோப்புகளாகும், அவற்றில் தனிப்பட்ட அல்லது சாதனத்தை அடையாளப்படுத்தும் தகவல்கள் எதுவும் இல்லை என்று Intel உறுதிப்படுத்தியுள்ளது.  கடைசிக் கோப்பு, Intel நிலைபொருளைச் சேர்ந்த ஓர் இயக்கக் கண்காணிப்புக் கோப்பாகும்; அதிலிருந்து தனிப்பட்ட அல்லது சாதனத்தை அடையாளப்படுத்தும் தகவல்கள் அகற்றப்பட்டுள்ளன, ஆனால் கோப்பு மிகப் பெரிதாக இருப்பதால் அதை இங்கு காட்ட முடியாது.  இந்தக் கோப்புகள் உங்கள் சாதனத்தில் சமீபத்தில் ஏற்பட்ட வைஃபை குறித்த சிக்கல்களுக்குப் பதிலளிக்கையில் உருவாக்கப்பட்டன, அவை இந்தச் சிக்கல்களைப் பிழையறிந்து திருத்துவதற்கு உதவ, Intelலுடன் பகிரப்படும்.&gt;</translation>
-<translation id="4691791363716065510">தளத்தின் தாவல்கள் அனைத்தையும் மூடும் நீங்கள் வரை <ph name="ORIGIN" /> தளத்தால் <ph name="FILENAME" /> கோப்பைப் பார்க்க முடியும்</translation>
+<translation id="4691791363716065510">இந்தத் தளத்தின் தாவல்கள் அனைத்தையும் மூடும் வரை <ph name="ORIGIN" /> தளத்தால் <ph name="FILENAME" /> கோப்பைப் பார்க்க முடியும்</translation>
 <translation id="4692623383562244444">தேடல் இன்ஜின்கள்</translation>
 <translation id="4693155481716051732">சூஷி</translation>
 <translation id="4694024090038830733">பிரிண்டர் உள்ளமைவை நிர்வாகி கையாளுகிறார்.</translation>
@@ -2963,7 +2960,6 @@
 <translation id="4992473555164495036">பயன்படுத்தக்கூடிய உள்ளீட்டு முறைகளை உங்கள் நிர்வாகி கட்டுப்படுத்தியுள்ளார்.</translation>
 <translation id="4994474651455208930">நெறிமுறைகளுக்கு இயல்புநிலை ஹேண்ட்லர்களாக இருக்கும்படி கேட்க தளங்களை அனுமதி</translation>
 <translation id="4994754230098574403">அமைக்கிறது</translation>
-<translation id="4996978546172906250">இதன்வழியாக பகிர்</translation>
 <translation id="4997086284911172121">இணைய இணைப்பு இல்லை.</translation>
 <translation id="4997384734315285248">Plugin VMமை நிறுவல் நீக்கு</translation>
 <translation id="4998430619171209993">ஆன் செய்யப்பட்டுள்ளது</translation>
@@ -3062,7 +3058,6 @@
 <translation id="5135085122826131075">"Ok Google" என்று சொல்லி அசிஸ்டண்ட்டை அணுகலாம்.</translation>
 <translation id="5135533361271311778">புக்மார்க் உருப்படியை உருவாக்க முடியவில்லை.</translation>
 <translation id="5137501176474113045">இந்த உருப்படியை நீக்கு</translation>
-<translation id="5138982052046316113">டிஸ்க்கின் அளவை மாற்றவும்</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> தேடல்</translation>
 <translation id="5139823398361067371">உங்கள் பாதுகாப்பு விசைக்கான பின்னை உள்ளிடவும். 'பின்' தெரியவில்லை எனில் பாதுகாப்பு விசையை மீட்டமைக்க வேண்டும்.</translation>
 <translation id="5139955368427980650">&amp;திற</translation>
@@ -3106,7 +3101,7 @@
 <translation id="5204967432542742771">கடவுச்சொல்</translation>
 <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />"ஐ நீக்கவா?</translation>
 <translation id="520621735928254154">சான்றிதழ் இறக்குமதியாவதில் பிழை</translation>
-<translation id="5209307736170827035">வகுப்பறையில் இருக்கும் உங்கள் பிள்ளையின் தரவு பாதுகாக்கப்படும். <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation>
+<translation id="5209307736170827035">'வகுப்பறை' இல் இருக்கும் உங்கள் பிள்ளையின் தரவு பாதுகாக்கப்படும். <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation>
 <translation id="5209320130288484488">சாதனங்கள் காணப்படவில்லை</translation>
 <translation id="5210990770352357081">Plugin VMமின் நிறுவலை நீக்க முடியவில்லை</translation>
 <translation id="5213481667492808996">இப்போது உங்கள் '<ph name="NAME" />' டேட்டா சேவையைப் பயன்படுத்தலாம்</translation>
@@ -3927,7 +3922,6 @@
 <translation id="6291953229176937411">&amp;கண்டுபிடிப்பானில் காண்பி</translation>
 <translation id="6295158916970320988">எல்லா தளங்களும்</translation>
 <translation id="6295855836753816081">சேமிக்கிறது...</translation>
-<translation id="629730747756840877">கணக்கு</translation>
 <translation id="6298962879096096191">Android ஆப்ஸை நிறுவ, Google Playவைப் பயன்படுத்தவும்</translation>
 <translation id="630065524203833229">வெளி&amp;யேறு</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> ஐத் தானாக உள்ளமைக்க இயலவில்லை. மேம்பட்ட பிரிண்டர் விவரங்களைக் குறிப்பிடுங்கள். <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation>
@@ -4152,7 +4146,7 @@
 <translation id="6612358246767739896">பாதுகாக்கப்பட்ட உள்ளடக்கம்</translation>
 <translation id="6615455863669487791">எனக்கு காண்பி</translation>
 <translation id="6618097958368085618">பரவாயில்லை, வைத்திரு</translation>
-<translation id="6618744767048954150">இயங்குகிறது</translation>
+<translation id="6618744767048954150">சோதனை செய்கிறது</translation>
 <translation id="6619058681307408113">லைன் பிரிண்டர் டீமன் (LPD)</translation>
 <translation id="661907246513853610">தளத்தால் உங்கள் இருப்பிடத்தைக் கண்காணிக்க முடியும்</translation>
 <translation id="6619801788773578757">கியோஸ்க் பயன்பாட்டைச் சேர்</translation>
@@ -4333,7 +4327,6 @@
 <translation id="6865598234501509159"><ph name="LANGUAGE" /> மொழியில் பக்கம் இல்லை</translation>
 <translation id="6865708901122695652">WebRTC நிகழ்வுப் பதிவுகள் (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">ஒளித் தோற்றம்</translation>
-<translation id="6870888490422746447">பகிர்வதற்கான இலக்குப் பயன்பாட்டைத் தேர்வுசெய்க:</translation>
 <translation id="6871644448911473373">OCSP பதிலளிப்பான்: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">சேவையகம் நீங்கள் உள்ளிட்ட கடவுச்சொல்லை நிராகரித்தது.</translation>
 <translation id="6876155724392614295">பைக்</translation>
@@ -4974,7 +4967,6 @@
 <translation id="7744047395460924128">பிரிண்ட்டிங் வரலாற்றைக் காட்டு</translation>
 <translation id="7744192722284567281">தரவு மீறலில் உள்ளது</translation>
 <translation id="7750228210027921155">பிக்ச்சர்-இன்-பிக்ச்சர்</translation>
-<translation id="7751229152614300329">பாதுகாப்பு உலாவலைப் புதுப்பித்த நிலையில் வைத்திருப்பது, தீங்கிழைக்கும் தளங்கள் &amp; பதிவிறக்கங்களில் இருந்து உங்களைப் பாதுகாக்கும்</translation>
 <translation id="7751260505918304024">அனைத்தையும் காண்பி</translation>
 <translation id="7754704193130578113">பதிவிறக்கும் முன் ஒவ்வொரு கோப்பையும் எங்கு சேமிக்க வேண்டும் எனக் கேட்கவும்</translation>
 <translation id="7755287808199759310">உங்களுக்காக, தளத்தின் தடுப்பை உங்கள் பெற்றோர் நீக்க முடியும்</translation>
@@ -4997,7 +4989,7 @@
 <translation id="7772773261844472235">Chromebook நிலையைச் சரிபாருங்கள்</translation>
 <translation id="7773726648746946405">அமர்வு சேமிப்பகம்</translation>
 <translation id="7774365994322694683">பறவை</translation>
-<translation id="7776156998370251340">தாவல்கள் அனைத்தையும் நீங்கள் மூடும் வரை <ph name="ORIGIN" /> தளத்தால் <ph name="FOLDERNAME" /> இல் உள்ள கோப்புகளைப் பார்க்க முடியும்</translation>
+<translation id="7776156998370251340">இந்தத் தளத்தின் தாவல்கள் அனைத்தையும் மூடும் வரை <ph name="ORIGIN" /> தளத்தால் <ph name="FOLDERNAME" /> இல் உள்ள கோப்புகளைப் பார்க்க முடியும்</translation>
 <translation id="7776701556330691704">குரல்கள் எதுவும் இல்லை</translation>
 <translation id="7780252971640011240">இணைப்பதில் சிக்கல் உள்ளது. உதவிக்கு மொபைல் நிறுவனத்தைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="7781335840981796660">எல்லா பயனர்களின் கணக்குகளும், அகத் தரவும் அகற்றப்படும்.</translation>
@@ -6009,7 +6001,7 @@
 <translation id="9055636786322918818">RC4 என்க்ரிப்ஷனைச் செயல்படுத்தும். RC4 சைஃபர்கள் பாதுகாப்பற்றவை என்பதால், இந்த விருப்பத்தைப் பயன்படுத்துவது, உங்கள் அபாயத்தை அதிகரிக்கும்.</translation>
 <translation id="9056810968620647706">பொருத்தங்கள் கண்டறியப்படவில்லை.</translation>
 <translation id="9057354806206861646">புதுப்பிப்புக்கான திட்ட அட்டவணை</translation>
-<translation id="9058976525724291037">உங்கள் பிள்ளை இந்தச் சாதனத்தில் மற்றொரு Google கணக்கைச் சேர்க்க விரும்புகிறார். Family Link நிர்வகிக்கும் சாதனங்களில் G Suite for Education கணக்குகள் மட்டுமே சேர்க்கப்படக்கூடும்.</translation>
+<translation id="9058976525724291037">உங்கள் பிள்ளை இந்தச் சாதனத்தில் மற்றொரு Google கணக்கைச் சேர்க்க விரும்புகிறார். Family Link நிர்வகிக்கும் சாதனங்களில் G Suite for Education கணக்குகளை மட்டுமே சேர்க்க முடியும்.</translation>
 <translation id="9062468308252555888">14x</translation>
 <translation id="9063208415146866933"><ph name="ERROR_LINE_START" /> இலிருந்து <ph name="ERROR_LINE_END" />வது வரி வரை பிழை</translation>
 <translation id="9064142312330104323">Google சுயவிவரப் புகைப்படம் (ஏற்றுகிறது)</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index 841883f..ae1ea35e 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -417,7 +417,6 @@
 <translation id="1566049601598938765">వెబ్‌సైట్</translation>
 <translation id="15662109988763471">ఎంచుకున్న ప్రింటర్ అందుబాటులో లేదు లేదా సరిగ్గా ఇన్‌స్టాల్ చేయలేదు. మీ ప్రింటర్‌ను ఒకసారి సరిచూసుకోండి లేదా మరొక ప్రింటర్‌ను ఎంచుకోవడానికి ప్రయత్నించండి.</translation>
 <translation id="1567387640189251553">మీరు మీ పాస్‌వర్డ్‌ని చివరిసారిగా నమోదు చేసిన తర్వాత ఒక విభిన్నమైన కీబోర్డ్ కనెక్ట్ చేయబడింది. మీ కీస్ట్రోక్‌లను దొంగిలించడం కోసం ఇది ప్రయత్నిస్తుండవచ్చు.</translation>
-<translation id="1567750922576943685">మీ గుర్తింపును ధృవీకరించడం ద్వారా మీ వ్యక్తిగత సమాచారాన్ని భద్రంగా కాపాడుకోవచ్చు</translation>
 <translation id="1567993339577891801">JavaScript కన్సోల్</translation>
 <translation id="1568323446248056064">ప్రదర్శన పరికరం సెట్టింగ్‌లను తెరవండి</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (అతిథి)</translation>
@@ -519,7 +518,6 @@
 <translation id="1697150536837697295">కళ</translation>
 <translation id="1697686431566694143">ఎడిటింగ్‌ను అనుమతించు</translation>
 <translation id="1698122934742150150">ప్రస్తుత అజ్ఞాత సెషన్‌కు మాత్రమే</translation>
-<translation id="1698650002254827833">యాప్‌ల జాబితాను లోడ్ చేయడం సాధ్యపడలేదు. దయచేసి మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="1700079447639026019">కుక్కీలను ఉపయోగించే అనుమతి ఎప్పటికీ లేని సైట్‌లు</translation>
 <translation id="1701062906490865540">ఈ వ్యక్తిని తీసివేయి</translation>
 <translation id="1703331064825191675">మీ పాస్‌వర్డ్‌ల గురించి ఎప్పుడూ చింతించకండి</translation>
@@ -826,6 +824,7 @@
 <translation id="2119349053129246860"><ph name="APP" />లో తెరువు</translation>
 <translation id="2120297377148151361">కార్యకలాపం మరియు పరస్పర చర్యలు</translation>
 <translation id="2120639962942052471"><ph name="PERMISSION" />ను బ్లాక్ చేశారు</translation>
+<translation id="2121055421682309734">{COUNT,plural, =0{కుక్కీలు బ్లాక్ చేయబడ్డాయి}=1{కుక్కీలు బ్లాక్ చేయబడ్డాయి, 1 మినహాయింపు}other{కుక్కీలు బ్లాక్ చేయబడ్డాయి, {COUNT} మినహాయింపులు}}</translation>
 <translation id="2121825465123208577">పరిమాణం మార్చు</translation>
 <translation id="2122305276694332719">దాచబడిన నెట్‌వర్క్‌కు ఆటోమేటిక్‌గా కనెక్ట్ చేయడం వలన మీ పరికరాన్ని, కొన్ని నెట్‌వర్క్‌ల సెట్టింగ్‌లను ఇతరులు చూడగలుగుతారు, కనుక ఇది సిఫార్సు చేయబడదు.</translation>
 <translation id="2123766928840368256">వేరొక ఫైల్‌ను ఎంచుకోండి</translation>
@@ -1080,7 +1079,6 @@
 <translation id="2442916515643169563">వచన నీడ</translation>
 <translation id="2445081178310039857">ఎక్స్‌టెన్ష‌న్‌ మూలం డైరెక్టరీ అవసరం.</translation>
 <translation id="2445484935443597917">కొత్త ప్రొఫైల్‌ను సృష్టించు</translation>
-<translation id="2446585455334014596">మీ గుర్తింపుని ధృవీకరించాలని <ph name="APP_NAME" /> కోరుతోంది</translation>
 <translation id="2448312741937722512">రకం</translation>
 <translation id="2450223707519584812">Google API కీలు లేనందున మీరు వినియోగదారులను జోడించలేరు. వివరాల కోసం <ph name="DETAILS_URL" /> చూడండి.</translation>
 <translation id="2450849356604136918">సక్రియ వీక్షణలు లేవు</translation>
@@ -1684,7 +1682,6 @@
 <translation id="3246107497225150582">{0,plural, =1{ఒక రోజు లోపు పరికరాన్ని అప్‌డేట్ చేయండి}other{# రోజుల లోపు పరికరాన్ని అప్‌డేట్ చేయండి}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - నెట్‌వర్క్ ఎర్రర్</translation>
 <translation id="3248902735035392926">భద్రత చాలా ముఖ్యమైనది. <ph name="BEGIN_LINK" />ఇప్పుడే మీ ఎక్స్‌టెన్షన్‌లను తనిఖీ చేయడానికి<ph name="END_LINK" /> సమయం తీసుకోండి</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;సర్టిఫికెట్‌లో భాగం కాదు&gt;</translation>
 <translation id="3253225298092156258">అందుబాటులో లేదు</translation>
 <translation id="3253448572569133955">తెలియని ఖాతా</translation>
@@ -2966,7 +2963,6 @@
 <translation id="4992473555164495036">మీ నిర్వాహకుడు మీకు అందుబాటులో ఉండే ఇన్‌పుట్ పద్ధతులను పరిమితం చేసారు.</translation>
 <translation id="4994474651455208930">ప్రోటోకాల్స్‌కు డిఫాల్ట్ హ్యాండ్లర్‌లుగా కావడం కోసం అడగటానికి సైట్‌లను అనుమతించండి</translation>
 <translation id="4994754230098574403">సెటప్ చేస్తోంది</translation>
-<translation id="4996978546172906250">దీని ద్వారా భాగస్వామ్యం చే.</translation>
 <translation id="4997086284911172121">ఇంటర్నెట్ కనెక్షన్ లేదు.</translation>
 <translation id="4997384734315285248">Plugin VMను అన్‌ఇన్‌స్టాల్ చేయండి</translation>
 <translation id="4998430619171209993">ఆన్‌లో ఉంది</translation>
@@ -3066,7 +3062,6 @@
 <translation id="5135085122826131075">మీరు "Ok Google" అని చెప్పడం ద్వారా మీ అసిస్టెంట్‌ను యాక్సెస్ చేయండి.</translation>
 <translation id="5135533361271311778">బుక్‌మార్క్ అంశాన్ని సృష్టించలేకపోయాము.</translation>
 <translation id="5137501176474113045">ఈ అంశాన్ని తొలగించు</translation>
-<translation id="5138982052046316113">Linux డిస్క్ పరిమాణాన్ని మార్చండి</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> శోధన</translation>
 <translation id="5139823398361067371">మీ సెక్యూరిటీ కీకి చెందిన పిన్‌ను నమోదు చేయండి. మీకు పిన్ తెలియకపోతే, మీరు 'సెక్యూరిటీ కీ'ని రీసెట్ చేయాలి.</translation>
 <translation id="5139955368427980650">&amp;తెరువు</translation>
@@ -3930,7 +3925,6 @@
 <translation id="6291953229176937411">శోధినిలో &amp;చూపించు</translation>
 <translation id="6295158916970320988">అన్ని సైట్‌లు</translation>
 <translation id="6295855836753816081">సేవ్ చేస్తోంది...</translation>
-<translation id="629730747756840877">ఖాతా</translation>
 <translation id="6298962879096096191">Android యాప్‌లను ఇన్‌స్టాల్ చేయడానికి Google Play‌ను ఉపయోగిస్తుంది</translation>
 <translation id="630065524203833229">ని&amp;ష్క్రమించు</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" />ను ఆటోమేటిక్‌గా కాన్ఫిగర్ చేయలేకపోయింది. దయచేసి అధునాతన ప్రింటర్ వివరాలను పేర్కొనండి. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation>
@@ -4336,7 +4330,6 @@
 <translation id="6865598234501509159">పేజీ <ph name="LANGUAGE" />లో లేదు</translation>
 <translation id="6865708901122695652">WebRTC ఈవెంట్ లాగ్‌లు (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">రంగు ఉష్ణోగ్రత</translation>
-<translation id="6870888490422746447">దీనికి షేర్ చేసేందుకు యాప్‌ను ఎంచుకోండి:</translation>
 <translation id="6871644448911473373">OCSP ప్రతిస్పందనదారు: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">మీరు నమోదు చేసిన పాస్‌వర్డ్‌ను సర్వర్ తిరస్కరించింది.</translation>
 <translation id="6876155724392614295">బైక్</translation>
@@ -4977,7 +4970,6 @@
 <translation id="7744047395460924128">మీ ప్రింటింగ్ చరిత్రను చూడండి</translation>
 <translation id="7744192722284567281">డేటా ఉల్లంఘనలో కనుగొనబడింది</translation>
 <translation id="7750228210027921155">చిత్రంలో చిత్రం</translation>
-<translation id="7751229152614300329">సురక్షిత బ్రౌజింగ్ అప్‌డేట్ చేయబడి ఉంది, మిమ్మల్ని హానికరమైన సైట్‌లు, డౌన్‌లోడ్‌ల నుండి రక్షిస్తోంది</translation>
 <translation id="7751260505918304024">అన్నీ చూపించు</translation>
 <translation id="7754704193130578113">ప్రతి ఫైల్‌ను డౌన్‌లోడ్ చేసే ముందు ఎక్కడ సేవ్ చేయాలో అడుగు</translation>
 <translation id="7755287808199759310">మీ తల్లి/తండ్రి దీన్ని మీ కోసం అన్‌బ్లాక్ చేయగలరు</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 82b4f1fbc..f95e2e5 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">อุปกรณ์ที่ใช้ได้</translation>
 <translation id="1042174272890264476">คอมพิวเตอร์ของคุณมาพร้อมกับไลบรารี RLZ ของ <ph name="SHORT_PRODUCT_NAME" /> ในตัว โดย RLZ จะระบุแท็กที่ซ้ำกันได้และไม่สามารถระบุตัวบุคคลเพื่อวัดการค้นหาและการใช้งาน <ph name="SHORT_PRODUCT_NAME" /> ที่ทำงานโดยแคมเปญส่งเสริมการขายบางรายการ บางครั้งป้ายกำกับจะปรากฏในคำค้นหาของ Google Search ใน <ph name="PRODUCT_NAME" /></translation>
 <translation id="1043818413152647937">ล้างข้อมูลในแอปเหล่านี้ด้วยไหม</translation>
+<translation id="1045448422538531528">เพิ่มในกลุ่ม</translation>
 <translation id="1046635659603195359">ดูเหมือนคุณได้ตั้งค่า Voice Match กับ Google Assistant ในอุปกรณ์อื่นแล้ว สิ่งที่บันทึกไว้ก่อนหน้านี้จะนำมาใช้สร้างรูปแบบเสียงในอุปกรณ์นี้ได้ ซึ่งจะใช้เวลาไม่ถึงนาที</translation>
 <translation id="104710386808485638">รีสตาร์ท Linux ไหม</translation>
 <translation id="1047431265488717055">คัดลอก&amp;ข้อความของลิงก์</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">บล็อกการเข้าถึงกล้องเสมอ</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> ต้องการคืนค่าการตั้งค่า Chrome ของคุณกลับไปเป็นค่าเริ่มต้นดั้งเดิม การดำเนินการนี้จะรีเซ็ตหน้าหลักของคุณ หน้าแท็บใหม่ และเครื่องมือค้นหา ปิดใช้ส่วนขยาย และเลิกตรึงแท็บทั้งหมด นอกจากนี้ยังล้างข้อมูลชั่วคราวอื่นๆ และข้อมูลที่แคชไว้ เช่น คุกกี้ เนื้อหา และข้อมูลเว็บไซต์อีกด้วย</translation>
+<translation id="1084096383128641877">การนำรหัสผ่านนี้ออกจะไม่ลบบัญชีของคุณใน <ph name="DOMAIN" /> เปลี่ยนรหัสผ่านหรือลบบัญชีของคุณใน <ph name="DOMAIN_LINK" /> เพื่อให้ปลอดภัยจากบุคคลอื่น</translation>
 <translation id="1084824384139382525">คัดลอก&amp;ที่อยู่ลิงก์</translation>
 <translation id="1085697365578766383">เกิดข้อผิดพลาดขณะเริ่มต้นเครื่องเสมือน โปรดลองอีกครั้ง</translation>
 <translation id="1090126737595388931">ไม่มีแอปพลิเคชันทำงานในพื้นหลัง</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">เรียกใช้การตรวจสอบความปลอดภัยเมื่อวานนี้</translation>
 <translation id="1260451001046713751">อนุญาตป๊อปอัปและการเปลี่ยนเส้นทางจาก <ph name="HOST" /> เสมอ</translation>
 <translation id="126156426083987769">เกิดปัญหาเกี่ยวกับใบอนุญาตของอุปกรณ์โหมดสาธิต</translation>
+<translation id="1263490604593716556">บัญชีนี้จัดการโดย <ph name="FIRST_PARENT_EMAIL" /> และ <ph name="SECOND_PARENT_EMAIL" /> คลิกเวลาในหน้าจอเพื่อออกจากระบบบัญชีหลักในอุปกรณ์นี้ แล้วคลิก "ออกจากระบบ" ในเมนูที่ปรากฏขึ้น</translation>
 <translation id="126710816202626562">ภาษาที่แปล:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">หยุด</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">เว็บไซต์</translation>
 <translation id="15662109988763471">เครื่องพิมพ์ที่เลือกไว้ใช้ไม่ได้หรือติดตั้งไว้ไม่ถูกต้อง โปรดตรวจสอบเครื่องพิมพ์ของคุณหรือลองเลือกเครื่องพิมพ์อื่น</translation>
 <translation id="1567387640189251553">มีการเชื่อมต่อกับแป้นพิมพ์อื่นหลังจากที่คุณป้อนรหัสผ่านครั้งล่าสุด แป้นพิมพ์นี้อาจพยายามขโมยการกดแป้นพิมพ์ของคุณ</translation>
-<translation id="1567750922576943685">การยืนยันตัวตนจะช่วยปกป้องข้อมูลส่วนบุคคล</translation>
 <translation id="1567993339577891801">คอนโซล JavaScript</translation>
 <translation id="1568323446248056064">เปิดการตั้งค่าอุปกรณ์แสดงผล</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (ผู้มาเยือน)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">ศิลปะ</translation>
 <translation id="1697686431566694143">แก้ไขไฟล์</translation>
 <translation id="1698122934742150150">เซสชันไม่ระบุตัวตนปัจจุบันเท่านั้น</translation>
-<translation id="1698650002254827833">โหลดรายการแอปไม่ได้ โปรดลองใหม่</translation>
 <translation id="1700079447639026019">เว็บไซต์ที่จะใช้คุกกี้ไม่ได้เลย</translation>
 <translation id="1701062906490865540">นำบุคคลนี้ออก</translation>
 <translation id="1703331064825191675">ไม่ต้องกังวลเกี่ยวกับรหัสผ่านอีกต่อไป</translation>
@@ -739,7 +740,7 @@
 <translation id="197989455406964291">KDC ไม่รองรับการเข้ารหัสประเภทนี้</translation>
 <translation id="1982354452682152483">ไม่มีคำอธิบาย</translation>
 <translation id="1987317783729300807">บัญชี</translation>
-<translation id="1989112275319619282">เล่นเน็ต</translation>
+<translation id="1989112275319619282">เปิดดู</translation>
 <translation id="1990512225220753005">ไม่แสดงทางลัดในหน้านี้</translation>
 <translation id="1992397118740194946">ไม่ได้ตั้งค่า</translation>
 <translation id="1994173015038366702">URL ของเว็บไซต์</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">ต่อไป</translation>
 <translation id="2173302385160625112">ตรวจสอบการเชื่อมต่ออินเทอร์เน็ต</translation>
 <translation id="2173801458090845390">เพิ่มรหัสข้อกำหนดลงในอุปกรณ์นี้</translation>
+<translation id="2174948148799307353">บัญชีนี้จัดการโดย <ph name="PARENT_EMAIL" /> คลิกเวลาในหน้าจอเพื่อออกจากระบบบัญชีหลักในอุปกรณ์นี้ แล้วคลิก "ออกจากระบบ" ในเมนูที่ปรากฏขึ้น</translation>
 <translation id="2175607476662778685">แถบเปิดใช้งานด่วน</translation>
 <translation id="217576141146192373">เพิ่มเครื่องพิมพ์ไม่ได้ โปรดตรวจสอบการกำหนดค่าของเครื่องพิมพ์แล้วลองอีกครั้ง</translation>
 <translation id="2177950615300672361">แท็บไม่ระบุตัวตน: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">เงาของข้อความ</translation>
 <translation id="2445081178310039857">จำเป็นต้องระบุไดเรกทอรีหลักของส่วนขยาย</translation>
 <translation id="2445484935443597917">สร้างโปรไฟล์ใหม่</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> ต้องการยืนยันตัวตนของคุณ</translation>
 <translation id="2448312741937722512">ประเภท</translation>
 <translation id="2450223707519584812">คุณจะไม่สามารถเพิ่มผู้ใช้เนื่องจากไม่มีคีย์ของ Google API ดูรายละเอียดได้ที่ <ph name="DETAILS_URL" /></translation>
 <translation id="2450849356604136918">ไม่มีมุมมองที่เปิดอยู่</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">ไปที่ <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">เว็บเบราว์เซอร์ที่รวดเร็ว ใช้งานง่าย และปลอดภัย สร้างขึ้นมาเพื่อเว็บสมัยใหม่</translation>
 <translation id="2949289451367477459">ใช้ตำแหน่ง อนุญาตแอปและบริการที่มีสิทธิ์เข้าถึงตำแหน่งให้ใช้ตำแหน่งของอุปกรณ์นี้ Google อาจรวบรวมข้อมูลตำแหน่งเป็นระยะและใช้ข้อมูลนี้ในแบบไม่ระบุตัวตนเพื่อปรับปรุงความแม่นยำของตำแหน่งและบริการที่อ้างอิงตำแหน่ง <ph name="BEGIN_LINK1" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">ให้ฉันลงชื่อสมัครใช้</translation>
 <translation id="2956070239128776395">ส่วนที่ฝังอยู่ในกลุ่ม: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">ไม่อนุญาตให้เว็บไซต์แก้ไขไฟล์หรือโฟลเดอร์ในอุปกรณ์</translation>
 <translation id="2958721676848865875">คำเตือนเกี่ยวกับการรวมแพ็กเกจส่วนขยาย</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">รูปโปรไฟล์เริ่มต้นสีเหลือง</translation>
 <translation id="3141318088920353606">กำลังฟัง...</translation>
 <translation id="3141917231319778873">คำขอที่ระบุไม่สามารถใช้ได้ใน "<ph name="DEVICE_NAME" />"</translation>
+<translation id="3142562627629111859">กลุ่มใหม่</translation>
 <translation id="3143515551205905069">ยกเลิกการซิงค์</translation>
 <translation id="3143754809889689516">เริ่มเล่นตั้งแต่ต้น</translation>
 <translation id="3144647712221361880">เปิดลิงก์ในฐานะ</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">สีเบจ</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ใช้ฮาร์ดแวร์คีย์เข้ารหัสลับ)</translation>
 <translation id="3161522574479303604">ทุกภาษา</translation>
+<translation id="3162853326462195145">บัญชีโรงเรียน</translation>
 <translation id="3162899666601560689">เว็บไซต์จะใช้คุกกี้เพื่อปรับปรุงประสบการณ์การท่องเว็บได้ เช่น ให้คุณลงชื่อเข้าใช้ต่อไปเรื่อยๆ หรือจำรายการในรถเข็นช็อปปิ้ง</translation>
 <translation id="3163201441334626963">ผลิตภัณฑ์ที่ไม่รู้จัก <ph name="PRODUCT_ID" /> จากผู้ขาย <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">กำลังแชร์แท็บนี้กับ <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{อัปเดตอุปกรณ์ภายใน 1 วัน}other{อัปเดตอุปกรณ์ภายใน # วัน}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - ข้อผิดพลาดของเครือข่าย</translation>
 <translation id="3248902735035392926">ความปลอดภัยเป็นสิ่งสำคัญ โปรดใช้เวลาสักครู่เพื่อ<ph name="BEGIN_LINK" />ตรวจสอบส่วนขยายตอนนี้เลย<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;ไม่ใช่ส่วนหนึ่งของใบรับรอง&gt;</translation>
 <translation id="3253225298092156258">ไม่มีข้อมูล</translation>
 <translation id="3253448572569133955">บัญชีที่ไม่รู้จัก</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">การคลิกปุ่ม "ยอมรับและดำเนินการต่อ" แสดงว่าคุณยอมรับการดำเนินการของบริการต่างๆ ของ Google ตามที่ชี้แจ้งไว้ด้านบน</translation>
 <translation id="3399432415385675819">ระบบจะปิดใช้การแจ้งเตือน</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> เฮิรตซ์) - อินเตอร์เลซ</translation>
+<translation id="3402585168444815892">ลงทะเบียนในโหมดสาธิต</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">ไม่มีรหัสผ่านบันทึกไว้สำหรับเว็บไซต์นี้</translation>
 <translation id="3405664148539009465">กำหนดค่าแบบอักษร</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">โทรศัพท์ Android</translation>
 <translation id="3470442499439619530">ลบผู้ใช้รายนี้</translation>
 <translation id="3471876058939596279">ใช้พอร์ต HDMI และ USB Type-C สำหรับวิดีโอพร้อมกันไม่ได้ โปรดใช้พอร์ตวิดีโออื่น</translation>
+<translation id="3473241910002674503">ไปยังหน้าแรก ย้อนกลับ และสลับแอปด้วยปุ่มในโหมดแท็บเล็ต</translation>
 <translation id="3473479545200714844">แว่นขยายหน้าจอ</translation>
 <translation id="3475843873335999118">ขออภัย ระบบยังคงไม่รู้จักลายนิ้วมือของคุณ โปรดป้อนรหัสผ่าน</translation>
 <translation id="3476303763173086583">ส่งข้อมูลการใช้งานและการวินิจฉัย ช่วยปรับปรุงประสบการณ์การใช้งาน Android ของบุตรหลานให้ดีขึ้นด้วยการส่งข้อมูลการวินิจฉัย อุปกรณ์ และการใช้งานแอปไปยัง Google โดยอัตโนมัติ โดยจะไม่มีการใช้ข้อมูลนี้ในการระบุชื่อบุตรหลานของคุณ และจะช่วยปรับปรุงความเสถียรของแอปและระบบ และอื่นๆ ข้อมูลที่รวบรวมมาบางส่วนจะมีประโยชน์ต่อแอปและพาร์ทเนอร์ของ Google ด้วย เช่น นักพัฒนาซอฟต์แวร์ Android เจ้าของเป็นผู้บังคับใช้<ph name="BEGIN_LINK1" />การตั้งค่า<ph name="END_LINK1" />นี้ เจ้าของอาจเลือกที่จะส่งข้อมูลการวินิจฉัยและการใช้งานสำหรับอุปกรณ์นี้ไปยัง Google หากเปิดการตั้งค่ากิจกรรมเพิ่มเติมบนเว็บและแอปสำหรับบุตรหลาน ระบบอาจบันทึกข้อมูลนี้ไว้ในบัญชี Google ของบุตรหลาน <ph name="BEGIN_LINK2" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">ลายนิ้วมือที่ลงทะเบียนในคีย์ความปลอดภัยนี้</translation>
 <translation id="3973660817924297510">กำลังตรวจสอบรหัสผ่าน (<ph name="CHECKED_PASSWORDS" /> จาก <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">ติดต่อเซิร์ฟเวอร์ของขอบเขตไม่สำเร็จ</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> ตรวจสอบรหัสผ่านของคุณไม่ได้ โปรดลองอีกครั้งในภายหลัง</translation>
 <translation id="3976108569178263973">ไม่มีเครื่องพิมพ์พร้อมใช้งาน</translation>
 <translation id="397703832102027365">กำลังสิ้นสุดการทำงาน...</translation>
 <translation id="3977886311744775419">เครือข่ายประเภทนี้จะไม่ดาวน์โหลดอัปเดตอัตโนมัติ แต่คุณตรวจหาอัปเดตได้ด้วยตนเอง</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">หน้าเว็บนี้มีองค์ประกอบจากไซต์ต่อไปนี้ ซึ่งกำลังติดตามตำแหน่งของคุณ:</translation>
 <translation id="4068776064906523561">ลายนิ้วมือที่บันทึกไว้</translation>
 <translation id="407173827865827707">เมื่อคลิก</translation>
+<translation id="4073520450811433493">ซิงค์การตั้งค่า</translation>
 <translation id="4074900173531346617">ใบรับรองผู้เซ็นชื่อในอีเมล</translation>
 <translation id="407520071244661467">ปรับขนาด</translation>
 <translation id="4075639477629295004">ไม่สามารถแคสต์ <ph name="FILE_NAME" /></translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">ฟลัฟฟี</translation>
 <translation id="4423376891418188461">กู้คืนการตั้งค่า</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" /> ผู้ดูแลระบบต้องการให้คุณเปลี่ยนรหัสผ่าน</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> ตรวจสอบรหัสผ่านของคุณไม่ได้ โปรดรอ 24 ชั่วโมงแล้วลองอีกครั้ง</translation>
 <translation id="4429030830601238961">ข้อมูลนี้ละเมิดนโยบายความปลอดภัยขององค์กรและจะวางไม่ได้</translation>
 <translation id="4430019312045809116">ระดับเสียง</translation>
 <translation id="4430369329743628066">เพิ่มบุ๊กมาร์กแล้ว</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">คุณต้องการเริ่มแอปนี้โดยอัตโนมัติเมื่อเครื่องเปิดไหม</translation>
 <translation id="4441147046941420429">หากต้องการดำเนินการต่อ ให้ดึงคีย์ความปลอดภัยออกจากอุปกรณ์ จากนั้นเสียบกลับเข้าไปใหม่แล้วแตะที่คีย์นั้น</translation>
 <translation id="444134486829715816">ขยาย...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> จะตรวจสอบรหัสผ่านได้เมื่อคุณลงชื่อเข้าใช้ด้วยบัญชี Google</translation>
 <translation id="4442424173763614572">การค้นหา DNS ล้มเหลว</translation>
 <translation id="4443536555189480885">&amp;ความช่วยเหลือ</translation>
 <translation id="4444304522807523469">เข้าถึงเครื่องสแกนเอกสารที่เชื่อมต่อผ่าน USB หรือบนเครือข่าย LAN</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">หากต้องการสแกนโค้ดนี้ คุณใช้แอปสแกนคิวอาร์โค้ดในโทรศัพท์หรือแอปกล้องถ่ายรูปบางแอปสแกนได้</translation>
 <translation id="4477015793815781985">รวม Ctrl, Alt หรือ ⌘</translation>
 <translation id="4478664379124702289">บันทึก&amp;ลิงก์เป็น...</translation>
+<translation id="4478777936860197922">ไม่มีรหัสผ่านที่บันทึกไว้ <ph name="IDS_SHORT_PRODUCT_NAME" /> จะตรวจสอบรหัสผ่านได้เมื่อคุณบันทึกรหัสผ่านไว้</translation>
 <translation id="4479424953165245642">จัดการแอปพลิเคชันคีออสก์</translation>
 <translation id="4479639480957787382">อีเทอร์เน็ต</translation>
 <translation id="4479877282574735775">กำลังกำหนดค่าเครื่องเสมือน อาจใช้เวลาสักครู่</translation>
 <translation id="4480590691557335796">Chrome ค้นหาซอฟต์แวร์ที่เป็นอันตรายในคอมพิวเตอร์และนำซอฟต์แวร์นั้นออกได้</translation>
 <translation id="4481530544597605423">อุปกรณ์ที่ไม่ได้จับคู่</translation>
+<translation id="4488107067273194838">ดูตัวเลือกการซิงค์ของเบราว์เซอร์หลังการตั้งค่า</translation>
 <translation id="4488502501195719518">ล้างข้อมูลทั้งหมดไหม</translation>
 <translation id="4495419450179050807">ไม่แสดงในหน้านี้อีก</translation>
 <translation id="4496054781541092778">บล็อก<ph name="PERMISSION" />โดยอัตโนมัติ</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">ไม่ต้องติดตั้ง</translation>
 <translation id="4850669014075537160">การเลื่อน</translation>
 <translation id="4850886885716139402">มุมมอง</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> จะแจ้งให้ทราบเมื่อคุณลงชื่อเข้าใช้ด้วยรหัสผ่านที่ไม่รัดกุม</translation>
 <translation id="4853020600495124913">เปิดใน&amp;หน้าต่างใหม่</translation>
 <translation id="4854317507773910281">เลือกบัญชีผู้ปกครองที่จะเป็นผู้อนุมัติ</translation>
 <translation id="485480310608090163">การตั้งค่าและสิทธิ์อื่นๆ</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN มีอักขระที่ไม่ถูกต้อง</translation>
 <translation id="4871370605780490696">เพิ่มบุ๊กมาร์ก</translation>
 <translation id="4871719318659334896">ปิดกลุ่ม</translation>
+<translation id="4871852311166078968">เพิ่มในกลุ่ม</translation>
 <translation id="4873312501243535625">ตัวตรวจสอบไฟล์สื่อ</translation>
 <translation id="4876273079589074638">ช่วยวิศวกรของเราตรวจสอบและแก้ไขข้อขัดข้องนี้ ระบุขั้นตอนที่แน่นอนหากทำได้ ไม่มีรายละเอียดใดที่ไร้ประโยชน์!</translation>
 <translation id="4876895919560854374">ล็อกและปลดล็อกหน้าจอ</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">ผู้ดูแลระบบจำกัดวิธีการป้อนข้อมูลที่ใช้ได้เอาไว้</translation>
 <translation id="4994474651455208930">อนุญาตให้ไซต์แจ้งขอเป็นตัวจัดการเริ่มต้นสำหรับโปรโตคอล</translation>
 <translation id="4994754230098574403">กำลังตั้งค่า</translation>
-<translation id="4996978546172906250">แชร์ผ่าน</translation>
 <translation id="4997086284911172121">ไม่มีการเชื่อมต่ออินเทอร์เน็ต</translation>
 <translation id="4997384734315285248">ถอนการติดตั้ง Plugin VM</translation>
 <translation id="4998430619171209993">เปิด</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">เข้าถึง Assistant ได้เพียงพูดว่า "Ok Google"</translation>
 <translation id="5135533361271311778">ไม่สามารถสร้างรายการบุ๊กมาร์ก</translation>
 <translation id="5137501176474113045">ลบรายการนี้</translation>
-<translation id="5138982052046316113">ปรับขนาดดิสก์ Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> Search</translation>
 <translation id="5139823398361067371">ป้อน PIN ของคีย์ความปลอดภัย หากไม่ทราบ PIN คุณจะต้องรีเซ็ตคีย์ความปลอดภัย</translation>
 <translation id="5139955368427980650">เ&amp;ปิด</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">กำลังรอการยืนยัน <ph name="LINK_BEGIN" />ดูข้อมูลเพิ่มเติม<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">ใหญ่มาก</translation>
 <translation id="574209121243317957">ระดับเสียงสูงต่ำ</translation>
+<translation id="5745136023067925867">รับเคล็ดลับการใช้งาน ข้อเสนอ และข้อมูลอัปเดต รวมถึงแชร์ความคิดเห็นสำหรับ <ph name="DEVICE_TYPE" /></translation>
 <translation id="5746169159649715125">บันทึกเป็น PDF</translation>
 <translation id="5747552184818312860">หมดอายุ</translation>
 <translation id="5747785204778348146">นักพัฒนาซอฟต์แวร์ - ไม่เสถียร</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;แสดงใน Finder</translation>
 <translation id="6295158916970320988">เว็บไซต์ทั้งหมด</translation>
 <translation id="6295855836753816081">กำลังบันทึก...</translation>
-<translation id="629730747756840877">บัญชี</translation>
 <translation id="6298962879096096191">ใช้ Google Play เพื่อติดตั้งแอป Android</translation>
 <translation id="630065524203833229">&amp;ออก</translation>
 <translation id="6300718114348072351">กำหนดค่า <ph name="PRINTER_NAME" /> โดยอัตโนมัติไม่ได้ โปรดระบุรายละเอียดเครื่องพิมพ์ขั้นสูง <ph name="LINK_BEGIN" />ดูข้อมูลเพิ่มเติม<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">หน้านี้ไม่ใช่ภาษา<ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">บันทึกเหตุการณ์ WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">อุณหภูมิสี</translation>
-<translation id="6870888490422746447">เลือกแอปเพื่อแชร์ไปยัง:</translation>
 <translation id="6871644448911473373">OCSP Responder: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">เซิร์ฟเวอร์ปฏิเสธรหัสผ่านที่คุณป้อน</translation>
 <translation id="6876155724392614295">จักรยาน</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - บันทึกกิจกรรม</translation>
 <translation id="6997707937646349884">บนอุปกรณ์ของคุณ:</translation>
 <translation id="6998793565256476099">ลงทะเบียนอุปกรณ์สำหรับการประชุมทางวิดีโอ</translation>
+<translation id="6999956497249459195">กลุ่มใหม่</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> เชื่อมต่อแล้วแต่ต้องกำหนดค่า</translation>
 <translation id="7000347579424117903">รวม Ctrl, Alt หรือแป้นค้นหา</translation>
 <translation id="7001036685275644873">กำลังสำรองข้อมูลแอปและไฟล์ Linux</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">ตั้งค่าการเชื่อมต่อใน <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">ปิดข้อความนี้</translation>
+<translation id="7403642243184989645">ดาวน์โหลดทรัพยากร</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{เรียกใช้การตรวจสอบความปลอดภัยเมื่อ 1 ชั่วโมงที่ผ่านมา}other{เรียกใช้การตรวจสอบความปลอดภัยเมื่อ {NUM_HOURS} ชั่วโมงที่ผ่านมา}}</translation>
 <translation id="740624631517654988">ปิดกั้นป๊อปอัป</translation>
 <translation id="7407430846095439694">นำเข้าและเชื่อมโยง</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">URL นโยบายของผู้ออกใบรับรองของ Netscape</translation>
 <translation id="7717014941119698257">กำลังดาวน์โหลด: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">ตรวจสอบการอัปเดต</translation>
+<translation id="7719070594859855691">ให้สิทธิ์เข้าถึงกล้อง</translation>
 <translation id="7719367874908701697">การซูมหน้า</translation>
 <translation id="7721179060400456005">อนุญาตให้ขยายการแสดงหน้าต่างไปยังหลายหน้าจอ</translation>
 <translation id="7722040605881499779">จำเป็นสำหรับอัปเดต: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">ดูประวัติการพิมพ์</translation>
 <translation id="7744192722284567281">พบในการละเมิดข้อมูล</translation>
 <translation id="7750228210027921155">การแสดงภาพซ้อนภาพ</translation>
-<translation id="7751229152614300329">Google Safe Browsing เป็นเวอร์ชันล่าสุดและกำลังปกป้องคุณจากเว็บไซต์และการดาวน์โหลดที่เป็นอันตราย</translation>
 <translation id="7751260505918304024">แสดงทั้งหมด</translation>
 <translation id="7754704193130578113">สอบถามที่เก็บไฟล์ก่อนดาวน์โหลด</translation>
 <translation id="7755287808199759310">ผู้ปกครองสามารถเลิกบล็อกเว็บไซต์ให้คุณ</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />หมายเหตุ:<ph name="END_BOLD" />  ระบบจะเริ่มต้นใหม่ระหว่างการดำเนินการ</translation>
 <translation id="7828731929332799387">การดำเนินการนี้จะลบคุกกี้และข้อมูลเว็บไซต์ทั้งหมดที่มีอยู่ในบริบทของบุคคลที่สาม ต้องการทำต่อไหม</translation>
 <translation id="7829298379596169484">กำลังเข้าถึงอินพุตเสียง</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> ตรวจสอบรหัสผ่านของคุณไม่ได้ โปรดลองตรวจสอบการเชื่อมต่ออินเทอร์เน็ต</translation>
 <translation id="7829877209233347340">ขอให้ผู้ปกครองลงชื่อเข้าใช้เพื่อให้สิทธิ์ในการเพิ่มบัญชีโรงเรียน</translation>
 <translation id="7830594666202422257">เชื่อมต่อกับ Linux</translation>
 <translation id="7831491651892296503">เกิดข้อผิดพลาดในการกำหนดค่าเครือข่าย</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">กำลังติดตั้ง Google Play Store ใน <ph name="DEVICE_TYPE" /> อาจใช้เวลาสักครู่</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{ไม่มีคุกกี้ของบุคคลที่สาม}=1{บล็อกคุกกี้ของบุคคลที่สามไว้ 1 รายการ}other{บล็อกคุกกี้ของบุคคลที่สามไว้ # รายการ}}</translation>
 <translation id="810875025413331850">ไม่พบอุปกรณ์ที่อยู่ใกล้เคียง</translation>
+<translation id="8114199541033039755">ไปยังหน้าแรก ย้อนกลับ และสลับแอปด้วยปุ่มในโหมดแท็บเล็ต เปิดเมื่อมีการเปิดใช้ ChromeVox หรือการคลิกอัตโนมัติ</translation>
 <translation id="8114875720387900039">แยกในแนวนอน</translation>
 <translation id="8116972784401310538">ตั&amp;วจัดการบุ๊กมาร์ก</translation>
 <translation id="8117620576188476503">จัดการการเชื่อมต่อ อัปเดต และการตั้งค่าด้วยถาดสถานะ หากต้องการมาที่นี่โดยใช้แป้นพิมพ์ ให้กด Alt + Shift + S</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ได้ปิดใช้งานเคอร์เซอร์เมาส์แล้ว</translation>
 <translation id="8264024885325823677">การตั้งค่านี้จัดการโดยผู้ดูแลระบบ</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" เรียกใช้หน้าจอแบบเต็ม</translation>
+<translation id="826511437356419340">เข้าสู่โหมดภาพรวมหน้าต่างแล้ว เลื่อนเพื่อไปยังส่วนต่างๆ หรือกด Tab หากกำลังใช้แป้นพิมพ์</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />นี่คือข้อมูลทั่วไปเกี่ยวกับอุปกรณ์นี้และวิธีใช้อุปกรณ์ (เช่น ระดับแบตเตอรี่ กิจกรรมในระบบและแอป และข้อผิดพลาด) ระบบจะใช้ข้อมูลดังกล่าวเพื่อปรับปรุง Android และข้อมูลแบบสรุปรวมบางอย่างจะช่วยให้แอป Google และพาร์ทเนอร์ต่างๆ เช่น นักพัฒนาซอฟต์แวร์ Android ปรับปรุงแอปและผลิตภัณฑ์ของตนให้ดีขึ้นได้อีกด้วย<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />การปิดฟีเจอร์นี้จะไม่ส่งผลต่อความสามารถของอุปกรณ์ในการส่งข้อมูลที่จำเป็นต้องใช้ในบริการสำคัญอย่างเช่น การอัปเดตระบบ และความปลอดภัย<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />เจ้าของจะควบคุมฟีเจอร์นี้ได้จากการตั้งค่า &gt; ขั้นสูง &gt; ส่งข้อมูลการวินิจฉัยและการใช้งานไปยัง Google โดยอัตโนมัติ<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">กำลังเปิดใช้</translation>
 <translation id="8427292751741042100">ฝังในโฮสต์ใดก็ได้</translation>
 <translation id="8428213095426709021">การตั้งค่า</translation>
+<translation id="8428271547607112339">เพิ่มบัญชีโรงเรียน</translation>
 <translation id="8428628598981198790">คีย์ความปลอดภัยของคุณใช้กับเว็บไซต์นี้ไม่ได้</translation>
 <translation id="84297032718407999">คุณจะออกจากระบบใน <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">แสดงการแตะ</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">อนุญาตให้ <ph name="HOST" /> แสดงภาพเสมอ</translation>
 <translation id="8513108775083588393">หมุนอัตโนมัติ</translation>
 <translation id="8514746246728959655">ลองใช้คีย์ความปลอดภัยอื่น</translation>
+<translation id="851960115758509829">แอป การตั้งค่า และการปรับแต่งอื่นๆ จะซิงค์กับอุปกรณ์ Chrome OS ทั้งหมดที่คุณลงชื่อเข้าใช้ไว้ด้วยบัญชี Google</translation>
 <translation id="8521475323816527629">ไปที่แอปได้อย่างรวดเร็ว</translation>
 <translation id="8523493869875972733">เก็บการเปลี่ยนแปลงไว้</translation>
 <translation id="8523849605371521713">เพิ่มตามนโยบาย</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">พื้นที่เก็บข้อมูล</translation>
 <translation id="8859057652521303089">เลือกภาษาที่ต้องการ:</translation>
 <translation id="8859174528519900719">เฟรมย่อย: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">บัญชีผู้ปกครอง</translation>
 <translation id="8862003515646449717">เปลี่ยนเป็นเบราว์เซอร์ที่เร็ว</translation>
 <translation id="8863753581171631212">เปิดลิงก์ใน <ph name="APP" /> ใหม่</translation>
 <translation id="8864055848767439877">กำลังแชร์ <ph name="TAB_NAME" /> กับ <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">นำ <ph name="EMAIL" /> ออกจากอุปกรณ์นี้แล้ว</translation>
 <translation id="8867228703146808825">คัดลอกรายละเอียดเวอร์ชันไปยังคลิปบอร์ด</translation>
+<translation id="8868333925931032127">เริ่มโหมดสาธิต</translation>
 <translation id="8868626022555786497">ใช้งานอยู่</translation>
 <translation id="8870413625673593573">เพิ่งปิด</translation>
 <translation id="8871551568777368300">ตรึงโดยผู้ดูแลระบบ</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">เปิดแท็บอีกครั้งหากปิดไปโดยไม่ได้ตั้งใจ</translation>
 <translation id="8967866634928501045">กด Alt Shift A เพื่อแสดง</translation>
 <translation id="8968766641738584599">บันทึกบัตร</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> ตรวจสอบรหัสผ่านของคุณไม่ได้ โปรดรอ 24 ชั่วโมงแล้วลองอีกครั้งหรือ<ph name="BEGIN_LINK" />ตรวจสอบรหัสผ่านในบัญชี Google<ph name="END_LINK" /></translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">โปรดตรวจสอบกับผู้ดูแลระบบเครือข่ายของคุณเพื่อให้แน่ใจว่าไฟร์วอลล์ไม่ได้บล็อกการดาวน์โหลดจากเซิร์ฟเวอร์ของ Google</translation>
 <translation id="8973557916016709913">นำระดับการซูมออก</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 4a7a108..53b85e0 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Kullanılabilir cihazlar</translation>
 <translation id="1042174272890264476">Bilgisayarınızda aynı zamanda yerleşik <ph name="SHORT_PRODUCT_NAME" /> RLZ kitaplığı da bulunur. RLZ, aramaları ve belirli bir promosyon kampanyasının sağladığı <ph name="SHORT_PRODUCT_NAME" /> kullanımını ölçmek için benzersiz olmayan ve kimlik bilgileri içermeyen bir etiket atar. Bu etiketler bazen <ph name="PRODUCT_NAME" /> içindeki Google Arama sorgularında görünür.</translation>
 <translation id="1043818413152647937">Ayrıca veriler bu uygulamalardan da temizlensin mi?</translation>
+<translation id="1045448422538531528">Gruba ekle</translation>
 <translation id="1046635659603195359">Google Asistan'la Voice Match'i başka bir cihazda zaten kurmuş olduğunuz anlaşılıyor. Önceki bu kayıtlar, bu cihazda bir ses modeli oluşturmak için kullanılabilir. Bu işlem, bir dakikadan az sürecektir.</translation>
 <translation id="104710386808485638">Linux yeniden başlatılsın mı?</translation>
 <translation id="1047431265488717055">&amp;Bağlantı Metnini Kopyala</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Kamera erişimini her zaman engelle</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" />, Chrome ayarlarınızı orijinal varsayılan değerlerine geri yüklemek istiyor. Bu işlem ana sayfanızı, yeni sekme sayfanızı ve arama motorunuzu sıfırlayacak, uzantılarınızı devre dışı bırakacak ve tüm sekmelerinizin sabitlemesini kaldıracaktır. Ayrıca çerezler, içerik ve site verileri gibi geçici ve önbelleğe alınmış diğer veriler temizlenecektir.</translation>
+<translation id="1084096383128641877">Bu şifre kaldırıldığında <ph name="DOMAIN" /> üzerindeki hesabınız silinmez. <ph name="DOMAIN_LINK" /> üzerindeki hesabınıza başka kişilerin ulaşmaması için şifrenizi değiştirin veya hesabı silin.</translation>
 <translation id="1084824384139382525">Bağlantı adr&amp;esini kopyala</translation>
 <translation id="1085697365578766383">Sanal makine başlatılırken hata oluştu. Lütfen tekrar deneyin.</translation>
 <translation id="1090126737595388931">Çalışan Hiç Arka Plan Uygulama Yok</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Güvenlik kontrolü dün çalıştırıldı</translation>
 <translation id="1260451001046713751"><ph name="HOST" /> sitesindeki pop-up'lara ve yönlendirmelere her zaman izin ver</translation>
 <translation id="126156426083987769">Demo modu cihaz lisanslarıyla ilgili bir sorun oluştu.</translation>
+<translation id="1263490604593716556">Hesap <ph name="FIRST_PARENT_EMAIL" /> ve <ph name="SECOND_PARENT_EMAIL" /> tarafından yönetiliyor. Bu cihazda birincil hesabın oturumunu kapatmak için ekranınızdaki saati tıklayın. Görüntülenen menüde "Oturumu kapat"ı tıklayın.</translation>
 <translation id="126710816202626562">Çeviri dili:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Durdur</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Web sitesi</translation>
 <translation id="15662109988763471">Seçilen yazıcı kullanılamıyor veya doğru yüklenmemiş. Yazıcınızı kontrol edin veya başka yazıcı seçmeyi deneyin.</translation>
 <translation id="1567387640189251553">Şifrenizi son girdiğinizden bu yana farklı bir klavye bağlandı. Bu klavye, tuş vuruşlarınızı çalmaya çalışıyor olabilir.</translation>
-<translation id="1567750922576943685">Kimliğinizin doğrulanması kişisel bilgilerinizin korunmasına yardımcı olur</translation>
 <translation id="1567993339577891801">JavaScript Konsolu</translation>
 <translation id="1568323446248056064">Ekran cihaz ayarlarını aç</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Misafir)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Sanat</translation>
 <translation id="1697686431566694143">Dosyayı düzenle</translation>
 <translation id="1698122934742150150">Yalnızca geçerli gizli oturum</translation>
-<translation id="1698650002254827833">Uygulama listesi yüklenemiyor. Lütfen tekrar deneyin.</translation>
 <translation id="1700079447639026019">Hiçbir zaman çerez kullanamayan siteler</translation>
 <translation id="1701062906490865540">Bu kişiyi kaldır</translation>
 <translation id="1703331064825191675">Şifreleriniz için hiç kaygılanmayın</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Devam</translation>
 <translation id="2173302385160625112">İnternet bağlantınızı kontrol edin</translation>
 <translation id="2173801458090845390">Bu cihaza talep kimliği ekleyin</translation>
+<translation id="2174948148799307353">Hesap <ph name="PARENT_EMAIL" /> tarafından yönetiliyor Bu cihazda birincil hesabın oturumunu kapatmak için ekranınızdaki saati tıklayın. Görüntülenen menüde "Oturumu kapat"ı tıklayın.</translation>
 <translation id="2175607476662778685">Hızlı başlat çubuğu</translation>
 <translation id="217576141146192373">Yazıcı eklenemiyor. Lütfen yazıcınızın yapılandırmasını kontrol edip tekrar deneyin.</translation>
 <translation id="2177950615300672361">Gizli Sekmesi: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Metin gölgesi</translation>
 <translation id="2445081178310039857">Uzantı kök dizini gerekiyor.</translation>
 <translation id="2445484935443597917">Yeni Profil Oluştur</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> kimliğinizi doğrulamak istiyor</translation>
 <translation id="2448312741937722512">Tür</translation>
 <translation id="2450223707519584812">Google API anahtarları eksik olduğundan kullanıcı ekleyemezsiniz. Ayrıntılar için <ph name="DETAILS_URL" /> sayfasına bakın.</translation>
 <translation id="2450849356604136918">Etkin görünüm yok</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Şuraya git: <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Modern web için geliştirilmiş hızlı, basit ve güvenli bir web tarayıcısı.</translation>
 <translation id="2949289451367477459">Konum bilgilerini kullan. Konum izinleri olan uygulama ve hizmetlerin bu cihazın konumunu kullanmasına izin verin. Google, konum verilerini düzenli olarak toplayabilir ve konum doğruluğu ile konuma dayalı hizmetleri iyileştirmek için bu verileri anonim bir şekilde kullanabilir. <ph name="BEGIN_LINK1" />Daha Fazla Bilgi<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Kaydolmak istiyorum</translation>
 <translation id="2956070239128776395">Grupta iç içe yerleşmiş bölüm: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Hiçbir sitenin cihazımdaki dosyaları veya klasörleri düzenlemesine izin verme</translation>
 <translation id="2958721676848865875">Uzantı paketleme uyarısı</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Varsayılan sarı avatar</translation>
 <translation id="3141318088920353606">Dinleniyor...</translation>
 <translation id="3141917231319778873">Belirtilen istek şu cihazda desteklenmiyor: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Yeni Grup</translation>
 <translation id="3143515551205905069">Senkronizasyonu iptal et</translation>
 <translation id="3143754809889689516">Baştan oynat</translation>
 <translation id="3144647712221361880">Bağlantıyı farklı aç</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Bej</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (donanım destekli)</translation>
 <translation id="3161522574479303604">Tüm diller</translation>
+<translation id="3162853326462195145">Okul hesabı</translation>
 <translation id="3162899666601560689">Siteler size daha iyi bir göz atma deneyimi sunmak, örneğin, oturumunuzu açık tutmak veya alışveriş sepetinizdeki ürünleri hatırlamak için çerez kullanabilir</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> adlı satıcı firma tarafından sağlanan <ph name="PRODUCT_ID" /> ürün kimliğine sahip bilinmeyen ürün</translation>
 <translation id="3164329792803560526">Bu sekme <ph name="APP_NAME" /> ile paylaşılıyor</translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Cihazı bir gün içinde güncelleyin}other{Cihazı # gün içinde güncelleyin}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Ağ hatası</translation>
 <translation id="3248902735035392926">Güvenlik önemlidir. Bir dakikanızı ayırıp <ph name="BEGIN_LINK" />uzantılarınızı şimdi kontrol edin<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Sertifikanın Parçası Değil&gt;</translation>
 <translation id="3253225298092156258">Kullanılamaz</translation>
 <translation id="3253448572569133955">Bilinmeyen hesap</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">"Kabul et ve devam et" düğmesini tıklayarak bu Google hizmetleri ile ilgili yukarıda açıklanan işlemleri kabul etmiş olursunuz.</translation>
 <translation id="3399432415385675819">Bildirimler devre dışı bırakılacak</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - birbirine geçmiş</translation>
+<translation id="3402585168444815892">Demo Modu'na Kaydolunuyor</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Bu site için hiç şifre kaydedilmedi</translation>
 <translation id="3405664148539009465">Yazı tiplerini özelleştir</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Android telefon</translation>
 <translation id="3470442499439619530">Bu Kullanıcıyı Kaldır</translation>
 <translation id="3471876058939596279">HDMI ve USB Type-C bağlantı noktası video için aynı anda kullanılamaz. Farklı bir video bağlantı noktası kullanın.</translation>
+<translation id="3473241910002674503">Tablet modunda düğmelerle ana ekrana gidin, geri dönün ve uygulamalar arasında geçiş yapın.</translation>
 <translation id="3473479545200714844">Ekran büyüteci</translation>
 <translation id="3475843873335999118">Maalesef parmak iziniz hâlâ tanınamadı. Lütfen şifrenizi girin.</translation>
 <translation id="3476303763173086583">Kullanım ve teşhis verilerini gönder. Teşhis, cihaz ve uygulama kullanımı verilerini otomatik olarak Google'a göndererek çocuğunuzun Android deneyiminin iyileştirilmesine yardımcı olun. Bu veriler, çocuğunuzun kimliğini tespit etmek için kullanılmaz; sistem ve uygulama kararlılığı ile diğer özellikleri iyileştirmeye yardımcı olur. Bazı birleştirilmiş veriler, Google uygulamalarına ve iş ortaklarına da (ör. Android geliştiricileri) yardımcı olur. Bu <ph name="BEGIN_LINK1" />ayar<ph name="END_LINK1" />, cihazın sahibi tarafından zorunlu kılınmıştır. Cihazın sahibi bu cihazın teşhis ve kullanım verilerini Google'a göndermeyi seçebilir. Çocuğunuz için ek Web ve Uygulama Etkinliği açıksa bu veriler çocuğunuzun Google hesabına kaydedilebilir. <ph name="BEGIN_LINK2" />Daha Fazla Bilgi<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Bu güvenlik anahtarındaki parmak izleri</translation>
 <translation id="3973660817924297510">Şifreler kontrol ediliyor (<ph name="CHECKED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Alanın sunucusuyla iletişim kurulamadı</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" />, şifrelerinizi kontrol edemiyor. Sonra tekrar deneyin.</translation>
 <translation id="3976108569178263973">Kullanılabilir yazıcı yok.</translation>
 <translation id="397703832102027365">Sonlandırılıyor...</translation>
 <translation id="3977886311744775419">Otomatik güncellemeler bu ağ türünde indirilmez ancak güncellemeleri manuel olarak kontrol edebilirsiniz.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Bu sayfa, konumunuzu izleyen şu sitelerden öğeler içeriyor:</translation>
 <translation id="4068776064906523561">Kayıtlı parmak izleri</translation>
 <translation id="407173827865827707">Tıklandığında</translation>
+<translation id="4073520450811433493">Ayarların senkronizasyonu</translation>
 <translation id="4074900173531346617">E-posta İmza Sahibi Sertifikası</translation>
 <translation id="407520071244661467">Ölçek</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> yayınlanamıyor.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Mırnav</translation>
 <translation id="4423376891418188461">Ayarları Geri Yükle</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, yöneticiniz şifrenizi değiştirmenizi zorunlu tutuyor.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" />, şifrelerinizi kontrol edemiyor. 24 saat sonra tekrar deneyin.</translation>
 <translation id="4429030830601238961">Bu veriler kuruluşunuzun güvenlik politikalarını ihlal ettiğinden yapıştırılamıyor.</translation>
 <translation id="4430019312045809116">Ses</translation>
 <translation id="4430369329743628066">Yer işareti eklendi</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Makine açıldığında bu uygulamayı otomatik olarak başlatmak istiyor musunuz?</translation>
 <translation id="4441147046941420429">Devam etmek için güvenlik anahtarınızı cihazınızdan çıkarıp tekrar takın ve anahtara dokunun.</translation>
 <translation id="444134486829715816">Genişlet...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" />, Google Hesabınızla oturum açtığınızda şifrelerinizi kontrol edebilir.</translation>
 <translation id="4442424173763614572">DNS arama başarısız oldu</translation>
 <translation id="4443536555189480885">&amp;Yardım</translation>
 <translation id="4444304522807523469">USB üzerinden bağlı veya yerel ağda bulunan doküman tarayıcılara erişme</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Bu kodu taramak için telefonunuzda bir QR tarayıcı uygulamasını veya bazı kamera uygulamalarını kullanabilirsiniz.</translation>
 <translation id="4477015793815781985">Ctrl, Alt veya ⌘ tuşuna da basın</translation>
 <translation id="4478664379124702289">Bağl&amp;antıyı Farklı Kaydet...</translation>
+<translation id="4478777936860197922">Kaydedilen şifre yok. <ph name="IDS_SHORT_PRODUCT_NAME" />, kaydetmeniz halinde şifrelerinizi kontrol edebilir.</translation>
 <translation id="4479424953165245642">Kiosk uygulamalarını yönet</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Sanal makine yapılandırılıyor. Bu işlem birkaç dakika sürebilir.</translation>
 <translation id="4480590691557335796">Chrome, bilgisayarınızdaki zararlı yazılımları bulabilir ve kaldırabilir</translation>
 <translation id="4481530544597605423">Eşlemesi kaldırılmış cihazlar</translation>
+<translation id="4488107067273194838">Kurulumun ardından tarayıcı senkronizasyon seçeneklerini incele</translation>
 <translation id="4488502501195719518">Tüm veriler temizlensin mi?</translation>
 <translation id="4495419450179050807">Bu sayfada gösterme</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> izni otomatik olarak engellendi</translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Yükleme</translation>
 <translation id="4850669014075537160">Kaydırma</translation>
 <translation id="4850886885716139402">Görüntüle</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" />, güvenliği ihlal edilmiş bir şifreyle oturum açtığınızda size haber verir</translation>
 <translation id="4853020600495124913">&amp;Yeni pencerede aç</translation>
 <translation id="4854317507773910281">Onay için ebeveyn hesabı seçin</translation>
 <translation id="485480310608090163">Diğer ayarlar ve izinler</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN geçersiz karakterler içeriyor</translation>
 <translation id="4871370605780490696">Yer işaretlerine ekleyin</translation>
 <translation id="4871719318659334896">Grubu kapat</translation>
+<translation id="4871852311166078968">Gruba Ekle</translation>
 <translation id="4873312501243535625">Medya Dosyası Denetleyicisi</translation>
 <translation id="4876273079589074638">Mühendislerimizin kilitlenme olayı araştırmalarına ve düzeltmelerine yardımcı olun. Yapabilirseniz adımları tam olarak listeleyin. Hiçbir ayrıntıyı atlamayın!</translation>
 <translation id="4876895919560854374">Ekranı kilitleme ve kilidini açma</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Yöneticiniz kullanılıabilir giriş yöntemlerini sınırladı.</translation>
 <translation id="4994474651455208930">Sitelerin, protokoller için varsayılan işleyiciler olmasını sormasına izin ver</translation>
 <translation id="4994754230098574403">Ayarlanıyor</translation>
-<translation id="4996978546172906250">Paylaşım yöntemi:</translation>
 <translation id="4997086284911172121">İnternet bağlantısı yok.</translation>
 <translation id="4997384734315285248">Plugin VM'yi kaldır</translation>
 <translation id="4998430619171209993">Açık</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Asistanınıza "Ok Google" diyerek erişin.</translation>
 <translation id="5135533361271311778">Yer işareti öğesi oluşturulamadı.</translation>
 <translation id="5137501176474113045">Bu öğeyi sil</translation>
-<translation id="5138982052046316113">Linux Disk'i yeniden boyutlandırın</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> Arama</translation>
 <translation id="5139823398361067371">Güvenlik anahtarınızın PIN'ini girin. PIN kodunu bilmiyorsanız güvenlik anahtarını sıfırlamanız gerekir.</translation>
 <translation id="5139955368427980650">&amp;Aç</translation>
@@ -3520,6 +3531,7 @@
 <translation id="5739235828260127894">Doğrulama bekleniyor. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Çok büyük</translation>
 <translation id="574209121243317957">Ses Kalınlığı</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" /> ile ilgili ipuçları, fırsatlar ve güncellemeler alın, geri bildiriminizi paylaşın</translation>
 <translation id="5746169159649715125">PDF olarak kaydet</translation>
 <translation id="5747552184818312860">Süre sonu tarihi</translation>
 <translation id="5747785204778348146">Geliştirici - kararsız</translation>
@@ -3932,7 +3944,6 @@
 <translation id="6291953229176937411">Bulucu'da &amp;Göster</translation>
 <translation id="6295158916970320988">Tüm siteler</translation>
 <translation id="6295855836753816081">Kaydediliyor...</translation>
-<translation id="629730747756840877">Hesap</translation>
 <translation id="6298962879096096191">Android uygulamalarını yüklemek için Google Play'i kullanın</translation>
 <translation id="630065524203833229">Çı&amp;kış</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> otomatik olarak yapılandırılamıyor. Lütfen gelişmiş yazıcı ayrıntılarını belirtin. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation>
@@ -4338,7 +4349,6 @@
 <translation id="6865598234501509159">Sayfa <ph name="LANGUAGE" /> Değil</translation>
 <translation id="6865708901122695652">WebRTC etkinlik günlükleri (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Renk sıcaklığı</translation>
-<translation id="6870888490422746447">Paylaşımda bulunmak için bir uygulama seçin:</translation>
 <translation id="6871644448911473373">OCSP Yanıtlayanı: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Girdiğiniz şifre, sunucu tarafından reddedildi.</translation>
 <translation id="6876155724392614295">Bisiklet</translation>
@@ -4431,6 +4441,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Etkinlik Günlüğü</translation>
 <translation id="6997707937646349884">Cihazlarınızda:</translation>
 <translation id="6998793565256476099">Video konferans için cihazı kaydetme</translation>
+<translation id="6999956497249459195">Yeni grup</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> bağlandı, ancak yapılandırılması gerekiyor</translation>
 <translation id="7000347579424117903">Ctrl, Alt veya Arama tuşunu ekleyin</translation>
 <translation id="7001036685275644873">Linux uygulamaları ve dosyaları yedekleniyor</translation>
@@ -4729,6 +4740,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923"><ph name="PHONE_NAME" /> telefonunuzda bağlantıyı yapılandırın</translation>
 <translation id="7401778920660465883">Bu iletiyi kapat</translation>
+<translation id="7403642243184989645">Kaynaklar indiriliyor</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Güvenlik kontrolü 1 saat önce çalıştırıldı}other{Güvenlik kontrolü {NUM_HOURS} saat önce çalıştırıldı}}</translation>
 <translation id="740624631517654988">Pop-up engellendi</translation>
 <translation id="7407430846095439694">İçe Aktar ve Bağla</translation>
@@ -4965,6 +4977,7 @@
 <translation id="7716781361494605745">Netscape Sertifika Yetki Politikası URL'si</translation>
 <translation id="7717014941119698257">İndiriliyor: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Güncellemeleri kontrol et</translation>
+<translation id="7719070594859855691">Kameraya erişim izni ver</translation>
 <translation id="7719367874908701697">Sayfa yakınlaştırma</translation>
 <translation id="7721179060400456005">Pencerelerin birden fazla ekrana genişlemesine izin ver</translation>
 <translation id="7722040605881499779">Güncelleme için gereken: <ph name="NECESSARY_SPACE" /></translation>
@@ -4979,7 +4992,6 @@
 <translation id="7744047395460924128">Yazdırma geçmişinizi görme</translation>
 <translation id="7744192722284567281">Veri ihlali kapsamında bulundu</translation>
 <translation id="7750228210027921155">Pencere içinde pencere</translation>
-<translation id="7751229152614300329">Güvenli Tarama güncel olup sizi zararlı sitelere ve indirmelere karşı koruyor</translation>
 <translation id="7751260505918304024">Tümünü göster</translation>
 <translation id="7754704193130578113">İndirmeden önce her dosyanın nereye kaydedileceğini sor</translation>
 <translation id="7755287808199759310">Ebeveyniniz engellemeyi sizin için kaldırabilir</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Not:<ph name="END_BOLD" /> İşlem sırasında sistem yeniden başlatılacaktır</translation>
 <translation id="7828731929332799387">Bu, üçüncü taraf bağlamında mevcut tüm çerezleri ve site verilerini siler. Devam etmek istiyor musunuz?</translation>
 <translation id="7829298379596169484">Ses girişine erişiliyor</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" />, şifrelerinizi kontrol edemiyor. İnternet bağlantınızı kontrol etmeyi deneyin.</translation>
 <translation id="7829877209233347340">Bir ebeveynden okul hesabı ekleme izni vermesi için oturum açmasını isteyin</translation>
 <translation id="7830594666202422257">Linux'a bağlan</translation>
 <translation id="7831491651892296503">Ağ yapılandırılırken hata oluştu</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Google Play Store <ph name="DEVICE_TYPE" /> cihazınıza yükleniyor. Bu işlem birkaç dakika sürebilir.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Üçüncü taraf çerez yok}=1{1 üçüncü taraf çerez engellendi}other{# üçüncü taraf çerez engellendi}}</translation>
 <translation id="810875025413331850">Yakında olan cihaz bulunamadı.</translation>
+<translation id="8114199541033039755">Tablet modunda düğmelerle ana ekrana gidin, geri dönün ve uygulamalar arasında geçiş yapın. ChromeVox veya Otomatik tıklamalar etkinleştirildiğinde açılır.</translation>
 <translation id="8114875720387900039">Yatay böl</translation>
 <translation id="8116972784401310538">&amp;Yer imi yöneticisi</translation>
 <translation id="8117620576188476503">Durum tepsisi ile bağlantıları, güncellemeleri ve ayarları yönetin. Klavyeyle buraya ulaşmak için Alt + Üst Karakter + S tuşlarına basın.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" />, fare imlecinizi devre dışı bıraktı.</translation>
 <translation id="8264024885325823677">Bu ayar, yöneticiniz tarafından yönetilir.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" tam ekranı tetikledi.</translation>
+<translation id="826511437356419340">Pencere genel bakış moduna girildi. Gezinmek için kaydırın veya klavye kullanıyorsanız sekme tuşuna basın.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Buradaki bilgiler (pil seviyesi, sistem ve uygulama etkinliği ve hatalar gibi) cihazla ve kullanımıyla ilgili genel bilgilerdir. Bu veriler Android'i iyileştirmek için kullanılır. Toplu hale getirilen bazı bilgiler, Google uygulamalarının ve Android geliştiricileri gibi iş ortaklarına ait uygulama ve ürünlerin iyileştirilmesine de yardımcı olur.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Bu özelliğin kapatılması, bu cihazın, sistem güncellemeleri ve güvenlik gibi önemli hizmetleri almak için ihtiyaç duyduğu bilgileri gönderme yeteneğini etkilemez.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Cihaz sahibi bu özelliği Ayarlar &gt; Gelişmiş &gt; Teşhis ve kullanım verilerini Google'a otomatik olarak gönder seçeneğinden kontrol edebilir.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Etkinleştiriliyor</translation>
 <translation id="8427292751741042100">herhangi bir ana makinede yerleşik</translation>
 <translation id="8428213095426709021">Ayarlar</translation>
+<translation id="8428271547607112339">Okul hesabı ekle</translation>
 <translation id="8428628598981198790">Güvenlik anahtarınız bu sitede kullanılamaz</translation>
 <translation id="84297032718407999"><ph name="LOGOUT_TIME_LEFT" /> içinde çıkış yapacaksınız</translation>
 <translation id="8431190899827883166">Dokunmaları göster</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303"><ph name="HOST" /> sitesindeki resimlerin gösterilmesine her zaman izin ver</translation>
 <translation id="8513108775083588393">Otomatik döndür</translation>
 <translation id="8514746246728959655">Başka bir güvenlik anahtarı deneyin</translation>
+<translation id="851960115758509829">Uygulamalarınız, ayarlarınız ve diğer özelleştirmeleriniz, Google Hesabınızla oturum açtığınız tüm Chrome OS cihazlarında senkronize edilir.</translation>
 <translation id="8521475323816527629">Uygulamalarınıza hızlıca ulaşın</translation>
 <translation id="8523493869875972733">Değişiklikleri Koru</translation>
 <translation id="8523849605371521713">Politika tarafından eklendi</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Depolama</translation>
 <translation id="8859057652521303089">Dilinizi seçin:</translation>
 <translation id="8859174528519900719">Alt çerçeve: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Ebeveyn hesabı</translation>
 <translation id="8862003515646449717">Hızlı bir tarayıcıya geç</translation>
 <translation id="8863753581171631212">Bağlantıyı yeni <ph name="APP" /> uygulamasında aç</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" />, <ph name="APP_NAME" /> ile paylaşılıyor</translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> bu cihazdan kaldırıldı</translation>
 <translation id="8867228703146808825">Yapı ayrıntılarını panoya kopyala</translation>
+<translation id="8868333925931032127">Demo Modu Başlatılıyor</translation>
 <translation id="8868626022555786497">Kullanımda</translation>
 <translation id="8870413625673593573">Son Kapatılan</translation>
 <translation id="8871551568777368300">Yönetici tarafından sabitlendi</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Bir sekmeyi yanlışlıkla kapattıysanız yeniden açın</translation>
 <translation id="8967866634928501045">Göstermek için Alt+Üst Karakter+A tuşlarına basın</translation>
 <translation id="8968766641738584599">Kartı kaydet</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" />, şifrelerinizi kontrol edemiyor. 24 saat sonra tekrar deneyin veya <ph name="BEGIN_LINK" />şifreleri Google Hesabınızda kontrol edin<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Güvenlik duvarının, Google sunucularından yapılan indirme işlemlerini engellemediğinden emin olmak için lütfen ağ yöneticinizle görüşün.</translation>
 <translation id="8973557916016709913">Yakınlaştırma seviyesini kaldır</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 760f40f..21387c7 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Доступні пристрої</translation>
 <translation id="1042174272890264476">Ваш комп’ютер також має вбудовану бібліотеку RLZ у <ph name="SHORT_PRODUCT_NAME" />. Параметр RLZ призначає неунікальний тег, який не містить особисті дані, проте дозволяє вимірювати пошуки й користування <ph name="SHORT_PRODUCT_NAME" /> у рамках певної рекламної кампанії. Ці мітки інколи з’являються в пошукових запитах Google у <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Видалити дані з цих додатків?</translation>
+<translation id="1045448422538531528">Додати в групу</translation>
 <translation id="1046635659603195359">Схоже, ви вже налаштували Voice Match для Google Асистента на іншому пристрої. За допомогою попередніх записів можна створити зразок голосу на цьому пристрої. Це займе менше хвилини.</translation>
 <translation id="104710386808485638">Перезапустити Linux?</translation>
 <translation id="1047431265488717055">Копіювати те&amp;кст посилання</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Завжди блокувати доступ до камери</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> хоче скинути ваші налаштування Chrome. Буде скинуто домашню сторінку, сторінку нової вкладки та пошукову систему. Буде вимкнено розширення та відкріплено всі закладки. Також буде видалено інші тимчасові й кешовані дані, як-от файли cookie, вміст і дані із сайтів.</translation>
+<translation id="1084096383128641877">Якщо видалити цей пароль, ваш обліковий запис на сайті <ph name="DOMAIN" /> залишиться. Змініть пароль або видаліть обліковий запис на сайті <ph name="DOMAIN_LINK" />, щоб захистити його.</translation>
 <translation id="1084824384139382525">Копіювати адр&amp;есу посилання</translation>
 <translation id="1085697365578766383">Не вдалося запустити віртуальну машину. Повторіть спробу.</translation>
 <translation id="1090126737595388931">Не запущено жодну фонову програму</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Перевірку безпеки виконано вчора</translation>
 <translation id="1260451001046713751">Завжди дозволяти спливаючі вікна та переспрямування з хосту <ph name="HOST" /></translation>
 <translation id="126156426083987769">Виникла проблема з ліцензіями пристрою в демо-режимі.</translation>
+<translation id="1263490604593716556">Обліковим записом керують <ph name="FIRST_PARENT_EMAIL" /> і <ph name="SECOND_PARENT_EMAIL" />. Щоб вийти з основного облікового запису на цьому пристрої, натисніть час на екрані. У меню, що з'явиться, натисніть "Вийти".</translation>
 <translation id="126710816202626562">Мова перекладу:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Зупинити</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Веб-сайт</translation>
 <translation id="15662109988763471">Вибраний принтер недоступний або його встановлено неправильно. Перевірте принтер або спробуйте вибрати інший.</translation>
 <translation id="1567387640189251553">Після останнього введення пароля було під’єднано іншу клавіатуру. Можливо, це спроба викрасти введені символи.</translation>
-<translation id="1567750922576943685">Підтвердження особи допомагає захистити особисту інформацію</translation>
 <translation id="1567993339577891801">Консоль JavaScript</translation>
 <translation id="1568323446248056064">Відкрити налаштування дисплея</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (гість)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Мистецтво</translation>
 <translation id="1697686431566694143">Редагувати файл</translation>
 <translation id="1698122934742150150">Лише поточний сеанс анонімного перегляду</translation>
-<translation id="1698650002254827833">Неможливо завантажити список додатків. Повторіть спробу.</translation>
 <translation id="1700079447639026019">Сайти, які ніколи не можуть використовувати файли cookie</translation>
 <translation id="1701062906490865540">Видалити цього користувача</translation>
 <translation id="1703331064825191675">Не хвилюйтеся про свої паролі</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Продовжити</translation>
 <translation id="2173302385160625112">Перевірте інтернет-з’єднання</translation>
 <translation id="2173801458090845390">Додати ідентифікатор заявки на цей пристрій</translation>
+<translation id="2174948148799307353">Обліковим записом керує <ph name="PARENT_EMAIL" />. Щоб вийти з основного облікового запису на цьому пристрої, натисніть час на екрані. У меню, що з'явиться, натисніть "Вийти".</translation>
 <translation id="2175607476662778685">Панель швидкого запуску</translation>
 <translation id="217576141146192373">Не вдається додати принтер. Перевірте його налаштування й повторіть спробу.</translation>
 <translation id="2177950615300672361">Анонімна вкладка: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Тінь тексту</translation>
 <translation id="2445081178310039857">Потрібен кореневий каталог розширення.</translation>
 <translation id="2445484935443597917">Створити новий профіль</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> хоче підтвердити вашу особу</translation>
 <translation id="2448312741937722512">Тип</translation>
 <translation id="2450223707519584812">Ви не зможете додавати користувачів, оскільки немає ключів API Google. Докладніше на сторінці <ph name="DETAILS_URL" />.</translation>
 <translation id="2450849356604136918">Немає активних переглядів</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Перейти в <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Швидкий, простий і надійний веб-переглядач, створений для сучасного Інтернету.</translation>
 <translation id="2949289451367477459">Використання геоданих. Дозволити додаткам і сервісам використовувати місцезнаходження цього пристрою. Google може періодично збирати геодані й анонімно обробляти їх, щоб покращувати точність визначення місцезнаходження та роботу сервісів, які працюють на основі геоданих. <ph name="BEGIN_LINK1" />Докладніше<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Зареєструватися</translation>
 <translation id="2956070239128776395">Розділ розміщено в групі: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Заборонити всім сайтам змінювати файли чи папки на пристрої</translation>
 <translation id="2958721676848865875">Застереження щодо пакування розширення</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Стандартний жовтий аватар</translation>
 <translation id="3141318088920353606">Говоріть…</translation>
 <translation id="3141917231319778873">Цей запит не підтримується на пристрої <ph name="DEVICE_NAME" />.</translation>
+<translation id="3142562627629111859">Нова група</translation>
 <translation id="3143515551205905069">Скасувати синхронізацію</translation>
 <translation id="3143754809889689516">Відтворити з початку</translation>
 <translation id="3144647712221361880">Відкрити посилання як</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Бежевий</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (з апаратною підтримкою)</translation>
 <translation id="3161522574479303604">Усі мови</translation>
+<translation id="3162853326462195145">Обліковий запис навчального закладу</translation>
 <translation id="3162899666601560689">Сайти можуть використовувати файли cookie, щоб покращувати веб-перегляд, наприклад не виходити з облікового запису чи запам'ятовувати товари в кошику для покупок</translation>
 <translation id="3163201441334626963">Невідомий продукт <ph name="PRODUCT_ID" /> від постачальника <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Додаток <ph name="APP_NAME" /> має доступ до цієї вкладки</translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Оновіть пристрій протягом дня}one{Оновіть пристрій протягом # дня}few{Оновіть пристрій протягом # днів}many{Оновіть пристрій протягом # днів}other{Оновіть пристрій протягом # дня}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – помилка мережі</translation>
 <translation id="3248902735035392926">Безпека важлива. <ph name="BEGIN_LINK" />Перевірте свої розширення<ph name="END_LINK" />.</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Не є частиною сертифіката&gt;</translation>
 <translation id="3253225298092156258">Недоступно</translation>
 <translation id="3253448572569133955">Невідомий обліковий запис</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Натиснувши кнопку "Прийняти та продовжити", ви дозволяєте цим сервісам Google обробляти ваші дані, як описано вище.</translation>
 <translation id="3399432415385675819">Сповіщення будуть вимкнені</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> герц) – з накладанням</translation>
+<translation id="3402585168444815892">Реєстрація в демоверсії</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Немає збережених паролів для цього сайту</translation>
 <translation id="3405664148539009465">Налаштувати шрифти</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Телефон Android</translation>
 <translation id="3470442499439619530">Вилучити цього користувача</translation>
 <translation id="3471876058939596279">Порти HDMI та USB Type-C не можна використовувати для відео одночасно. Скористайтесь іншим відеопортом.</translation>
+<translation id="3473241910002674503">Переходьте на головну сторінку й назад і перемикайте додатки за допомогою кнопок у режимі планшета.</translation>
 <translation id="3473479545200714844">Лупа</translation>
 <translation id="3475843873335999118">Не вдається розпізнати ваш відбиток пальця. Введіть пароль.</translation>
 <translation id="3476303763173086583">Надсилати дані про використання й діагностику. Допоможіть покращити роботу Android для вашої дитини, автоматично надсилаючи в Google дані про діагностику та використання пристрою і додатків. Ця інформація не використовуватиметься для встановлення особи вашої дитини, а допоможе покращити стабільність системи, додатків тощо. Деякі зведені дані також корисні для додатків і партнерів Google, як-от розробників Android. Це <ph name="BEGIN_LINK1" />налаштування<ph name="END_LINK1" /> застосовує власник. Власник може ввімкнути надсилання в Google даних про діагностику й використання цього пристрою. Якщо ввімкнено додаткову Історію додатків і веб-пошуку, ці дані зберігаються в обліковому записі Google дитини. <ph name="BEGIN_LINK2" />Докладніше<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Цифрові відбитки на цьому ключі безпеки</translation>
 <translation id="3973660817924297510">Перевірка паролів (<ph name="CHECKED_PASSWORDS" /> з <ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Не вдалося зв'язатися із сервером для цієї області</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може перевірити паролі. Повторіть спробу пізніше.</translation>
 <translation id="3976108569178263973">Немає доступних принтерів.</translation>
 <translation id="397703832102027365">Завершення...</translation>
 <translation id="3977886311744775419">Автоматичні оновлення не завантажуються в цьому типі мережі, але ви можете пошукати їх вручну.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Ця сторінка містить елементи з таких сайтів, які відстежують ваше місцезнаходження:</translation>
 <translation id="4068776064906523561">Збережені відбитки пальців</translation>
 <translation id="407173827865827707">Після натискання</translation>
+<translation id="4073520450811433493">Налаштування синхронізації</translation>
 <translation id="4074900173531346617">Сертифікат підписувача електронної пошти</translation>
 <translation id="407520071244661467">Масштаб</translation>
 <translation id="4075639477629295004">Не вдається транслювати файл <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Киця</translation>
 <translation id="4423376891418188461">Відновити налаштування</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, ваш адміністратор просить змінити пароль.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може перевірити паролі. Повторіть спробу через 24 години.</translation>
 <translation id="4429030830601238961">Ці дані порушують правила безпеки вашої організації, їх неможливо вставити.</translation>
 <translation id="4430019312045809116">Гучність</translation>
 <translation id="4430369329743628066">Закладку додано</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Запускати цю програму автоматично під час увімкнення комп’ютера?</translation>
 <translation id="4441147046941420429">Щоб продовжити, вийміть і знову вставте ключ безпеки, а потім торкніться його</translation>
 <translation id="444134486829715816">Розгорнути...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> зможе перевірити ваші паролі, коли ви ввійдете у свій обліковий запис Google</translation>
 <translation id="4442424173763614572">Помилка пошуку DNS</translation>
 <translation id="4443536555189480885">&amp;Довідка</translation>
 <translation id="4444304522807523469">Отримувати доступ до сканерів документів, під’єднаних через USB або локальну мережу</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Ви можете зісканувати цей код за допомогою QR-сканера на телефоні або в деяких додатках для камери.</translation>
 <translation id="4477015793815781985">Натискайте Ctrl, Alt або ⌘</translation>
 <translation id="4478664379124702289">Зберегти посиланн&amp;я як...</translation>
+<translation id="4478777936860197922">Немає збережених паролів. <ph name="IDS_SHORT_PRODUCT_NAME" /> зможе перевірити ваші паролі, коли ви їх збережете.</translation>
 <translation id="4479424953165245642">Керувати додатками-терміналами</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Налаштовується віртуальна машина. Це може тривати кілька хвилин.</translation>
 <translation id="4480590691557335796">Chrome може знайти на вашому комп’ютері шкідливе програмне забезпечення й видалити його</translation>
 <translation id="4481530544597605423">Відключені пристрої</translation>
+<translation id="4488107067273194838">Переглянути параметри синхронізації веб-переглядача після налаштування</translation>
 <translation id="4488502501195719518">Видалити всі дані?</translation>
 <translation id="4495419450179050807">Не показувати на цій сторінці</translation>
 <translation id="4496054781541092778">автоматично заблоковано: <ph name="PERMISSION" /></translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Не встановлювати</translation>
 <translation id="4850669014075537160">Прокручування</translation>
 <translation id="4850886885716139402">Перегляд</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> сповістить, коли ви ввійдете в обліковий запис за допомогою зламаного пароля</translation>
 <translation id="4853020600495124913">Відкрити в &amp;новому вікні</translation>
 <translation id="4854317507773910281">Вибери батьківський обліковий запис, який має надати дозвіл</translation>
 <translation id="485480310608090163">Додаткові налаштування та дозволи</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">PIN-код містить недійсні символи</translation>
 <translation id="4871370605780490696">Додати закладку</translation>
 <translation id="4871719318659334896">Закрити групу</translation>
+<translation id="4871852311166078968">Додати в групу</translation>
 <translation id="4873312501243535625">Засіб перевірки медіафайлів</translation>
 <translation id="4876273079589074638">Допоможіть нашим розробникам вивчити та виправити аварійне завершення роботи. Опишіть усі свої дії. Кожна деталь важлива.</translation>
 <translation id="4876895919560854374">Блокувати чи розблоковувати екран</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Адміністратор обмежив доступні методи введення.</translation>
 <translation id="4994474651455208930">Дозволити сайтам запитувати встановлення обробників протоколів за умовчанням.</translation>
 <translation id="4994754230098574403">Налаштування</translation>
-<translation id="4996978546172906250">Надіслати</translation>
 <translation id="4997086284911172121">Немає з’єднання з Інтернетом.</translation>
 <translation id="4997384734315285248">Видалити Plugin VM</translation>
 <translation id="4998430619171209993">Увімкнено</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Активувати Асистента командою "Ok Google".</translation>
 <translation id="5135533361271311778">Не вдалося створити закладку.</translation>
 <translation id="5137501176474113045">Видалити цей елемент</translation>
-<translation id="5138982052046316113">Змінити розмір диска Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, Пошук <ph name="DEFAULT_SEARCH_ENGINE_NAME" /></translation>
 <translation id="5139823398361067371">Введіть PIN-код ключа безпеки. Якщо ви не знаєте PIN-код, потрібно скинути ключ безпеки.</translation>
 <translation id="5139955368427980650">&amp;Відкрити</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Очікується підтвердження. <ph name="LINK_BEGIN" />Докладніше<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Дуже великий</translation>
 <translation id="574209121243317957">Тон</translation>
+<translation id="5745136023067925867">Отримуйте поради, пропозиції й оновлення для пристрою <ph name="DEVICE_TYPE" />, а також надсилайте відгуки</translation>
 <translation id="5746169159649715125">Зберегти у форматі PDF</translation>
 <translation id="5747552184818312860">Діє до</translation>
 <translation id="5747785204778348146">Для розробників (нестабільна)</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Показати в програмі Finder</translation>
 <translation id="6295158916970320988">Усі сайти</translation>
 <translation id="6295855836753816081">Зберігання…</translation>
-<translation id="629730747756840877">Обліковий запис</translation>
 <translation id="6298962879096096191">Установлювати додатки Android із Google Play</translation>
 <translation id="630065524203833229">В&amp;ийти</translation>
 <translation id="6300718114348072351">Не вдалось автоматично налаштувати принтер <ph name="PRINTER_NAME" />. Укажіть додаткову інформацію про нього. <ph name="LINK_BEGIN" />Докладніше<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Мова цієї сторінки не <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Журнали подій WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Температура кольорів</translation>
-<translation id="6870888490422746447">Виберіть додаток:</translation>
 <translation id="6871644448911473373">Відповідач OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Сервер відхилив введений вами пароль.</translation>
 <translation id="6876155724392614295">Велосипед</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – журнал активності</translation>
 <translation id="6997707937646349884">На ваших пристроях:</translation>
 <translation id="6998793565256476099">Зареєструвати пристрій для відеоконференцій</translation>
+<translation id="6999956497249459195">Нова група</translation>
 <translation id="7000206553895739324">Принтер <ph name="PRINTER_NAME" /> під'єднано, але його потрібно налаштувати</translation>
 <translation id="7000347579424117903">Натискайте Ctrl, Alt або клавішу пошуку</translation>
 <translation id="7001036685275644873">Створення резервної копії додатків і файлів Linux</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL-адреса</translation>
 <translation id="7400839060291901923">Налаштуйте з’єднання на пристрої <ph name="PHONE_NAME" /></translation>
 <translation id="7401778920660465883">Відхилити це повідомлення</translation>
+<translation id="7403642243184989645">Завантаження ресурсів</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Перевірку безпеки виконано 1 годину тому}one{Перевірку безпеки виконано {NUM_HOURS} годину тому}few{Перевірку безпеки виконано {NUM_HOURS} години тому}many{Перевірку безпеки виконано {NUM_HOURS} годин тому}other{Перевірку безпеки виконано {NUM_HOURS} години тому}}</translation>
 <translation id="740624631517654988">Спливаюче вікно заблоковано</translation>
 <translation id="7407430846095439694">Імпортувати та зв’язати</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">URL-адреса політики Центру сертифікації Netscape</translation>
 <translation id="7717014941119698257">Завантаження: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Перевірка наявності оновлень</translation>
+<translation id="7719070594859855691">Надати доступ до камери</translation>
 <translation id="7719367874908701697">Масштабування сторінки</translation>
 <translation id="7721179060400456005">Дозволити вікнам відображатися на екранах</translation>
 <translation id="7722040605881499779">Потрібно для оновлення: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Перегляд історії друку</translation>
 <translation id="7744192722284567281">Знайдено в порушеннях безпеки даних</translation>
 <translation id="7750228210027921155">Картинка в картинці</translation>
-<translation id="7751229152614300329">Функція Безпечного перегляду оновлена й захищає вас від шкідливих сайтів і завантажень</translation>
 <translation id="7751260505918304024">Показати все</translation>
 <translation id="7754704193130578113">Запитувати, де зберігати кожен файл перед завантаженням</translation>
 <translation id="7755287808199759310">Хтось із батьків може розблокувати його</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Примітка.<ph name="END_BOLD" /> Під час процедури система перезавантажиться.</translation>
 <translation id="7828731929332799387">Буде видалено всі файли cookie та дані із сайтів, доступні в ресурсах третіх сторін. Продовжити?</translation>
 <translation id="7829298379596169484">Отримання доступу до аудіовходу</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може перевірити паролі. Перевірте інтернет-з'єднання.</translation>
 <translation id="7829877209233347340">Щоб додати обліковий запис навчального закладу, попросіть когось із батьків увійти в їхній обліковий запис</translation>
 <translation id="7830594666202422257">Підключити до Linux</translation>
 <translation id="7831491651892296503">Помилка налаштування мережі</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Встановлення додатка Google Play Store на ваш <ph name="DEVICE_TYPE" />. Це може зайняти кілька хвилин.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Немає файлів cookie третіх сторін}=1{Заблоковано 1 файл cookie третіх сторін}one{Заблоковано # файл cookie третіх сторін}few{Заблоковано # файли cookie третіх сторін}many{Заблоковано # файлів cookie третіх сторін}other{Заблоковано # файлу cookie третіх сторін}}</translation>
 <translation id="810875025413331850">Пристроїв поблизу не знайдено.</translation>
+<translation id="8114199541033039755">Переходьте на головну сторінку й назад і перемикайте додатки за допомогою кнопок у режимі планшета. Цей параметр увімкнений, коли активовано ChromeVox або автоматичні кліки.</translation>
 <translation id="8114875720387900039">Розділити горизонтально</translation>
 <translation id="8116972784401310538">&amp;Диспетчер закладок</translation>
 <translation id="8117620576188476503">Керуйте з’єднаннями, оновленнями та налаштуваннями за допомогою панелі статусу. Щоб відкрити панель статусу з клавіатури, натисніть Alt+Shift+S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914">Сторінка <ph name="FULLSCREEN_ORIGIN" /> вимкнула курсор миші.</translation>
 <translation id="8264024885325823677">Цим налаштуванням керує адміністратор.</translation>
 <translation id="8264718194193514834">Розширення "<ph name="EXTENSION_NAME" />" запустило повноекранний режим.</translation>
+<translation id="826511437356419340">Ви ввійшли в режим огляду вікна. Для навігації проводьте пальцем або натискайте клавішу Tab на клавіатурі.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Це загальна інформація про пристрій і його використання (наприклад, дані про рівень заряду акумулятора, систему, історію додатків та помилки). Ці відомості використовуватимуться, щоб покращити Android, а деякі зведені дані корисні для додатків і партнерів Google, як-от розробників Android.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Якщо вимкнути цю функцію, пристрій усе одно зможе надсилати дані, потрібні для отримання важливих послуг, зокрема оновлень системи та засобів безпеки.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Власник може керувати цією функцією в меню "Налаштування" &gt; "Розширені" &gt; "Автоматично надсилати в Google дані про діагностику та використання".<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Увімкнення</translation>
 <translation id="8427292751741042100">вбудовано на будь-якому хості</translation>
 <translation id="8428213095426709021">Налаштування</translation>
+<translation id="8428271547607112339">Додати обліковий запис навчального закладу</translation>
 <translation id="8428628598981198790">Ваші ключі безпеки не можна використовувати на цьому сайті</translation>
 <translation id="84297032718407999">Ви вийдете через <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Показувати дотики</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Завжди дозволяти хосту <ph name="HOST" /> показувати зображення</translation>
 <translation id="8513108775083588393">Автообертання</translation>
 <translation id="8514746246728959655">Спробуйте інший ключ безпеки</translation>
+<translation id="851960115758509829">Додатки, налаштування й інші параметри синхронізуватимуться між усіма пристроями з ОС Chrome, на яких ви ввійшли в обліковий запис Google.</translation>
 <translation id="8521475323816527629">Швидкий доступ до додатків</translation>
 <translation id="8523493869875972733">Залишити зміни</translation>
 <translation id="8523849605371521713">Додано політикою</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Обсяг пам’яті</translation>
 <translation id="8859057652521303089">Виберіть мову:</translation>
 <translation id="8859174528519900719">Додатковий фрейм: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Батьківський обліковий запис</translation>
 <translation id="8862003515646449717">Виберіть швидкий веб-переглядач</translation>
 <translation id="8863753581171631212">Відкрити посилання в новому вікні додатка <ph name="APP" /></translation>
 <translation id="8864055848767439877">Додаток <ph name="APP_NAME" /> має доступ до вкладки <ph name="TAB_NAME" /></translation>
 <translation id="8864458770072227512">Обліковий запис <ph name="EMAIL" /> видалено з цього пристрою</translation>
 <translation id="8867228703146808825">Копіювати дані складання в буфер обміну</translation>
+<translation id="8868333925931032127">Запускається демоверсія</translation>
 <translation id="8868626022555786497">Використовується</translation>
 <translation id="8870413625673593573">Нещодавно закриті</translation>
 <translation id="8871551568777368300">Закріплено адміністратором</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Відкрийте вкладку знову, якщо ви випадково закрили її</translation>
 <translation id="8967866634928501045">Натисніть Alt + Shift + A, щоб показати</translation>
 <translation id="8968766641738584599">Зберегти картку</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> не може перевірити паролі. Повторіть спробу через 24 години або <ph name="BEGIN_LINK" />перевірте паролі в обліковому записі Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">Зверніться до адміністратора мережі, щоб переконатися, що брандмауер не блокує завантаження із серверів Google.</translation>
 <translation id="8973557916016709913">Вилучити масштабування</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 6e72b21..d9f13d1ca 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">دستیاب آلات</translation>
 <translation id="1042174272890264476">‏آپ کا کمپیوٹر <ph name="SHORT_PRODUCT_NAME" /> کی پہلے سے شامل RLZ لائبریری کے ساتھ بھی آتا ہے۔ RLZ ایک غیر منفرد، ذاتی طور پر ناقابل شناخت ٹیگ کو تفویض کرتا ہے تاکہ تلاشوں اور ایک خاص پروموشنل مہم کے ذریعہ چلائے گئے <ph name="SHORT_PRODUCT_NAME" /> استعمال کی پیمائش کر سکے۔ یہ لیبلز کبھی کبھی Google تلاش استفسارات میں <ph name="PRODUCT_NAME" /> میں ظاہر ہوتے ہیں۔</translation>
 <translation id="1043818413152647937">ان ایپس سے بھی ڈیٹا کو صاف کریں؟</translation>
+<translation id="1045448422538531528">گروپ میں شامل کریں</translation>
 <translation id="1046635659603195359">‏ایسا لگتا ہے کہ آپ نے پہلے ہی کسی دوسرے آلہ پر اپنی Google اسسٹنٹ کے ساتھ Voice Match کو ترتیب دے دیا ہے۔ ان پچھلی ریکارڈنگز کو اس آلہ پر ایک صوتی ماڈل بنانے کے لیے استعمال کیا جا سکتا ہے۔ اس میں ایک منٹ سے کم وقت لگے گا۔</translation>
 <translation id="104710386808485638">‏Linux ری اسٹارٹ کریں؟</translation>
 <translation id="1047431265488717055">لنک کا مت&amp;ن کاپی کریں</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">کیمرا رسائی کو ہمیشہ مسدود کریں</translation>
 <translation id="1082398631555931481">‏<ph name="THIRD_PARTY_TOOL_NAME" /> آپ کی Chrome ترتیبات کو ان کے اصل ڈیفالٹس پر بحال کرنا چاہتا ہے۔ یہ آپ کے ہوم صفحہ، نئے ٹیب صفحے اور سرچ انجن کو دوبارہ ترتیب دے دے گا، آپ کی ایکسٹینشنز کو غیر فعال کر دے گا اورسبھی ٹیبز سے پن ہٹا دے گا۔ یہ دیگر عارضی اور کیش کردہ ڈیٹا جیسے کوکیز، مواد اور سائٹ ڈیٹا کو بھی صاف کر دے گا۔</translation>
+<translation id="1084096383128641877">اس پاس ورڈ کو ہٹانے سے آپ کا اکاؤنٹ <ph name="DOMAIN" /> سے حذف نہیں ہوگا۔ اپنا اکاؤنٹ دوسروں سے محفوظ رکھنے کیلئے اپنا پاس ورڈ تبدیل کریں یا <ph name="DOMAIN_LINK" /> سے اپنا اکاؤنٹ حذف کریں۔</translation>
 <translation id="1084824384139382525">لنک پ&amp;تہ کاپی کریں</translation>
 <translation id="1085697365578766383">ورچوئل مشین شروع کرنے میں خرابی پیش آ گئی ہے۔ براہ کرم دوبارہ کوشش کریں۔</translation>
 <translation id="1090126737595388931">پس منظر کی کوئی ایپس نہیں چل رہی ہیں</translation>
@@ -201,6 +203,7 @@
 <translation id="1259152067760398571">سیفٹی چیک گزشتہ روز کیا گیا</translation>
 <translation id="1260451001046713751"><ph name="HOST" /> سے ہمیشہ پوپ - اپس اور ری ڈائریکٹس کی اجازت دیں</translation>
 <translation id="126156426083987769">ڈیمو موڈ میں آلہ کے لائسنسز سے متعلق ایک مسئلہ پیش آگیا۔</translation>
+<translation id="1263490604593716556"><ph name="FIRST_PARENT_EMAIL" /> اور <ph name="SECOND_PARENT_EMAIL" /> کے زیر انتظام اکاؤنٹ اس آلے پر بنیادی اکاؤنٹ سے سائن آؤٹ کرنے کیلئے، اپنی اسکرین پر 'وقت' پر کلک کریں۔ ظاہر ہونے والے مینو میں، 'سائن آؤٹ کریں' پر کلک کریں۔</translation>
 <translation id="126710816202626562">ترجمہ کی زبان:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">روکیں</translation>
@@ -418,7 +421,6 @@
 <translation id="1566049601598938765">ویب سائٹ</translation>
 <translation id="15662109988763471">منتخب کردہ پرنٹر دستیاب نہیں ہے یا صحیح طریقے سے انسٹال نہیں ہوا ہے۔ اپنا پرنٹر چیک کریں یا دوسرا پرنٹر منتخب کر کے آزمائيں۔</translation>
 <translation id="1567387640189251553">آپ کے پچھلی مرتبہ اپنا پاس ورڈ درج کرنے کے بعد سے ایک مختلف کی بورڈ منسلک کیا گیا ہے۔ یہ آپ کی کلید کے اسٹروکس کو چوری کرنے کی کوشش کر سکتا ہے۔</translation>
-<translation id="1567750922576943685">آپ کی شناخت کی توثیق کرنے سے آپ کی ذاتی معلومات کی حفاظت کرنے میں مدد ملتی ہے</translation>
 <translation id="1567993339577891801">‏JavaScript کونسول</translation>
 <translation id="1568323446248056064">ڈسپلے آلہ کی ترتیبات کو کھولیں</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (مہمان)</translation>
@@ -520,7 +522,6 @@
 <translation id="1697150536837697295">آرٹ</translation>
 <translation id="1697686431566694143">فائل میں ترمیم کریں</translation>
 <translation id="1698122934742150150">صرف موجودہ پوشیدگی سیشن</translation>
-<translation id="1698650002254827833">ایپس کی فہرست کو لوڈ نہیں کیا جا سکا۔ براہ کرم دوبارہ کوشش کریں۔</translation>
 <translation id="1700079447639026019">وہ سائٹس جو کبھی بھی کوکیز کا استعمال نہیں کر سکتی ہیں</translation>
 <translation id="1701062906490865540">اس شخص کو ہٹائیں</translation>
 <translation id="1703331064825191675">اپنے پاس ورڈز کے تعلق سے کبھی فکرمند نہ ہوں</translation>
@@ -874,6 +875,7 @@
 <translation id="2172784515318616985">جاری رکھیں</translation>
 <translation id="2173302385160625112">اپنا انٹرنیٹ کنکشن چیک کریں</translation>
 <translation id="2173801458090845390">‏اس آلہ میں درخواست ID شامل کریں</translation>
+<translation id="2174948148799307353"><ph name="PARENT_EMAIL" /> کے زیر انتظام اکاؤنٹ۔ اس آلے پر بنیادی اکاؤنٹ سے سائن آؤٹ کرنے کیلئے، اپنی اسکرین پر 'وقت' پر کلک کریں۔ ظاہر ہونے والے مینو میں، 'سائن آؤٹ کریں' پر کلک کریں۔</translation>
 <translation id="2175607476662778685">فوری طور پر شروع کرنے کا بار</translation>
 <translation id="217576141146192373">پرنٹر شامل کرنے سے قاصر۔ براہ کرم اپنے پرنٹر کی کنفیگریشن چیک کریں اور دوبارہ کوشش کریں۔</translation>
 <translation id="2177950615300672361">پوشیدگی ٹیب: <ph name="TAB_NAME" /></translation>
@@ -1082,7 +1084,6 @@
 <translation id="2442916515643169563">متنی سایہ</translation>
 <translation id="2445081178310039857">ایکسٹینشن روٹ ڈائریکٹری درکار ہے۔</translation>
 <translation id="2445484935443597917">'نیا پروفائل' بنائیں</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> آپ کی شناخت کی توثیق کرنا چاہتی ہے</translation>
 <translation id="2448312741937722512">قسم</translation>
 <translation id="2450223707519584812">‏Google API کلیدیں موجود نہ ہونے کی وجہ سے آپ صارفین کو شامل نہیں کر سکیں گے۔ تفصیلات کیلئے <ph name="DETAILS_URL" /> دیکھیں۔</translation>
 <translation id="2450849356604136918">کوئی فعال ملاحظات نہیں</translation>
@@ -1480,6 +1481,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" /> پر جائیں</translation>
 <translation id="29488703364906173">جدید ویب کیلئے بنایا گیا ایک تیز، آسان اور محفوظ ویب براؤزر۔</translation>
 <translation id="2949289451367477459">‏مقام کا استعمال کریں۔ مقام کی اجازت والی ایپس اور سروسز کو اس آلہ کا مقام استعمال کرنے کی اجازت دیں۔ Google وقفے وقفے سے مقام کا ڈیٹا جمع کر سکتا ہے اور مقام کی درستگی اور مقام پر مبنی سروسز کو بہتر بنانے کے لیے گمنام طریقے سے اس ڈیٹا کا استعمال کر سکتا ہے۔ <ph name="BEGIN_LINK1" />مزید جانیں<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">مجھے سائن اپ کریں</translation>
 <translation id="2956070239128776395">سیکشن گروپ میں ہے: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">اپنے آلہ پر کسی بھی سائٹ کو فائلز یا فولڈرز میں ترمیم کرنے کی اجازت نہ دیں</translation>
 <translation id="2958721676848865875">پیک ایکسٹینشن کی وارننگ</translation>
@@ -1604,6 +1606,7 @@
 <translation id="3139925690611372679">ڈیفالٹ زرد اوتار</translation>
 <translation id="3141318088920353606">سنا جا رہا ہے…</translation>
 <translation id="3141917231319778873">دی گئی درخواست اس پر تعاون یافتہ نہیں: "<ph name="DEVICE_NAME" />"۔</translation>
+<translation id="3142562627629111859">نیا گروپ</translation>
 <translation id="3143515551205905069">مطابقت پذیری منسوخ کریں</translation>
 <translation id="3143754809889689516">شروع سے چلائیں</translation>
 <translation id="3144647712221361880">لنک کو اس کے بطور کھولیں</translation>
@@ -1628,6 +1631,7 @@
 <translation id="3159493096109238499">زردی مائل بھورا</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ہارڈ ویئر کے ذریعے تعاون یافتہ)</translation>
 <translation id="3161522574479303604">سبھی زبانیں</translation>
+<translation id="3162853326462195145">اسکول کا اکاؤنٹ</translation>
 <translation id="3162899666601560689">سائٹس آپ کے براؤزنگ کے تجربہ کو، مثال کے طور پر، آپ کو سائن ان رکھنے یا آپ کی شاپنگ کارٹ میں آئٹمز کو یاد رکھنے کے لیے، بہتر بنانے کے لیے کوکیز کا استعمال کر سکتی ہیں</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> وینڈر کی جانب سے نامعلوم پروڈکٹ <ph name="PRODUCT_ID" /></translation>
 <translation id="3164329792803560526">اس ٹیب کا اشتراک<ph name="APP_NAME" /> کے ساتھ کیا جا رہا ہے</translation>
@@ -1687,7 +1691,6 @@
 <translation id="3246107497225150582">{0,plural, =1{ایک دن کے اندر آلہ کو اپ ڈیٹ کریں}other{# دن کے اندر آلہ کو اپ ڈیٹ کریں}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - نیٹ ورک کی خرابی</translation>
 <translation id="3248902735035392926">حفاظتی معاملات۔ کچھ وقت نکالیں اور ابھی <ph name="BEGIN_LINK" />اپنی ایکسٹینشنز کو چیک کریں<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;سرٹیفکیٹ کا حصہ نہیں ہے&gt;</translation>
 <translation id="3253225298092156258">دستیاب نہیں ہے</translation>
 <translation id="3253448572569133955">نامعلوم اکاؤنٹ</translation>
@@ -1792,6 +1795,7 @@
 <translation id="3396800784455899911">‏"قبول کریں اور جاری رکھیں" بٹن پر کلک کر کے، آپ ان Google سروسز کیلئے اوپر وضاحت کردہ کارروائی سے اتفاق کرتے ہیں۔</translation>
 <translation id="3399432415385675819">معلومات غیر فعال ہو جائیں گي</translation>
 <translation id="3400390787768057815">‏<ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> ہرٹز) - باہم پیچاں</translation>
+<translation id="3402585168444815892">ڈیمو موڈ میں اندراج کیا جا رہا ہے</translation>
 <translation id="340282674066624">‎<ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" />‎</translation>
 <translation id="3404065873681873169">اس سائٹ کے لیے کوئی پاسورڈ محفوظ نہیں ہے</translation>
 <translation id="3405664148539009465">فونٹس کو حسب ضرورت بنائیں</translation>
@@ -1853,6 +1857,7 @@
 <translation id="3468999815377931311">‏Android فون</translation>
 <translation id="3470442499439619530">اس صارف کو ہٹائیں</translation>
 <translation id="3471876058939596279">‏ویڈیو کیلئے HDMI اور USB ٹائپ سی پورٹس کا ایک ہی وقت پر استعمال نہیں کیا جا سکتا۔ کوئی مختلف ویڈیو پورٹ استعمال کریں۔</translation>
+<translation id="3473241910002674503">ٹیبلیٹ موڈ میں بٹنز کے ساتھ ہوم، واپس جائیں پر نیویگیٹ کریں اور ایپس سوئچ کریں۔</translation>
 <translation id="3473479545200714844">اسکرین میگنیفائر</translation>
 <translation id="3475843873335999118">معذرت، آپ کا فنگرپرنٹ ابھی بھی تسلیم شدہ نہیں ہے براہ کرم اپنا پاس ورڈ درج کریں۔</translation>
 <translation id="3476303763173086583">‏استعمال اور ڈائیگناسٹک کا ڈیٹا بھیجیں۔ Google کو خودکار طور پر ڈائیگناسٹک، آلے اور ایپ کے استعمال کا ڈیٹا بھیج کر اپنے بچے کا Android تجربہ بہتر بنانے میں مدد کریں۔ اس کا استعمال آپ کے بچے کی شناخت کیلئے نہیں کیا جائے گا اور اس سے سسٹم اور ایپ کے استحکام اور دیگر بہتریوں میں مدد ملے گی۔ کچھ مجموعی ڈیٹا Google ایپس اور پارٹنرز، جیسے Android ڈیولپرز، کی مدد بھی کرے گا۔ اس <ph name="BEGIN_LINK1" />ترتیب<ph name="END_LINK1" /> کو مالک نافذ کرتا ہے۔ مالک Google کو اس آلہ کیلئے ڈائیگناسٹک اور استعمال کا ڈیٹا بھیجنے کا انتخاب کر سکتا ہے۔ اگر آپ کے بچے کیلئے ویب اور ایپ کی اضافی سرگرمی کی ترتیب آن ہے تو اس ڈیٹا کو اس کے Google اکاؤنٹ میں محفوظ کیا جا سکتا ہے۔ <ph name="BEGIN_LINK2" />مزید جانیں<ph name="END_LINK2" /></translation>
@@ -2277,6 +2282,7 @@
 <translation id="3971764089670057203">اس سیکیورٹی کلید کے ساتھ مندرج فنگر پرنٹس</translation>
 <translation id="3973660817924297510">(<ph name="TOTAL_PASSWORDS" /> میں سے<ph name="CHECKED_PASSWORDS" />) پاس ورڈز چیک ہو رہے ہیں…</translation>
 <translation id="3975565978598857337">دائرہ کار کے لیے سرور سے منسلک ہونا ناکام ہو گیا</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> آپ کے پاس ورڈز چیک نہیں کر سکتا ہے۔ بعد میں دوبارہ کوشش کریں۔</translation>
 <translation id="3976108569178263973">پرنٹرز دستیاب نہیں ہیں۔</translation>
 <translation id="397703832102027365">مکمل کیا جا رہا ہے…</translation>
 <translation id="3977886311744775419">خودکار اپ ڈیٹس نیٹ ورک کی اس قسم پر ڈاؤن لوڈ نہیں ہوتے ہیں، لیکن آپ دستی طور پر اپ ڈیٹس چیک کر سکتے ہیں۔</translation>
@@ -2340,6 +2346,7 @@
 <translation id="4068506536726151626">یہ صفحہ درج ذیل سائٹس کے عناصر پر مشتمل ہے جو آپ کے مقام کو ٹریک کر رہی ہیں:</translation>
 <translation id="4068776064906523561">محفوظ کردہ فنگر پرنٹس</translation>
 <translation id="407173827865827707">کلک کرنے پر</translation>
+<translation id="4073520450811433493">سِنک کی ترتیبات</translation>
 <translation id="4074900173531346617">ای میل دستخط کنندہ سرٹیفیکیٹ</translation>
 <translation id="407520071244661467">اسکیل</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> کاسٹ کرنے سے قاصر ہے۔</translation>
@@ -2576,6 +2583,7 @@
 <translation id="4421932782753506458">Fluffy</translation>
 <translation id="4423376891418188461">ترتیبات بحال کریں</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />، آپ کا منتظم آپ سے اپنا پاس ورڈ تبدیل کرنے کا مطالبہ کرتا ہے۔</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> آپ کے پاس ورڈز چیک نہیں کر سکتا ہے۔ 24 گھنٹے بعد دوبارہ کوشش کریں۔</translation>
 <translation id="4429030830601238961">یہ ڈیٹا آپ کی تنظیم کی سکیورٹی کی پالیسیوں کی خلاف ورزی کرتا ہے اور پیسٹ نہیں کیا جا سکتا۔</translation>
 <translation id="4430019312045809116">والیوم</translation>
 <translation id="4430369329743628066">بُک مارک شامل کر دیا گیا</translation>
@@ -2588,6 +2596,7 @@
 <translation id="4441124369922430666">کیا آپ مشین آن ہونے پر اس ایپ کو خودکار طور پر شروع کرنا چاہتے ہیں؟</translation>
 <translation id="4441147046941420429">جاری رکھنے کے لیے، اپنے آلہ سے اپنی سیکیورٹی کلید ہٹائیں، پھر اس کو دوبارہ داخل اور ٹچ کریں</translation>
 <translation id="444134486829715816">پھیلائیں…</translation>
+<translation id="4442329324652245220">‏جب آپ اپنے Google اکاؤنٹ سے سائن ان ہوتے ہیں تو <ph name="IDS_SHORT_PRODUCT_NAME" /> آپ کے پاس ورڈز کو چیک کر سکتا ہے</translation>
 <translation id="4442424173763614572">‏DNS کی تلاش ناکام ہو گئی</translation>
 <translation id="4443536555189480885">&amp;مدد</translation>
 <translation id="4444304522807523469">‏USB کے ذریعے یا مقامی نیٹ ورک پر منسلک دستاویز اسکینرز تک رسائی حاصل کریں</translation>
@@ -2614,11 +2623,13 @@
 <translation id="4476659815936224889">‏یہ کوڈ اسکین کرنے کیلئے، آپ اپنے فون یا کچھ کیمرا ایپس پر ایک QR اسکینر ایپ کا استعمال کر سکتے ہیں۔</translation>
 <translation id="4477015793815781985">‏Ctrl، Alt یا ⌘ شامل کریں</translation>
 <translation id="4478664379124702289">&amp;لنک محفوظ کریں بطور…</translation>
+<translation id="4478777936860197922">کوئی محفوظ کردہ پاس ورڈ نہیں۔ جب آپ پاس ورڈز کو محفوظ کرتے ہیں تو <ph name="IDS_SHORT_PRODUCT_NAME" /> انہیں چیک کر سکتا ہے۔</translation>
 <translation id="4479424953165245642">کیوسک ایپلیکیشنز کا نظم کریں</translation>
 <translation id="4479639480957787382">ایتھرنیٹ</translation>
 <translation id="4479877282574735775">ورچوئل مشین ترتیب دی جا رہی ہے۔ اس میں چند منٹ لگ سکتے ہیں۔</translation>
 <translation id="4480590691557335796">‏Chrome آپ کے کمپیوٹر میں نقصان دہ سافٹ ویئر تلاش کر سکتا ہے اور اسے ہٹا سکتا ہے</translation>
 <translation id="4481530544597605423">جوڑا ختم کیے ہوئے آلات</translation>
+<translation id="4488107067273194838">سیٹ اپ کے بعد سِنک کے اختیارات کا جائزہ لیں</translation>
 <translation id="4488502501195719518">سبھی ڈیٹا صاف کریں؟</translation>
 <translation id="4495419450179050807">اس صفحہ پر نہ دکھائیں</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> خود کار طور پر مسدود کر دی گئی</translation>
@@ -2860,6 +2871,7 @@
 <translation id="4849517651082200438">انسٹال نہ کریں</translation>
 <translation id="4850669014075537160">سکرولنگ</translation>
 <translation id="4850886885716139402">دیکھیں</translation>
+<translation id="485197095346966382">جب آپ کسی متاثرہ پاس ورڈ سے سائن ان کریں گے تو <ph name="IDS_SHORT_PRODUCT_NAME" /> آپ کو مطلع کرے گا</translation>
 <translation id="4853020600495124913">&amp;نئی ونڈو میں کھولیں</translation>
 <translation id="4854317507773910281">منظوری کے لیے والد/والدہ کا اکاؤنٹ منتخب کریں</translation>
 <translation id="485480310608090163">مزید ترتیبات اور اجازتیں</translation>
@@ -2878,6 +2890,7 @@
 <translation id="4871322859485617074">‏PIN میں غلط حروف ہیں</translation>
 <translation id="4871370605780490696">بُک مارک شامل کریں</translation>
 <translation id="4871719318659334896">گروپ بند کریں</translation>
+<translation id="4871852311166078968">گروپ میں شامل کریں</translation>
 <translation id="4873312501243535625">میڈیا فائل چیکر</translation>
 <translation id="4876273079589074638">ہمارے انجینئروں کو تفتیش اور اس ناکامی کو حل کرنے میں مدد کریں۔ اگر آپ قطعی مراحل کی فہرست بنا سکتے ہیں تو بنائیں۔ کوئی بھی تفصیل بہت چھوٹی نہیں ہے!</translation>
 <translation id="4876895919560854374">اسکرین کو مقفل اور غیر مقفل کریں</translation>
@@ -2969,7 +2982,6 @@
 <translation id="4992473555164495036">آپ کے منتظم نے اندراج کے دستیاب طریقوں کو محدود کیا ہوا ہے۔</translation>
 <translation id="4994474651455208930">سائٹس کو پروٹوکولز کیلئے ڈیفالٹ ہینڈلرز بننے کیلئے پوچھنے کی اجازت دیں</translation>
 <translation id="4994754230098574403">ترتیب دیا جا رہا ہے</translation>
-<translation id="4996978546172906250">اشتراک کریں بذریعہ</translation>
 <translation id="4997086284911172121">کوئی انٹرنیٹ کنکشن نہیں ہے۔</translation>
 <translation id="4997384734315285248">‏Plugin VM ان انسٹال کریں</translation>
 <translation id="4998430619171209993">آن</translation>
@@ -3069,7 +3081,6 @@
 <translation id="5135085122826131075">‏"Ok Google" کہہ کر اپنی اسسٹنٹ تک رسائی حاصل کریں۔</translation>
 <translation id="5135533361271311778">بُک مارک آئٹم نہیں بنایا جا سکا۔</translation>
 <translation id="5137501176474113045">اس آئٹم کو حذف کریں</translation>
-<translation id="5138982052046316113">‏Linux ڈسک کا سائز تبدیل کریں</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />، <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> تلاش</translation>
 <translation id="5139823398361067371">‏اپنی سیکورٹی کلید کے لیے PIN درج کریں۔ اگر آپ کو PIN معلوم نہیں ہے، تو آپ کو سیکیورٹی کلید کو دوبارہ ترتیب دینا ہوگا۔</translation>
 <translation id="5139955368427980650">&amp;کھولیں</translation>
@@ -3521,6 +3532,7 @@
 <translation id="5739235828260127894">توثیق کا انتظار ہے۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">بہت بڑا</translation>
 <translation id="574209121243317957">پچ</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" /> کی تجاویز، پیشکشیں اور اپ ڈیٹس حاصل کریں اور تاثرات کا اشتراک کریں</translation>
 <translation id="5746169159649715125">‏PDF کے بطور محفوظ کریں</translation>
 <translation id="5747552184818312860">میعاد کا اختتام</translation>
 <translation id="5747785204778348146">ڈیولپر - ناپائیدار</translation>
@@ -3933,7 +3945,6 @@
 <translation id="6291953229176937411">فائنڈر میں &amp;دکھائیں</translation>
 <translation id="6295158916970320988">سبھی سائٹس</translation>
 <translation id="6295855836753816081">محفوظ کیا جا رہا ہے…</translation>
-<translation id="629730747756840877">اکاؤنٹ</translation>
 <translation id="6298962879096096191">‏Android ایپس کو انسٹال کرنے کیلئے Google Play استعمال کریں</translation>
 <translation id="630065524203833229">&amp;خارج ہوں</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> کو خودکار طور پر کنفیگر نہیں کیا جا سکا۔ براہ کرم پرنٹر کی جدید ترین تفصیلات بیان کریں۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation>
@@ -4339,7 +4350,6 @@
 <translation id="6865598234501509159">صفحہ <ph name="LANGUAGE" /> میں نہیں ہے</translation>
 <translation id="6865708901122695652">‏WebRTC ایونٹ لاگز (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">رنگ کا درجہ حرارت</translation>
-<translation id="6870888490422746447">درج ذیل پر اشتراک کرنے کیلئے ایپ منتخب کریں:</translation>
 <translation id="6871644448911473373">‏OCSP ریسپانڈر: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">سرور نے آپ کا درج کردہ پاسورڈ مسترد کر دیا۔</translation>
 <translation id="6876155724392614295">بائیک</translation>
@@ -4432,6 +4442,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - سرگرمی کا لاگ</translation>
 <translation id="6997707937646349884">آپ کے آلات پر:</translation>
 <translation id="6998793565256476099">ویڈیو کانفرنس کیلئے آلہ کا اندراج کریں</translation>
+<translation id="6999956497249459195">نیا گروپ</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> منسلک ہے لیکن کنفیگریشن کی ضرورت ہے</translation>
 <translation id="7000347579424117903">‏Ctrl, Alt یا Search شامل کریں</translation>
 <translation id="7001036685275644873">‏Linux کی ایپس اور فائلز کا بیک اپ لیا جا رہا ہے</translation>
@@ -4730,6 +4741,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">اپنے <ph name="PHONE_NAME" /> پر کنکشن سیٹ اپ کریں</translation>
 <translation id="7401778920660465883">یہ پیغام خارج کریں</translation>
+<translation id="7403642243184989645">وسائل ڈاؤن لوڈ ہو رہے ہیں</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{سیفٹی چیک 1 گھنٹہ پہلے کیا گیا}other{سیفٹی چیک {NUM_HOURS} گھنٹے پہلے کیا گیا}}</translation>
 <translation id="740624631517654988">پاپ اپ کو مسدود کر دیا گیا</translation>
 <translation id="7407430846095439694">درآمد کریں اور پابند بنائیں</translation>
@@ -4966,6 +4978,7 @@
 <translation id="7716781361494605745">‏Netscape سرٹیفکیشن اتھارٹی پالیسی URL</translation>
 <translation id="7717014941119698257">ڈاؤن لوڈ ہو رہا ہے: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">اپ ڈیٹس چیک کریں</translation>
+<translation id="7719070594859855691">کیمرا تک رسائی دیں</translation>
 <translation id="7719367874908701697">صفحہ کا زوم</translation>
 <translation id="7721179060400456005">ونڈوز کو ڈسپلیز پھیلانے کی اجازت دیں</translation>
 <translation id="7722040605881499779">اپ ڈیٹ کرنے کی ضرورت ہے: <ph name="NECESSARY_SPACE" /></translation>
@@ -4980,7 +4993,6 @@
 <translation id="7744047395460924128">اپنی پرنٹنگ کی سرگزشت دیکھیں</translation>
 <translation id="7744192722284567281">ڈیٹا کی خلاف ورزی میں ملا</translation>
 <translation id="7750228210027921155">تصویر میں تصویر</translation>
-<translation id="7751229152614300329">محفوظ براؤزنگ اپ ٹو ڈیٹ ہے اور نقصان دہ سائٹس اور ڈاؤن لوڈز سے آپ کی حفاظت کر رہی ہے</translation>
 <translation id="7751260505918304024">سبھی دکھائیں</translation>
 <translation id="7754704193130578113">ہر فائل ڈاؤن لوڈ کرنے سے پہلے پوچھیں کہ کہاں پر محفوظ کرنا ہے</translation>
 <translation id="7755287808199759310">آپ کے والدین آپ کیلئے اسے غیر مسدود کر سکتے ہیں</translation>
@@ -5069,6 +5081,7 @@
     <ph name="BEGIN_BOLD" />نوٹ:<ph name="END_BOLD" />  کارروائی کے دوران سسٹم ریبوٹ کرے گا۔</translation>
 <translation id="7828731929332799387">اس سے فریق ثالث کے سیاق و سباق میں دستیاب تمام کوکیز اور سائٹ کا ڈیٹا حذف ہو جائے گا۔ کیا آپ جاری رکھنا چاہتے ہیں؟</translation>
 <translation id="7829298379596169484">آڈیو ان پٹ تک رسائی ہو رہی ہے</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> آپ کے پاس ورڈز چیک نہیں کر سکتا ہے۔ اپنا انٹرنیٹ کنکشن چیک کرنے کی کوشش کریں۔</translation>
 <translation id="7829877209233347340">والدین سے اسکول اکاؤنٹ شامل کرنے کی اجازت دینے کے ليے سائن ان کرنے کو کہیں</translation>
 <translation id="7830594666202422257">‏Linux سے منسلک ہوں</translation>
 <translation id="7831491651892296503">نیٹ ورک کو ترتیب دینے میں خرابی</translation>
@@ -5290,6 +5303,7 @@
 <translation id="8107015733319732394">‏آپ کے <ph name="DEVICE_TYPE" /> پر Google Play اسٹور انسٹال کیا جا رہا ہے۔ اس میں کچھ منٹ کا وقت لگ سکتا ہے۔</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{کوئی فریق ثالث کوکی نہیں ہے}=1{1 فریق ثالث کوکی مسدود ہے}other{# فریق ثالث کوکیز مسدود ہیں}}</translation>
 <translation id="810875025413331850">کوئی قریبی آلہ نہیں ملا۔</translation>
+<translation id="8114199541033039755">‏ٹیبلیٹ موڈ میں بٹنز کے ساتھ ہوم، واپس جائیں پر نیویگیٹ کریں اور ایپس سوئچ کریں۔ ChromeVox یا خودکار کلکس فعال ہونے پر آن رہتا ہے۔</translation>
 <translation id="8114875720387900039">افقی تقسیم کریں</translation>
 <translation id="8116972784401310538">&amp;بک مارک مینیجر</translation>
 <translation id="8117620576188476503">‏صورت حال ٹرے کے ذریعے کنکشنز، اپ ڈیٹس اور ترتیبات کا نظم کریں۔ کی بورڈ کے ذریعے یہاں پہنچنے کیلئے، Alt + Shift + S دبائیں۔</translation>
@@ -5409,6 +5423,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> نے آپ کا ماؤس کرسر غیر فعال کر دیا ہے۔</translation>
 <translation id="8264024885325823677">یہ ترتیب آپ کے منتظم کے زیر انتظام ہے۔</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" نے پوری اسکرین کو تحریک دی۔</translation>
+<translation id="826511437356419340">ونڈو کے عمومی جائزہ کی وضع میں داخل ہوگئے۔ کی بورڈ استعمال کرنے پر نیویگیٹ کرنے کے لیے سوائپ کریں یا ٹیب کو دبائیں۔</translation>
 <translation id="8267961145111171918">‏<ph name="BEGIN_PARAGRAPH1" />یہ اس آلہ اور اس کے طریقۂ استعمال (جیسے بیٹری کی سطح، سسٹم، ایپ کی سرگرمی اور خرابیوں) کے بارے میں عام معلومات ہے۔ Android کو بہتر بنانے کی خاطر ڈیٹا کا استعمال کیا جائے گا اور کچھ مجموعی معلومات سے Google ایپس اور پارٹنرز، جیسے کہ Android ڈیولپرز، کو ان کی ایپس اور پروڈکٹس کو بہتر بنانے میں بھی مدد ملے گی۔<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />اس خصوصیت کو آف کرنے سے سسٹم اپ ڈیٹس اور سیکیورٹی جیسی لازمی سروسز کے لیے درکار معلومات بھیجنے کی اس آلے کی اہلیت متاثر نہیں ہوتی ہے۔<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />مالک ترتیبات &gt; جدید ترین &gt; خودکار طور پر Google کو ڈائیگناسٹک اور استعمال کا ڈیٹا بھیجیں سے اس خصوصیت کو کنٹرول کر سکتا ہے۔<ph name="END_PARAGRAPH3" />
@@ -5517,6 +5532,7 @@
 <translation id="8426713856918551002">فعال کیا جا رہا ہے</translation>
 <translation id="8427292751741042100">کسی بھی میزبان پر سرایت کیا گیا</translation>
 <translation id="8428213095426709021">ترتیبات</translation>
+<translation id="8428271547607112339">اسکول اکاؤنٹ شامل کریں</translation>
 <translation id="8428628598981198790">اس سائٹ کے ساتھ آپ کی سیکیورٹی کلید کا استعمال نہیں کیا جا سکتا ہے</translation>
 <translation id="84297032718407999">آپ <ph name="LOGOUT_TIME_LEFT" /> میں سائن آؤٹ ہو جائیں گے</translation>
 <translation id="8431190899827883166">تھپتھپاہٹیں دکھائیں</translation>
@@ -5580,6 +5596,7 @@
 <translation id="851263357009351303"><ph name="HOST" /> کو تصاویر دکھانے کی ہمیشہ اجازت دیں</translation>
 <translation id="8513108775083588393">خود کار طور پر گھمائیں</translation>
 <translation id="8514746246728959655">کوئی مختلف سیکیورٹی کلید آزمائیں</translation>
+<translation id="851960115758509829">‏آپ کی ایپس، ترتیبات اور دیگر حسب ضرورت بنانے کی چیزیں ان تمام Chrome OS آلات میں سِنک ہوں گی جن میں آپ اپنے Google اکاؤنٹ سائن ان ہیں۔</translation>
 <translation id="8521475323816527629">تیزی سے اپنی ایپس تک رسائی حاصل کریں</translation>
 <translation id="8523493869875972733">تبدیلیاں برقرار رکھیں</translation>
 <translation id="8523849605371521713">پالیسی کے ذریعے شامل کیا گیا</translation>
@@ -5861,11 +5878,13 @@
 <translation id="885701979325669005">اسٹوریج</translation>
 <translation id="8859057652521303089">اپنی زبان منتخب کریں:</translation>
 <translation id="8859174528519900719">سب فریم: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">والدین کا اکاؤنٹ</translation>
 <translation id="8862003515646449717">تیز براؤزر پر سوئچ کریں</translation>
 <translation id="8863753581171631212">لنک کو نئی <ph name="APP" /> میں کھولیں</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> کا اشتراک <ph name="APP_NAME" /> کے ساتھ کیا جا رہا ہے</translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> کو اس اکاؤنٹ سے ہٹا دیا گیا</translation>
 <translation id="8867228703146808825">بلڈ کی تفصیلات کلپ بورڈ پر کاپی کریں</translation>
+<translation id="8868333925931032127">ڈیمو موڈ شروع ہو رہا ہے</translation>
 <translation id="8868626022555786497">زیر استعمال</translation>
 <translation id="8870413625673593573">حال ہی میں بند کردہ</translation>
 <translation id="8871551568777368300">منتظم کی جانب سے پن کردہ</translation>
@@ -5944,6 +5963,7 @@
 <translation id="8966870118594285808">اگر آپ نے کسی ٹیب کو حادثاتی طور پر بند کر دیا ہے تو اسے دوبارہ کھولیں</translation>
 <translation id="8967866634928501045">‏دکھانے کے لیے Alt Shift A دبائیں</translation>
 <translation id="8968766641738584599">کارڈ کو محفوظ کریں</translation>
+<translation id="8971800409073702505">‏<ph name="IDS_SHORT_PRODUCT_NAME" /> آپ کے پاس ورڈز چیک نہیں کر سکتا ہے۔ 24 گھنٹے بعد دوبارہ کوشش کریں یا <ph name="BEGIN_LINK" />اپنے Google اکاؤنٹ میں پاس ورڈز چیک کریں<ph name="END_LINK" />۔</translation>
 <translation id="89720367119469899">چھوڑیں</translation>
 <translation id="8972513834460200407">‏براہ کرم اپنے نیٹ ورک کے منتظم سے چیک کر کے یقینی بنائیں کہ فائر وال Google سرورز سے ڈاؤن لوڈز کو مسدود نہیں کر رہا ہے۔</translation>
 <translation id="8973557916016709913">زوم کی سطح کو ہٹائیں</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 393a01a1..2184e7d 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Mavjud qurilmalar</translation>
 <translation id="1042174272890264476">Kompyuteringizda ichki o‘rnatilgan <ph name="SHORT_PRODUCT_NAME" /> RLZ kutubxonasi mavjud. RLZ mahsulotimiz(<ph name="SHORT_PRODUCT_NAME" />) reklama kompaniyalari natijalari asosidagi qidiruv so‘rovlari soni va mahsulotdan foydalanish statistikasini baholashimizga yordam beradigan ko‘rinmas va foydalanuvchini aniqlamaydigan yorliq tayinlaydi. Ushbu yorliqlar ba’zida mahsulotimiz (<ph name="PRODUCT_NAME" />) orqali bajarilgan qidiruv so‘rovlarida paydo bo‘lishi mumkin.</translation>
 <translation id="1043818413152647937">Bu ilovalarning maʼlumotlari ham tozalansinmi?</translation>
+<translation id="1045448422538531528">Guruh chatiga kiritish</translation>
 <translation id="1046635659603195359">Google Assistent imkoniyatli boshqa qurilmada Voice Match xususiyatini allaqachon sozlagansiz. Ovozingizning avvalgi yozuvlaridan bu qurilmada namuna yaratishda foydalanish mumkin. Sozlash bir daqiqa vaqt oladi.</translation>
 <translation id="104710386808485638">Linux qayta ishga tushirilsinmi?</translation>
 <translation id="1047431265488717055">Havola matnidan nusxa olish</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Kameraga ruxsat har doim ta’qiqlansin</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> brauzerning dastlabki sozlamalarini tiklamoqchi. Bosh sahifa, tezkor havolalar, qidiruv tizimi kabi sozlamalar qayta tayinlanadi, kengaytmalar o‘chirib qo‘yiladi va ochiq sahifalar yopiladi. Bundan tashqari, barcha cookie-fayllar kabi vaqtinchalik va keshlangan sayt ma’lumotlari o‘chiriladi.</translation>
+<translation id="1084096383128641877">Bu parol olib tashlangani bilan <ph name="DOMAIN" /> hisobingiz oʻchib ketmaydi. Boshqalardan himoyalash maqsadida <ph name="DOMAIN_LINK" /> hisobingiz parolini almashtiring yoki olib tashlang.</translation>
 <translation id="1084824384139382525">Havola manzilini &amp;nusxalash</translation>
 <translation id="1085697365578766383">Virtual mashinani ishga tushirishda xatolik yuz berdi. Qaytadan urining.</translation>
 <translation id="1090126737595388931">Orqa fonda ishlayotgan ilovalar yo‘q</translation>
@@ -201,6 +203,7 @@
 <translation id="1259152067760398571">Xavfsizlik tekshiruvi kecha bajarilgan</translation>
 <translation id="1260451001046713751"><ph name="HOST" /> saytida qalqib chiquvchi oynalar ochish va ularga o‘tish ruxsat berilsin</translation>
 <translation id="126156426083987769">Demo rejimdagi qurilmalar litsenziyalari bilan muammo yuz berdi.</translation>
+<translation id="1263490604593716556">Hisobni <ph name="FIRST_PARENT_EMAIL" /> va <ph name="SECOND_PARENT_EMAIL" /> boshqaradi. Bu qurilmadagi asosiy hisobdan chiqish uchun ekrandagi vaqt ustiga bosing. Chiqadigan menyuda “Chiqish” ustiga bosing.</translation>
 <translation id="126710816202626562">Qaysi tilgan tarjima qilinsin:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">To‘xtatish</translation>
@@ -415,7 +418,6 @@
 <translation id="1566049601598938765">Veb-sayt</translation>
 <translation id="15662109988763471">Bu printer mavjud emas yoki notoʻgʻri oʻrnatilgan. Uni tekshiring yoki boshqasini tanlang.</translation>
 <translation id="1567387640189251553">Parol kiritilgandan keyin boshqa klaviatura ulandi. Bu bosilayotgan tugmalarni kuzatish urinishi bo‘lishi mumkin.</translation>
-<translation id="1567750922576943685">Shaxsingiz tasdiqlanishi shaxsiy ma’lumotlaringizni himoyalashda yordam beradi</translation>
 <translation id="1567993339577891801">JavaScript konsoli</translation>
 <translation id="1568323446248056064">Ekran sozlamalarini ochish</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Mehmon)</translation>
@@ -517,7 +519,6 @@
 <translation id="1697150536837697295">Sanʼat</translation>
 <translation id="1697686431566694143">Faylni tahrirlash</translation>
 <translation id="1698122934742150150">Faqatgina joriy inkognito seans</translation>
-<translation id="1698650002254827833">Ilovalar ro‘yxati yuklanmadi. Qaytadan urining.</translation>
 <translation id="1700079447639026019">Hech qachon cookie fayllarini ishlata olmaydigan saytlar</translation>
 <translation id="1701062906490865540">Foydalanuvchini o‘chirish</translation>
 <translation id="1703331064825191675">Parollar haqida boshqa xavotir olmaysiz</translation>
@@ -871,6 +872,7 @@
 <translation id="2172784515318616985">Davom etish</translation>
 <translation id="2173302385160625112">Internet aloqasini tekshiring</translation>
 <translation id="2173801458090845390">Qurilmaga identifikator so‘rovini qo‘shish</translation>
+<translation id="2174948148799307353">Hisobni <ph name="PARENT_EMAIL" /> boshqaradi Bu qurilmadagi asosiy hisobdan chiqish uchun ekrandagi vaqt ustiga bosing. Chiqadigan menyuda “Chiqish” ustiga bosing.</translation>
 <translation id="2175607476662778685">Tezkor ishga tushirish paneli</translation>
 <translation id="217576141146192373">Printer kiritilmadi. Printer sozlamalarini tekshiring va qayta urining.</translation>
 <translation id="2177950615300672361">Inkognito tab: <ph name="TAB_NAME" /></translation>
@@ -1079,7 +1081,6 @@
 <translation id="2442916515643169563">Matn soyasi</translation>
 <translation id="2445081178310039857">Kengaytma tub katalogi talab qilinadi.</translation>
 <translation id="2445484935443597917">Yangi profil yaratish</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> kimligingizni tekshirmoqchi</translation>
 <translation id="2448312741937722512">Turi</translation>
 <translation id="2450223707519584812">Foydalanuvchilarni qo‘sha olmaysiz, chunki Google API kalitlari yo‘q. Batafsil axborot uchun <ph name="DETAILS_URL" /> saytiga tashrif buyuring.</translation>
 <translation id="2450849356604136918">hech qanday faol ko‘rinish yo‘q</translation>
@@ -1477,6 +1478,7 @@
 <translation id="2948300991547862301"><ph name="PAGE_TITLE" /> sahifasiga o‘tish</translation>
 <translation id="29488703364906173">Tezkor, oddiy va xavfsiz veb brauzeri, zamonaviy internet uchun yaratilgan.</translation>
 <translation id="2949289451367477459">Joylashuv axborotidan foydalanish. Joylashuv axborotiga ruxsati bor ilova va xizmatlarga bu qurilmaning joylashuvi haqidagi axborotdan foydalanishiga ruxsat bering. Google joylashuv haqidagi axborotni muntazam to‘plab borishi hamda undan anonim tarzda joylashuv aniqligi va joylashuv axborotiga asoslangan xizmatlarni yaxshilab boradi. <ph name="BEGIN_LINK1" />Batafsil axborot<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Yozilish</translation>
 <translation id="2956070239128776395">Boʻlim guruhlandi: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Saytlarga qurilmadagi fayl va jildlarni tahrirlashni taqiqlash</translation>
 <translation id="2958721676848865875">Kengaytmani arxivlash ogohlantiruvi</translation>
@@ -1601,6 +1603,7 @@
 <translation id="3139925690611372679">Standart sariq avatar</translation>
 <translation id="3141318088920353606">Gapiring...</translation>
 <translation id="3141917231319778873">“<ph name="DEVICE_NAME" />” qurilmasiga yuborilgan so‘rov qo‘llab-quvvatlanmaydi.</translation>
+<translation id="3142562627629111859">Yangi guruh</translation>
 <translation id="3143515551205905069">Sinxronizatsiyani bekor qilish</translation>
 <translation id="3143754809889689516">Boshidan ijro etish</translation>
 <translation id="3144647712221361880">Havolani quyidagicha ochish</translation>
@@ -1625,6 +1628,7 @@
 <translation id="3159493096109238499">Oq sargʻish</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (qurilmada o‘rnatilgan)</translation>
 <translation id="3161522574479303604">Barcha tillar</translation>
+<translation id="3162853326462195145">Maktab hisobi</translation>
 <translation id="3162899666601560689">Saytlar sahifalarni kezishingizni yaxshilash, jumladan, kirish axborotingiz yoki xarid qutingizni eslab qolish uchun cookie fayllardan foydalanishi mumkin</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> tomonidan ishlab chiqarilgan noma’lum mahsulot: <ph name="PRODUCT_ID" /></translation>
 <translation id="3164329792803560526">Bu varaq <ph name="APP_NAME" /> ilovasiga ulashilmoqda</translation>
@@ -1683,7 +1687,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Qurilmani 1 kun ichida oʻchirib yoqish kerak}other{Qurilmani # kun ichida oʻchirib yoqish kerak}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – tarmoq xatosi</translation>
 <translation id="3248902735035392926">Xavfsizlik muhim ahamiyatga ega. Vaqt ajrating va hoziroq <ph name="BEGIN_LINK" />kengaytmalaringizni tekshiring<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Sertifikat qismi hisoblanmaydi&gt;</translation>
 <translation id="3253225298092156258">Mavjud emas</translation>
 <translation id="3253448572569133955">Notanish hisob</translation>
@@ -1788,6 +1791,7 @@
 <translation id="3396800784455899911">“Roziman va davom etish” tugmasini bosish orqali siz yuqorida keltirilgan Google xizmatlari shartlariga rozilik bildirgan hisoblanasiz.</translation>
 <translation id="3399432415385675819">Bildirishnomalar kelmay qoladi</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Gs) – maydalangan</translation>
+<translation id="3402585168444815892">Demo rejimda ishlash uchun qayd etish</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Bu sayt uchun hech qanday parol saqlanmagan</translation>
 <translation id="3405664148539009465">Shriftlarni sozlash</translation>
@@ -1849,6 +1853,7 @@
 <translation id="3468999815377931311">Android telefon</translation>
 <translation id="3470442499439619530">Bu foydalanuvchini o‘chirish</translation>
 <translation id="3471876058939596279">HDMI va USB Type-C portlari birdaniga video chiqara olmaydi. Boshqa video portga ulang.</translation>
+<translation id="3473241910002674503">Planshet rejimida bosh ekranga oʻtish, oldingi ekranga qaytish va ilovalararo almashish uchun tugmalar paydo chiqadi.</translation>
 <translation id="3473479545200714844">Ekran lupasi</translation>
 <translation id="3475843873335999118">Barmoq izi aniqlanmadi. Parolingizni kiriting.</translation>
 <translation id="3476303763173086583">Foydalanish va diagnostika axborotini yuborish. Diagnostika hamda qurilma va ilovadan foydalanish statistikasini Google kompaniyasiga avtomatik yuborish orqali Androidni yaxshilashga yordam bering. Ushbu axborotdan farzandingiz shaxsini aniqlash uchun foydalanilmaydi. Ular tizim va ilovalar barqarorligi kabilarni yaxshilash uchun ishlatiladi. Ayrim toʻplangan maʼlumotlar Android dasturchilar kabi hamkorlarimizga ham oʻz ilovalari va mahsulotlarini yanada yaxshilashga yordam beradi. Bu <ph name="BEGIN_LINK1" />parametr<ph name="END_LINK1" /> qurilma egasi tomonidan oʻrnatilgan. Qurilma egasi undagi foydalanish haqidagi va diagnostika axborotini Google serverlariga avtomatik yuborilishini tayinlashi mumkin. Agar farzandingiz uchun Kengaytirilgan veb-qidiruv va ilovalar tarixi yoqilgan boʻlsa, bu maʼlumotlar uning Google hisobiga saqlanadi. <ph name="BEGIN_LINK2" />Batafsil<ph name="END_LINK2" /></translation>
@@ -2273,6 +2278,7 @@
 <translation id="3971764089670057203">Bu elektron kalitdagi barmoq izlari</translation>
 <translation id="3973660817924297510">Parollar tekshirilmoqda (<ph name="CHECKED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Server kiritilgan domenga ulanmadi</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> parollaringizni tekshira olmadi. Keyinroq qayta urining.</translation>
 <translation id="3976108569178263973">Hech qanday printer topilmadi.</translation>
 <translation id="397703832102027365">Yakunlanmoqda...</translation>
 <translation id="3977886311744775419">Bunday turdagi tarmoq orqali yangilanishlarni avtomatik yuklab olish imkonsiz, lekin yangilanishlarni oʻzingiz tekshirib koʻrishingiz mumkin.</translation>
@@ -2336,6 +2342,7 @@
 <translation id="4068506536726151626">Bu sahifada joylashuv ma’lumotlaringizni ko‘ruvchi quyidagi saytlar elementlari mavjud:</translation>
 <translation id="4068776064906523561">Saqlangan barmoq izlari</translation>
 <translation id="407173827865827707">Bosilganda</translation>
+<translation id="4073520450811433493">Sozlamalarni sinxronlash</translation>
 <translation id="4074900173531346617">E-pochtani imzolash sertifikati</translation>
 <translation id="407520071244661467">Masshtab</translation>
 <translation id="4075639477629295004"><ph name="FILE_NAME" /> translatsiya qilinmadi.</translation>
@@ -2572,6 +2579,7 @@
 <translation id="4421932782753506458">Momiqvoy</translation>
 <translation id="4423376891418188461">Dastlabki sozlamalarni tiklash</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, administratoringiz parolingizni o‘zgartirishni so‘rayapti.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> parollaringizni tekshira olmadi. 24 soatdan keyin qayta urining.</translation>
 <translation id="4429030830601238961">Bu maʼlumotlar tashkilot xavfsizlik siyosatiga zid va joylanmaydi.</translation>
 <translation id="4430019312045809116">Hajmi</translation>
 <translation id="4430369329743628066">Xatcho‘p qo‘shildi</translation>
@@ -2584,6 +2592,7 @@
 <translation id="4441124369922430666">Qurilma yoqilganda bu ilova avtomatik ishga tushirilsinmi?</translation>
 <translation id="4441147046941420429">Davom etish uchun qurilmangizdan elektron kalitni olib tashlang, keyin qayta kiritib, undagi tugmani bosing</translation>
 <translation id="444134486829715816">Yoyish...</translation>
+<translation id="4442329324652245220">Google hisobingizga kirsangiz, <ph name="IDS_SHORT_PRODUCT_NAME" /> parollaringizni tekshira oladi.</translation>
 <translation id="4442424173763614572">DNS topilmadi</translation>
 <translation id="4443536555189480885">&amp;Yordam</translation>
 <translation id="4444304522807523469">USB-port yoki tarmoq orqali ulanilgan skanerga ruxsat</translation>
@@ -2610,11 +2619,13 @@
 <translation id="4476659815936224889">QR kodni telefoningizdagi mos autentifikator yoki kamera ilovasi yordamida skanerlang.</translation>
 <translation id="4477015793815781985">Birikma Ctrl, Alt yoki ⌘ tugmalaridan iborat bo‘lishi zarur</translation>
 <translation id="4478664379124702289">&amp;Havolani saqlab olish...</translation>
+<translation id="4478777936860197922">Hech qanday parol saqlanmagan. <ph name="IDS_SHORT_PRODUCT_NAME" /> faqat saqlangan parollaringizni tekshira oladi.</translation>
 <translation id="4479424953165245642">Kiosk dasturlarni boshqarish</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Virtual mashina sozlanmoqda. Bu bir necha daqiqa vaqt olishi mumkin.</translation>
 <translation id="4480590691557335796">Chrome brauzeri kompyuteringizdagi zararli dasturlarni topishi va ularni tozalashi mumkin</translation>
 <translation id="4481530544597605423">Uzilgan qurilmalar</translation>
+<translation id="4488107067273194838">Sozlashdan keyin brauzer sinxronizatsiyasi parametrlarini tekshirish.</translation>
 <translation id="4488502501195719518">Barcha maʼlumotlar oʻchirib tashlansinmi?</translation>
 <translation id="4495419450179050807">Bu sahifada ko‘rsatilmasin</translation>
 <translation id="4496054781541092778"><ph name="PERMISSION" /> avtomatik bloklandi</translation>
@@ -2856,6 +2867,7 @@
 <translation id="4849517651082200438">O‘rnatilmasin</translation>
 <translation id="4850669014075537160">Sahifani aylantirish</translation>
 <translation id="4850886885716139402">Ko‘rish</translation>
+<translation id="485197095346966382">Google hisobingizga kirsangiz, <ph name="IDS_SHORT_PRODUCT_NAME" /> oshkor qilingan parollar haqida xabar qiladi</translation>
 <translation id="4853020600495124913">Yangi oynada &amp;ochish</translation>
 <translation id="4854317507773910281">Ruxsat olish uchun ota-onangiz hisobini tanlang</translation>
 <translation id="485480310608090163">Yana sozlamalar va ruxsatlar</translation>
@@ -2874,6 +2886,7 @@
 <translation id="4871322859485617074">PIN kodda yaroqsiz belgilar kiritildi</translation>
 <translation id="4871370605780490696">Xatcho‘p qo‘shish</translation>
 <translation id="4871719318659334896">Guruhni yopish</translation>
+<translation id="4871852311166078968">Guruh chatiga kiritish</translation>
 <translation id="4873312501243535625">Media fayllar tekshiruvi</translation>
 <translation id="4876273079589074638">Muhandislarimizga nosozlikni aniqlash va tuzatishiga yordam bering. Yuz bergan nosozlik bosqichlarini batafsil yoriting. Har bir axborotingiz bizga yordam beradi.</translation>
 <translation id="4876895919560854374">Ekranni qulflash va qulfdan chiqarish</translation>
@@ -2965,7 +2978,6 @@
 <translation id="4992473555164495036">Ba’zi kiritish usullari administrator tomonidan cheklangan.</translation>
 <translation id="4994474651455208930">Protokollarga ishlov beruvchilarni o‘rnatish so‘rovlariga ruxsat berish</translation>
 <translation id="4994754230098574403">Sozlanmoqda</translation>
-<translation id="4996978546172906250">Yuborish usuli</translation>
 <translation id="4997086284911172121">Internet aloqasi yo‘q.</translation>
 <translation id="4997384734315285248">Plugin VM plaginini oʻchirish</translation>
 <translation id="4998430619171209993">Yoniq</translation>
@@ -3065,7 +3077,6 @@
 <translation id="5135085122826131075">Asistentdan “Ok Google” deb aytib foydalanish</translation>
 <translation id="5135533361271311778">Xatcho‘p yaratib bo‘lmadi.</translation>
 <translation id="5137501176474113045">O‘chirish</translation>
-<translation id="5138982052046316113">Linux Disk hajmini oʻzgartirish</translation>
 <translation id="5139112070765735680"><ph name="DEFAULT_SEARCH_ENGINE_NAME" /> orqali qidirish: <ph name="QUERY_NAME" /></translation>
 <translation id="5139823398361067371">Elektron kalit PIN kodini kiriting. PIN kodni bilmasangiz, elektron kalit sozlamalarini qayta tiklash kerak.</translation>
 <translation id="5139955368427980650">&amp;Ochish</translation>
@@ -3517,6 +3528,7 @@
 <translation id="5739235828260127894">Tasdiqlanishi zarur. <ph name="LINK_BEGIN" />Batafsil axborot.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Juda katta</translation>
 <translation id="574209121243317957">Ovoz balandligi</translation>
+<translation id="5745136023067925867"><ph name="DEVICE_TYPE" /> bilan ishlashga oid takliflar, maslahatlar va yangiliklar oling va fikr-mulohaza yuboring</translation>
 <translation id="5746169159649715125">PDF sifatida saqlash</translation>
 <translation id="5747552184818312860">Amal qilish muddati</translation>
 <translation id="5747785204778348146">Dasturchilar kanali (barqaror emas)</translation>
@@ -3929,7 +3941,6 @@
 <translation id="6291953229176937411">&amp;Finder’da ko‘rsatish</translation>
 <translation id="6295158916970320988">Barcha saytlar</translation>
 <translation id="6295855836753816081">Saqlanmoqda...</translation>
-<translation id="629730747756840877">Hisob</translation>
 <translation id="6298962879096096191">Android ilovalarini o‘rnatish uchun Google Play ishlatilsin</translation>
 <translation id="630065524203833229">&amp;Chiqish</translation>
 <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> printeri avtomatik sozlanmadi. Printer uchun batafsil axborotlarni kiriting. <ph name="LINK_BEGIN" />Batafsil<ph name="LINK_END" /></translation>
@@ -4335,7 +4346,6 @@
 <translation id="6865598234501509159">Sahifa <ph name="LANGUAGE" /> tilida emas</translation>
 <translation id="6865708901122695652">WebRTC hodisa jurnallari (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Rang harorati</translation>
-<translation id="6870888490422746447">Qaysi ilova orqali yuborilsin:</translation>
 <translation id="6871644448911473373">OCSP javob beruvchisi: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Server kiritilgan parolni qabul qilmadi.</translation>
 <translation id="6876155724392614295">Velosiped</translation>
@@ -4428,6 +4438,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> – Faollik jurnali</translation>
 <translation id="6997707937646349884">Qurilmalaringizda:</translation>
 <translation id="6998793565256476099">Video konferensiyalar uchun mos qurilma sifatida ro‘yxatdan o‘tkazish</translation>
+<translation id="6999956497249459195">Yangi guruh</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> ulangan, lekin sozlanmagan</translation>
 <translation id="7000347579424117903">Tugmalar birikmasi Ctrl, Alt yoki Search tugmasi bilan boshlanishi lozim</translation>
 <translation id="7001036685275644873">Linux ilova va fayllari zaxiralanmoqda</translation>
@@ -4726,6 +4737,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Internet tarqatilishini <ph name="PHONE_NAME" /> telefoningizda sozlang</translation>
 <translation id="7401778920660465883">Bu xabarni yopish</translation>
+<translation id="7403642243184989645">Resurslar yuklab olinmoqda</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Xavfsizlik tekshiruvi 1 soat oldin bajarilgan}other{Xavfsizlik tekshiruvi {NUM_HOURS} soat oldin bajarilgan}}</translation>
 <translation id="740624631517654988">Qalqib chiquvchi oyna bloklandi</translation>
 <translation id="7407430846095439694">Import qilish va bog‘lash</translation>
@@ -4962,6 +4974,7 @@
 <translation id="7716781361494605745">Netscape sertifikat markazi URL manzili</translation>
 <translation id="7717014941119698257">Yuklab olinmoqda: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Yangilanish borligini tekshirish</translation>
+<translation id="7719070594859855691">Kameradan foydalanishga ruxsat berish</translation>
 <translation id="7719367874908701697">Sahifa masshtabi</translation>
 <translation id="7721179060400456005">Oynalarning ekranlarni qamrab olishiga ruxsat berish</translation>
 <translation id="7722040605881499779">Zarur joy: <ph name="NECESSARY_SPACE" /></translation>
@@ -4976,7 +4989,6 @@
 <translation id="7744047395460924128">Chop etishlar tarixini koʻrish</translation>
 <translation id="7744192722284567281">Oshkor qilingan axborotlarda bor</translation>
 <translation id="7750228210027921155">Tasvir ustida tasvir</translation>
-<translation id="7751229152614300329">Siz Saytlarni xavfsiz kezish funksiyasining eng oxirgi versiyasini ishlatmoqdasiz. U sizni zararli sayt va yuklanmalardan himoya qiladi</translation>
 <translation id="7751260505918304024">Hammasi</translation>
 <translation id="7754704193130578113">Har bir faylni yuklashdan oldin qayerga saqlash so‘ralsin</translation>
 <translation id="7755287808199759310">Ota-onangiz tasdiqlashi mumkin</translation>
@@ -5063,6 +5075,7 @@
     <ph name="BEGIN_BOLD" />Eslatma:<ph name="END_BOLD" />  Sozlash vaqtida tizim qaytadan ishga tushiriladi.</translation>
 <translation id="7828731929332799387">Bunda tashqi saytlardagi barcha cookie fayllari va sayt maʼlumotlari tozalanadi. Davom ettirilsinmi?</translation>
 <translation id="7829298379596169484">Audio-kirish qurilmasi faollashtirildi</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> parollaringizni tekshira olmadi. Internet aloqasini tekshiring.</translation>
 <translation id="7829877209233347340">Ota-onangizdan hisoblariga kirib maktab hisobingizni kiritishga ruxsat berishlarini soʻrang</translation>
 <translation id="7830594666202422257">Linuxga ulanish</translation>
 <translation id="7831491651892296503">Tarmoqni sozlashda xatolik yuz berdi</translation>
@@ -5284,6 +5297,7 @@
 <translation id="8107015733319732394">Google Market <ph name="DEVICE_TYPE" /> qurilmangizga o‘rnatilmoqda. Bu bir necha daqiqa oladi.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Tashqi cookie fayllar yoʻq}=1{1 ta tashqi cookie fayl bloklandi}other{# ta tashqi cookie fayl bloklandi}}</translation>
 <translation id="810875025413331850">Yaqin-atrofda hech qanday qurilma topilmadi.</translation>
+<translation id="8114199541033039755">Planshet rejimida bosh ekranga oʻtish, oldingi ekranga qaytish va ilovalararo almashish uchun tugmalar paydo chiqadi. ChromeVox (teskari aloqa) yoki avtomatik bosishlar yoniqligida ishlaydi.</translation>
 <translation id="8114875720387900039">Gorizontal ajratish</translation>
 <translation id="8116972784401310538">&amp;Xatcho‘plar menejeri</translation>
 <translation id="8117620576188476503">Ulanishlar, yangilanishlar va sozlamalarni holat qatoridan boshqarish. Bu oynani Alt+Shift+S tugmalar birikmasini bosib ochishingiz mumkin.</translation>
@@ -5403,6 +5417,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> sichqon kursorini yashirib qo‘ydi.</translation>
 <translation id="8264024885325823677">Bu sozlama administrator tomonidan boshqariladi.</translation>
 <translation id="8264718194193514834">“<ph name="EXTENSION_NAME" />” kengaytmasi kiosk rejimida ishga tushdi.</translation>
+<translation id="826511437356419340">Umumiy nazar rejimi yoqildi. Orqaga yoki oldinga oʻtkazish uchun suring yoki klaviatura bor boʻlsa, tab tugmasini bosing</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Bunga qurilma va undan qanday foydalanish haqidagi umumiy axborot, masalan, batareya quvvati darajasi, tizim va ilovalardan qanday foydalanishingiz, ishdan chiqish hisobotlari kiradi. Ba’zi to‘plangan ma’lumotlar Android dasturchilar kabi hamkorlarimizga ham o‘z ilovalari va mahsulotlarini yanada yaxshilashga yordam beradi.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Bu funksiyani faolsizlashtirish tizim yangilanishlari va xavfsizlik kabi asosiy xizmatlarni olish uchun zarur bo‘lgan ma’lumotlarni yuborishga to‘sqinlik qilmaydi.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Qurilma egasi bu funksiyani “Sozlamalar &gt; Qoʻshimcha &gt; Foydalanish statistikasi va ichdan chiqish hisobotlarining Google serverlariga avtomatik yuborilishi” orqali boshqarishi mumkin.<ph name="END_PARAGRAPH3" />
@@ -5511,6 +5526,7 @@
 <translation id="8426713856918551002">Yoqilmoqda</translation>
 <translation id="8427292751741042100">istalgan hostda joylangan</translation>
 <translation id="8428213095426709021">Sozlamalar</translation>
+<translation id="8428271547607112339">Maktab hisobini kiritish</translation>
 <translation id="8428628598981198790">Elektron kalitingiz bu saytda ishlamaydi</translation>
 <translation id="84297032718407999"><ph name="LOGOUT_TIME_LEFT" />dan keyin tizimdan chiqasiz</translation>
 <translation id="8431190899827883166">Vizual teginish</translation>
@@ -5574,6 +5590,7 @@
 <translation id="851263357009351303"><ph name="HOST" /> rasmlarni doim ko‘rsatsin</translation>
 <translation id="8513108775083588393">Avtomatik burilish</translation>
 <translation id="8514746246728959655">Boshqa elektron kalit bilan urining</translation>
+<translation id="851960115758509829">Ilova va sozlamalaringiz Google hisobingiz bilan kirilgan barcha Chrome OS qurilmalaringizda sinxronlanadi.</translation>
 <translation id="8521475323816527629">Ilovalarni tezkor ochish</translation>
 <translation id="8523493869875972733">O‘zgarishlarni saqlash</translation>
 <translation id="8523849605371521713">Qoidaga muvofiq qo‘shilgan</translation>
@@ -5855,11 +5872,13 @@
 <translation id="885701979325669005">Ombor</translation>
 <translation id="8859057652521303089">Tilni tanlang:</translation>
 <translation id="8859174528519900719">Subramka: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Ota-ona hisobi</translation>
 <translation id="8862003515646449717">Tezkor brauzerdan foydalaning</translation>
 <translation id="8863753581171631212">Havolani yangi <ph name="APP" /> dasturida ochish</translation>
 <translation id="8864055848767439877"><ph name="TAB_NAME" /> sahifasi <ph name="APP_NAME" /> ilovasiga ulashilmoqda</translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> hisobi bu qurilmadan olib tashlandi</translation>
 <translation id="8867228703146808825">Nashr tavsilotlarini klipbordga nusxalash</translation>
+<translation id="8868333925931032127">Demo rejimi ishga tushirilmoqda</translation>
 <translation id="8868626022555786497">Band</translation>
 <translation id="8870413625673593573">Yaqinda yopilganlar</translation>
 <translation id="8871551568777368300">Administrator tomonidan qadalgan</translation>
@@ -5938,6 +5957,7 @@
 <translation id="8966870118594285808">Adashib yopilgan varaqlarni qayta tiklash</translation>
 <translation id="8967866634928501045">Ko‘rsatish uchun Alt+Shift+A tugmalarini bosing</translation>
 <translation id="8968766641738584599">Karta eslab qolinsin</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> parollaringizni tekshira olmadi. 24 soatdan keyin qayta urining yoki <ph name="BEGIN_LINK" />Google hisobingizdagi parollarni tekshiring<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">O‘chirib qo‘yish</translation>
 <translation id="8972513834460200407">Administratordan havfsizlik devori Google serverlaridan fayllar yuklab olinishi bloklanish holatini so‘rang.</translation>
 <translation id="8973557916016709913">Masshtabni bekor qilish</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 5ca11e5..3db98351 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Thiết bị hiện có</translation>
 <translation id="1042174272890264476">Máy tính của bạn cũng đi kèm với thư viện RLZ của <ph name="SHORT_PRODUCT_NAME" /> được tích hợp sẵn. RLZ chỉ định thẻ không thể nhận dạng cá nhân, không duy nhất để đo lường các tìm kiếm và mức độ sử dụng <ph name="SHORT_PRODUCT_NAME" /> mà một chiến dịch quảng cáo cụ thể mang lại. Đôi khi các nhãn này xuất hiện trong truy vấn Google Tìm kiếm trong <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Cũng xóa dữ liệu khỏi các ứng dụng này?</translation>
+<translation id="1045448422538531528">Thêm vào nhóm</translation>
 <translation id="1046635659603195359">Có vẻ như bạn đã thiết lập tính năng Voice Match với Trợ lý Google trên một thiết bị khác. Trợ lý có thể dùng những bản ghi âm đã có trước đây để tạo một mẫu giọng nói trên thiết bị này. Quá trình này sẽ mất chưa đến 1 phút.</translation>
 <translation id="104710386808485638">Khởi động lại Linux?</translation>
 <translation id="1047431265488717055">Sao chép &amp;văn bản liên kết</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Luôn chặn quyền truy cập máy ảnh</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> muốn khôi phục cài đặt Chrome của bạn về mặc định ban đầu. Thao tác này sẽ đặt lại trang chủ, trang tab mới và công cụ tìm kiếm, vô hiệu hóa các tiện ích của bạn và bỏ ghim tất cả các tab. Hành động này cũng xóa dữ liệu tạm thời và được lưu trong bộ nhớ đệm khác, chẳng hạn như cookie, nội dung và dữ liệu trang web.</translation>
+<translation id="1084096383128641877">Việc xóa mật khẩu này sẽ không xóa tài khoản của bạn trên <ph name="DOMAIN" />. Hãy đổi mật khẩu hoặc xóa tài khoản của bạn trên <ph name="DOMAIN_LINK" /> để bảo vệ mật khẩu hoặc tài khoản đó.</translation>
 <translation id="1084824384139382525">S&amp;ao chép địa chỉ liên kết</translation>
 <translation id="1085697365578766383">Lỗi khi khởi động máy ảo. Vui lòng thử lại.</translation>
 <translation id="1090126737595388931">Không có ứng dụng nền nào đang chạy</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Tính năng kiểm tra an toàn đã chạy hôm qua</translation>
 <translation id="1260451001046713751">Luôn cho phép cửa sổ bật lên và liên kết chuyển hướng từ <ph name="HOST" /></translation>
 <translation id="126156426083987769">Đã xảy ra lỗi với giấy phép thiết bị ở chế độ minh họa.</translation>
+<translation id="1263490604593716556">Tài khoản do <ph name="FIRST_PARENT_EMAIL" /> và <ph name="SECOND_PARENT_EMAIL" /> quản lý. Để đăng xuất khỏi tài khoản chính trên thiết bị này, hãy nhấp vào khu vực giờ trên màn hình. Trong trình đơn hiện ra, hãy nhấp vào "Đăng xuất".</translation>
 <translation id="126710816202626562">Ngôn ngữ dịch:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Dừng</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">Trang web</translation>
 <translation id="15662109988763471">Máy in đã chọn không hoạt động hoặc được cài đặt không chính xác. Hãy kiểm tra máy in của bạn hoặc thử chọn một máy in khác.</translation>
 <translation id="1567387640189251553">Một bàn phím khác đã được kết nối kể từ lần gần đây nhất bạn nhập mật khẩu của mình. Bàn phím này có thể đang cố gắng đánh cắp thao tác nhấn phím của bạn.</translation>
-<translation id="1567750922576943685">Việc xác minh thông tin định danh giúp bảo vệ thông tin cá nhân của bạn</translation>
 <translation id="1567993339577891801">Bảng điều khiển JavaScript</translation>
 <translation id="1568323446248056064">Mở cài đặt thiết bị hiển thị</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Khách)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">Nghệ thuật</translation>
 <translation id="1697686431566694143">Chỉnh sửa tệp</translation>
 <translation id="1698122934742150150">Chỉ phiên ẩn danh hiện tại</translation>
-<translation id="1698650002254827833">Không tải được danh sách ứng dụng. Vui lòng thử lại.</translation>
 <translation id="1700079447639026019">Các trang web không bao giờ được dùng cookie</translation>
 <translation id="1701062906490865540">Xóa người này</translation>
 <translation id="1703331064825191675">Không bao giờ phải lo lắng về mật khẩu của bạn</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">Tiếp tục</translation>
 <translation id="2173302385160625112">Kiểm tra đường kết nối Internet của bạn</translation>
 <translation id="2173801458090845390">Thêm ID yêu cầu vào thiết bị này</translation>
+<translation id="2174948148799307353">Tài khoản do <ph name="PARENT_EMAIL" /> quản lý. Để đăng xuất khỏi tài khoản chính trên thiết bị này, hãy nhấp vào khu vực giờ trên màn hình. Trong trình đơn hiện ra, hãy nhấp vào "Đăng xuất".</translation>
 <translation id="2175607476662778685">Thanh khởi động nhanh</translation>
 <translation id="217576141146192373">Không thể thêm máy in. Vui lòng kiểm tra cấu hình của máy in rồi thử lại.</translation>
 <translation id="2177950615300672361">Tab ẩn danh: <ph name="TAB_NAME" /></translation>
@@ -1081,7 +1083,6 @@
 <translation id="2442916515643169563">Đổ bóng văn bản</translation>
 <translation id="2445081178310039857">Thư mục gốc của tiện ích là bắt buộc.</translation>
 <translation id="2445484935443597917">Tạo hồ sơ mới</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> muốn xác minh danh tính của bạn</translation>
 <translation id="2448312741937722512">Loại</translation>
 <translation id="2450223707519584812">Bạn không thể thêm người dùng vì thiếu khóa Google API. Xem <ph name="DETAILS_URL" /> để biết thông tin chi tiết.</translation>
 <translation id="2450849356604136918">Không có chế độ xem đang hoạt động nào</translation>
@@ -1278,7 +1279,7 @@
 <translation id="270358213449696159">Nội dung Điều khoản của Google Chrome OS</translation>
 <translation id="2704184184447774363">Ký Tài liệu của Microsoft</translation>
 <translation id="270516211545221798">Tốc độ bàn di chuột</translation>
-<translation id="2705736684557713153">Cuộn xuống cuối màn hình và bật Chia sẻ kết nối tức thì nếu kênh thông báo này xuất hiện. Nếu không thấy kênh thông báo này nghĩa là bạn đã hoàn tất thiết lập.</translation>
+<translation id="2705736684557713153">Chuyển xuống cuối màn hình và bật tính năng Chia sẻ Internet tức thì nếu có thông báo xuất hiện. Nếu không thấy thông báo nghĩa là bạn đã thiết lập xong.</translation>
 <translation id="2707024448553392710">Thành phần đang tải xuống</translation>
 <translation id="270921614578699633">Trên trung bình</translation>
 <translation id="2709516037105925701">Tự động điền</translation>
@@ -1479,6 +1480,7 @@
 <translation id="2948300991547862301">Truy cập <ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Trình duyệt web nhanh, đơn giản và an toàn dành cho web hiện đại.</translation>
 <translation id="2949289451367477459">Sử dụng thông tin vị trí. Cho phép ứng dụng và dịch vụ có quyền vị trí sử dụng thông tin vị trí của thiết bị này. Google có thể định kỳ thu thập dữ liệu vị trí và sử dụng dữ liệu này theo cách ẩn danh để cải thiện độ chính xác của vị trí và các dịch vụ dựa trên vị trí. <ph name="BEGIN_LINK1" />Tìm hiểu thêm<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Đăng ký cho tôi</translation>
 <translation id="2956070239128776395">Phần lồng trong nhóm: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Không cho phép bất kỳ trang web nào chỉnh sửa tệp hoặc thư mục trên thiết bị</translation>
 <translation id="2958721676848865875">Cảnh báo đóng gói tiện ích</translation>
@@ -1603,6 +1605,7 @@
 <translation id="3139925690611372679">Hình đại diện màu vàng mặc định</translation>
 <translation id="3141318088920353606">Đang nghe...</translation>
 <translation id="3141917231319778873">Yêu cầu đưa ra không được hỗ trợ cho: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Nhóm mới</translation>
 <translation id="3143515551205905069">Hủy đồng bộ hóa</translation>
 <translation id="3143754809889689516">Phát từ đầu</translation>
 <translation id="3144647712221361880">Mở liên kết bằng tài khoản</translation>
@@ -1627,6 +1630,7 @@
 <translation id="3159493096109238499">Màu be</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (dựa trên phần cứng)</translation>
 <translation id="3161522574479303604">Tất cả ngôn ngữ</translation>
+<translation id="3162853326462195145">Tài khoản trường học</translation>
 <translation id="3162899666601560689">Các trang web có thể dùng cookie để cải thiện trải nghiệm duyệt web của bạn, chẳng hạn như để duy trì trạng thái đăng nhập hoặc ghi nhớ các mục có trong giỏ hàng</translation>
 <translation id="3163201441334626963">Sản phẩm không xác định <ph name="PRODUCT_ID" /> từ nhà cung cấp <ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Đang chia sẻ tab này với <ph name="APP_NAME" /></translation>
@@ -1685,7 +1689,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Cập nhật thiết bị trong vòng 1 ngày}other{Cập nhật thiết bị trong vòng # ngày}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Lỗi mạng</translation>
 <translation id="3248902735035392926">Vấn đề an toàn rất quan trọng. Hãy dành giây lát để <ph name="BEGIN_LINK" />kiểm tra các tiện ích của bạn ngay bây giờ<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Không Thuộc Chứng chỉ&gt;</translation>
 <translation id="3253225298092156258">Chưa có</translation>
 <translation id="3253448572569133955">Tài khoản không xác định</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3396800784455899911">Bằng cách nhấp vào nút "Đồng ý và tiếp tục", bạn đồng ý với quy trình xử lý mô tả ở trên cho các dịch vụ này của Google.</translation>
 <translation id="3399432415385675819">Thông báo sẽ bị tắt</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - đan xen</translation>
+<translation id="3402585168444815892">Đang đăng ký chế độ minh họa</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Không có mật khẩu nào được lưu cho trang web này</translation>
 <translation id="3405664148539009465">Tùy chỉnh phông chữ</translation>
@@ -1851,6 +1855,7 @@
 <translation id="3468999815377931311">Điện thoại Android</translation>
 <translation id="3470442499439619530">Xóa người dùng này</translation>
 <translation id="3471876058939596279">Không thể sử dụng đồng thời cổng USB Type-C và HDMI cho video. Hãy sử dụng một cổng video khác.</translation>
+<translation id="3473241910002674503">Chuyển về trang chủ, quay lại và chuyển đổi ứng dụng bằng các nút ở chế độ máy tính bảng.</translation>
 <translation id="3473479545200714844">Phóng to màn hình</translation>
 <translation id="3475843873335999118">Rất tiếc, vân tay của bạn vẫn chưa được nhận dạng. Vui lòng nhập mật khẩu của bạn.</translation>
 <translation id="3476303763173086583">Gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng. Giúp cải thiện trải nghiệm Android của con bạn bằng cách tự động gửi dữ liệu chẩn đoán cũng như dữ liệu về mức sử dụng ứng dụng và thiết bị cho Google. Những thông tin này sẽ không dùng để nhận dạng con bạn mà giúp tăng độ ổn định của hệ thống và ứng dụng cũng như cải thiện các mặt khác. Một số dữ liệu tổng hợp cũng sẽ hữu ích cho các ứng dụng và đối tác của Google, chẳng hạn như những nhà phát triển Android. Mục <ph name="BEGIN_LINK1" />cài đặt<ph name="END_LINK1" /> này do chủ sở hữu thực thi. Chủ sở hữu có thể chọn gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng của thiết bị này cho Google. Nếu bạn bật mục cài đặt bổ sung Hoạt động trên web và ứng dụng cho con mình thì dữ liệu này có thể được lưu vào Tài khoản Google của trẻ. <ph name="BEGIN_LINK2" />Tìm hiểu thêm<ph name="END_LINK2" /></translation>
@@ -2275,6 +2280,7 @@
 <translation id="3971764089670057203">Vân tay số trên khóa bảo mật này</translation>
 <translation id="3973660817924297510">Đang kiểm tra mật khẩu (<ph name="CHECKED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Không kết nối được với máy chủ của vùng</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> không thể kiểm tra mật khẩu của bạn. Hãy thử lại sau.</translation>
 <translation id="3976108569178263973">Không có máy in nào.</translation>
 <translation id="397703832102027365">Đang hoàn tất...</translation>
 <translation id="3977886311744775419">Các bản cập nhật tự động không tải xuống trên loại mạng này, nhưng bạn có thể kiểm tra các bản cập nhật theo cách thủ công.</translation>
@@ -2338,6 +2344,7 @@
 <translation id="4068506536726151626">Trang này chứa các yếu tố từ các trang web đang theo dõi vị trí của bạn:</translation>
 <translation id="4068776064906523561">Vân tay đã lưu</translation>
 <translation id="407173827865827707">Khi nhấp chuột</translation>
+<translation id="4073520450811433493">Đồng bộ hóa các tùy chọn cài đặt</translation>
 <translation id="4074900173531346617">Chứng chỉ Người ký Email</translation>
 <translation id="407520071244661467">Tỷ lệ</translation>
 <translation id="4075639477629295004">Không thể truyền <ph name="FILE_NAME" />.</translation>
@@ -2574,6 +2581,7 @@
 <translation id="4421932782753506458">Mèo con dễ thương</translation>
 <translation id="4423376891418188461">Khôi phục cài đặt</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, quản trị viên của bạn yêu cầu bạn thay đổi mật khẩu của mình.</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> không thể kiểm tra mật khẩu của bạn. Hãy thử lại sau 24 giờ.</translation>
 <translation id="4429030830601238961">Dữ liệu này vi phạm chính sách bảo mật của tổ chức bạn nên không thể dán được.</translation>
 <translation id="4430019312045809116">Âm lượng</translation>
 <translation id="4430369329743628066">Đã thêm dấu trang</translation>
@@ -2586,6 +2594,7 @@
 <translation id="4441124369922430666">Bạn có muốn tự động khởi động ứng dụng này khi máy bật không?</translation>
 <translation id="4441147046941420429">Để tiếp tục, hãy rút khóa bảo mật khỏi thiết bị rồi cắm lại và chạm vào khóa đó</translation>
 <translation id="444134486829715816">Mở rộng...</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> có thể kiểm tra mật khẩu khi bạn đăng nhập bằng Tài khoản Google của mình</translation>
 <translation id="4442424173763614572">Tìm kiếm DNS không thành công</translation>
 <translation id="4443536555189480885">&amp;Trợ giúp</translation>
 <translation id="4444304522807523469">Truy cập máy quét tài liệu được lắp qua USB hoặc trên mạng cục bộ</translation>
@@ -2612,11 +2621,13 @@
 <translation id="4476659815936224889">Bạn có thể dùng ứng dụng trình quét QR trên điện thoại hoặc một số ứng dụng máy ảnh để quét mã này.</translation>
 <translation id="4477015793815781985">Bao gồm phím Ctrl, Alt hoặc ⌘</translation>
 <translation id="4478664379124702289">Lưu Liên &amp;kết Dưới dạng...</translation>
+<translation id="4478777936860197922">Bạn chưa lưu mật khẩu nào. <ph name="IDS_SHORT_PRODUCT_NAME" /> có thể kiểm tra các mật khẩu của bạn khi bạn lưu các mật khẩu đó.</translation>
 <translation id="4479424953165245642">Quản lý ứng dụng kiosk</translation>
 <translation id="4479639480957787382">Ethernet</translation>
 <translation id="4479877282574735775">Đang định cấu hình máy ảo. Quá trình này có thể mất vài phút.</translation>
 <translation id="4480590691557335796">Chrome có thể tìm và xóa phần mềm gây hại trên máy tính của bạn</translation>
 <translation id="4481530544597605423">Thiết bị được hủy ghép nối</translation>
+<translation id="4488107067273194838">Xem lại các tùy chọn đồng bộ hóa trình duyệt sau khi thiết lập</translation>
 <translation id="4488502501195719518">Xóa tất cả dữ liệu?</translation>
 <translation id="4495419450179050807">Không hiển thị trên trang này</translation>
 <translation id="4496054781541092778">đã tự động chặn <ph name="PERMISSION" /></translation>
@@ -2858,6 +2869,7 @@
 <translation id="4849517651082200438">Không cài đặt</translation>
 <translation id="4850669014075537160">Cuộn</translation>
 <translation id="4850886885716139402">Xem</translation>
+<translation id="485197095346966382"><ph name="IDS_SHORT_PRODUCT_NAME" /> sẽ thông báo khi bạn đăng nhập bằng mật khẩu bị lộ</translation>
 <translation id="4853020600495124913">Mở trong &amp;cửa sổ mới</translation>
 <translation id="4854317507773910281">Chọn tài khoản của cha mẹ sẽ dùng để phê duyệt</translation>
 <translation id="485480310608090163">Các quyền và tùy chọn cài đặt khác</translation>
@@ -2876,6 +2888,7 @@
 <translation id="4871322859485617074">Mã PIN chứa ký tự không hợp lệ</translation>
 <translation id="4871370605780490696">Thêm dấu trang</translation>
 <translation id="4871719318659334896">Đóng nhóm</translation>
+<translation id="4871852311166078968">Thêm vào nhóm</translation>
 <translation id="4873312501243535625">Trình kiểm tra tệp phương tiện</translation>
 <translation id="4876273079589074638">Giúp các kỹ sư của chúng tôi điều tra và khắc phục trục trặc này. Liệt kê các bước chính xác nếu bạn có thể. Không cần liệt kê quá chi tiết!</translation>
 <translation id="4876895919560854374">Khóa và mở khóa màn hình</translation>
@@ -2967,7 +2980,6 @@
 <translation id="4992473555164495036">Quản trị viên của bạn đã giới hạn các phương thức nhập có sẵn.</translation>
 <translation id="4994474651455208930">Cho phép các trang web yêu cầu trở thành trình xử lý mặc định cho giao thức</translation>
 <translation id="4994754230098574403">Đang thiết lập</translation>
-<translation id="4996978546172906250">Chia sẻ qua</translation>
 <translation id="4997086284911172121">Không có kết nối Internet.</translation>
 <translation id="4997384734315285248">Gỡ cài đặt Plugin VM</translation>
 <translation id="4998430619171209993">Đang bật</translation>
@@ -3067,7 +3079,6 @@
 <translation id="5135085122826131075">Nói "Ok Google" khi bạn muốn sử dụng Trợ lý.</translation>
 <translation id="5135533361271311778">Không thể tạo mục dấu trang.</translation>
 <translation id="5137501176474113045">Xóa mục này</translation>
-<translation id="5138982052046316113">Thay đổi dung lượng ổ đĩa Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> Tìm kiếm</translation>
 <translation id="5139823398361067371">Nhập mã PIN cho khóa bảo mật của bạn. Bạn cần đặt lại khóa bảo mật nếu không biết mã PIN này.</translation>
 <translation id="5139955368427980650">&amp;Mở</translation>
@@ -3276,7 +3287,7 @@
 <translation id="542872847390508405">Bạn đang duyệt với tư cách khách</translation>
 <translation id="5428850089342283580"><ph name="ACCNAME_APP" /> (Có bản cập nhật)</translation>
 <translation id="542948651837270806">Bạn cần cài đặt bản cập nhật của chương trình cơ sở Mô-đun nền tảng đáng tin cậy. Hãy truy cập vào <ph name="TPM_FIRMWARE_UPDATE_LINK" /></translation>
-<translation id="5430931332414098647">Chia sẻ kết nối tức thì</translation>
+<translation id="5430931332414098647">Chia sẻ Internet tức thì</translation>
 <translation id="5431318178759467895">Màu</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
 <translation id="5432996274932278848">Tìm kiếm thiết bị, ứng dụng và web của bạn. Hãy sử dụng các phím mũi tên để di chuyển đến ứng dụng của bạn.</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Đang chờ xác minh. <ph name="LINK_BEGIN" />Tìm hiểu thêm<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Rất lớn</translation>
 <translation id="574209121243317957">Cao độ</translation>
+<translation id="5745136023067925867">Nhận các mẹo, ưu đãi và thông tin cập nhật về <ph name="DEVICE_TYPE" />, cũng như chia sẻ ý kiến phản hồi</translation>
 <translation id="5746169159649715125">Lưu dưới dạng PDF</translation>
 <translation id="5747552184818312860">Hết hạn</translation>
 <translation id="5747785204778348146">Nhà phát triển - không chính thức</translation>
@@ -3756,7 +3768,7 @@
 <translation id="6059652578941944813">Hệ thống cấp bậc của Chứng chỉ</translation>
 <translation id="6059925163896151826">Thiết bị USB</translation>
 <translation id="6061882183774845124">Gửi đường dẫn liên kết tới thiết bị của bạn</translation>
-<translation id="6064217302520318294">Khóa màn hình</translation>
+<translation id="6064217302520318294">Phương thức khóa màn hình</translation>
 <translation id="6065289257230303064">Các Thuộc tính Thư mục Đối tượng Chứng chỉ</translation>
 <translation id="6069671174561668781">Đặt hình nền</translation>
 <translation id="6071181508177083058">xác nhận mật khẩu</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">&amp;Hiển thị trong Trình tìm kiếm</translation>
 <translation id="6295158916970320988">Tất cả các trang web</translation>
 <translation id="6295855836753816081">Đang lưu...</translation>
-<translation id="629730747756840877">Tài khoản</translation>
 <translation id="6298962879096096191">Sử dụng Google Play để cài đặt các ứng dụng Android</translation>
 <translation id="630065524203833229">T&amp;hoát</translation>
 <translation id="6300718114348072351">Không thể tự động định cấu hình cho <ph name="PRINTER_NAME" />. Vui lòng chỉ định các tùy chọn cài đặt nâng cao cho máy in. <ph name="LINK_BEGIN" />Tìm hiểu thêm<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Trang không viết bằng <ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Nhật ký sự kiện WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Nhiệt độ màu</translation>
-<translation id="6870888490422746447">Chọn một ứng dụng để chia sẻ:</translation>
 <translation id="6871644448911473373">Phản hồi OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Mật khẩu bạn nhập đã bị máy chủ từ chối.</translation>
 <translation id="6876155724392614295">Xe đạp</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Nhật ký hoạt động</translation>
 <translation id="6997707937646349884">Trên các thiết bị của bạn:</translation>
 <translation id="6998793565256476099">Đăng ký thiết bị tham gia hội nghị truyền hình</translation>
+<translation id="6999956497249459195">Nhóm mới</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> đã kết nối nhưng cần định cấu hình</translation>
 <translation id="7000347579424117903">Bao gồm phím Ctrl, Alt hoặc Tìm kiếm</translation>
 <translation id="7001036685275644873">Đang sao lưu các ứng dụng và tệp Linux</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">Thiết lập kết nối trên <ph name="PHONE_NAME" /> của bạn</translation>
 <translation id="7401778920660465883">Đóng thông báo này</translation>
+<translation id="7403642243184989645">Đang tải tài nguyên xuống</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Tính năng Kiểm tra an toàn đã chạy 1 giờ trước}other{Tính năng Kiểm tra an toàn đã chạy {NUM_HOURS} giờ trước}}</translation>
 <translation id="740624631517654988">Đã chặn cửa sổ bật lên</translation>
 <translation id="7407430846095439694">Nhập và liên kết</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">URL chính sách của tổ chức phát hành chứng chỉ Netscape</translation>
 <translation id="7717014941119698257">Đang tải xuống: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Kiểm tra bản cập nhật</translation>
+<translation id="7719070594859855691">Cấp quyền truy cập vào máy ảnh</translation>
 <translation id="7719367874908701697">Thu phóng trang</translation>
 <translation id="7721179060400456005">Cho phép cửa sổ mở rộng màn hình</translation>
 <translation id="7722040605881499779">Cần được cập nhật: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Xem lịch sử in của bạn</translation>
 <translation id="7744192722284567281">Phát hiện mật khẩu bị rò rỉ</translation>
 <translation id="7750228210027921155">Hình trong hình</translation>
-<translation id="7751229152614300329">Tính năng Duyệt web an toàn đã được cập nhật. Tính năng này sẽ giúp bảo vệ bạn khỏi các tệp đã tải xuống và trang web gây hại</translation>
 <translation id="7751260505918304024">Hiển thị tất cả</translation>
 <translation id="7754704193130578113">Hỏi vị trí lưu từng tệp trước khi tải xuống</translation>
 <translation id="7755287808199759310">Cha mẹ của bạn có thể bỏ chặn trang web cho bạn</translation>
@@ -5010,7 +5022,7 @@
 <translation id="778330624322499012">Không thể tải <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Cài đặt bảo mật trên máy tính của bạn đã chặn tệp này.</translation>
 <translation id="7784796923038949829">Không thể đọc hoặc thay đổi dữ liệu của trang web</translation>
-<translation id="778480864305029524">Để sử dụng Chia sẻ kết nối tức thì, hãy bật thông báo cho Dịch vụ của Google Play.</translation>
+<translation id="778480864305029524">Để sử dụng tính năng Chia sẻ Internet tức thì, hãy bật thông báo cho Dịch vụ của Google Play.</translation>
 <translation id="7786889348652477777">Tải &amp;lại ứng dụng</translation>
 <translation id="7787308148023287649">Hiển thị trên màn hình khác</translation>
 <translation id="7788298548579301890">Một chương trình khác trên máy tính của bạn đã thêm một ứng dụng có thể thay đổi cách Chrome hoạt động.
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Lưu ý:<ph name="END_BOLD" />  Hệ thống sẽ khởi động lại trong quá trình này.</translation>
 <translation id="7828731929332799387">Thao tác này sẽ xóa tất cả dữ liệu trang web và cookie có trong ngữ cảnh của bên thứ ba. Bạn có muốn tiếp tục không?</translation>
 <translation id="7829298379596169484">Đang truy cập thiết bị đầu vào âm thanh</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> không thể kiểm tra mật khẩu của bạn. Hãy thử kiểm tra kết nối Internet.</translation>
 <translation id="7829877209233347340">Đề nghị cha mẹ đăng nhập để cấp quyền thêm một tài khoản trường học</translation>
 <translation id="7830594666202422257">Kết nối với Linux</translation>
 <translation id="7831491651892296503">Lỗi khi định cấu hình mạng</translation>
@@ -5288,6 +5301,7 @@
 <translation id="8107015733319732394">Đang cài đặt Cửa hàng Google Play trên <ph name="DEVICE_TYPE" /> của bạn. Quá trình này có thể mất vài phút.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Không có cookie bên thứ ba}=1{Đã chặn 1 cookie bên thứ ba}other{Đã chặn # cookie bên thứ ba}}</translation>
 <translation id="810875025413331850">Không tìm thấy thiết bị lân cận.</translation>
+<translation id="8114199541033039755">Chuyển về trang chủ, quay lại và chuyển đổi ứng dụng bằng các nút ở chế độ máy tính bảng. Các nút này ở trạng thái bật khi ChromeVox hoặc tính năng Tự động nhấp đang bật.</translation>
 <translation id="8114875720387900039">Chia ngang</translation>
 <translation id="8116972784401310538">&amp;Trình quản lý dấu trang</translation>
 <translation id="8117620576188476503">Quản lý các kết nối, bản cập nhật và cài đặt bằng khay trạng thái. Để truy cập vào đây bằng bàn phím, hãy nhấn tổ hợp phím Alt + Shift + S.</translation>
@@ -5407,6 +5421,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> đã tắt con trỏ chuột của bạn.</translation>
 <translation id="8264024885325823677">Quản trị viên của bạn quản lý tùy chọn cài đặt này.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" đã kích hoạt chế độ toàn màn hình.</translation>
+<translation id="826511437356419340">Đã vào chế độ tổng quan về cửa sổ. Vuốt để di chuyển hoặc nhấn vào phím Tab nếu dùng bàn phím.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Đây là thông tin chung về thiết bị này và cách thiết bị được sử dụng (chẳng hạn như mức pin, lỗi cũng như hoạt động của ứng dụng và hệ thống). Dữ liệu này sẽ dùng để cải thiện Android và một số thông tin tổng hợp cũng sẽ giúp các ứng dụng và đối tác của Google, chẳng hạn như các nhà phát triển Android, cải thiện ứng dụng và sản phẩm của họ.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Việc tắt tính năng này không ảnh hưởng đến khả năng thiết bị này gửi thông tin cần thiết cho các dịch vụ thiết yếu như bảo mật và bản cập nhật hệ thống.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Chủ sở hữu có thể kiểm soát tính năng này trong mục Cài đặt &gt; Nâng cao &gt; Tự động gửi dữ liệu chẩn đoán và dữ liệu sử dụng cho Google.<ph name="END_PARAGRAPH3" />
@@ -5515,6 +5530,7 @@
 <translation id="8426713856918551002">Đang bật</translation>
 <translation id="8427292751741042100">được nhúng trên bất kỳ máy chủ nào</translation>
 <translation id="8428213095426709021">Cài đặt</translation>
+<translation id="8428271547607112339">Thêm tài khoản trường học</translation>
 <translation id="8428628598981198790">Bạn không thể sử dụng khóa bảo mật với trang web này</translation>
 <translation id="84297032718407999">Bạn sẽ bị đăng xuất sau <ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Hiển thị điểm khi nhấn</translation>
@@ -5578,6 +5594,7 @@
 <translation id="851263357009351303">Luôn cho phép <ph name="HOST" /> hiển thị hình ảnh</translation>
 <translation id="8513108775083588393">Tự động xoay</translation>
 <translation id="8514746246728959655">Thử một khóa bảo mật khác</translation>
+<translation id="851960115758509829">Các ứng dụng, tùy chọn cài đặt và những mục tùy chỉnh khác của bạn sẽ đồng bộ hóa trên mọi thiết bị Chrome OS mà bạn đã đăng nhập bằng Tài khoản Google của mình.</translation>
 <translation id="8521475323816527629">Truy cập nhanh vào các ứng dụng của bạn</translation>
 <translation id="8523493869875972733">Lưu thay đổi</translation>
 <translation id="8523849605371521713">Được thêm bởi chính sách</translation>
@@ -5586,7 +5603,7 @@
 <translation id="8526666462501866815">Đang hủy quá trình nâng cấp Linux</translation>
 <translation id="8528074251912154910">Thêm ngôn ngữ</translation>
 <translation id="8528962588711550376">Đang đăng nhập.</translation>
-<translation id="8529925957403338845">Kết nối trong Chia sẻ kết nối tức thì bị lỗi</translation>
+<translation id="8529925957403338845">Lỗi kết nối khi Chia sẻ Internet tức thì</translation>
 <translation id="8534656636775144800">Rất tiếc! Đã xảy ra lỗi khi tìm cách tham gia miền. Vui lòng thử lại.</translation>
 <translation id="8535005006684281994">URL Gia hạn Chứng chỉ của Netscape</translation>
 <translation id="8538358978858059843">Bạn muốn bật các dịch vụ đám mây cho ứng dụng Cast?</translation>
@@ -5859,11 +5876,13 @@
 <translation id="885701979325669005">Bộ nhớ</translation>
 <translation id="8859057652521303089">Chọn ngôn ngữ:</translation>
 <translation id="8859174528519900719">Khung phụ: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">Tài khoản của cha mẹ</translation>
 <translation id="8862003515646449717">Chuyển sang một trình duyệt nhanh</translation>
 <translation id="8863753581171631212">Mở liên kết trong <ph name="APP" /> mới</translation>
 <translation id="8864055848767439877">Đang chia sẻ <ph name="TAB_NAME" /> với <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">Đã xóa <ph name="EMAIL" /> khỏi thiết bị này</translation>
 <translation id="8867228703146808825">Sao chép thông tin chi tiết về bản dựng vào khay nhớ tạm</translation>
+<translation id="8868333925931032127">Đang khởi động chế độ minh họa</translation>
 <translation id="8868626022555786497">Được dùng</translation>
 <translation id="8870413625673593573">Các tab đã Đóng gần đây</translation>
 <translation id="8871551568777368300">Do quản trị viên ghim</translation>
@@ -5942,6 +5961,7 @@
 <translation id="8966870118594285808">Mở lại một tab nếu bạn vô tình đóng tab đó</translation>
 <translation id="8967866634928501045">Nhấn tổ hợp phím Alt+Shift+A để hiển thị</translation>
 <translation id="8968766641738584599">Lưu thẻ</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> không thể kiểm tra mật khẩu của bạn. Hãy thử lại sau 24 giờ hoặc <ph name="BEGIN_LINK" />kiểm tra các mật khẩu trong Tài khoản Google của bạn<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">Thoát</translation>
 <translation id="8972513834460200407">Vui lòng kiểm tra với quản trị viên mạng của bạn để đảm bảo rằng tường lửa không chặn tài nguyên đã tải xuống từ máy chủ của Google.</translation>
 <translation id="8973557916016709913">Xóa mức thu phóng</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index af449355d..e225e980 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">可用的设备</translation>
 <translation id="1042174272890264476">您的计算机还内置了 <ph name="SHORT_PRODUCT_NAME" /> 的 RLZ 库。RLZ 会指定非唯一、非个人身份识别代码来衡量某推广活动所带来的搜索量和 <ph name="SHORT_PRODUCT_NAME" /> 使用量。这些标签有时会显示在 <ph name="PRODUCT_NAME" /> 的 Google 搜索查询中。</translation>
 <translation id="1043818413152647937">要一并清除以下应用内的数据吗?</translation>
+<translation id="1045448422538531528">添加到群组</translation>
 <translation id="1046635659603195359">您似乎已在另一部设备上为 Google 助理设置了 Voice Match 功能。这些先前的录音可用于在此设备上创建语音模型,创建过程通常会在 1 分钟内完成。</translation>
 <translation id="104710386808485638">重启 Linux?</translation>
 <translation id="1047431265488717055">复制链接文字(&amp;X)</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">始终禁止使用摄像头</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" />要将您的 Chrome 设置恢复为原始默认设置。这不仅会重置您的主页、“打开新的标签页”页面和搜索引擎,而且还会禁用您的扩展程序并取消固定所有标签页。此外,其他临时数据和缓存的数据(例如 Cookie、内容和网站数据)也将被清除。</translation>
+<translation id="1084096383128641877">移除此密码不会删除您在 <ph name="DOMAIN" /> 上的帐号。要保护您在 <ph name="DOMAIN_LINK" /> 上的帐号免遭他人盗用,请更改您的密码或删除该帐号。</translation>
 <translation id="1084824384139382525">复制链接地址(&amp;E)</translation>
 <translation id="1085697365578766383">启动虚拟机时出错。请重试。</translation>
 <translation id="1090126737595388931">没有任何后台应用在运行</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">昨天运行过安全检查</translation>
 <translation id="1260451001046713751">始终允许 <ph name="HOST" /> 显示弹出式窗口和重定向</translation>
 <translation id="126156426083987769">演示模式设备许可出问题了。</translation>
+<translation id="1263490604593716556">该帐号由 <ph name="FIRST_PARENT_EMAIL" /> 和 <ph name="SECOND_PARENT_EMAIL" /> 管理。要在此设备上退出主帐号,请点击屏幕上的时间。在随即显示的菜单中,点击“退出”。</translation>
 <translation id="126710816202626562">翻译语言:</translation>
 <translation id="126768002343224824">16 倍</translation>
 <translation id="1272079795634619415">停止</translation>
@@ -414,7 +417,6 @@
 <translation id="1566049601598938765">网站</translation>
 <translation id="15662109988763471">所选打印机无法使用或未正确安装。请检查打印机,或尝试选择其他打印机。</translation>
 <translation id="1567387640189251553">自从您上次输入密码后,所连接的键盘已被更换。当前连接的键盘可能会试图窃取您的击键操作。</translation>
-<translation id="1567750922576943685">验证您的身份有助于保护您的个人信息</translation>
 <translation id="1567993339577891801">JavaScript 控制台</translation>
 <translation id="1568323446248056064">打开显示设备设置</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" />(访客)</translation>
@@ -516,7 +518,6 @@
 <translation id="1697150536837697295">艺术</translation>
 <translation id="1697686431566694143">修改文件</translation>
 <translation id="1698122934742150150">仅限当前的隐身会话</translation>
-<translation id="1698650002254827833">无法加载应用列表,请重试。</translation>
 <translation id="1700079447639026019">始终无法使用 Cookie 的网站</translation>
 <translation id="1701062906490865540">移除此用户</translation>
 <translation id="1703331064825191675">再也不必费心记住您的密码</translation>
@@ -870,6 +871,7 @@
 <translation id="2172784515318616985">继续</translation>
 <translation id="2173302385160625112">请检查您的互联网连接是否正常</translation>
 <translation id="2173801458090845390">向此设备添加申请 ID</translation>
+<translation id="2174948148799307353">该帐号由 <ph name="PARENT_EMAIL" /> 管理。要在此设备上退出主帐号,请点击屏幕上的时间。在随即显示的菜单中,点击“退出”。</translation>
 <translation id="2175607476662778685">快速启动栏</translation>
 <translation id="217576141146192373">无法添加打印机。请检查您打印机的配置,然后重试。</translation>
 <translation id="2177950615300672361">隐身标签页:<ph name="TAB_NAME" /></translation>
@@ -1077,7 +1079,6 @@
 <translation id="2442916515643169563">文字阴影</translation>
 <translation id="2445081178310039857">必须指定扩展程序根目录。</translation>
 <translation id="2445484935443597917">创建新的个人资料</translation>
-<translation id="2446585455334014596">“<ph name="APP_NAME" />”想验证您的身份</translation>
 <translation id="2448312741937722512">类型</translation>
 <translation id="2450223707519584812">您将无法添加用户,因为缺少 Google API 密钥。详情请见 <ph name="DETAILS_URL" />。</translation>
 <translation id="2450849356604136918">没有正在运行的视图</translation>
@@ -1475,6 +1476,7 @@
 <translation id="2948300991547862301">转到“<ph name="PAGE_TITLE" />”</translation>
 <translation id="29488703364906173">一款快速、简单且安全的网络浏览器,能很好满足现代网络对浏览器的要求。</translation>
 <translation id="2949289451367477459">使用位置信息。允许具有位置权限的应用和服务使用此设备的位置信息。Google 可能会定期收集位置数据,并以匿名方式使用这类数据,从而提高位置信息精确度并改善基于地理位置的服务。<ph name="BEGIN_LINK1" />了解详情<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">帮我注册</translation>
 <translation id="2956070239128776395">有区段嵌套在分组中:<ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">不允许任何网站修改您设备上的文件或文件夹</translation>
 <translation id="2958721676848865875">打包扩展程序警告</translation>
@@ -1599,6 +1601,7 @@
 <translation id="3139925690611372679">默认的黄色头像</translation>
 <translation id="3141318088920353606">正在听取…</translation>
 <translation id="3141917231319778873">“<ph name="DEVICE_NAME" />”不支持指定的请求。</translation>
+<translation id="3142562627629111859">新建群组</translation>
 <translation id="3143515551205905069">取消同步</translation>
 <translation id="3143754809889689516">从头播放</translation>
 <translation id="3144647712221361880">以其他身份打开链接</translation>
@@ -1623,6 +1626,7 @@
 <translation id="3159493096109238499">米黄色</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />](由硬件支持)</translation>
 <translation id="3161522574479303604">所有语言</translation>
+<translation id="3162853326462195145">学校帐号</translation>
 <translation id="3162899666601560689">网站可以使用 Cookie 来提升您的浏览体验,例如让您保持登录状态或记住您购物车中的商品</translation>
 <translation id="3163201441334626963">来自供应商 <ph name="VENDOR_ID" /> 的未知产品 <ph name="PRODUCT_ID" /></translation>
 <translation id="3164329792803560526">与 <ph name="APP_NAME" /> 分享此标签页</translation>
@@ -1681,7 +1685,6 @@
 <translation id="3246107497225150582">{0,plural, =1{请在 1 天内更新此设备}other{请在 # 天内更新此设备}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - 网络错误</translation>
 <translation id="3248902735035392926">安全至上。请花点时间<ph name="BEGIN_LINK" />立即检查一下您的扩展程序<ph name="END_LINK" />吧</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;未包含在证书中&gt;</translation>
 <translation id="3253225298092156258">无法选择</translation>
 <translation id="3253448572569133955">未知帐号</translation>
@@ -1786,6 +1789,7 @@
 <translation id="3396800784455899911">点击“接受并继续”按钮,即表示您同意上述针对这些 Google 服务的处理方式。</translation>
 <translation id="3399432415385675819">通知将被停用</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" />(<ph name="REFRESH_RATE" /> 赫兹) - 交错</translation>
+<translation id="3402585168444815892">正在注册演示模式</translation>
 <translation id="340282674066624">已下载 <ph name="DOWNLOAD_RECEIVED" />,还需 <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">未保存任何用于登录此网站的密码</translation>
 <translation id="3405664148539009465">自定义字体</translation>
@@ -1847,6 +1851,7 @@
 <translation id="3468999815377931311">Android 手机</translation>
 <translation id="3470442499439619530">删除此用户</translation>
 <translation id="3471876058939596279">HDMI 端口和 USB C 型端口无法同时用于视频。请另选一个视频端口。</translation>
+<translation id="3473241910002674503">在平板电脑模式下,使用相应按钮转到主屏幕、返回以及切换应用。</translation>
 <translation id="3473479545200714844">屏幕放大镜</translation>
 <translation id="3475843873335999118">抱歉,系统仍无法识别您的指纹。请输入您的密码。</translation>
 <translation id="3476303763173086583">发送使用情况数据和诊断数据。通过自动向 Google 发送诊断数据、设备数据和应用使用情况数据,帮助改善您孩子的 Android 使用体验。这些数据不会被用来辨识您孩子的身份,而是会被用来帮助提高系统和应用的稳定性以及实现其他方面的改进。部分汇总数据也会对 Google 应用和合作伙伴(例如 Android 开发者)有所帮助。这项<ph name="BEGIN_LINK1" />设置<ph name="END_LINK1" />是由此设备的所有者强制指定的。此设备的所有者可以选择向 Google 发送此设备的诊断数据和使用情况数据。如果您已为孩子开启“其他网络与应用活动记录”设置,这些数据可能会被保存到其 Google 帐号中。<ph name="BEGIN_LINK2" />了解详情<ph name="END_LINK2" /></translation>
@@ -1856,6 +1861,7 @@
 <translation id="3479552764303398839">以后再说</translation>
 <translation id="3479685872808224578">检测不到打印服务器。请检查该地址,然后重试。</translation>
 <translation id="3481268647794498892">将于 <ph name="COUNTDOWN_SECONDS" /> 秒后在<ph name="ALTERNATIVE_BROWSER_NAME" />中打开</translation>
+<translation id="3482719661246593752"><ph name="ORIGIN" /> 可查看以下文件</translation>
 <translation id="3484273680291419129">正在移除有害软件…</translation>
 <translation id="3484869148456018791">获取新的证书</translation>
 <translation id="3487007233252413104">匿名函数</translation>
@@ -1917,6 +1923,7 @@
 <translation id="3564848315152754834">USB 安全密钥</translation>
 <translation id="3566721612727112615">未添加任何网站</translation>
 <translation id="3569382839528428029">您允许 <ph name="APP_NAME" /> 共享您的屏幕吗?</translation>
+<translation id="3569682580018832495"><ph name="ORIGIN" /> 可查看以下文件和文件夹</translation>
 <translation id="3571734092741541777">设置</translation>
 <translation id="3574210789297084292">登录</translation>
 <translation id="3574917942258583917">仍要退出无痕模式?</translation>
@@ -1926,6 +1933,7 @@
 <translation id="3578594933904494462">此标签页的内容正在共享中。</translation>
 <translation id="357886715122934472">&lt;strong&gt;<ph name="SENDER" />&lt;/strong&gt;希望与您拥有的以下群组共享打印机&lt;strong&gt;<ph name="PRINTER_NAME" />&lt;/strong&gt;:&lt;strong&gt;<ph name="GROUP_NAME" />&lt;/strong&gt;。如果您接受,该群组的所有成员都可以将内容发送到该打印机进行打印。</translation>
 <translation id="357889014807611375">按流量计费的 Wi-Fi</translation>
+<translation id="3582057310199111521">在诈骗网站上输入过,并且遭遇了数据泄露</translation>
 <translation id="3584169441612580296">读取和更改您计算机上的照片、音乐和其他媒体</translation>
 <translation id="3586806079541226322">无法打开此文件</translation>
 <translation id="3586931643579894722">隐藏详细信息</translation>
@@ -2146,7 +2154,7 @@
 <translation id="383161972796689579">此设备的所有者已禁止添加新用户</translation>
 <translation id="3834775135533257713">无法添加应用“<ph name="TO_INSTALL_APP_NAME" />”,因为它与“<ph name="INSTALLED_APP_NAME" />”冲突。</translation>
 <translation id="3835522725882634757">糟糕!<ph name="PRODUCT_NAME" />无法解读服务器所发送的数据。请<ph name="BEGIN_LINK" />报告错误<ph name="END_LINK" />,并附上<ph name="BEGIN2_LINK" />原始列表<ph name="END2_LINK" />。</translation>
-<translation id="383669374481694771">这是关于此设备及其使用情况(例如电池电量、系统与应用活动记录以及错误消息)的一般信息。我们会使用这些数据来改善 Android,部分汇总信息还会有助于改善 Google 应用,并会协助我们的合作伙伴(例如 Android 开发者)改善其应用和产品。</translation>
+<translation id="383669374481694771">这是关于此设备及其使用情况(例如电池电量、系统与应用活动以及错误)的一般信息。我们会使用这些数据来改善 Android,部分汇总信息还会有助于改善 Google 应用,并会协助我们的合作伙伴(例如 Android 开发者)改善其应用和产品。</translation>
 <translation id="3838085852053358637">未能成功加载扩展程序</translation>
 <translation id="3838486795898716504">更多“<ph name="PAGE_TITLE" />”</translation>
 <translation id="3838543471119263078">Cookie 及其他网站数据和插件数据</translation>
@@ -2267,6 +2275,7 @@
 <translation id="3971764089670057203">此安全密钥上的指纹</translation>
 <translation id="3973660817924297510">正在检查密码 (<ph name="CHECKED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">无法连接到指定领域的服务器</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> 无法检查您的密码。请稍后再试。</translation>
 <translation id="3976108569178263973">没有找到可用的打印机。</translation>
 <translation id="397703832102027365">正在完成...</translation>
 <translation id="3977886311744775419">使用此网络类型时无法下载自动更新,但您可以手动检查是否有更新。</translation>
@@ -2330,6 +2339,7 @@
 <translation id="4068506536726151626">此网页包含来自以下网站的元素,这些网站正在追踪您的位置:</translation>
 <translation id="4068776064906523561">已保存的指纹</translation>
 <translation id="407173827865827707">点击时</translation>
+<translation id="4073520450811433493">设置同步</translation>
 <translation id="4074900173531346617">电子邮件签名人证书</translation>
 <translation id="407520071244661467">缩放</translation>
 <translation id="4075639477629295004">无法投射“<ph name="FILE_NAME" />”。</translation>
@@ -2566,6 +2576,7 @@
 <translation id="4421932782753506458">猫咪</translation>
 <translation id="4423376891418188461">还原设置</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />,您的管理员要求您更改密码。</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> 无法检查您的密码。请过 24 小时再试。</translation>
 <translation id="4429030830601238961">此数据违反了贵组织的安全政策,因此无法粘贴。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4430369329743628066">已添加书签</translation>
@@ -2578,6 +2589,7 @@
 <translation id="4441124369922430666">要在设备开启时自动启动此应用吗?</translation>
 <translation id="4441147046941420429">要继续,请从您的设备上拔出安全密钥,然后重新插入并轻触它</translation>
 <translation id="444134486829715816">展开...</translation>
+<translation id="4442329324652245220">您需要先登录 Google 帐号才能使用 <ph name="IDS_SHORT_PRODUCT_NAME" /> 的密码检查功能</translation>
 <translation id="4442424173763614572">DNS 查找失败</translation>
 <translation id="4443536555189480885">帮助(&amp;H)</translation>
 <translation id="4444304522807523469">使用通过 USB 连接的或本地网络中的文档扫描仪</translation>
@@ -2604,11 +2616,13 @@
 <translation id="4476659815936224889">要扫描此二维码,您可以使用手机上的二维码扫描器应用,也可以使用某些相机应用。</translation>
 <translation id="4477015793815781985">必须以 Ctrl 键、Alt 键或 ⌘ 键开头</translation>
 <translation id="4478664379124702289">链接存储为(&amp;K)...</translation>
+<translation id="4478777936860197922">尚未保存任何密码。您需要先保存密码才能使用 <ph name="IDS_SHORT_PRODUCT_NAME" /> 的密码检查功能。</translation>
 <translation id="4479424953165245642">管理自助服务终端应用</translation>
 <translation id="4479639480957787382">以太网</translation>
 <translation id="4479877282574735775">正在配置虚拟机。这可能需要几分钟的时间。</translation>
 <translation id="4480590691557335796">Chrome 可以查找您计算机上的有害软件并将其移除</translation>
 <translation id="4481530544597605423">未配对的设备</translation>
+<translation id="4488107067273194838">完成设置后查看浏览器同步选项</translation>
 <translation id="4488502501195719518">清除所有数据?</translation>
 <translation id="4495419450179050807">不要在本页上显示</translation>
 <translation id="4496054781541092778">已自动禁用<ph name="PERMISSION" /></translation>
@@ -2850,6 +2864,7 @@
 <translation id="4849517651082200438">不安装</translation>
 <translation id="4850669014075537160">滚动</translation>
 <translation id="4850886885716139402">视图</translation>
+<translation id="485197095346966382">当您使用已泄露的密码登录时,<ph name="IDS_SHORT_PRODUCT_NAME" /> 会通知您</translation>
 <translation id="4853020600495124913">在新窗口中打开(&amp;O)</translation>
 <translation id="4854317507773910281">请选择家长帐号以寻求批准</translation>
 <translation id="485480310608090163">更多设置和权限</translation>
@@ -2868,6 +2883,7 @@
 <translation id="4871322859485617074">PIN 码包含无效字符</translation>
 <translation id="4871370605780490696">添加书签</translation>
 <translation id="4871719318659334896">关闭群组</translation>
+<translation id="4871852311166078968">添加到群组</translation>
 <translation id="4873312501243535625">媒体文件检查工具</translation>
 <translation id="4876273079589074638">帮助我们的工程师调查并解决此崩溃问题。请列出您的具体操作,越详细越好!</translation>
 <translation id="4876895919560854374">将屏幕锁定和解锁</translation>
@@ -2959,7 +2975,6 @@
 <translation id="4992473555164495036">您的管理员限制了可用的输入法。</translation>
 <translation id="4994474651455208930">允许网站要求成为协议的默认处理程序</translation>
 <translation id="4994754230098574403">正在设置</translation>
-<translation id="4996978546172906250">分享方式</translation>
 <translation id="4997086284911172121">未连接到互联网。</translation>
 <translation id="4997384734315285248">卸载 Plugin VM</translation>
 <translation id="4998430619171209993">已开启</translation>
@@ -3048,6 +3063,7 @@
 <translation id="5117930984404104619">监控其他扩展程序的行为(包括访问过的网址)</translation>
 <translation id="5119173345047096771">Mozilla Firefox</translation>
 <translation id="5121130586824819730">您的硬盘已满。请保存到其他位置或在硬盘上腾出更多空间。</translation>
+<translation id="5122384452788334261">您设备上的存储空间不足。建议您释放至少 <ph name="RECOMMENDED_SPACE" /> 的可用空间以便使用 Plugin VM。要释放空间,请从设备存储空间中删除文件。</translation>
 <translation id="5123433949759960244">篮球</translation>
 <translation id="5125751979347152379">网址无效。</translation>
 <translation id="5126611267288187364">查看更改</translation>
@@ -3058,7 +3074,6 @@
 <translation id="5135085122826131075">只需说“Ok Google”即可访问您的 Google 助理。</translation>
 <translation id="5135533361271311778">无法创建书签项。</translation>
 <translation id="5137501176474113045">删除此项</translation>
-<translation id="5138982052046316113">调整 Linux 磁盘大小</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />,用<ph name="DEFAULT_SEARCH_ENGINE_NAME" />执行搜索</translation>
 <translation id="5139823398361067371">为您的安全密钥输入 PIN 码。如果您不知道 PIN 码,则需重置此安全密钥。</translation>
 <translation id="5139955368427980650">打开(&amp;O)</translation>
@@ -3391,7 +3406,7 @@
 <translation id="5582839680698949063">主菜单</translation>
 <translation id="5583640892426849032">退格</translation>
 <translation id="5584088138253955452">保存用户名?</translation>
-<translation id="5584915726528712820"><ph name="BEGIN_PARAGRAPH1" />这是关于您的设备及其使用情况(例如电池电量、系统与应用活动记录以及错误消息)的一般信息。我们会使用这些数据来改善 Android;部分汇总信息也会有助于改善 Google 应用,并会协助我们的合作伙伴(例如 Android 开发者)改善其应用和产品。<ph name="END_PARAGRAPH1" />
+<translation id="5584915726528712820"><ph name="BEGIN_PARAGRAPH1" />这是关于您的设备及其使用情况(例如电池电量、系统与应用活动以及错误)的一般信息。我们会使用这些数据来改善 Android;部分汇总信息也会有助于改善 Google 应用,并会协助我们的合作伙伴(例如 Android 开发者)改善其应用和产品。<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />关闭这项功能并不会影响您的设备发送基本服务(例如系统更新和安全防护)所需的信息。<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />所有者可以通过“设置”&gt;“高级”&gt;“自动向 Google 发送诊断数据和使用情况数据”来控制这项功能。<ph name="END_PARAGRAPH3" />
     <ph name="BEGIN_PARAGRAPH4" />如果您已开启了“其他网络与应用活动记录”设置,这些数据可能会保存在您的 Google 帐号中。您可以前往 account.google.com 查看和删除您的数据以及更改您的帐号设置。<ph name="END_PARAGRAPH4" /></translation>
@@ -3510,6 +3525,7 @@
 <translation id="5739235828260127894">正在等待验证。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">特大</translation>
 <translation id="574209121243317957">音高</translation>
+<translation id="5745136023067925867">接收 <ph name="DEVICE_TYPE" />相关提示、优惠和动态,并分享反馈</translation>
 <translation id="5746169159649715125">另存为 PDF</translation>
 <translation id="5747552184818312860">到期时间</translation>
 <translation id="5747785204778348146">开发者版本 - 不稳定</translation>
@@ -3922,7 +3938,6 @@
 <translation id="6291953229176937411">在 Finder 中显示(&amp;S)</translation>
 <translation id="6295158916970320988">所有网站</translation>
 <translation id="6295855836753816081">正在保存…</translation>
-<translation id="629730747756840877">帐号</translation>
 <translation id="6298962879096096191">使用 Google Play 安装 Android 应用</translation>
 <translation id="630065524203833229">退出(&amp;X)</translation>
 <translation id="6300718114348072351">无法自动配置<ph name="PRINTER_NAME" />。请指定高级打印机详细信息。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation>
@@ -4328,7 +4343,6 @@
 <translation id="6865598234501509159">不是<ph name="LANGUAGE" />网页</translation>
 <translation id="6865708901122695652">WebRTC 事件日志 (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">色温</translation>
-<translation id="6870888490422746447">选择要分享给哪个应用:</translation>
 <translation id="6871644448911473373">OCSP 响应程序:<ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">您输入的密码被服务器拒绝了。</translation>
 <translation id="6876155724392614295">自行车</translation>
@@ -4421,6 +4435,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - 活动日志</translation>
 <translation id="6997707937646349884">在您的设备上:</translation>
 <translation id="6998793565256476099">注册设备以进行视频会议</translation>
+<translation id="6999956497249459195">新建群组</translation>
 <translation id="7000206553895739324">“<ph name="PRINTER_NAME" />”已建立连接但需要配置</translation>
 <translation id="7000347579424117903">必须以 Ctrl 键、Alt 键或搜索键开头</translation>
 <translation id="7001036685275644873">正在备份 Linux 应用和文件</translation>
@@ -4719,6 +4734,7 @@
 <translation id="7400418766976504921">网址</translation>
 <translation id="7400839060291901923">请在您的 <ph name="PHONE_NAME" /> 设备上设置连接</translation>
 <translation id="7401778920660465883">关闭此消息</translation>
+<translation id="7403642243184989645">正在下载资源</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{1 小时前运行过安全检查}other{{NUM_HOURS} 小时前运行过安全检查}}</translation>
 <translation id="740624631517654988">已拦截弹出式窗口</translation>
 <translation id="7407430846095439694">导入并绑定</translation>
@@ -4955,6 +4971,7 @@
 <translation id="7716781361494605745">Netscape 证书授权中心政策网址</translation>
 <translation id="7717014941119698257">正在下载:<ph name="STATUS" /></translation>
 <translation id="7717845620320228976">检查是否有更新</translation>
+<translation id="7719070594859855691">授权使用摄像头</translation>
 <translation id="7719367874908701697">网页缩放</translation>
 <translation id="7721179060400456005">允许窗口跨多个显示屏进行显示</translation>
 <translation id="7722040605881499779">要更新,所需空间为:<ph name="NECESSARY_SPACE" /></translation>
@@ -4969,7 +4986,6 @@
 <translation id="7744047395460924128">查看您的打印记录</translation>
 <translation id="7744192722284567281">遭遇了数据泄露</translation>
 <translation id="7750228210027921155">画中画</translation>
-<translation id="7751229152614300329">“安全浏览”功能已更新,正在保护您免受有害网站及下载内容的侵扰</translation>
 <translation id="7751260505918304024">全部显示</translation>
 <translation id="7754704193130578113">下载前询问每个文件的保存位置</translation>
 <translation id="7755287808199759310">您的父亲/母亲可为您取消屏蔽此网站</translation>
@@ -5057,6 +5073,7 @@
     <ph name="BEGIN_BOLD" />注意<ph name="END_BOLD" />:在恢复过程中,系统将会重新启动。</translation>
 <translation id="7828731929332799387">这将会删除第三方环境下的所有可用 Cookie 和网站数据。要继续吗?</translation>
 <translation id="7829298379596169484">正在存取音频输入</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> 无法检查您的密码。请检查您的互联网连接。</translation>
 <translation id="7829877209233347340">如需添加学校帐号,请让家长登录并向您授权</translation>
 <translation id="7830594666202422257">连接到 Linux</translation>
 <translation id="7831491651892296503">配置网络时出错</translation>
@@ -5126,6 +5143,7 @@
 <translation id="7915471803647590281">请先告诉我们所发生的情况,然后再发送反馈。</translation>
 <translation id="7918257978052780342">注册</translation>
 <translation id="7919210519031517829"><ph name="DURATION" /> 秒</translation>
+<translation id="7920363873148656176"><ph name="ORIGIN" /> 可以查看“<ph name="FILENAME" />”的内容</translation>
 <translation id="7924358170328001543">转发端口时出错</translation>
 <translation id="792514962475806987">停靠的放大镜的缩放级别:</translation>
 <translation id="7925247922861151263">AAA 检查失败</translation>
@@ -5278,6 +5296,7 @@
 <translation id="8107015733319732394">正在在您的 <ph name="DEVICE_TYPE" /> 上安装 Google Play 商店。这可能需要几分钟的时间。</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{无第三方 Cookie}=1{已屏蔽 1 个第三方 Cookie}other{已屏蔽 # 个第三方 Cookie}}</translation>
 <translation id="810875025413331850">未找到附近的设备。</translation>
+<translation id="8114199541033039755">在平板电脑模式下,使用相应按钮转到主屏幕、返回以及切换应用。如果启用了 ChromeVox 或自动点击功能,系统即会开启此设置。</translation>
 <translation id="8114875720387900039">水平分割</translation>
 <translation id="8116972784401310538">书签管理器(&amp;B)</translation>
 <translation id="8117620576188476503">使用状态栏管理连接、更新和设置。若要通过键盘访问这些内容,请按 Alt + Shift + S 组合键。</translation>
@@ -5286,6 +5305,7 @@
 <translation id="8118488170956489476">您的<ph name="BEGIN_LINK" />浏览器由所属组织管理<ph name="END_LINK" /></translation>
 <translation id="8118860139461251237">管理您的下载内容</translation>
 <translation id="811942868379260654"><ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" />、<ph name="RECENT_PERMISSIONS_CHANGE_1" />、<ph name="RECENT_PERMISSIONS_CHANGE_2" />、…</translation>
+<translation id="8120715633374652536">您设备上的存储空间不足。必须有至少 <ph name="MINIMUM_SPACE" /> 的可用空间才能使用 Plugin VM,但最好能有超过 <ph name="RECOMMENDED_SPACE" /> 的可用空间。要释放空间,请从设备存储空间中删除文件。</translation>
 <translation id="8123590694679414600">数据已于 <ph name="TIME" />使用您的同步密码加密。这并不包括 Google Pay 中的付款方式和地址。</translation>
 <translation id="81238879832906896">黄色和白色花朵</translation>
 <translation id="8124313775439841391">受管理的 ONC</translation>
@@ -5395,7 +5415,8 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> 已隐藏鼠标指针。</translation>
 <translation id="8264024885325823677">此设置由您的管理员管理。</translation>
 <translation id="8264718194193514834">“<ph name="EXTENSION_NAME" />”触发了全屏模式。</translation>
-<translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />这是关于此设备及其使用情况(例如电池电量、系统与应用活动记录以及错误消息)的一般信息。我们会使用这些数据来改善 Android;部分汇总信息也会有助于改善 Google 应用,并会协助我们的合作伙伴(例如 Android 开发者)改善其应用和产品。<ph name="END_PARAGRAPH1" />
+<translation id="826511437356419340">已进入窗口概览模式。要四处浏览,请滑动手指或(若使用键盘)按 Tab 键。</translation>
+<translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />这是关于此设备及其使用情况(例如电池电量、系统与应用活动以及错误)的一般信息。我们会使用这些数据来改善 Android;部分汇总信息也会有助于改善 Google 应用,并会协助我们的合作伙伴(例如 Android 开发者)改善其应用和产品。<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />关闭这项功能并不会影响此设备发送基本服务(例如系统更新和安全防护)所需的信息。<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />所有者可以通过“设置”&gt;“高级”&gt;“自动向 Google 发送诊断数据和使用情况数据”来控制这项功能。<ph name="END_PARAGRAPH3" />
     <ph name="BEGIN_PARAGRAPH4" />如果您已为孩子开启了“其他网络与应用活动记录”设置,这些数据可能会保存在您孩子的 Google 帐号中。您可以前往 families.google.com 详细了解这些设置以及对应的调整方式。<ph name="END_PARAGRAPH4" /></translation>
@@ -5503,6 +5524,7 @@
 <translation id="8426713856918551002">正在启用</translation>
 <translation id="8427292751741042100">嵌入到任何主机上</translation>
 <translation id="8428213095426709021">设置</translation>
+<translation id="8428271547607112339">添加学校帐号</translation>
 <translation id="8428628598981198790">您的安全密钥无法用于此网站</translation>
 <translation id="84297032718407999">您将在 <ph name="LOGOUT_TIME_LEFT" />后退出登录</translation>
 <translation id="8431190899827883166">显示点按操作反馈</translation>
@@ -5566,6 +5588,7 @@
 <translation id="851263357009351303">始终允许 <ph name="HOST" /> 显示图片</translation>
 <translation id="8513108775083588393">自动旋转屏幕</translation>
 <translation id="8514746246728959655">尝试改用一个不同的安全密钥</translation>
+<translation id="851960115758509829">您的应用、设置和其他自定义项会在您使用 Google 帐号登录的所有 Chrome 操作系统设备上保持同步。</translation>
 <translation id="8521475323816527629">快速访问您的应用</translation>
 <translation id="8523493869875972733">保留更改</translation>
 <translation id="8523849605371521713">按政策添加</translation>
@@ -5744,7 +5767,7 @@
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8738766971144275885">此文件已加密,因此已被禁止打开。</translation>
 <translation id="8742371904523228557">您的 <ph name="ORIGIN" /> 验证码是 <ph name="ONE_TIME_CODE" /></translation>
-<translation id="8742998548129056176">这是关于您的设备及其使用情况(例如电池电量、系统与应用活动记录以及错误消息)的一般信息。我们会使用这些数据来改善 Android,部分汇总信息还会有助于改善 Google 应用,并会协助我们的合作伙伴(例如 Android 开发者)改善其应用和产品。</translation>
+<translation id="8742998548129056176">这是关于您的设备及其使用情况(例如电池电量、系统与应用活动以及错误)的一般信息。我们会使用这些数据来改善 Android,部分汇总信息还会有助于改善 Google 应用,并会协助我们的合作伙伴(例如 Android 开发者)改善其应用和产品。</translation>
 <translation id="8743390665131937741">全屏放大镜的缩放级别:</translation>
 <translation id="8743864605301774756">上次更新时间:1 小时前</translation>
 <translation id="8746654918629346731">您已请求安装“<ph name="EXTENSION_NAME" />”</translation>
@@ -5847,11 +5870,13 @@
 <translation id="885701979325669005">存储数据</translation>
 <translation id="8859057652521303089">选择语言:</translation>
 <translation id="8859174528519900719">辅助框架:<ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">家长帐号</translation>
 <translation id="8862003515646449717">改用极速浏览器</translation>
 <translation id="8863753581171631212">在<ph name="APP" />的新窗口中打开链接</translation>
 <translation id="8864055848767439877">正在将“<ph name="TAB_NAME" />”分享到 <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> 已从此设备中移除</translation>
 <translation id="8867228703146808825">将版本详情复制到剪贴板</translation>
+<translation id="8868333925931032127">正在启动演示模式</translation>
 <translation id="8868626022555786497">已使用</translation>
 <translation id="8870413625673593573">最近关闭的标签页</translation>
 <translation id="8871551568777368300">已被管理员固定</translation>
@@ -5930,6 +5955,7 @@
 <translation id="8966870118594285808">如果您无意中关闭了某个标签页,可将其重新打开</translation>
 <translation id="8967866634928501045">同时按 Alt+Shift+A 即可显示</translation>
 <translation id="8968766641738584599">保存卡片</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> 无法检查您的密码。请过 24 小时再试,或者<ph name="BEGIN_LINK" />在您的 Google 帐号中检查密码<ph name="END_LINK" />。</translation>
 <translation id="89720367119469899">转义</translation>
 <translation id="8972513834460200407">请与您的网络管理员联系,确保防火墙没有阻止系统从 Google 服务器下载内容。</translation>
 <translation id="8973557916016709913">移除缩放级别</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 42c74f6..e7ff0a41 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">可用的裝置</translation>
 <translation id="1042174272890264476">您的電腦也內置了 <ph name="SHORT_PRODUCT_NAME" /> 的 RLZ 資料庫。RLZ 可指定非重複、非個人的可識別標記,以評估特定宣傳廣告活動所提升的搜尋數量與 <ph name="SHORT_PRODUCT_NAME" /> 使用量。這些標籤有時也會顯示在 <ph name="PRODUCT_NAME" /> 的 Google 搜尋查詢中。</translation>
 <translation id="1043818413152647937">要清除這些裝置的資料嗎?</translation>
+<translation id="1045448422538531528">新增至群組</translation>
 <translation id="1046635659603195359">您似乎已在另一部裝置上透過「Google 助理」設定了 Voice Match 功能。先前的錄音可在此裝置上用於建立語音模型,過程需時少於一分鐘。</translation>
 <translation id="104710386808485638">要重新啟動 Linux 嗎?</translation>
 <translation id="1047431265488717055">複製連結文字(&amp;X)</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">永遠封鎖存取相機</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> 要求還原您的 Chrome 設定為原始預設值,並會重設您的首頁、新分頁和搜尋引擎、停用您的擴充功能,以及取消固定所有分頁。其他暫存資料和快取資料 (例如 Cookie、內容和網站資料) 亦會一併清除。</translation>
+<translation id="1084096383128641877">移除此密碼不會刪除您在 <ph name="DOMAIN" /> 的帳戶。請變更密碼或刪除您在 <ph name="DOMAIN_LINK" /> 的帳戶,以免被他人盜用。</translation>
 <translation id="1084824384139382525">複製連結網址(&amp;E)</translation>
 <translation id="1085697365578766383">啟動虛擬機器時發生錯誤,請再試一次。</translation>
 <translation id="1090126737595388931">沒有執行中的背景應用程式</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">昨天已執行安全檢查</translation>
 <translation id="1260451001046713751">一律顯示 <ph name="HOST" /> 的彈出式視窗及重新導向</translation>
 <translation id="126156426083987769">示範模式的裝置授權發生問題。</translation>
+<translation id="1263490604593716556">帳戶由 <ph name="FIRST_PARENT_EMAIL" /> 和 <ph name="SECOND_PARENT_EMAIL" /> 管理。如要登出此裝置上的主要帳戶,請按一下螢幕上的時間。當畫面顯示選單時,按一下 [登出]。</translation>
 <translation id="126710816202626562">翻譯語言:</translation>
 <translation id="126768002343224824">16 倍</translation>
 <translation id="1272079795634619415">停止</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">網站</translation>
 <translation id="15662109988763471">所選打印機無法使用或尚未正確安裝。請檢查打印機,或嘗試選取其他打印機。</translation>
 <translation id="1567387640189251553">自您上次輸入密碼後,裝置連接了另一個鍵盤。目前的鍵盤可能正嘗試盜取您的按鍵動作。</translation>
-<translation id="1567750922576943685">驗證身分有助保護您的個人資料</translation>
 <translation id="1567993339577891801">JavaScript 控制器</translation>
 <translation id="1568323446248056064">開啟裝置顯示設定</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (訪客)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">藝術</translation>
 <translation id="1697686431566694143">編輯檔案</translation>
 <translation id="1698122934742150150">只限目前的無痕模式工作階段</translation>
-<translation id="1698650002254827833">無法載入應用程式清單,請重試。</translation>
 <translation id="1700079447639026019">網站一律無法使用 Cookie</translation>
 <translation id="1701062906490865540">移除這個使用者</translation>
 <translation id="1703331064825191675">不用再擔心密碼問題</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">繼續</translation>
 <translation id="2173302385160625112">檢查互聯網連線</translation>
 <translation id="2173801458090845390">新增此裝置的申請 ID</translation>
+<translation id="2174948148799307353">帳戶由 <ph name="PARENT_EMAIL" /> 管理如要登出此裝置上的主要帳戶,請按一下螢幕上的時間。當畫面顯示選單時,按一下 [登出]。</translation>
 <translation id="2175607476662778685">快速啟動列</translation>
 <translation id="217576141146192373">無法新增打印機。請檢查打印機設定,然後再試一次。</translation>
 <translation id="2177950615300672361">無痕式分頁:<ph name="TAB_NAME" /></translation>
@@ -1080,7 +1082,6 @@
 <translation id="2442916515643169563">文字陰影</translation>
 <translation id="2445081178310039857">請指定擴充功能根目錄。</translation>
 <translation id="2445484935443597917">建立新的設定檔</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> 要求驗證您的身分</translation>
 <translation id="2448312741937722512">類型</translation>
 <translation id="2450223707519584812">找不到 Google API 金鑰,因此您無法新增使用者。詳情請參閱 <ph name="DETAILS_URL" />。</translation>
 <translation id="2450849356604136918">沒有運作中的檢視</translation>
@@ -1478,6 +1479,7 @@
 <translation id="2948300991547862301">前往<ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">一款快速、簡單又安全的新世代網絡瀏覽器。</translation>
 <translation id="2949289451367477459">使用定位服務。允許擁有位置資訊存取權的應用程式和服務使用此裝置的位置資訊。Google 可能會定期收集位置資訊資料,並以匿名方式使用這些資料,以提高定位的精確度及改善適地性服務。<ph name="BEGIN_LINK1" />瞭解詳情<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">我要訂閱</translation>
 <translation id="2956070239128776395">群組中具有巢狀部份:<ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">不允許任何網站編輯裝置上的檔案或資料夾</translation>
 <translation id="2958721676848865875">封裝擴充功能警告</translation>
@@ -1602,6 +1604,7 @@
 <translation id="3139925690611372679">預設黃色圖片</translation>
 <translation id="3141318088920353606">正在聽取…</translation>
 <translation id="3141917231319778873">「<ph name="DEVICE_NAME" />」不支援指定請求。</translation>
+<translation id="3142562627629111859">新群組</translation>
 <translation id="3143515551205905069">取消同步處理</translation>
 <translation id="3143754809889689516">從頭開始播放</translation>
 <translation id="3144647712221361880">以其他身分開啟連結</translation>
@@ -1625,6 +1628,7 @@
 <translation id="3159493096109238499">米黃色</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (硬件憑證支援)</translation>
 <translation id="3161522574479303604">所有語言</translation>
+<translation id="3162853326462195145">學校帳戶</translation>
 <translation id="3162899666601560689">網站可使用 Cookie 來改善瀏覽體驗,例如讓您保持登入狀態或記住購物車中的商品</translation>
 <translation id="3163201441334626963">來自供應商 <ph name="VENDOR_ID" /> 的不明產品 <ph name="PRODUCT_ID" /></translation>
 <translation id="3164329792803560526">正在將此分頁與 <ph name="APP_NAME" /> 共用</translation>
@@ -1683,7 +1687,6 @@
 <translation id="3246107497225150582">{0,plural, =1{請在 1 天內更新裝置}other{請在 # 天內更新裝置}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - 網絡錯誤</translation>
 <translation id="3248902735035392926">安全至上。請花一點時間<ph name="BEGIN_LINK" />立即檢查您的擴充功能<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;不是憑證的一部分&gt;</translation>
 <translation id="3253225298092156258">無法使用</translation>
 <translation id="3253448572569133955">不明帳戶</translation>
@@ -1788,6 +1791,7 @@
 <translation id="3396800784455899911">按一下 [接受並繼續] 按鈕,即表示您同意上述的 Google 服務處理程序。.</translation>
 <translation id="3399432415385675819">通知將會停用</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz) - 交錯顯示</translation>
+<translation id="3402585168444815892">註冊示範模式</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />,<ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">此網站沒有可供儲存的密碼</translation>
 <translation id="3405664148539009465">自訂字型</translation>
@@ -1849,6 +1853,7 @@
 <translation id="3468999815377931311">Android 手機</translation>
 <translation id="3470442499439619530">移除這個使用者</translation>
 <translation id="3471876058939596279">HDMI 和 USB Type-C 連接埠無法同時用於影片。請使用其他影片連接埠。</translation>
+<translation id="3473241910002674503">在平板電腦模式中,使用按鈕前往主畫面、返回及切換應用程式。</translation>
 <translation id="3473479545200714844">放大鏡</translation>
 <translation id="3475843873335999118">很抱歉,系統仍然無法識別您的指紋,請輸入您的密碼。</translation>
 <translation id="3476303763173086583">傳送使用情況和診斷資料。自動將診斷、裝置及應用程式的使用情況資料傳送至 Google,協助改善您子女的 Android 使用體驗。這些資料不會用來識別您子女的身分,而是用於改善系統和應用程式的穩定性和其他效能。部分彙整資料也會用於協助 Google 應用程式與合作夥伴 (例如 Android 開發人員)。擁有者可強制執行此<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />。擁有者可選擇是否將此裝置的診斷和使用情況資料傳送給 Google。如果已為子女開啟其他「網絡及應用程式活動記錄」設定,系統可能會將此資料儲存至其 Google 帳戶。<ph name="BEGIN_LINK2" />瞭解詳情<ph name="END_LINK2" /></translation>
@@ -2273,6 +2278,7 @@
 <translation id="3971764089670057203">此安全金鑰上的指紋</translation>
 <translation id="3973660817924297510">正在檢查密碼 (已檢查 <ph name="CHECKED_PASSWORDS" /> 個,共 <ph name="TOTAL_PASSWORDS" /> 個)…</translation>
 <translation id="3975565978598857337">無法連線至指定的伺服器領域</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> 無法檢查密碼,請稍後再試。</translation>
 <translation id="3976108569178263973">沒有可用的打印機。</translation>
 <translation id="397703832102027365">即將完成…</translation>
 <translation id="3977886311744775419">此網絡類型無法下載自動更新,但您可以手動檢查更新。</translation>
@@ -2336,6 +2342,7 @@
 <translation id="4068506536726151626">這個網頁包含來自下列網站的元素,而且這些元素正在追蹤您的位置:</translation>
 <translation id="4068776064906523561">已儲存的指紋</translation>
 <translation id="407173827865827707">僅在點擊時</translation>
+<translation id="4073520450811433493">設定同步</translation>
 <translation id="4074900173531346617">電郵簽名者憑證</translation>
 <translation id="407520071244661467">縮放比例</translation>
 <translation id="4075639477629295004">無法投放 <ph name="FILE_NAME" />。</translation>
@@ -2572,6 +2579,7 @@
 <translation id="4421932782753506458">長毛貓</translation>
 <translation id="4423376891418188461">還原設定</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />,管理員要求您變更密碼。</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> 無法檢查密碼,請於 24 小時後再試一次。</translation>
 <translation id="4429030830601238961">此資料違反機構的安全性政策,因此無法貼上。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4430369329743628066">已新增書籤</translation>
@@ -2584,6 +2592,7 @@
 <translation id="4441124369922430666">您要在裝置開機時自動啟動這個應用程式嗎?</translation>
 <translation id="4441147046941420429">如要繼續,請從裝置上移除安全密鑰,然後重新插入並輕觸密鑰</translation>
 <translation id="444134486829715816">展開…</translation>
+<translation id="4442329324652245220"><ph name="IDS_SHORT_PRODUCT_NAME" /> 可在您使用 Google 帳戶登入時檢查密碼</translation>
 <translation id="4442424173763614572">DNS 查詢失敗</translation>
 <translation id="4443536555189480885">說明(&amp;H)</translation>
 <translation id="4444304522807523469">存取透過 USB 外接或區域網絡上的文件掃描器</translation>
@@ -2610,11 +2619,13 @@
 <translation id="4476659815936224889">如要掃瞄此條碼,您可使用手機上的二維條碼掃瞄器或部分相機應用程式。</translation>
 <translation id="4477015793815781985">必須以 Ctrl、Alt 或 ⌘ 鍵開頭</translation>
 <translation id="4478664379124702289">另存連結(&amp;K)…</translation>
+<translation id="4478777936860197922">沒有已儲存的密碼。儲存密碼時,<ph name="IDS_SHORT_PRODUCT_NAME" /> 可檢查您的密碼。</translation>
 <translation id="4479424953165245642">管理 Kiosk 應用程式</translation>
 <translation id="4479639480957787382">以太網絡</translation>
 <translation id="4479877282574735775">正在設定虛擬機器。這項操作可能需時數分鐘。</translation>
 <translation id="4480590691557335796">Chrome 能夠在您的電腦上尋找並移除有害軟件</translation>
 <translation id="4481530544597605423">未配對的裝置</translation>
+<translation id="4488107067273194838">在設定完成後查看瀏覽器同步選項</translation>
 <translation id="4488502501195719518">要清除所有資料嗎?</translation>
 <translation id="4495419450179050807">不要在這個網頁上顯示</translation>
 <translation id="4496054781541092778">已自動封鎖<ph name="PERMISSION" /></translation>
@@ -2856,6 +2867,7 @@
 <translation id="4849517651082200438">不要安裝</translation>
 <translation id="4850669014075537160">捲動</translation>
 <translation id="4850886885716139402">檢視</translation>
+<translation id="485197095346966382">如果您使用被盜用的密碼登入帳戶,<ph name="IDS_SHORT_PRODUCT_NAME" /> 會通知您</translation>
 <translation id="4853020600495124913">在新視窗中開啟(&amp;N)</translation>
 <translation id="4854317507773910281">選擇執行審核的家長帳戶</translation>
 <translation id="485480310608090163">更多設定和權限</translation>
@@ -2874,6 +2886,7 @@
 <translation id="4871322859485617074">PIN 中包含無效的字元</translation>
 <translation id="4871370605780490696">新增書籤</translation>
 <translation id="4871719318659334896">關閉群組</translation>
+<translation id="4871852311166078968">新增至群組</translation>
 <translation id="4873312501243535625">媒體檔案檢查工具</translation>
 <translation id="4876273079589074638">協助我們的軟件工程師調查和修正此當機問題。請盡可能列出所有實際步驟,越詳細越好!</translation>
 <translation id="4876895919560854374">鎖定和解鎖屏幕</translation>
@@ -2965,7 +2978,6 @@
 <translation id="4992473555164495036">您的管理員已限制可用的輸入方法。</translation>
 <translation id="4994474651455208930">允許網站要求成為通訊協定的預設處理常式</translation>
 <translation id="4994754230098574403">正在設定</translation>
-<translation id="4996978546172906250">共用方式</translation>
 <translation id="4997086284911172121">沒有互聯網連線。</translation>
 <translation id="4997384734315285248">解除安裝 Plugin VM</translation>
 <translation id="4998430619171209993">開啟</translation>
@@ -3065,7 +3077,6 @@
 <translation id="5135085122826131075">只要說出「Ok Google」,就能存取「Google 助理」。</translation>
 <translation id="5135533361271311778">無法建立書籤項目。</translation>
 <translation id="5137501176474113045">刪除此項目</translation>
-<translation id="5138982052046316113">調整 Linux 磁碟大小</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />,使用 <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> 的搜查結果</translation>
 <translation id="5139823398361067371">請輸入安全密鑰的 PIN。如果您不知道 PIN,請重設安全密鑰。</translation>
 <translation id="5139955368427980650">開啟(&amp;O)</translation>
@@ -3517,6 +3528,7 @@
 <translation id="5739235828260127894">正在等待驗證。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">非常大</translation>
 <translation id="574209121243317957">音調</translation>
+<translation id="5745136023067925867">取得 <ph name="DEVICE_TYPE" /> 提示、優惠和最新資訊,並分享意見</translation>
 <translation id="5746169159649715125">另存為 PDF</translation>
 <translation id="5747552184818312860">到期日</translation>
 <translation id="5747785204778348146">開發人員版 - 不穩定</translation>
@@ -3929,7 +3941,6 @@
 <translation id="6291953229176937411">在 Finder 中顯示(&amp;S)</translation>
 <translation id="6295158916970320988">所有網站</translation>
 <translation id="6295855836753816081">正在儲存...</translation>
-<translation id="629730747756840877">帳戶</translation>
 <translation id="6298962879096096191">使用 Google Play 安裝 Android 應用程式</translation>
 <translation id="630065524203833229">結束(&amp;X)</translation>
 <translation id="6300718114348072351">無法自動設定「<ph name="PRINTER_NAME" />」。請指定進階打印機詳情。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
@@ -4335,7 +4346,6 @@
 <translation id="6865598234501509159">網頁原文不是<ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC 事件記錄 (<ph name="WEBRTC_EVENT_LOG_COUNT" /> 項)</translation>
 <translation id="686664946474413495">色溫</translation>
-<translation id="6870888490422746447">選擇分享至應用程式:</translation>
 <translation id="6871644448911473373">OCSP 回應程式:<ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">伺服器已拒絕您輸入的密碼。</translation>
 <translation id="6876155724392614295">單車</translation>
@@ -4428,6 +4438,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - 活動記錄</translation>
 <translation id="6997707937646349884">在您的裝置上:</translation>
 <translation id="6998793565256476099">註冊視像會議裝置</translation>
+<translation id="6999956497249459195">新群組</translation>
 <translation id="7000206553895739324">已連接 <ph name="PRINTER_NAME" />,但需要設定</translation>
 <translation id="7000347579424117903">必須以 Ctrl、Alt 鍵或搜尋鍵開頭</translation>
 <translation id="7001036685275644873">正在備份 Linux 應用程式和檔案</translation>
@@ -4726,6 +4737,7 @@
 <translation id="7400418766976504921">網址</translation>
 <translation id="7400839060291901923">在 <ph name="PHONE_NAME" /> 上設定連線</translation>
 <translation id="7401778920660465883">關閉此訊息</translation>
+<translation id="7403642243184989645">下載資源</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{1 小時前已執行安全檢查}other{{NUM_HOURS} 小時前已執行安全檢查}}</translation>
 <translation id="740624631517654988">已封鎖彈出式視窗</translation>
 <translation id="7407430846095439694">匯入並繫結</translation>
@@ -4962,6 +4974,7 @@
 <translation id="7716781361494605745">Netscape 憑證授權原則網址</translation>
 <translation id="7717014941119698257">正在下載:<ph name="STATUS" /></translation>
 <translation id="7717845620320228976">檢查更新</translation>
+<translation id="7719070594859855691">授予攝錄機存取權</translation>
 <translation id="7719367874908701697">頁面縮放</translation>
 <translation id="7721179060400456005">允許視窗在多個螢幕上延伸顯示</translation>
 <translation id="7722040605881499779">更新所需的空間:<ph name="NECESSARY_SPACE" /></translation>
@@ -4976,7 +4989,6 @@
 <translation id="7744047395460924128">查看您的列印記錄</translation>
 <translation id="7744192722284567281">發生資料外洩事件</translation>
 <translation id="7750228210027921155">畫中畫</translation>
-<translation id="7751229152614300329">「安全瀏覽」功能為最新版本,可保護免您受有害的網站和下載內容影響</translation>
 <translation id="7751260505918304024">全部顯示</translation>
 <translation id="7754704193130578113">下載每個檔案前先詢問儲存位置</translation>
 <translation id="7755287808199759310">您的家長可以為您解除封鎖此網站</translation>
@@ -5064,6 +5076,7 @@
     <ph name="BEGIN_BOLD" />注意:<ph name="END_BOLD" />系統會在程序中途重新開機。</translation>
 <translation id="7828731929332799387">系統會刪除第三方內容中使用的所有 Cookie 和網站資料。要繼續嗎?</translation>
 <translation id="7829298379596169484">正在存取音訊輸入</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> 無法檢查密碼,請檢查互聯網連線。</translation>
 <translation id="7829877209233347340">請要求家長登入,授予新增學校帳戶的權限</translation>
 <translation id="7830594666202422257">連結至 Linux</translation>
 <translation id="7831491651892296503">設定網絡時發生錯誤</translation>
@@ -5286,6 +5299,7 @@
 <translation id="8107015733319732394">正在為 <ph name="DEVICE_TYPE" /> 安裝「Google Play 商店」。這可能需時幾分鐘。</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{沒有第三方 Cookie}=1{已封鎖 1 個第三方 Cookie}other{已封鎖 # 個第三方 Cookie}}</translation>
 <translation id="810875025413331850">找不到附近的裝置。</translation>
+<translation id="8114199541033039755">在平板電腦模式中,使用按鈕前往主畫面、返回及切換應用程式。系統會在您啟用 ChromeVox 或「自動點擊」時開啟此功能。</translation>
 <translation id="8114875720387900039">水平分割</translation>
 <translation id="8116972784401310538">書籤管理員(&amp;B)</translation>
 <translation id="8117620576188476503">使用狀態列管理連線、更新和設定。如要透過鍵盤來存取這些內容,請按 Alt + Shift + S 鍵。</translation>
@@ -5404,6 +5418,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> 已停用滑鼠游標。</translation>
 <translation id="8264024885325823677">此設定由管理員管理。</translation>
 <translation id="8264718194193514834">「<ph name="EXTENSION_NAME" />」啟用了全螢幕。</translation>
+<translation id="826511437356419340">進入咗視窗概覽模式。掃一下就可以瀏覽。如果你用鍵盤,㩒一下 Tab 鍵就可以瀏覽。</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />這是裝置的一般資料和使用情况 (例如電量、系統及應用程式活動,以及發生的錯誤)。這些資料將會用來改善 Android。部分彙整資料還能協助 Google 應用程式和合作夥伴 (例如 Android 開發人員) 改良應用程式和產品。<ph name="END_PARAGRAPH1" />
 <ph name="BEGIN_PARAGRAPH2" />即使關閉此功能,您的裝置仍然可以傳送基本服務 (例如系統更新與安全性) 所需的資料。<ph name="END_PARAGRAPH2" />
 <ph name="BEGIN_PARAGRAPH3" />擁有者可前往「設定」&gt;「進階」&gt;「自動將診斷和使用情況資料傳送給 Google」,以控制此功能。<ph name="END_PARAGRAPH3" />
@@ -5512,6 +5527,7 @@
 <translation id="8426713856918551002">正在啟用</translation>
 <translation id="8427292751741042100">嵌入至任何主機</translation>
 <translation id="8428213095426709021">設定</translation>
+<translation id="8428271547607112339">新增學校帳戶</translation>
 <translation id="8428628598981198790">無法在此網站上使用您的安全密鑰</translation>
 <translation id="84297032718407999">您將於 <ph name="LOGOUT_TIME_LEFT" />後登出</translation>
 <translation id="8431190899827883166">顯示輕按選項</translation>
@@ -5575,6 +5591,7 @@
 <translation id="851263357009351303">永遠允許 <ph name="HOST" /> 顯示圖片</translation>
 <translation id="8513108775083588393">自動旋轉</translation>
 <translation id="8514746246728959655">請改用其他安全密鑰</translation>
+<translation id="851960115758509829">您的應用程式、設定和其他自訂設定將會同步至所有您使用 Google 帳戶登入的 Chrome 作業系統裝置。</translation>
 <translation id="8521475323816527629">更快存取應用程式</translation>
 <translation id="8523493869875972733">保留變更</translation>
 <translation id="8523849605371521713">由政策新增</translation>
@@ -5856,11 +5873,13 @@
 <translation id="885701979325669005">儲存設備</translation>
 <translation id="8859057652521303089">選擇語言:</translation>
 <translation id="8859174528519900719">子頁框:<ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">家長帳戶</translation>
 <translation id="8862003515646449717">改用速度快的瀏覽器</translation>
 <translation id="8863753581171631212">在「<ph name="APP" />」的新視窗中開啟連結</translation>
 <translation id="8864055848767439877">正在與 <ph name="APP_NAME" /> 共用 <ph name="TAB_NAME" /></translation>
 <translation id="8864458770072227512">已從此裝置移除 <ph name="EMAIL" /></translation>
 <translation id="8867228703146808825">將版本詳細資料複製到剪貼簿</translation>
+<translation id="8868333925931032127">正在開始示範模式</translation>
 <translation id="8868626022555786497">正在使用</translation>
 <translation id="8870413625673593573">最近關閉的分頁</translation>
 <translation id="8871551568777368300">由管理員固定</translation>
@@ -5939,6 +5958,7 @@
 <translation id="8966870118594285808">當您意外關閉標籤時重新開啟標籤</translation>
 <translation id="8967866634928501045">㩒住 Alt、Shift 同 A 鍵就會顯示</translation>
 <translation id="8968766641738584599">儲存付款卡</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> 無法檢查密碼,請於 24 小時後再試一次,或<ph name="BEGIN_LINK" />檢查 Google 帳戶中的密碼<ph name="END_LINK" />。</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">請與網絡管理員聯絡,確保防火牆並未封鎖從 Google 伺服器下載的內容。</translation>
 <translation id="8973557916016709913">移除縮放級別</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index f46e8768..0cb062c 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">可用的裝置</translation>
 <translation id="1042174272890264476">你的電腦也內建了 <ph name="SHORT_PRODUCT_NAME" /> 的 RLZ 程式庫。RLZ 可指定非重複、非個人的可辨識標記,以評估特定宣傳廣告活動所提升的搜尋數與 <ph name="SHORT_PRODUCT_NAME" /> 使用量。這些標籤有時也會顯示在 <ph name="PRODUCT_NAME" /> 的 Google 搜尋查詢中。</translation>
 <translation id="1043818413152647937">要一併清除這些應用程式中的資料嗎?</translation>
+<translation id="1045448422538531528">新增至群組</translation>
 <translation id="1046635659603195359">你似乎已在其他裝置上設定 Google 助理的 Voice Match 功能。你可以使用先前的錄音檔在這個裝置上建立語音模型,通常不到 1 分鐘即可完成。</translation>
 <translation id="104710386808485638">要重新啟動 Linux 嗎?</translation>
 <translation id="1047431265488717055">複製連結文字(&amp;X)</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">一律封鎖存取攝影機</translation>
 <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> 要求將您的 Chrome 設定還原成原始預設值。這會重設您的首頁、新分頁和搜尋引擎,停用您的擴充功能,以及取消固定所有分頁。其他暫存資料和快取資料 (例如 Cookie、內容和網站資料) 也會一併遭到清除。</translation>
+<translation id="1084096383128641877">移除這組密碼並不會刪除你的 <ph name="DOMAIN" /> 帳戶。請變更密碼或刪除你的 <ph name="DOMAIN_LINK" /> 帳戶,以避免遭到他人盜用。</translation>
 <translation id="1084824384139382525">複製連結網址(&amp;E)</translation>
 <translation id="1085697365578766383">啟動虛擬機器時發生錯誤,請再試一次。</translation>
 <translation id="1090126737595388931">沒有執行中的背景應用程式</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">昨天已執行安全檢查</translation>
 <translation id="1260451001046713751">一律允許 <ph name="HOST" /> 的彈出式視窗和重新導向</translation>
 <translation id="126156426083987769">示範模式的裝置授權發生問題。</translation>
+<translation id="1263490604593716556">這個帳戶是由 <ph name="FIRST_PARENT_EMAIL" /> 和 <ph name="SECOND_PARENT_EMAIL" /> 管理。如要登出這部裝置上的主要帳戶,請按一下畫面上的時間,然後在隨即顯示的選單中按一下 [登出]。</translation>
 <translation id="126710816202626562">翻譯語言:</translation>
 <translation id="126768002343224824">16 倍</translation>
 <translation id="1272079795634619415">停止</translation>
@@ -417,7 +420,6 @@
 <translation id="1566049601598938765">網站</translation>
 <translation id="15662109988763471">選取的印表機無法使用或未正確安裝。請檢查你的印表機,或改選其他印表機。</translation>
 <translation id="1567387640189251553">自你上次輸入密碼後,裝置已連接其他鍵盤。你的按鍵行為可能會遭到側錄。</translation>
-<translation id="1567750922576943685">驗證你的身分有助於確保個人資訊安全無虞</translation>
 <translation id="1567993339577891801">JavaScript 控制台</translation>
 <translation id="1568323446248056064">開啟顯示裝置設定</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (訪客)</translation>
@@ -519,7 +521,6 @@
 <translation id="1697150536837697295">藝術</translation>
 <translation id="1697686431566694143">編輯檔案</translation>
 <translation id="1698122934742150150">僅適用於目前的無痕模式工作階段</translation>
-<translation id="1698650002254827833">無法載入應用程式清單,請再試一次。</translation>
 <translation id="1700079447639026019">一律無法使用 Cookie 的網站</translation>
 <translation id="1701062906490865540">移除這個使用者</translation>
 <translation id="1703331064825191675">再也不必費心記住你的密碼</translation>
@@ -873,6 +874,7 @@
 <translation id="2172784515318616985">繼續</translation>
 <translation id="2173302385160625112">檢查你的網際網路連線</translation>
 <translation id="2173801458090845390">新增這部裝置的申請 ID</translation>
+<translation id="2174948148799307353">這個帳戶是由 <ph name="PARENT_EMAIL" /> 管理。如要登出這部裝置上的主要帳戶,請按一下畫面上的時間,然後在隨即顯示的選單中按一下 [登出]。</translation>
 <translation id="2175607476662778685">快速啟動列</translation>
 <translation id="217576141146192373">無法新增印表機。請檢查你的印表機設定,然後再試一次。</translation>
 <translation id="2177950615300672361">無痕式分頁:<ph name="TAB_NAME" /></translation>
@@ -1080,7 +1082,6 @@
 <translation id="2442916515643169563">文字陰影</translation>
 <translation id="2445081178310039857">請指定擴充功能根目錄。</translation>
 <translation id="2445484935443597917">建立新的個人資料</translation>
-<translation id="2446585455334014596"><ph name="APP_NAME" /> 想驗證你的身分</translation>
 <translation id="2448312741937722512">類型</translation>
 <translation id="2450223707519584812">找不到 Google API 金鑰,因此您無法新增使用者。詳情請參閱 <ph name="DETAILS_URL" />。</translation>
 <translation id="2450849356604136918">沒有運作中的檢視畫面</translation>
@@ -1478,6 +1479,7 @@
 <translation id="2948300991547862301">前往<ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">一款快速、簡單又安全的新世代網路瀏覽器。</translation>
 <translation id="2949289451367477459">使用定位服務。允許具有位置存取權的應用程式和服務使用這個裝置的位置資訊。Google 可能會定期收集位置資料,並以匿名方式使用這類資料,藉此提高定位精確度及改善適地性服務。<ph name="BEGIN_LINK1" />瞭解詳情<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">我要訂閱</translation>
 <translation id="2956070239128776395">群組中有巢狀區段:<ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">不允許任何網站編輯裝置上的檔案或資料夾</translation>
 <translation id="2958721676848865875">封裝擴充功能警告</translation>
@@ -1602,6 +1604,7 @@
 <translation id="3139925690611372679">預設的黃色顯示圖片</translation>
 <translation id="3141318088920353606">聽取中…</translation>
 <translation id="3141917231319778873">無法對以下裝置提出指定的要求:「<ph name="DEVICE_NAME" />」。</translation>
+<translation id="3142562627629111859">新群組</translation>
 <translation id="3143515551205905069">取消同步處理</translation>
 <translation id="3143754809889689516">從頭播放</translation>
 <translation id="3144647712221361880">以其他身分開啟連結</translation>
@@ -1626,6 +1629,7 @@
 <translation id="3159493096109238499">米色</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (使用硬體加密金鑰)</translation>
 <translation id="3161522574479303604">所有語言</translation>
+<translation id="3162853326462195145">學校帳戶</translation>
 <translation id="3162899666601560689">網站可使用 Cookie 改善瀏覽體驗,例如讓你保持登入狀態,或記住購物車中的商品</translation>
 <translation id="3163201441334626963">供應商 <ph name="VENDOR_ID" /> 提供的不明產品 <ph name="PRODUCT_ID" /></translation>
 <translation id="3164329792803560526">這個分頁正與 <ph name="APP_NAME" /> 共用</translation>
@@ -1684,7 +1688,6 @@
 <translation id="3246107497225150582">{0,plural, =1{請在 1 天內更新裝置}other{請在 # 天內更新裝置}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - 網路錯誤</translation>
 <translation id="3248902735035392926">安全至上。現在就花點時間<ph name="BEGIN_LINK" />檢查擴充功能<ph name="END_LINK" />吧</translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;不是憑證的一部分&gt;</translation>
 <translation id="3253225298092156258">無法使用</translation>
 <translation id="3253448572569133955">未知的帳戶</translation>
@@ -1789,6 +1792,7 @@
 <translation id="3396800784455899911">點選 [接受並繼續] 按鈕即表示您同意上述的 Google 服務處理程序。</translation>
 <translation id="3399432415385675819">通知功能會遭到停用</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> 赫茲) - 交錯顯示</translation>
+<translation id="3402585168444815892">正在註冊展示模式</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />,<ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">系統沒有儲存這個網站的密碼</translation>
 <translation id="3405664148539009465">自訂字型</translation>
@@ -1850,6 +1854,7 @@
 <translation id="3468999815377931311">Android 手機</translation>
 <translation id="3470442499439619530">移除這個使用者</translation>
 <translation id="3471876058939596279">HDMI 和 USB Type-C 通訊埠無法同時用於視訊。請使用其他視訊通訊埠。</translation>
+<translation id="3473241910002674503">在平板電腦模式中,使用按鈕前往主畫面、返回及切換應用程式。</translation>
 <translation id="3473479545200714844">畫面放大鏡</translation>
 <translation id="3475843873335999118">很抱歉,系統仍然無法辨識你的指紋。請輸入你的密碼。</translation>
 <translation id="3476303763173086583">傳送使用狀況與診斷資料。讓系統自動將診斷資料以及裝置和應用程式的使用狀況資料傳送給 Google,協助改善你的 Android 使用體驗。這些資料將有助於系統和應用程式提高穩定性及做出其他改善,並不會用於識別貴子女的身分。部分匯總資料還能夠為 Google 應用程式和合作夥伴 (例如 Android 開發人員) 提供幫助。這項<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />是由裝置擁有者執行。擁有者可選擇將這個裝置的診斷資料與使用狀況資料傳送給 Google。如果貴子女的「其他網路和應用程式活動」設定為開啟,系統可能會將這些資料儲存到他們的 Google 帳戶。<ph name="BEGIN_LINK2" />瞭解詳情<ph name="END_LINK2" /></translation>
@@ -2273,6 +2278,7 @@
 <translation id="3971764089670057203">這個安全金鑰上的指紋</translation>
 <translation id="3973660817924297510">正在檢查密碼 (已檢查 <ph name="CHECKED_PASSWORDS" /> 個,共 <ph name="TOTAL_PASSWORDS" /> 個)…</translation>
 <translation id="3975565978598857337">無法連線至指定領域的伺服器</translation>
+<translation id="3975884715086515476"><ph name="IDS_SHORT_PRODUCT_NAME" /> 無法檢查你的密碼,請稍後再試。</translation>
 <translation id="3976108569178263973">沒有可用的印表機。</translation>
 <translation id="397703832102027365">即將完成...</translation>
 <translation id="3977886311744775419">這個網路類型無法下載自動更新,但你可以手動檢查更新。</translation>
@@ -2336,6 +2342,7 @@
 <translation id="4068506536726151626">這個網頁包含來自下列網站的元素,且這些元素正在追蹤你的位置:</translation>
 <translation id="4068776064906523561">已儲存的指紋</translation>
 <translation id="407173827865827707">點擊時</translation>
+<translation id="4073520450811433493">設定同步功能</translation>
 <translation id="4074900173531346617">電子郵件簽署者憑證</translation>
 <translation id="407520071244661467">縮放比例</translation>
 <translation id="4075639477629295004">無法投放「<ph name="FILE_NAME" />」。</translation>
@@ -2572,6 +2579,7 @@
 <translation id="4421932782753506458">毛毛</translation>
 <translation id="4423376891418188461">還原設定</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />,管理員要求你變更密碼。</translation>
+<translation id="4426209360861763174"><ph name="IDS_SHORT_PRODUCT_NAME" /> 無法檢查你的密碼,請於 24 小時後再試。</translation>
 <translation id="4429030830601238961">這項資料違反了貴機構的安全性政策,因此無法貼上。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4430369329743628066">已新增書籤</translation>
@@ -2584,6 +2592,7 @@
 <translation id="4441124369922430666">你要在裝置開機時自動啟動這個應用程式嗎?</translation>
 <translation id="4441147046941420429">如要繼續,請將安全金鑰從裝置上移除,然後重新插入並輕觸安全金鑰</translation>
 <translation id="444134486829715816">展開...</translation>
+<translation id="4442329324652245220">如果你使用 Google 帳戶登入,<ph name="IDS_SHORT_PRODUCT_NAME" /> 可以檢查你的密碼</translation>
 <translation id="4442424173763614572">DNS 查詢失敗</translation>
 <translation id="4443536555189480885">說明(&amp;H)</translation>
 <translation id="4444304522807523469">存取透過 USB 附加或是在區域網路上的文件掃描器</translation>
@@ -2610,11 +2619,13 @@
 <translation id="4476659815936224889">如要掃描這個圖碼,你可以使用手機上的 QR 掃描器或相機應用程式。</translation>
 <translation id="4477015793815781985">必須包含 Ctrl、Alt 或 ⌘ 鍵</translation>
 <translation id="4478664379124702289">另存連結(&amp;K)...</translation>
+<translation id="4478777936860197922">未儲存任何密碼。你必須先儲存密碼,才能使用 <ph name="IDS_SHORT_PRODUCT_NAME" /> 的密碼檢查功能。</translation>
 <translation id="4479424953165245642">管理 Kiosk 應用程式</translation>
 <translation id="4479639480957787382">乙太網路</translation>
 <translation id="4479877282574735775">正在設定虛擬機器,這可能需要幾分鐘的時間。</translation>
 <translation id="4480590691557335796">Chrome 可以找出電腦上有害的軟體並予以移除</translation>
 <translation id="4481530544597605423">解除配對的裝置</translation>
+<translation id="4488107067273194838">在設定完成後顯示瀏覽器同步處理選項</translation>
 <translation id="4488502501195719518">要清除所有資料嗎?</translation>
 <translation id="4495419450179050807">不要顯示這個網頁</translation>
 <translation id="4496054781541092778">已自動封鎖<ph name="PERMISSION" /></translation>
@@ -2856,6 +2867,7 @@
 <translation id="4849517651082200438">不要安裝</translation>
 <translation id="4850669014075537160">捲動</translation>
 <translation id="4850886885716139402">檢視</translation>
+<translation id="485197095346966382">如果你使用遭外洩的密碼登入帳戶,<ph name="IDS_SHORT_PRODUCT_NAME" /> 會通知你</translation>
 <translation id="4853020600495124913">在新視窗中開啟(&amp;N)</translation>
 <translation id="4854317507773910281">選擇進行審核的家長帳戶</translation>
 <translation id="485480310608090163">更多設定和權限</translation>
@@ -2874,6 +2886,7 @@
 <translation id="4871322859485617074">PIN 碼包含無效的字元</translation>
 <translation id="4871370605780490696">新增書籤</translation>
 <translation id="4871719318659334896">關閉群組</translation>
+<translation id="4871852311166078968">新增至群組</translation>
 <translation id="4873312501243535625">媒體檔案檢查工具</translation>
 <translation id="4876273079589074638">協助我們的工程師調查這項當機問題並予以修正。請儘可能列出所有確切步驟,鉅細靡遺!</translation>
 <translation id="4876895919560854374">鎖定及解鎖螢幕</translation>
@@ -2965,7 +2978,6 @@
 <translation id="4992473555164495036">你的管理員對可用的輸入法設定了限制。</translation>
 <translation id="4994474651455208930">允許網站要求成為通訊協定的預設處理常式</translation>
 <translation id="4994754230098574403">設定中</translation>
-<translation id="4996978546172906250">分享方式:</translation>
 <translation id="4997086284911172121">沒有網際網路連線。</translation>
 <translation id="4997384734315285248">解除安裝 Plugin VM</translation>
 <translation id="4998430619171209993">開啟</translation>
@@ -3065,7 +3077,6 @@
 <translation id="5135085122826131075">只要說出「Ok Google」就能存取 Google 助理。</translation>
 <translation id="5135533361271311778">無法建立書籤項目。</translation>
 <translation id="5137501176474113045">刪除此項目</translation>
-<translation id="5138982052046316113">調整 Linux 磁碟大小</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />,「<ph name="DEFAULT_SEARCH_ENGINE_NAME" />」搜尋</translation>
 <translation id="5139823398361067371">請輸入安全金鑰的 PIN 碼。如果你不知道 PIN 碼,則必須重設安全金鑰。</translation>
 <translation id="5139955368427980650">開啟(&amp;O)</translation>
@@ -3517,6 +3528,7 @@
 <translation id="5739235828260127894">等待驗證中。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">非常大</translation>
 <translation id="574209121243317957">音調</translation>
+<translation id="5745136023067925867">你可以取得 <ph name="DEVICE_TYPE" /> 實用提示、優惠資訊與最新消息,並提供意見回饋</translation>
 <translation id="5746169159649715125">另存為 PDF</translation>
 <translation id="5747552184818312860">有效期限</translation>
 <translation id="5747785204778348146">開發人員版 - 不穩定</translation>
@@ -3929,7 +3941,6 @@
 <translation id="6291953229176937411">在 Finder 中顯示(&amp;S)</translation>
 <translation id="6295158916970320988">所有網站</translation>
 <translation id="6295855836753816081">儲存中...</translation>
-<translation id="629730747756840877">帳戶</translation>
 <translation id="6298962879096096191">使用 Google Play 安裝 Android 應用程式</translation>
 <translation id="630065524203833229">結束(&amp;X)</translation>
 <translation id="6300718114348072351">無法自動設定「<ph name="PRINTER_NAME" />」。請手動設定印表機的進階選項。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
@@ -4335,7 +4346,6 @@
 <translation id="6865598234501509159">網頁原文不是<ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">WebRTC 事件記錄 (<ph name="WEBRTC_EVENT_LOG_COUNT" /> 筆)</translation>
 <translation id="686664946474413495">色溫</translation>
-<translation id="6870888490422746447">選擇要共用的應用程式:</translation>
 <translation id="6871644448911473373">OCSP 回應程式:<ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">輸入的密碼遭到伺服器拒絕。</translation>
 <translation id="6876155724392614295">自行車</translation>
@@ -4428,6 +4438,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - 活動記錄</translation>
 <translation id="6997707937646349884">在你的裝置上:</translation>
 <translation id="6998793565256476099">註冊視訊會議裝置</translation>
+<translation id="6999956497249459195">新群組</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> 已連接,請進行設定</translation>
 <translation id="7000347579424117903">必須包含 Ctrl、Alt 鍵或搜尋鍵</translation>
 <translation id="7001036685275644873">正在備份 Linux 應用程式和檔案</translation>
@@ -4726,6 +4737,7 @@
 <translation id="7400418766976504921">網址</translation>
 <translation id="7400839060291901923">在 <ph name="PHONE_NAME" /> 上設定連線</translation>
 <translation id="7401778920660465883">關閉這則訊息</translation>
+<translation id="7403642243184989645">正在下載資源</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{1 小時前已執行安全檢查}other{{NUM_HOURS} 小時前已執行安全檢查}}</translation>
 <translation id="740624631517654988">已封鎖彈出式視窗</translation>
 <translation id="7407430846095439694">匯入和繫結</translation>
@@ -4962,6 +4974,7 @@
 <translation id="7716781361494605745">Netscape 憑證授權原則網址</translation>
 <translation id="7717014941119698257">下載:<ph name="STATUS" /></translation>
 <translation id="7717845620320228976">檢查更新</translation>
+<translation id="7719070594859855691">授予攝影機存取權</translation>
 <translation id="7719367874908701697">頁面縮放</translation>
 <translation id="7721179060400456005">允許將視窗擴展到其他螢幕上</translation>
 <translation id="7722040605881499779">更新所需空間:<ph name="NECESSARY_SPACE" /></translation>
@@ -4976,7 +4989,6 @@
 <translation id="7744047395460924128">查看你的列印歷史記錄</translation>
 <translation id="7744192722284567281">發生資料侵害事件</translation>
 <translation id="7750228210027921155">子母畫面</translation>
-<translation id="7751229152614300329">安全瀏覽功能為最新版本,可封鎖有害的網站和下載內容</translation>
 <translation id="7751260505918304024">全部顯示</translation>
 <translation id="7754704193130578113">下載每個檔案前先詢問儲存位置</translation>
 <translation id="7755287808199759310">你的家長可以為你解除封鎖這個網站</translation>
@@ -5064,6 +5076,7 @@
     <ph name="BEGIN_BOLD" />注意:<ph name="END_BOLD" />系統會在過程中重新啟動。</translation>
 <translation id="7828731929332799387">這將會刪除第三方內容中使用的所有 Cookie 和網站資料。確定要繼續嗎?</translation>
 <translation id="7829298379596169484">正在存取音訊輸入</translation>
+<translation id="7829528495815477379"><ph name="IDS_SHORT_PRODUCT_NAME" /> 無法檢查你的密碼,請查看網際網路連線狀態。</translation>
 <translation id="7829877209233347340">請要求家長登入,授予新增學校帳戶的權限</translation>
 <translation id="7830594666202422257">連線至 Linux</translation>
 <translation id="7831491651892296503">網路設定錯誤</translation>
@@ -5286,6 +5299,7 @@
 <translation id="8107015733319732394">正在為 <ph name="DEVICE_TYPE" /> 安裝 Google Play 商店。這可能需要幾分鐘時間。</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{沒有第三方 Cookie}=1{已封鎖 1 組第三方 Cookie}other{已封鎖 # 組第三方 Cookie}}</translation>
 <translation id="810875025413331850">找不到附近的裝置。</translation>
+<translation id="8114199541033039755">在平板電腦模式中,使用按鈕前往主畫面、返回及切換應用程式。系統會在你啟用 ChromeVox 或自動點擊功能時開啟這項設定。</translation>
 <translation id="8114875720387900039">水平分割</translation>
 <translation id="8116972784401310538">書籤管理員(&amp;B)</translation>
 <translation id="8117620576188476503">透過狀態匣管理連線、更新和設定。如要使用鍵盤開啟這個畫面,請按下 Alt + Shift + S 鍵。</translation>
@@ -5404,6 +5418,7 @@
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> 已停用滑鼠游標。</translation>
 <translation id="8264024885325823677">這項設定是由系統管理員管理。</translation>
 <translation id="8264718194193514834">「<ph name="EXTENSION_NAME" />」啟用了全螢幕。</translation>
+<translation id="826511437356419340">已進入視窗總覽模式。滑動畫面或按下鍵盤上的 Tab 鍵即可瀏覽。</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />這會提供裝置和裝置使用情況的一般資訊 (例如電池電量、系統和應用程式活動,以及錯誤資訊)。這些資料會用於改善 Android 使用體驗,而部分匯總資訊還能協助 Google 應用程式和合作夥伴 (例如 Android 開發人員) 提高應用程式和產品的品質。<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />即使關閉這項功能,這個裝置仍然可以傳送基本服務 (例如系統更新與安全服務) 所需的資訊。<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />裝置擁有者如要管理這項功能,可依序前往 [設定] &gt; [進階] &gt; [自動將診斷資料和使用情況資料傳送給 Google]。<ph name="END_PARAGRAPH3" />
@@ -5512,6 +5527,7 @@
 <translation id="8426713856918551002">啟用中</translation>
 <translation id="8427292751741042100">嵌入任何主機</translation>
 <translation id="8428213095426709021">設定</translation>
+<translation id="8428271547607112339">新增學校帳戶</translation>
 <translation id="8428628598981198790">無法在此網站上使用你的安全金鑰</translation>
 <translation id="84297032718407999">你將於 <ph name="LOGOUT_TIME_LEFT" />後登出</translation>
 <translation id="8431190899827883166">顯示觸控回應</translation>
@@ -5575,6 +5591,7 @@
 <translation id="851263357009351303">永遠允許 <ph name="HOST" /> 顯示圖片</translation>
 <translation id="8513108775083588393">自動旋轉</translation>
 <translation id="8514746246728959655">請改用其他安全金鑰</translation>
+<translation id="851960115758509829">當你使用 Google 帳戶登入後,所有 Chrome 作業系統裝置上的應用程式、設定和其他自訂項目都會保持同步。</translation>
 <translation id="8521475323816527629">快速存取應用程式</translation>
 <translation id="8523493869875972733">保留變更</translation>
 <translation id="8523849605371521713">依政策新增</translation>
@@ -5856,11 +5873,13 @@
 <translation id="885701979325669005">儲存空間</translation>
 <translation id="8859057652521303089">選擇語言:</translation>
 <translation id="8859174528519900719">子頁框:<ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">家長帳戶</translation>
 <translation id="8862003515646449717">改用速度飛快的瀏覽器</translation>
 <translation id="8863753581171631212">另外在「<ph name="APP" />」中開啟連結</translation>
 <translation id="8864055848767439877">正在與 <ph name="APP_NAME" /> 共用 <ph name="TAB_NAME" /></translation>
 <translation id="8864458770072227512">已將 <ph name="EMAIL" /> 從這個裝置中移除</translation>
 <translation id="8867228703146808825">將版本詳細資料複製到剪貼簿</translation>
+<translation id="8868333925931032127">正在啟動展示模式</translation>
 <translation id="8868626022555786497">已使用的空間</translation>
 <translation id="8870413625673593573">最近關閉的分頁</translation>
 <translation id="8871551568777368300">已由管理員固定</translation>
@@ -5939,6 +5958,7 @@
 <translation id="8966870118594285808">你可以重新開啟不小心關閉的分頁</translation>
 <translation id="8967866634928501045">按下 Alt + Shift + A 鍵即可顯示</translation>
 <translation id="8968766641738584599">儲存卡片</translation>
+<translation id="8971800409073702505"><ph name="IDS_SHORT_PRODUCT_NAME" /> 無法檢查你的密碼,請於 24 小時後再試,或<ph name="BEGIN_LINK" />檢查 Google 帳戶中的密碼<ph name="END_LINK" />。</translation>
 <translation id="89720367119469899">Escape</translation>
 <translation id="8972513834460200407">請與網路管理員聯絡,確認防火牆並未封鎖從 Google 伺服器下載的內容。</translation>
 <translation id="8973557916016709913">重設為預設縮放比例</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index d68c74d..f6bbb134 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -37,6 +37,7 @@
 <translation id="1041263367839475438">Amadivayisi atholakalayo</translation>
 <translation id="1042174272890264476">Ikhompyutha yakho iphinda ize nelabhulali ye-<ph name="SHORT_PRODUCT_NAME" /> RLZ eyakhelwe ngaphakathi. I-RLZ ifakela umaka ongakhombi isiqu somuntu, esingahlukile ukuze kulinganiswe usesho nokusetshenziswa kwe-<ph name="SHORT_PRODUCT_NAME" /> okuhlolwa ngumkhankaso othile wokuphromotha. Lawa malebula kwesinye isikhathi avela kumibuzo ye-Usesho lwe-Google ku-<ph name="PRODUCT_NAME" />.</translation>
 <translation id="1043818413152647937">Futhi sula idatha kusuka kulezi zinhlelo zokusebenza?</translation>
+<translation id="1045448422538531528">Engeza kwiqembu</translation>
 <translation id="1046635659603195359">Kubonakala sengathi usuvele usethe Voice Match nomsizi wakho we-Google kwenye idivayisi.Lokhu kurekhoda kungasetshenziswa ukuze kwenziwe imodeli yezwi kule divayisi. Lokhu kuzomele kuthathe ngaphansi kweminithi.</translation>
 <translation id="104710386808485638">Qala kabusha i-Linux?</translation>
 <translation id="1047431265488717055">Kopisha um&amp;bhalo wesixhumanisi</translation>
@@ -66,6 +67,7 @@
 <translation id="1076818208934827215">I-Microsoft Internet Explorer</translation>
 <translation id="1079766198702302550">Vimbela njalo ukufinyelela kwekhamela</translation>
 <translation id="1082398631555931481">I-<ph name="THIRD_PARTY_TOOL_NAME" /> ifuna ukubuyisela izilungiselelo zakho ze-Chrome kokuzenzakalelayo kwayo kwasekuqaleni. Lokhu kuzosetha kabusha ikhasi lakho lasekhaya, ikhasi lethebhu elisha nenjini yosesho, khubaza izandiso zakho, uphinde ususe ukuphina kwawo wonke amathebhu. Kuzophinda kusule enye idatha yesikhashana nefakwe kunqolobane, efana namakhukhi, okuqukethwe nedatha yesayithi.</translation>
+<translation id="1084096383128641877">Ukususa le phasiwedi ngeke kususe i-akhawunti yakho ku-<ph name="DOMAIN" />. Shintsha iphasiwedi yakho noma susa i-akhawunti yakho ku-<ph name="DOMAIN_LINK" /> ukuyigcina iphephile kusuka kwabanye.</translation>
 <translation id="1084824384139382525">Kopisha ikheli lesixhumanisi</translation>
 <translation id="1085697365578766383">Iphutha ukuqalisa umshini wokubuka. Sicela uzame futhi.</translation>
 <translation id="1090126737595388931">Azikho izinhlelo zokusebenza ezingemuva ezisebenzayo</translation>
@@ -200,6 +202,7 @@
 <translation id="1259152067760398571">Ukuhlola kokuphepha kusebenze izolo</translation>
 <translation id="1260451001046713751">Hlala uvumela okwesikhashana nokuqondiswa kabusha kusukela ku-<ph name="HOST" /></translation>
 <translation id="126156426083987769">Inkinga ngamalayisensi edivayisi yemodi yedemo ivelile.</translation>
+<translation id="1263490604593716556">I-akhawunti iphethwe ngu-<ph name="FIRST_PARENT_EMAIL" /> no-<ph name="SECOND_PARENT_EMAIL" />. Ukuze uphume ngemvume ku-akhawunti yakho eyinhloko kule divayisi, chofoza isikhathi kusikrini sakho. Kumenyu evelayo, chofoza okuthi "Phuma ngemvume".</translation>
 <translation id="126710816202626562">Ulimi lokuhumusha:</translation>
 <translation id="126768002343224824">16x</translation>
 <translation id="1272079795634619415">Misa</translation>
@@ -415,7 +418,6 @@
 <translation id="1566049601598938765">Iwebhusayithi</translation>
 <translation id="15662109988763471">Iphrinta ekhethiwe ayitholakali noma ayifakiwe kahle. Hlola iphrinta yakho noma zama ukukhetha enye iphrinta.</translation>
 <translation id="1567387640189251553">Ikhibhodi ehlukile ixhunyiwe kusuka lapho ufake khona iphasiwedi yakho. Ingazama ukutshontsha okhiye bako.</translation>
-<translation id="1567750922576943685">Ukuqinisekisa ubunikazi bakho kusiza ukuvikela ulwazi lwakho lomunt siqu</translation>
 <translation id="1567993339577891801">Ikhonsoli ye-JavaScript</translation>
 <translation id="1568323446248056064">Vula izilungiselelo zokubonisa kwedivayisi</translation>
 <translation id="1572139610531470719"><ph name="WINDOW_TITLE" /> (Isihambeli)</translation>
@@ -517,7 +519,6 @@
 <translation id="1697150536837697295">Ubuciko</translation>
 <translation id="1697686431566694143">Hlela ifayela</translation>
 <translation id="1698122934742150150">Isikhathi se-incognito samanje kuphela</translation>
-<translation id="1698650002254827833">Lolu hlu lwezinhlelo zokusebenza alukwazi ukulayishwa. Sicela uzame futhi.</translation>
 <translation id="1700079447639026019">Amasayithi angasoze asebenzisa amakhukhi</translation>
 <translation id="1701062906490865540">Susa lo muntu</translation>
 <translation id="1703331064825191675">Ungakhathazeki ngamaphasiwedi akho</translation>
@@ -871,6 +872,7 @@
 <translation id="2172784515318616985">Qhubeka</translation>
 <translation id="2173302385160625112">Hlola uxhumano lwakho lwe-inthanethi</translation>
 <translation id="2173801458090845390">Engeza i-ID efunekayo kule divayisi</translation>
+<translation id="2174948148799307353">I-akhawunti iphethwe ngu-<ph name="PARENT_EMAIL" />. Ukuze uphume ngemvume ku-akhawunti yakho eyinhloko kule divayisi, chofoza isikhathi kusikrini sakho. Kumenyu evelayo, chofoza okuthi "Phuma ngemvume".</translation>
 <translation id="2175607476662778685">Ibha yokuqalisa esheshayo</translation>
 <translation id="217576141146192373">Ayikwazi ukungeza iphrinta. Sicela uhlole ukulungiswa kwephrinta yakho bese uyazama futhi.</translation>
 <translation id="2177950615300672361">Ithebhu ye-Incognito: <ph name="TAB_NAME" /></translation>
@@ -1079,7 +1081,6 @@
 <translation id="2442916515643169563">Umthunzi wombhalo</translation>
 <translation id="2445081178310039857">Kudingeka impande yesandiso somkhombandlela.</translation>
 <translation id="2445484935443597917">Dala iphrofayela entsha</translation>
-<translation id="2446585455334014596">I-<ph name="APP_NAME" /> ifuna ukuqinisekisa ubunikazi bakho</translation>
 <translation id="2448312741937722512">Uhlobo</translation>
 <translation id="2450223707519584812">Ngeke uze ukwazi ukungeza abasebenzisi ngoba okhiye be-Google API abekho. Bona i-<ph name="DETAILS_URL" /> ukuze uthole imininingwane.</translation>
 <translation id="2450849356604136918">Akukho ukubuka okusebenzayo</translation>
@@ -1477,6 +1478,7 @@
 <translation id="2948300991547862301">Hamba ku-<ph name="PAGE_TITLE" /></translation>
 <translation id="29488703364906173">Isiphequluli sewebhu esisheshayo, esilula futhi esiphephile, esakhelwe iwebhu yamanje.</translation>
 <translation id="2949289451367477459">Sebenzisa indawo. Vumela izinhlelo zokusebenza namasevisi anemvume yendawo ukusebenzisa indawo yedivayisi. I-Google ingaqoqa idatha yendawo ngezikhathi ezithile iphinde isebenzise le datha ngendlela engaziwa ukuze ithuthukise ukunemba kwendawo namasevisi asuselwa endaweni. <ph name="BEGIN_LINK1" />Funda kabanzi<ph name="END_LINK1" /></translation>
+<translation id="2950666755714083615">Ngibhalise</translation>
 <translation id="2956070239128776395">Isigaba sifakwe kusidleke eqenjini: <ph name="ERROR_LINE" /></translation>
 <translation id="2957117904572187936">Ungavumeli noma yimaphi amasayithi ukuze uhlele amafayela noma amafolda kudivayisi yakho</translation>
 <translation id="2958721676848865875">Isexwayiso sesandiso sephekhi</translation>
@@ -1601,6 +1603,7 @@
 <translation id="3139925690611372679">Isithombe esizenzakalelayo esiliphuzi</translation>
 <translation id="3141318088920353606">Ukulalela...</translation>
 <translation id="3141917231319778873">Isicelo esinikeziwe asisekelwe ku-: "<ph name="DEVICE_NAME" />".</translation>
+<translation id="3142562627629111859">Iqembu elisha</translation>
 <translation id="3143515551205905069">Khansela ukuvumelanisa</translation>
 <translation id="3143754809889689516">Dlala kusukela ekuqaleni</translation>
 <translation id="3144647712221361880">Vula isixhumanisi njenge-</translation>
@@ -1625,6 +1628,7 @@
 <translation id="3159493096109238499">I-Beige</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (yenziwe isipele sezingxenyekazi zekhompuyutha)</translation>
 <translation id="3161522574479303604">Zonke izilimi</translation>
+<translation id="3162853326462195145">I-akhawunti yesikole</translation>
 <translation id="3162899666601560689">Amasayithi angasebenzisa amakhukhi ukuthuthukisa ukuzizwela kwakho kokuphequlula, ngokwesibonelo, ukukugcina ungene ngemvume noma ukukhumbula izinto ezikukalishi yakho yokuthenga.</translation>
 <translation id="3163201441334626963">Umkhiqizo ongaziwa ongu-<ph name="PRODUCT_ID" /> kusukela kumthengisi ongu-<ph name="VENDOR_ID" /></translation>
 <translation id="3164329792803560526">Yabelana ngale thebhu ku-<ph name="APP_NAME" /></translation>
@@ -1683,7 +1687,6 @@
 <translation id="3246107497225150582">{0,plural, =1{Buyekeza idivayisi phakathi nosuku}one{Buyekeza idivayisi phakathi nezinsuku ezingu-#}other{Buyekeza idivayisi phakathi nezinsuku ezingu-#}}</translation>
 <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Iphutha lenethiwekhi</translation>
 <translation id="3248902735035392926">Izindaba zokuphepha. Thatha isikhashana <ph name="BEGIN_LINK" />uhlole izandiso zakho manje<ph name="END_LINK" /></translation>
-<translation id="3249950116250264636"><ph name="APP_NAME" /> (<ph name="APP_URL" />)</translation>
 <translation id="3251759466064201842">&lt;Akuyona Ingxenye Yesitifiketi&gt;</translation>
 <translation id="3253225298092156258">Ayitholakali</translation>
 <translation id="3253448572569133955">I-akhawunti engaziwa</translation>
@@ -1788,6 +1791,7 @@
 <translation id="3396800784455899911">Ngokuchofoza inkinobho ethi "Yamuleka uphinde uqhubeke", uvumela inqubomgomo echazwe ngaphezulu yalawa masevisi e-Google.</translation>
 <translation id="3399432415385675819">Izaziso zizokhutshazwa</translation>
 <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - okuhlanganisiwe</translation>
+<translation id="3402585168444815892">Ukubhalisa kumodi yedemo</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
 <translation id="3404065873681873169">Awekho amaphasiwedi alondolozelwe leli sayithi</translation>
 <translation id="3405664148539009465">Enza ngendlela oyifisayo amafonti</translation>
@@ -1849,6 +1853,7 @@
 <translation id="3468999815377931311">Ifoni ye-Android</translation>
 <translation id="3470442499439619530">Susa lo msebenzisi</translation>
 <translation id="3471876058939596279">Izimbobo ze-HDMI ne-USB Type-C azikwazi ukusetshenziselwa ividiyo ngesikhathi esifanayo. Sebenzisa imbobo ehlukile yevidiyo.</translation>
+<translation id="3473241910002674503">Zulazula ekhaya, emuva bese ushintsha izinhlelo zokusebenza ngezinkinobho kumodi yethebulethi.</translation>
 <translation id="3473479545200714844">Isisondezi-skrini</translation>
 <translation id="3475843873335999118">Uxolo, isigxivizo sakho somunwe asibonakali. Sicela ufake iphasiwedi yakho.</translation>
 <translation id="3476303763173086583">Thumela idatha yokusetshenziswa neyokuxilonga. Siza ukuthuthukisa umuzwa we-Android wengane yakho ngokuthumela ngokuzenzakalela idatha yokuxilonga, yedivayisi, neyokusetshenziswa kohlelo lokusebenza ku-Google. Lokhu ngeke kusetshenziselwe ukukhomba ingane yakho futhi kuzosiza ukuzinza kwesistimu nokohlelo lokusebenza nokunye ukuthuthukiswa. Enye idatha izophinda isize izinhlelo zokusebenza ze-Google nozakwethu, abafana nonjiniyela be-Android. Lesi <ph name="BEGIN_LINK1" />silungiselelo<ph name="END_LINK1" /> siphoqelelwa umnikazi. Umnikazi angakhetha ukuthumela idatha yokuxilonga neyokusetshenziswa yale divayisi ku-Google. Uma isilungiselelo esingeziwe sewebhu nesohlelo lokusebenza sivulelwe ingane yakho, le datha ingalondolozwa ku-akhawunti yakhe ye-Google. <ph name="BEGIN_LINK2" />Funda kabanzi<ph name="END_LINK2" /></translation>
@@ -2272,6 +2277,7 @@
 <translation id="3971764089670057203">Izigxivizo zeminwe kulo khiye wokuqinisekisa ubunikazi</translation>
 <translation id="3973660817924297510">Kuhlola Amaphasiwedi (<ph name="CHECKED_PASSWORDS" /> kwangu-<ph name="TOTAL_PASSWORDS" />)…</translation>
 <translation id="3975565978598857337">Ukuxhumana neseva kwe-realm kuhlulekile</translation>
+<translation id="3975884715086515476">I-<ph name="IDS_SHORT_PRODUCT_NAME" /> ayikwazi ukuhlola amaphasiwedi akho. Zama futhi emuva kwesikhathi.</translation>
 <translation id="3976108569178263973">Awekho amaphethini atholakalayo.</translation>
 <translation id="397703832102027365">Iyaphothula...</translation>
 <translation id="3977886311744775419">Izibuyekezo zokuzenzakalela azifuni ukulandwa kulolu hlobo lwenethiwekhi, kodwa ungahlolela izibuyekezo ngesandla.</translation>
@@ -2335,6 +2341,7 @@
 <translation id="4068506536726151626">Leli khasi liqukethe izinto ezisuka kumasayithi alandelayo alandelela indawo yakho:</translation>
 <translation id="4068776064906523561">Izigxivizo zeminwe ezilondoloziwe</translation>
 <translation id="407173827865827707">Ekuchofozeni</translation>
+<translation id="4073520450811433493">Izilungiselelo zokuvumelanisa</translation>
 <translation id="4074900173531346617">Thumela umsayini isitifiketi</translation>
 <translation id="407520071244661467">Isikali</translation>
 <translation id="4075639477629295004">Ayikwazi ukusakaza i-<ph name="FILE_NAME" />.</translation>
@@ -2571,6 +2578,7 @@
 <translation id="4421932782753506458">Tofozelayo</translation>
 <translation id="4423376891418188461">Buyisela izilungiselelo</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, umlawuli wakho udinga ukuthi ushintshe iphasiwedi yakho.</translation>
+<translation id="4426209360861763174">I-<ph name="IDS_SHORT_PRODUCT_NAME" /> ayikwazi ukuhlola amaphasiwedi akho. Zama futhi emva kwamahora angu-24.</translation>
 <translation id="4429030830601238961">Le datha yephula izinqubomgomo zokuphepha zenhlangano yakho futhi ayikwazi ukunamathiselwa.</translation>
 <translation id="4430019312045809116">Ivolumu</translation>
 <translation id="4430369329743628066">Ibhukhimakhi ingeziwe</translation>
@@ -2583,6 +2591,7 @@
 <translation id="4441124369922430666">Ingabe ufuna ukuqalisa ngokuzenzakalela lolu hlelo lokusebenza uma umshini uvula?</translation>
 <translation id="4441147046941420429">Ukuze uqhubeke, susa ukhiye wokuqinisekisa ubunikazi kusuka kudivayisi yakho, bese ufake kabusha futhi uthinte</translation>
 <translation id="444134486829715816">Nweba...</translation>
+<translation id="4442329324652245220">I-<ph name="IDS_SHORT_PRODUCT_NAME" /> ingahlola amaphasiwedi akho uma ungena ngemvume nge-Akhawunti yakho ye-Google.</translation>
 <translation id="4442424173763614572">Ukubheka i-DSN kuhlulekile</translation>
 <translation id="4443536555189480885">Usizo</translation>
 <translation id="4444304522807523469">Finyelela kuzikena zedokhumenti ezinamathiselwe nge-USB noma kunethiwekhi yasendaweni</translation>
@@ -2609,11 +2618,13 @@
 <translation id="4476659815936224889">Ukuze uskene le khodi, ungasebenzisa uhlelo lokusebenza lweskena lwe-QR kufoni yakho, noma ezinye izinhlelo zokusebenza zekhamera.</translation>
 <translation id="4477015793815781985">Faka phakathi U-Ctrl, Alt, noma u-⌘</translation>
 <translation id="4478664379124702289">Londoloza isixhumanisi njenge...</translation>
+<translation id="4478777936860197922">Awekho amaphasiwedi alondoloziwe. I-<ph name="IDS_SHORT_PRODUCT_NAME" /> ingahlola amaphasiwedi akho uma uwalondoloza.</translation>
 <translation id="4479424953165245642">Phatha izinhlelo zokusebenza zekhiyoski</translation>
 <translation id="4479639480957787382">I-Ethernet</translation>
 <translation id="4479877282574735775">Ilungiselela umshini obonakalayo. Lokhu kungathatha amaminithi ambalwa.</translation>
 <translation id="4480590691557335796">I-Chrome ingathola isofthiwe enobungozi kukhompuyutha yakho iphinde iyisuse</translation>
 <translation id="4481530544597605423">Amadivayisi angabhanqiwe</translation>
+<translation id="4488107067273194838">Buyekeza izinketho zokuvumelanisa isiphequluli ngemva kokusetha</translation>
 <translation id="4488502501195719518">Sula yonke idatha?</translation>
 <translation id="4495419450179050807">Ungabonisi kuleli khasi</translation>
 <translation id="4496054781541092778">kuvinjelwe ngokuzenzakalela i-<ph name="PERMISSION" /></translation>
@@ -2855,6 +2866,7 @@
 <translation id="4849517651082200438">Ungafaki</translation>
 <translation id="4850669014075537160">Ukuskrola</translation>
 <translation id="4850886885716139402">Buka</translation>
+<translation id="485197095346966382">I-<ph name="IDS_SHORT_PRODUCT_NAME" />izokwazisa uma ungena ngemvume ngephasiwedi eyonakalisiwe</translation>
 <translation id="4853020600495124913">Vula kuwindi eli&amp;sha</translation>
 <translation id="4854317507773910281">Khetha i-akhawunti yomzali yokugunyaza</translation>
 <translation id="485480310608090163">Izilungiselelo eziningi nezimvume</translation>
@@ -2873,6 +2885,7 @@
 <translation id="4871322859485617074">I-PIN iqukethwe izinhlamvu ezingavumelekile</translation>
 <translation id="4871370605780490696">Engeza ibhukhimakhi</translation>
 <translation id="4871719318659334896">Vala iqembu</translation>
+<translation id="4871852311166078968">Engeza kwiqembu</translation>
 <translation id="4873312501243535625">Isihloli sefayela lemidiya</translation>
 <translation id="4876273079589074638">Siza onjiniyela bethu baphenye baphinde balungise lokhu kuphahlazeka. Faka kuhlu izinyathelo eziqondile uma ungakhona. Awukho umniningwane omncane kakhulu!</translation>
 <translation id="4876895919560854374">Khiya uphinde uvule isikrini</translation>
@@ -2964,7 +2977,6 @@
 <translation id="4992473555164495036">Umqondisi wakho ukhawulele izindlela zokufaka.</translation>
 <translation id="4994474651455208930">Vumela amasayithi ukuthi acele ukuba ababambi abazenzakalelayo bamaphrothokholi</translation>
 <translation id="4994754230098574403">Iyasetha</translation>
-<translation id="4996978546172906250">Yabelana nge-</translation>
 <translation id="4997086284911172121">Akukho ukuxhumeka kwe-inthanethi.</translation>
 <translation id="4997384734315285248">Khipha i-Plugin VM</translation>
 <translation id="4998430619171209993">Vuliwe</translation>
@@ -3064,7 +3076,6 @@
 <translation id="5135085122826131075">Finyelela kumsizi wakho uma uthi "Ok Google."</translation>
 <translation id="5135533361271311778">Ayikwazanga ukudala into yebhukhimakhi.</translation>
 <translation id="5137501176474113045">Susa le nto</translation>
-<translation id="5138982052046316113">Shintsha Usayizi Wediski le-Linux</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> Sesha</translation>
 <translation id="5139823398361067371">Faka i-PIN yokhiye wakho wokuqinisekia ubunikazi. Uma ungayazi iphinikhodi, uzodinga ukusetha kabusha ukhiye wokuqinisekisa ubunikazi.</translation>
 <translation id="5139955368427980650">Vula</translation>
@@ -3519,6 +3530,7 @@
 <translation id="5739235828260127894">Ilinde ukuqinisekisa. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Yinkulu kakhulu</translation>
 <translation id="574209121243317957">Ukuphakama</translation>
+<translation id="5745136023067925867">Thola amathiphu we-<ph name="DEVICE_TYPE" />, okunikezwayo nezibuyekezo, futhi wabelana ngempendulo</translation>
 <translation id="5746169159649715125">Londoloza njenge-PDF</translation>
 <translation id="5747552184818312860">Iphelelwa yisikhathi</translation>
 <translation id="5747785204778348146">Unjiniyela - akuzinzile</translation>
@@ -3931,7 +3943,6 @@
 <translation id="6291953229176937411">Bonisa kusitholi</translation>
 <translation id="6295158916970320988">Wonke amasayithi</translation>
 <translation id="6295855836753816081">Iyalondoloza...</translation>
-<translation id="629730747756840877">I-akhawunti</translation>
 <translation id="6298962879096096191">Sebenzisa i-Google Play ukuze ufake izinhlelo zokusebenza ze-Android</translation>
 <translation id="630065524203833229">Phuma</translation>
 <translation id="6300718114348072351">I-<ph name="PRINTER_NAME" /> ayikwazanga ukulungiselelwa ngokuzenzakalela. Sicela ucacise imininingwane yephrinta ethuthukisiwe. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation>
@@ -4337,7 +4348,6 @@
 <translation id="6865598234501509159">Ikhasi alikho ngesi-<ph name="LANGUAGE" /></translation>
 <translation id="6865708901122695652">Amalogi omcimbi we-WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686664946474413495">Ithempelesha yombala</translation>
-<translation id="6870888490422746447">Khetha uhlelo lokusebenza ukuze wabelane ku-:</translation>
 <translation id="6871644448911473373">Isiphenduli se-OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">Iphasiwedi oyifakile inqatshwe yiseva.</translation>
 <translation id="6876155724392614295">Ibhayisikili</translation>
@@ -4430,6 +4440,7 @@
 <translation id="6997642619627518301"><ph name="NAME_PH" /> - Umsebenzi wefayela lokungena</translation>
 <translation id="6997707937646349884">Kumadivayisi akho:</translation>
 <translation id="6998793565256476099">Bhalisela idivayisi ukuze wenze inkomfa ngevidiyo</translation>
+<translation id="6999956497249459195">Iqembu elisha</translation>
 <translation id="7000206553895739324">I-<ph name="PRINTER_NAME" /> ixhunyiwe kodwa idinga ukulungiselelwa</translation>
 <translation id="7000347579424117903">Faka phakathi u-Ctrl, Alt, noma usesho</translation>
 <translation id="7001036685275644873">Ukwenza isipele izinhlelo zokusebenza namafayela e-Linux</translation>
@@ -4728,6 +4739,7 @@
 <translation id="7400418766976504921">I-URL</translation>
 <translation id="7400839060291901923">Setha ukuxhumeka ku-<ph name="PHONE_NAME" /> yakho</translation>
 <translation id="7401778920660465883">Cashisa lo mlayezo</translation>
+<translation id="7403642243184989645">Ilanda izinsiza</translation>
 <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Ukuhlola kokuphepha kusebenze ehoreni elingu-1 eledlule}one{Ukuhlola kokuphepha kusebenze emahoreni angu-{NUM_HOURS} adlule}other{Ukuhlola kokuphepha kusebenze emahoreni angu-{NUM_HOURS} adlule}}</translation>
 <translation id="740624631517654988">Isigelekeqe sivinjiwe</translation>
 <translation id="7407430846095439694">Ngenisa uphinde ubophezele</translation>
@@ -4964,6 +4976,7 @@
 <translation id="7716781361494605745">I-URL yenqubomgomo yegunya lesitifiketi se-Netscape</translation>
 <translation id="7717014941119698257">Iyalanda: <ph name="STATUS" /></translation>
 <translation id="7717845620320228976">Hlolela izibuyekezo</translation>
+<translation id="7719070594859855691">Nikeza ukufinyelela kukhamera</translation>
 <translation id="7719367874908701697">Ukusondezwa kwekhasi</translation>
 <translation id="7721179060400456005">Vumela amawindi ukuthi enze isipani kuziboniso</translation>
 <translation id="7722040605881499779">Ibikade idingwa ukuze kubuyekezwe: <ph name="NECESSARY_SPACE" /></translation>
@@ -4978,7 +4991,6 @@
 <translation id="7744047395460924128">Bona umlando wakho wokuphrinta</translation>
 <translation id="7744192722284567281">Kutholakele ekukhuphuleni isivumelwano sedatha</translation>
 <translation id="7750228210027921155">Isithombe-esithombeni</translation>
-<translation id="7751229152614300329">Ukuphequlula Okuphephile kusesimweni sakamuva futhi kukuvikela kumasayithi nakokulandwayo okuyingozi</translation>
 <translation id="7751260505918304024">Bonisa konke</translation>
 <translation id="7754704193130578113">Buza ukuthi ulondoloze kuphi ifayela ngalinye ngaphambi kokulanda</translation>
 <translation id="7755287808199759310">Umzali wakho angakuvulela yona</translation>
@@ -5066,6 +5078,7 @@
     <ph name="BEGIN_BOLD" />Qaphela:<ph name="END_BOLD" />  Isistimu izoqalisa kabusha ngesikhathi senqubo.</translation>
 <translation id="7828731929332799387">Lokhu kuzosusa wonke amakhukhi nedatha yesayithi etholakala kokuqukethwe kwenkampani yangaphandle. Ingabe ufuna ukuqhubeka?</translation>
 <translation id="7829298379596169484">Ifinyelela kokokufaka komsindo</translation>
+<translation id="7829528495815477379">I-<ph name="IDS_SHORT_PRODUCT_NAME" /> ayikwazi ukuhlola amaphasiwedi akho. Zama ukuhlola ukuxhumeka kwakho ku-inthanethi.</translation>
 <translation id="7829877209233347340">Cela umzali angene ngemvume ukunikeza imvume yokwengeza i-akhawunti yesikole</translation>
 <translation id="7830594666202422257">Xhumeka ku-Linux</translation>
 <translation id="7831491651892296503">Iphutha lokulungiselela inethiwekhi</translation>
@@ -5287,6 +5300,7 @@
 <translation id="8107015733319732394">Ukufaka i-Google Play Isitolo ku-<ph name="DEVICE_TYPE" /> yakho. Lokhu kungathatha amaminithi ambalwa.</translation>
 <translation id="8108526232944491552">{COUNT,plural, =0{Awekho amakhukhi enkampani yangaphandle}=1{1 ikhukhi lenkampani yangaphandle livinjelwe}one{# amakhukhi enkampani yangaphandle avinjelwe}other{# amakhukhi enkampani yangaphandle avinjelwe}}</translation>
 <translation id="810875025413331850">Awekho amadivayisi aseduze atholiwe.</translation>
+<translation id="8114199541033039755">Zulazula ekhaya, emuva bese ushintsha izinhlelo zokusebenza ngezinkinobho kumodi yethebulethi. Kuvuliwe lapho ukuchofoza kwe-ChromeVox noma kokuzenzekelayo kunikwe amandla.</translation>
 <translation id="8114875720387900039">Hlukanisa ngokuvundlile</translation>
 <translation id="8116972784401310538">I&amp;siphathi sebhukhimakhi</translation>
 <translation id="8117620576188476503">Phatha ukuxhumeka, izibuyekezo, nezilungiselelo ngethreyi yesimo. Ukuze ufike lapha ngekhibhodi, cindezela ku-Alt + Shift + S.</translation>
@@ -5406,6 +5420,7 @@
 <translation id="8263744495942430914">I-<ph name="FULLSCREEN_ORIGIN" /> ikhubaze isikhombisi sakho segundane.</translation>
 <translation id="8264024885325823677">Lesi silungiselelo siphethwe umlawuli wakho.</translation>
 <translation id="8264718194193514834">I-"<ph name="EXTENSION_NAME" />" yenze kwasebenza isikrini esigcwele.</translation>
+<translation id="826511437356419340">Ingene kumodi yokubuka konke yewindi. Swayipha ukuzulazula, noma cindezela ithebhu uma usebenzisa ikhibhodi.</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Lolu ulwazi oluvamile mayelana nale divayisi nokuthi isetshenziswa kanjani (njengeleveli yebhethri, umsebenzi wesistimu nohlelo lokusebenza, namaphutha). Idatha izosetshenziswa ukuthuthukisa i-Android, nolunye ulwazi oluhlanganisiwe nalo luzosiza izinhlelo zousebenza ze-Google nozakwethu, njengonjiniyela be-Android, ukwenza izinhlelo zabo zokusebenza nemikhiqizo kubengcono.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Ukuvala lesi sici akuthinti amandla wale divayisi okuthumela ulwazi oludingekayo kumasevisi abalulekile njengezibuyekezo zesistimu nezokuphepha.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Umnikazi angalawula lesi sici kusuka Kuzilungiselelo &gt; Okuthuthukile &gt; Thumela ngokuzenzakalelayo idatha yokuxilonga nokusebenza ku-Google.<ph name="END_PARAGRAPH3" />
@@ -5514,6 +5529,7 @@
 <translation id="8426713856918551002">Ukunika amandla</translation>
 <translation id="8427292751741042100">kushumekwe kunoma yimuphi umsingathi</translation>
 <translation id="8428213095426709021">Izilungiselelo</translation>
+<translation id="8428271547607112339">Engeza i-akhawunti yesikole</translation>
 <translation id="8428628598981198790">Ukhiye wakho wokuqinisekisa ubunikazi awukwazi ukusetshenziswa naleli sayithi</translation>
 <translation id="84297032718407999">Uzokhishwa ku-<ph name="LOGOUT_TIME_LEFT" /></translation>
 <translation id="8431190899827883166">Bonisa amathebhu</translation>
@@ -5577,6 +5593,7 @@
 <translation id="851263357009351303">Hlala uvumela i-<ph name="HOST" /> ukuthi ibonise izithombe</translation>
 <translation id="8513108775083588393">Ukuphenduka okuzenzakalelayo</translation>
 <translation id="8514746246728959655">Zama ukhiye ohlukile wokuvikela</translation>
+<translation id="851960115758509829">Izinhlelo zakho zokusebenza. izilungiselelo, nokunye okwenziwe ngendlela oyifisayo kuzovumelaniswa kuwo wonke amadivayisi we-Chrome OS angene ngemvume nge-akhawunti yakho ye-Google.</translation>
 <translation id="8521475323816527629">Fika kuzinhlelo zakho zokusebenza ngokushesha</translation>
 <translation id="8523493869875972733">Gcina ushintsho</translation>
 <translation id="8523849605371521713">Ingezwe ngenqubomgomo</translation>
@@ -5858,11 +5875,13 @@
 <translation id="885701979325669005">Ukugcina</translation>
 <translation id="8859057652521303089">Khetha ulimi lwakho:</translation>
 <translation id="8859174528519900719">I-Subframe: <ph name="SUBFRAME_SITE" /></translation>
+<translation id="8859662783913000679">I-akhawunti yomzali</translation>
 <translation id="8862003515646449717">Shintshela kusiphequluli esisheshayo</translation>
 <translation id="8863753581171631212">Vula isixhumanisi ku-<ph name="APP" /> entsha</translation>
 <translation id="8864055848767439877">Yabelana nge-<ph name="TAB_NAME" /> ku-<ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">I-<ph name="EMAIL" /> iye yasuswa kusukela kule divayisi</translation>
 <translation id="8867228703146808825">Kopisha imininingwane yesakhi kubhodi lokunamathisela</translation>
+<translation id="8868333925931032127">Iqala imodi yedemo</translation>
 <translation id="8868626022555786497">Kuyasebenza</translation>
 <translation id="8870413625673593573">Okuvalwe kamuva</translation>
 <translation id="8871551568777368300">Kuphinwe umlawuli</translation>
@@ -5941,6 +5960,7 @@
 <translation id="8966870118594285808">Vula kabusha ithebhu uma uyivale ngephutha</translation>
 <translation id="8967866634928501045">Cindezela okuthi Alt Shift A ukuze ubonise</translation>
 <translation id="8968766641738584599">Londoloza ikhadi</translation>
+<translation id="8971800409073702505">I-<ph name="IDS_SHORT_PRODUCT_NAME" /> ayikwazi ukuhlola amaphasiwedi akho. Zama futhi ngemva kwamahora angu-24 noma <ph name="BEGIN_LINK" />hlola amaphasiwedi ku-akhawunti yakho ye-Google<ph name="END_LINK" />.</translation>
 <translation id="89720367119469899">I-Escape</translation>
 <translation id="8972513834460200407">Sicela uhlole nomlawuli wenethiwekhi yakho ukuze uqiniseke ukuthi uhlelo lokuvikela aluvimbeli ukulanda kusuka kumaseva we-Google.</translation>
 <translation id="8973557916016709913">Susa ileveli yokusondeza</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb
index 1826d4d..1d4660e 100644
--- a/chrome/app/resources/google_chrome_strings_gu.xtb
+++ b/chrome/app/resources/google_chrome_strings_gu.xtb
@@ -74,6 +74,7 @@
 <translation id="2929907241665500097">કંઈક ખોટુ થયું હોવાને કારણે Chrome અપડેટ કરી શકાયું નથી. <ph name="BEGIN_LINK" />Chrome અપડેટ કરવામાં આવતી સમસ્યાઓ અને નિષ્ફળ થયેલા અપડેટ સુધારો.<ph name="END_LINK" /></translation>
 <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - નેટવર્ક સાઇન ઇન - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome પૃષ્ઠભૂમિ મોડમાં છે.</translation>
+<translation id="3059710691562604940">Safe Browsingની સુવિધા બંધ છે. Chrome તેને ચાલુ રાખવાનો સુઝાવ આપે છે.</translation>
 <translation id="3065168410429928842">Chrome ટૅબ</translation>
 <translation id="3080151273017101988">જ્યારે Google Chrome બંધ થાય ત્યારે પૃષ્ઠભૂમિમાં  ઍપ્લિકેશનો ચલાવવાનું ચાલુ રાખો </translation>
 <translation id="3089968997497233615">Google Chromeનું નવું, સુરક્ષિત વર્ઝન ઉપલબ્ધ છે.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb
index f65970b2..fca1d31 100644
--- a/chrome/app/resources/google_chrome_strings_kn.xtb
+++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -71,6 +71,7 @@
 <translation id="2929907241665500097">Chrome ಅಪ್‌ಡೇಟ್ ಆಗಲಿಲ್ಲ, ಏನೋ ಸಮಸ್ಯೆಯಾಗಿದೆ. <ph name="BEGIN_LINK" />Chrome ಅಪ್‌ಡೇಟ್ ಸಮಸ್ಯೆಗಳು ಹಾಗೂ ವಿಫಲವಾದ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಸರಿಪಡಿಸಿ.<ph name="END_LINK" /></translation>
 <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - ನೆಟ್‌ವರ್ಕ್ ಸೈನ್ ಇನ್ - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome ಹಿನ್ನೆಲೆ ಮೋಡ್‌ನಲ್ಲಿದೆ.</translation>
+<translation id="3059710691562604940">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್‌ ಆಫ್ ಆಗಿದೆ. ಅದನ್ನು ಆನ್ ಮಾಡಲು Chrome ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
 <translation id="3065168410429928842">Chrome ಟ್ಯಾಬ್</translation>
 <translation id="3080151273017101988">Google Chrome ಮುಚ್ಚಿದಾಗ ರನ್‌ ಆಗುತ್ತಿರುವ ಹಿನ್ನೆಲೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಮುಂದುವರಿಸು</translation>
 <translation id="3089968997497233615">ಹೊಸದಾದ, ಸುರಕ್ಷಿತವಾದ Google Chrome ನ ಆವೃತ್ತಿ ಲಭ್ಯವಿದೆ.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb
index 8f791e8..65d87236 100644
--- a/chrome/app/resources/google_chrome_strings_ml.xtb
+++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -74,6 +74,7 @@
 <translation id="2929907241665500097">Chrome അപ്‌ഡേറ്റ് ചെയ്തില്ല, എന്തോ കുഴപ്പമുണ്ടായി. <ph name="BEGIN_LINK" />Chrome അപ്‌ഡേറ്റ് സംബന്ധിച്ച പ്രശ്നങ്ങളും പരാജയപ്പെട്ട അപ്ഡേറ്റുകളും പരിഹരിക്കുക.<ph name="END_LINK" /></translation>
 <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - നെറ്റ്‌വർക്ക് സൈൻ ഇൻ - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome ഒരു പശ്ചാത്തല മോഡിലാണ്.</translation>
+<translation id="3059710691562604940">സുരക്ഷിത ബ്രൗസിംഗ് ഓഫാണ്. ഇത് ഓണാക്കാൻ Chrome നിർദ്ദേശിക്കുന്നു.</translation>
 <translation id="3065168410429928842">Chrome ടാബ്</translation>
 <translation id="3080151273017101988">Google Chrome അടച്ചാലും പശ്ചാത്തല ആപ്ലിക്കേഷനുകള്‍ പ്രവര്‍ത്തിപ്പിക്കുന്നത് തുടരുക</translation>
 <translation id="3089968997497233615">Google Chrome-ന്റെ പുതിയതും സുരക്ഷിതവുമായ പതിപ്പ് ലഭ്യമാണ്.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb
index d93e5293..1cc61c9f 100644
--- a/chrome/app/resources/google_chrome_strings_mr.xtb
+++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -73,6 +73,7 @@
 <translation id="2929907241665500097">Chrome अपडेट झाले नाही, काहीतरी चूक झाली. <ph name="BEGIN_LINK" />Chrome अपडेट समस्या आणि अयशस्वी झालेल्या अपडेटचे निराकरण करा.<ph name="END_LINK" /></translation>
 <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - नेटवर्क साइन इन - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome पार्श्वभूमी मोड मध्ये आहे.</translation>
+<translation id="3059710691562604940">सुरक्षित ब्राउझिंग बंद आहे. Chrome ते सुरू करण्याची शिफारस करते.</translation>
 <translation id="3065168410429928842">Chrome टॅब</translation>
 <translation id="3080151273017101988">जेव्हा Google Chrome बंद असेल तेव्हा पार्श्वभूमीत ॲप्लिकेशन चालणे सुरू ठेवा</translation>
 <translation id="3089968997497233615">Google Chrome ची नवीन, सुरक्षित आवृत्ती उपलब्ध आहे.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ne.xtb b/chrome/app/resources/google_chrome_strings_ne.xtb
index 24ae3c82..bb22928 100644
--- a/chrome/app/resources/google_chrome_strings_ne.xtb
+++ b/chrome/app/resources/google_chrome_strings_ne.xtb
@@ -72,6 +72,7 @@
 <translation id="2929907241665500097">Chrome अद्यावधिक भएन, केही चिज गडबड भयो। <ph name="BEGIN_LINK" />Chrome अद्यावधिक गर्दा देखिएका समस्या तथा अद्यावधिक नहुने समस्याहरू समाधान गर्नुहोस्।<ph name="END_LINK" /></translation>
 <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - नेटवर्क साइन इन - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome पृष्ठभूमि मोडमा छ।</translation>
+<translation id="3059710691562604940">सुरक्षित ब्राउजिङ निष्क्रिय छ। Chrome ले यो सेवा सक्रिय गर्न सिफारिस गर्छ।</translation>
 <translation id="3065168410429928842">Chrome को ट्याब</translation>
 <translation id="3080151273017101988">Google Chrome बन्दा हुँदा पृष्ठभूमि अनुप्रयोगहरू चालू हुन जारी राख्नुहोस्</translation>
 <translation id="3089968997497233615">Google Chrome खो नयाँ, सुरक्षित संस्करण उपलब्ध छ।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_or.xtb b/chrome/app/resources/google_chrome_strings_or.xtb
index 67db7bc..26fc6f8 100644
--- a/chrome/app/resources/google_chrome_strings_or.xtb
+++ b/chrome/app/resources/google_chrome_strings_or.xtb
@@ -73,6 +73,7 @@
 <translation id="2929907241665500097">Chrome ଅପଡେଟ୍ ହେଲା ନାହିଁ, କିଛି ତ୍ରୁଟି ହୋଇଗଲା। <ph name="BEGIN_LINK" />Chrome ଅପଡେଟ୍ ସମସ୍ୟା ଏବଂ ବିଫଳ ଅପଡେଟଗୁଡ଼ିକର ସମାଧାନ କରନ୍ତୁ।<ph name="END_LINK" /></translation>
 <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - ନେଟୱାର୍କ ସାଇନ୍-ଇନ୍ - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome ପୃଷ୍ଠପଟ ମୋଡ୍‌ରେ ଅଛି।</translation>
+<translation id="3059710691562604940">ସେଫ୍ ବ୍ରାଉଜିଂ ବନ୍ଦ ଅଛି। Chrome ଏହାକୁ ଚାଲୁ କରିବାକୁ ସୁପାରିଶ କରେ।</translation>
 <translation id="3065168410429928842">Chrome ଟାବ୍</translation>
 <translation id="3080151273017101988">ଯେତେବେଳେ Google Chrome ବନ୍ଦ ଅଛି, ସେତେବେଳେ ପୃଷ୍ଠପଟରେ ଥିବା ଆପ୍ସ ଚାଲିବା ଜାରି ରଖନ୍ତୁ।</translation>
 <translation id="3089968997497233615">Google Chromeର ଏକ ନୂଆ, ସୁରକ୍ଷିତ ସଂସ୍କରଣ ଉପଲବ୍ଧ ଅଛି।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pa.xtb b/chrome/app/resources/google_chrome_strings_pa.xtb
index c30984bd..1c8456b5 100644
--- a/chrome/app/resources/google_chrome_strings_pa.xtb
+++ b/chrome/app/resources/google_chrome_strings_pa.xtb
@@ -74,6 +74,7 @@
 <translation id="2929907241665500097">Chrome ਅੱਪਡੇਟ ਨਹੀਂ ਹੋਇਆ, ਕੋਈ ਗੜਬੜ ਹੋ ਗਈ। <ph name="BEGIN_LINK" />Chrome ਅੱਪਡੇਟ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਅਤੇ ਅਸਫਲ ਹੋਈਆਂ ਅੱਪਡੇਟਾਂ ਨੂੰ ਠੀਕ ਕਰੋ।<ph name="END_LINK" /></translation>
 <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - ਨੈੱਟਵਰਕ ਸਾਈਨ-ਇਨ - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome ਬੈਕਗ੍ਰਾਊਂਡ ਮੋਡ ਵਿੱਚ ਹੈ।</translation>
+<translation id="3059710691562604940">ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ ਬੰਦ ਹੈ। Chrome ਇਸਨੂੰ ਚਾਲੂ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ।</translation>
 <translation id="3065168410429928842">Chrome ਟੈਬ</translation>
 <translation id="3080151273017101988">Google Chrome ਬੰਦ ਹੋਣ 'ਤੇ ਵੀ ਬੈਕਗ੍ਰਾਊਂਡ ਐਪਾਂ ਨੂੰ ਚਲਦੇ ਰਹਿਣ ਦਿਓ</translation>
 <translation id="3089968997497233615">Google Chrome ਦਾ ਇੱਕ ਨਵਾਂ, ਵੱਧ ਸੁਰੱਖਿਅਤ ਵਰਜਨ ਉਪਲਬਧ ਹੈ।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb
index fe74d1e..8275ce26 100644
--- a/chrome/app/resources/google_chrome_strings_ta.xtb
+++ b/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -70,6 +70,7 @@
 <translation id="2929907241665500097">ஏதோ தவறாகிவிட்டதால் Chrome புதுப்பிக்கப்படவில்லை. <ph name="BEGIN_LINK" />Chrome புதுப்பிப்பு குறித்த சிக்கல்களையும் தோல்வியடைந்த புதுப்பிப்புகளையும் சரிசெய்யவும்.<ph name="END_LINK" /></translation>
 <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - நெட்வொர்க் உள்நுழைவு - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome பின்புலப் பயன்முறையில் இயங்குகிறது.</translation>
+<translation id="3059710691562604940">’பாதுகாப்பு உலாவல்‘ அம்சம் முடக்கப்பட்டுள்ளது. அதை இயக்குமாறு Chrome பரிந்துரைக்கிறது.</translation>
 <translation id="3065168410429928842">Chrome தாவல்</translation>
 <translation id="3080151273017101988">Google Chrome மூடப்பட்டிருக்கும்போது பின்புல ஆப்ஸை இயக்க அனுமதி</translation>
 <translation id="3089968997497233615">புதிய, இன்னும் பாதுகாப்பான Google Chrome பதிப்பு தற்போது கிடைக்கிறது.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb
index d0276e4a..04b913a 100644
--- a/chrome/app/resources/google_chrome_strings_te.xtb
+++ b/chrome/app/resources/google_chrome_strings_te.xtb
@@ -70,6 +70,7 @@
 <translation id="2929907241665500097">Chrome అప్‌డేట్ అవ్వలేదు, ఏదో తప్పు జరిగింది. <ph name="BEGIN_LINK" />Chrome అప్‌డేట్ సమస్యలు, విఫలమైన అప్‌డేట్‌లను పరిష్కరించండి.<ph name="END_LINK" /></translation>
 <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - నెట్‌వర్క్ సైన్ ఇన్ - Chrome</translation>
 <translation id="3037838751736561277">Google Chrome నేపథ్య మోడ్‌లో ఉంది.</translation>
+<translation id="3059710691562604940">సురక్షిత బ్రౌజింగ్ ఆఫ్ చేయబడింది. దాన్ని ఆన్ చేయమని Chrome సిఫార్సు చేస్తోంది.</translation>
 <translation id="3065168410429928842">Chrome ట్యాబ్</translation>
 <translation id="3080151273017101988">Google Chromeను మూసివేసినపుడు, యాప్‌లను నేపథ్యంలో అమలు చేయడాన్ని కొనసాగించు</translation>
 <translation id="3089968997497233615">Google Chrome యొక్క కొత్తదైన, మరింత సురక్షిత వెర్షన్ అందుబాటులో ఉంది.</translation>
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index cd45d530..83ead9c 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -1185,269 +1185,6 @@
     </message>
   </if>
 
-  <!-- Strings translating ONC (Open Network Configuration) properties -->
-  <!-- and translatable values. See onc_spec.md for more information. -->
-  <if expr="chromeos">
-    <message name="IDS_ONC_IPV4_ADDRESS" desc="ONC Property label for ipv4-IPAddress">
-      IP address
-    </message>
-    <message name="IDS_ONC_IPV4_GATEWAY" desc="ONC Property label for ipv4-Gateway">
-      Gateway
-    </message>
-    <message name="IDS_ONC_IPV4_ROUTING_PREFIX" desc="ONC Property label for ipv4-RoutingPrefix">
-      Routing prefix
-    </message>
-    <message name="IDS_ONC_IPV6_ADDRESS" desc="ONC Property label for ipv6-Address">
-      IPv6 address
-    </message>
-    <message name="IDS_ONC_CELLULAR_ACTIVATION_STATE" desc="ONC Property label for Cellular.ActivationState">
-      Activation status
-    </message>
-    <message name="IDS_ONC_CELLULAR_ACTIVATION_STATE_ACTIVATED" desc="ONC Property value when Cellular.ActivationState = Activated">
-      Activated
-    </message>
-    <message name="IDS_ONC_CELLULAR_ACTIVATION_STATE_ACTIVATING" desc="ONC Property value when Cellular.ActivationState = Activating">
-      Activating
-    </message>
-    <message name="IDS_ONC_CELLULAR_ACTIVATION_STATE_NOT_ACTIVATED" desc="ONC Property value when Cellular.ActivationStat = NotActivated">
-      Not activated
-    </message>
-    <message name="IDS_ONC_CELLULAR_ACTIVATION_STATE_PARTIALLY_ACTIVATED" desc="ONC Property value when Cellular.ActivationState = PartiallyActivated">
-      Partially activated
-    </message>
-    <message name="IDS_ONC_CELLULAR_ACTIVATION_STATE_NO_SERVICE" desc="ONC Property value when Cellular.ActivationState = NoService">
-      No service
-    </message>
-    <message name="IDS_ONC_CELLULAR_APN_ACCESS_POINT_NAME" desc="ONC Property label for APN-AccessPointName">
-      Access point name
-    </message>
-    <message name="IDS_ONC_CELLULAR_APN_ACCESS_POINT_NAME_NONE" desc="ONC Property label for APN-AccessPointName = none (or empty)">
-      None
-    </message>
-    <message name="IDS_ONC_CELLULAR_APN_USERNAME" desc="ONC Property label for APN-Username">
-      Username
-    </message>
-    <message name="IDS_ONC_CELLULAR_APN_PASSWORD" desc="ONC Property label for APN-Password">
-      Password
-    </message>
-    <message name="IDS_ONC_CELLULAR_APN_AUTHENTICATION" desc="ONC Property label for APN-Authentication">
-      Authentication
-    </message>
-    <message name="IDS_ONC_CELLULAR_FAMILY" desc="ONC Property label for Cellular.Family">
-      Family
-    </message>
-    <message name="IDS_ONC_CELLULAR_FIRMWARE_REVISION" desc="ONC Property label for Cellular.FirmwareRevision">
-      Firmware revision
-    </message>
-    <message name="IDS_ONC_CELLULAR_HARDWARE_REVISION" desc="ONC Property label for Cellular.HardwareRevision">
-      Hardware revision
-    </message>
-    <message name="IDS_ONC_CELLULAR_HOME_PROVIDER_CODE" desc="ONC Property label for Cellular.HomeProvider.Code">
-      Home provider code
-    </message>
-    <message name="IDS_ONC_CELLULAR_HOME_PROVIDER_COUNTRY" desc="ONC Property label for Cellular.HomeProvider.Country">
-      Home provider country
-    </message>
-    <message name="IDS_ONC_CELLULAR_HOME_PROVIDER_NAME" desc="ONC Property label for Cellular.HomeProvider.Name">
-      Home provider name
-    </message>
-    <message name="IDS_ONC_CELLULAR_MANUFACTURER" desc="ONC Property label for Cellular.Manufacturer">
-      Manufacturer
-    </message>
-    <message name="IDS_ONC_CELLULAR_MODEL_ID" desc="ONC Property label for Cellular.ModelID">
-      Model ID
-    </message>
-    <message name="IDS_ONC_CELLULAR_NETWORK_TECHNOLOGY" desc="ONC Property label for Cellular.NetworkTechnology">
-      Technology
-    </message>
-    <message name="IDS_ONC_CELLULAR_ROAMING_STATE" desc="ONC Property label for Cellular.RoamingState">
-      Roaming status
-    </message>
-    <message name="IDS_ONC_CELLULAR_ROAMING_STATE_HOME" desc="ONC Property value when OncCellular.RoamingState = Home">
-      Home network, not roaming
-    </message>
-    <message name="IDS_ONC_CELLULAR_ROAMING_STATE_ROAMING" desc="ONC Property value when OncCellular.RoamingState = Roaming">
-      Roaming
-    </message>
-    <message name="IDS_ONC_CELLULAR_SERVING_OPERATOR_CODE" desc="ONC Property label for Cellular.ServingOperator.Code">
-      Operator code
-    </message>
-    <message name="IDS_ONC_CELLULAR_SERVING_OPERATOR_NAME" desc="ONC Property label for Cellular.ServingOperator.Name">
-      Operator
-    </message>
-    <message name="IDS_ONC_CONNECTED" desc="Settings > Internet, text in network summary when a network is connected.">
-      Connected
-    </message>
-    <message name="IDS_ONC_CONNECTING" desc="Settings > Internet, text in network summary when a network is connecting.">
-      Connecting
-    </message>
-    <message name="IDS_ONC_EAP_ANONYMOUS_IDENTITY" desc="ONC Property label for EAP.AnonymousIdentity">
-      Anonymous Identity
-    </message>
-    <message name="IDS_ONC_EAP_IDENTITY" desc="ONC Property label for EAP.Identity">
-      Identity
-    </message>
-    <message name="IDS_ONC_EAP_INNER" desc="ONC Property label for EAP.Inner (Phase 2 authentication)">
-      EAP Phase 2 authentication
-    </message>
-    <message name="IDS_ONC_EAP_INNER_AUTOMATIC" desc="ONC Property value for EAP.Inner = Automatic">
-      Automatic
-    </message>
-    <message name="IDS_ONC_EAP_INNER_MD5" desc="ONC Property value for EAP.Inner = MD5">
-      EAP-MD5
-    </message>
-    <message name="IDS_ONC_EAP_INNER_MSCHAP" desc="ONC Property value for EAP.Inner = MSCHAP">
-      MSCHAP
-    </message>
-    <message name="IDS_ONC_EAP_INNER_MSCHAPV2" desc="ONC Property value for EAP.Inner = MSCHAPv2">
-      MSCHAPv2
-    </message>
-    <message name="IDS_ONC_EAP_INNER_PAP" desc="ONC Property value for EAP.Inner = PAP">
-      PAP
-    </message>
-    <message name="IDS_ONC_EAP_INNER_CHAP" desc="ONC Property value for EAP.Inner = CHAP">
-      CHAP
-    </message>
-    <message name="IDS_ONC_EAP_INNER_GTC" desc="ONC Property value for EAP.Inner = GTC">
-      GTC
-    </message>
-    <message name="IDS_ONC_EAP_OUTER" desc="ONC Property label for EAP.Outer (Method)">
-      EAP method
-    </message>
-    <message name="IDS_ONC_EAP_OUTER_LEAP" desc="ONC Property value for EAP.Outer = LEAP">
-      LEAP
-    </message>
-    <message name="IDS_ONC_EAP_OUTER_PEAP" desc="ONC Property value for EAP.Outer = PEAP">
-      PEAP
-    </message>
-    <message name="IDS_ONC_EAP_OUTER_TLS" desc="ONC Property value for EAP.Outer = TLS">
-      EAP-TLS
-    </message>
-    <message name="IDS_ONC_EAP_OUTER_TTLS" desc="ONC Property value for EAP.Outer = TTLS">
-      EAP-TTLS
-    </message>
-    <message name="IDS_ONC_EAP_SERVER_CA" desc="ONC Property label for EAP Server CA Certificate">
-      Server CA certificate
-    </message>
-    <message name="IDS_ONC_EAP_SUBJECT_MATCH" desc="ONC Property label for EAP.SubjectMatch">
-      Subject match
-    </message>
-    <message name="IDS_ONC_EAP_USER_CERT" desc="ONC Property label for EAP User Certs">
-      User certificate
-    </message>
-    <message name="IDS_ONC_NOT_CONNECTED" desc="Settings > Internet, text in network summary when a network is not connecting or connected.">
-      Not Connected
-    </message>
-    <message name="IDS_ONC_MAC_ADDRESS" desc="ONC Property label for MacAddress">
-      MAC address
-    </message>
-    <message name="IDS_ONC_NAME" desc="ONC Property label for the network Name (displayed when configuring a VPN service name)">
-      Service name
-    </message>
-    <message name="IDS_ONC_RESTRICTED_CONNECTIVITY" desc="ONC Property label for RestrictedConnectivity">
-      Restricted IP
-    </message>
-    <message name="IDS_ONC_TETHER_BATTERY_PERCENTAGE" desc="Settings > Internet > Title of section which displays the battery percentage of another device which provides a tether hotspot for the current device to connect to.">
-      Battery
-    </message>
-    <message name="IDS_ONC_TETHER_BATTERY_PERCENTAGE_VALUE" desc="Settings > Internet > Text contents of section which displays the battery percentage of another device which provides a tether hotspot for the current device to connect to.">
-      <ph name="BATTERY_PERCENTAGE">$1<ex>100</ex></ph>%
-    </message>
-    <message name="IDS_ONC_TETHER_SIGNAL_STRENGTH" desc="Settings > Internet > Title of section which displays the cellular signal strength of another device which provides a tether hotspot for the current device to connect to. The signal strength is displayed as a string (e.g., Strong)">
-      Signal strength
-    </message>
-    <message name="IDS_ONC_TETHER_SIGNAL_STRENGTH_WEAK" desc="Settings > Internet > Label used to describe the signal strength of a device's cellular connection when the signal is weak. The strength value is 1 on a scale from 1 (min) to 5 (max).">
-      Weak
-    </message>
-    <message name="IDS_ONC_TETHER_SIGNAL_STRENGTH_OKAY" desc="Settings > Internet > Label used to describe the signal strength of a device's cellular connection when the signal is okay. The strength value is 2 on a scale from 1 (min) to 5 (max).">
-      Okay
-    </message>
-    <message name="IDS_ONC_TETHER_SIGNAL_STRENGTH_GOOD" desc="Settings > Internet > Label used to describe the signal strength of a device's cellular connection when the signal is good. The strength value is 3 on a scale from 1 (min) to 5 (max).">
-      Fine
-    </message>
-    <message name="IDS_ONC_TETHER_SIGNAL_STRENGTH_STRONG" desc="Settings > Internet > Label used to describe the signal strength of a device's cellular connection when the signal is strong. The strength value is 4 on a scale from 1 (min) to 5 (max).">
-      Strong
-    </message>
-    <message name="IDS_ONC_TETHER_SIGNAL_STRENGTH_VERY_STRONG" desc="Settings > Internet > Label used to describe the signal strength of a device's cellular connection when the signal is very strong. The strength value is 5 on a scale from 1 (min) to 5 (max).">
-      Very strong
-    </message>
-    <message name="IDS_ONC_TETHER_CARRIER" desc="Settings > Internet > Title of section which displays the name of the cellular provider (e.g., Verizon) of another device which provides a tether hotspot for the current device to connect to. To be clear, the current device does not have cellular service; instead, another device has it and can provide data to the current device via a Wi-Fi hotspot.">
-      Cellular provider
-    </message>
-    <message name="IDS_ONC_TETHER_CARRIER_UNKNOWN" desc="Settings > Internet > Text displayed in the settings UI in place of a cellular provider when the actual name of the provider is unknown. In this context, the cellular provider refers to the carrier which provides mobile data service to another device which can start a tether hotspot to provide a data connection to the current device.">
-      Unknown carrier
-    </message>
-    <message name="IDS_ONC_VPN_HOST" desc="ONC Property label for VPN.Host">
-      Server hostname
-    </message>
-    <message name="IDS_ONC_VPN_IPSEC_GROUP" desc="ONC Property label for VPN.IPSec.Group">
-      Group name
-    </message>
-    <message name="IDS_ONC_VPN_IPSEC_PSK" desc="ONC Property label for VPN.IPSec.PSK">
-      Pre-shared key
-    </message>
-    <message name="IDS_ONC_VPN_OPENVPN_EXTRA_HOSTS" desc="ONC Property label for VPN.OpenVPN.ExtraHosts">
-      Extra hosts
-    </message>
-    <message name="IDS_ONC_VPN_OPENVPN_OTP" desc="ONC Property label for VPN.OpenVPN.OTP">
-      OTP
-    </message>
-    <message name="IDS_ONC_VPN_PASSWORD" desc="ONC Property label for VPN.OpenVPN.Password or VPN.L2TP.Password">
-      Password
-    </message>
-    <message name="IDS_ONC_VPN_USERNAME" desc="ONC Property label for VPN.OpenVPN.Username or VPN.L2TP.Username">
-      Username
-    </message>
-    <message name="IDS_ONC_VPN_THIRD_PARTY_VPN_PROVIDER_NAME" desc="ONC Property label for VPN.ThirdPartyVPN.ProviderName">
-      Provider name
-    </message>
-    <message name="IDS_ONC_VPN_TYPE" desc="ONC Property label for VPN.Type">
-      Provider type
-    </message>
-    <message name="IDS_ONC_VPN_TYPE_L2TP_IPSEC" desc="ONC Property label for VPN.Type.L2TP-IPSec">
-      L2TP/IPsec
-    </message>
-    <message name="IDS_ONC_VPN_TYPE_L2TP_IPSEC_PSK" desc="ONC Property label for configuring VPN.Type.L2TP-IPSec with AuthenticationType = PSK">
-      L2TP/IPsec + pre-shared key
-    </message>
-    <message name="IDS_ONC_VPN_TYPE_L2TP_IPSEC_CERT" desc="ONC Property label for configuring VPN.Type.L2TP-IPSec  with AuthenticationType = Cert">
-      L2TP/IPsec + user certificate
-    </message>
-    <message name="IDS_ONC_VPN_TYPE_OPENVPN" desc="ONC Property label for VPN.Type.OpenVPN">
-      Open VPN
-    </message>
-    <message name="IDS_ONC_VPN_TYPE_ARCVPN" desc="ONC Property label for VPN.Type.ARCVPN">
-      Android VPN
-    </message>
-    <message name="IDS_ONC_WIFI_FREQUENCY" desc="ONC Property label for WiFi.Frequency">
-      Frequency
-    </message>
-    <message name="IDS_ONC_WIFI_PASSWORD" desc="ONC Property label for WiFi.Password">
-      Password
-    </message>
-    <message name="IDS_ONC_WIFI_SECURITY" desc="ONC Property label for WiFi.Security">
-      Security
-    </message>
-    <message name="IDS_ONC_WIFI_SECURITY_NONE" desc="In settings > Internet, a string specifying security type = none.">
-      None
-    </message>
-    <message name="IDS_ONC_WIFI_SECURITY_WEP" desc="In settings > Internet, a string specifying security type = WEP.">
-      WEP
-    </message>
-    <message name="IDS_ONC_WIFI_SECURITY_PSK" desc="In settings > Internet, a string specifying security type = PSK (either WPA-PSK or RSN-PSK).">
-      PSK (WPA or RSN)
-    </message>
-    <message name="IDS_ONC_WIFI_SECURITY_EAP" desc="In settings > Internet, a string specifying security type = EAP (802.1X).">
-      EAP
-    </message>
-    <message name="IDS_ONC_WIFI_SIGNAL_STRENGTH" desc="ONC Property label for WiFi.SignalStrength">
-      Signal strength
-    </message>
-    <message name="IDS_ONC_WIFI_SSID" desc="ONC Property label for WiFi.SSID">
-      SSID
-    </message>
-  </if>
-
   <!-- On Startup Page -->
   <message name="IDS_SETTINGS_ON_STARTUP" desc="Name of the on startup page.">
     On startup
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index eb264ff9..1afb2d9 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -1861,6 +1861,8 @@
     "upboarding/query_tiles/tile_service_factory.h",
     "update_client/chrome_update_query_params_delegate.cc",
     "update_client/chrome_update_query_params_delegate.h",
+    "usb/frame_usb_services.cc",
+    "usb/frame_usb_services.h",
     "usb/usb_blocklist.cc",
     "usb/usb_blocklist.h",
     "usb/usb_chooser_context.cc",
@@ -2963,6 +2965,8 @@
       "signin/identity_services_provider_android.cc",
       "signin/signin_manager_android_factory.cc",
       "signin/signin_manager_android_factory.h",
+      "ssl/chrome_security_state_client.cc",
+      "ssl/chrome_security_state_client.h",
       "ssl/chrome_security_state_model_delegate.cc",
       "ssl/chrome_security_state_model_delegate.h",
       "ssl/known_interception_disclosure_infobar.cc",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index b28a6ff..b4fe07b 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -5231,6 +5231,13 @@
      FEATURE_VALUE_TYPE(features::kNearbySharing)},
 #endif  // !defined(OS_ANDROID)
 
+    {"autofill-enable-surfacing-server-card-nickname",
+     flag_descriptions::kAutofillEnableSurfacingServerCardNicknameName,
+     flag_descriptions::kAutofillEnableSurfacingServerCardNicknameDescription,
+     kOsAll,
+     FEATURE_VALUE_TYPE(
+         autofill::features::kAutofillEnableSurfacingServerCardNickname)},
+
     // NOTE: Adding a new flag requires adding a corresponding entry to enum
     // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag
     // Histograms" in tools/metrics/histograms/README.md (run the
diff --git a/chrome/browser/android/compositor/navigation_glow.h b/chrome/browser/android/compositor/navigation_glow.h
index fad8c4e5..86a7065 100644
--- a/chrome/browser/android/compositor/navigation_glow.h
+++ b/chrome/browser/android/compositor/navigation_glow.h
@@ -51,8 +51,6 @@
   void OnAnimate(base::TimeTicks begin_frame_time) override;
   void OnActivityStopped() override {}
   void OnActivityStarted() override {}
-  void OnCursorVisibilityChanged(bool visible) override {}
-  void OnFallbackCursorModeToggled(bool is_on) override {}
 
   // ui::ViewAndroidObserver implementation.
   void OnAttachedToWindow() override;
diff --git a/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.cc b/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.cc
index bc9e84f1..65d16b3 100644
--- a/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.cc
+++ b/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.cc
@@ -28,9 +28,13 @@
 ArCoreAnchorManager::~ArCoreAnchorManager() = default;
 
 mojom::XRAnchorsDataPtr ArCoreAnchorManager::GetAnchorsData() const {
+  DVLOG(3) << __func__ << ": anchor_id_to_anchor_info_.size()="
+           << anchor_id_to_anchor_info_.size()
+           << ", updated_anchor_ids_.size()=" << updated_anchor_ids_.size();
+
   std::vector<uint64_t> all_anchors_ids;
-  all_anchors_ids.reserve(anchor_id_to_anchor_object_.size());
-  for (const auto& anchor_id_and_object : anchor_id_to_anchor_object_) {
+  all_anchors_ids.reserve(anchor_id_to_anchor_info_.size());
+  for (const auto& anchor_id_and_object : anchor_id_to_anchor_info_) {
     all_anchors_ids.push_back(anchor_id_and_object.first.GetUnsafeValue());
   }
 
@@ -38,18 +42,28 @@
   updated_anchors.reserve(updated_anchor_ids_.size());
   for (const auto& anchor_id : updated_anchor_ids_) {
     const device::internal::ScopedArCoreObject<ArAnchor*>& anchor =
-        anchor_id_to_anchor_object_.at(anchor_id);
+        anchor_id_to_anchor_info_.at(anchor_id).anchor;
 
-    // pose
-    ArAnchor_getPose(arcore_session_, anchor.get(), ar_pose_.get());
-    mojom::Pose pose = GetMojomPoseFromArPose(arcore_session_, ar_pose_.get());
+    if (anchor_id_to_anchor_info_.at(anchor_id).tracking_state ==
+        AR_TRACKING_STATE_TRACKING) {
+      // pose
+      ArAnchor_getPose(arcore_session_, anchor.get(), ar_pose_.get());
+      mojom::Pose pose =
+          GetMojomPoseFromArPose(arcore_session_, ar_pose_.get());
 
-    DVLOG(3) << __func__ << ": anchor id: " << anchor_id.GetUnsafeValue()
-             << ", position=" << pose.position.ToString()
-             << ", orientation=" << pose.orientation.ToString();
+      DVLOG(3) << __func__ << ": anchor_id: " << anchor_id.GetUnsafeValue()
+               << ", position=" << pose.position.ToString()
+               << ", orientation=" << pose.orientation.ToString();
 
-    updated_anchors.push_back(mojom::XRAnchorData::New(
-        anchor_id.GetUnsafeValue(), device::mojom::Pose::New(pose)));
+      updated_anchors.push_back(mojom::XRAnchorData::New(
+          anchor_id.GetUnsafeValue(), device::mojom::Pose::New(pose)));
+    } else {
+      DVLOG(3) << __func__ << ": anchor_id: " << anchor_id.GetUnsafeValue()
+               << ", position=untracked, orientation=untracked";
+
+      updated_anchors.push_back(
+          mojom::XRAnchorData::New(anchor_id.GetUnsafeValue(), nullptr));
+    }
   }
 
   return mojom::XRAnchorsData::New(std::move(all_anchors_ids),
@@ -73,7 +87,7 @@
     ArTrackingState tracking_state;
     ArAnchor_getTrackingState(arcore_session_, anchor.get(), &tracking_state);
 
-    if (tracking_state != ArTrackingState::AR_TRACKING_STATE_TRACKING) {
+    if (tracking_state == ArTrackingState::AR_TRACKING_STATE_STOPPED) {
       // Skip all anchors that are not currently tracked.
       continue;
     }
@@ -100,7 +114,7 @@
     std::tie(anchor_id, created) = CreateOrGetAnchorId(ar_anchor.get());
 
     DVLOG(3) << __func__
-             << ": anchor updated, anchor id=" << anchor_id.GetUnsafeValue()
+             << ": anchor updated, anchor_id=" << anchor_id.GetUnsafeValue()
              << ", tracking_state=" << tracking_state;
 
     DCHECK(!created)
@@ -118,44 +132,54 @@
 
   // Collect the objects of all currently tracked anchors.
   // |ar_plane_address_to_id_| should *not* grow.
-  std::map<AnchorId, device::internal::ScopedArCoreObject<ArAnchor*>>
-      anchor_id_to_anchor_object;
+  std::map<AnchorId, AnchorInfo> new_anchor_id_to_anchor_info;
   ForEachArCoreAnchor(arcore_anchors_.get(), [this,
-                                              &anchor_id_to_anchor_object](
+                                              &new_anchor_id_to_anchor_info,
+                                              &updated_anchor_ids](
                                                  device::internal::
                                                      ScopedArCoreObject<
-                                                         ArAnchor*> ar_anchor,
+                                                         ArAnchor*> anchor,
                                                  ArTrackingState
                                                      tracking_state) {
     // ID
     AnchorId anchor_id;
     bool created;
-    std::tie(anchor_id, created) = CreateOrGetAnchorId(ar_anchor.get());
+    std::tie(anchor_id, created) = CreateOrGetAnchorId(anchor.get());
 
     DVLOG(3) << __func__
-             << ": anchor present, anchor id=" << anchor_id.GetUnsafeValue()
+             << ": anchor present, anchor_id=" << anchor_id.GetUnsafeValue()
              << ", tracking state=" << tracking_state;
 
     DCHECK(!created)
         << "Anchor creation is app-initiated - we should never encounter an "
            "anchor that was created outside of `ArCoreImpl::CreateAnchor()`.";
 
-    anchor_id_to_anchor_object[anchor_id] = std::move(ar_anchor);
+    // Inspect the tracking state of this anchor in the previous frame. If it
+    // changed, mark the anchor as updated.
+    if (base::Contains(anchor_id_to_anchor_info_, anchor_id) &&
+        anchor_id_to_anchor_info_.at(anchor_id).tracking_state !=
+            tracking_state) {
+      updated_anchor_ids.insert(anchor_id);
+    }
+
+    AnchorInfo new_anchor_info = AnchorInfo(std::move(anchor), tracking_state);
+
+    new_anchor_id_to_anchor_info.emplace(anchor_id, std::move(new_anchor_info));
   });
 
-  DVLOG(3) << __func__ << ": anchor_id_to_anchor_object.size()="
-           << anchor_id_to_anchor_object.size();
+  DVLOG(3) << __func__ << ": new_anchor_id_to_anchor_info.size()="
+           << new_anchor_id_to_anchor_info.size();
 
   // Shrink |ar_plane_address_to_id_|, removing all planes that are no longer
   // tracked or were subsumed - if they do not show up in
   // |plane_id_to_plane_object| map, they are no longer tracked.
   base::EraseIf(
       ar_anchor_address_to_id_,
-      [&anchor_id_to_anchor_object](const auto& anchor_address_and_id) {
-        return !base::Contains(anchor_id_to_anchor_object,
+      [&new_anchor_id_to_anchor_info](const auto& anchor_address_and_id) {
+        return !base::Contains(new_anchor_id_to_anchor_info,
                                anchor_address_and_id.second);
       });
-  anchor_id_to_anchor_object_.swap(anchor_id_to_anchor_object);
+  anchor_id_to_anchor_info_.swap(new_anchor_id_to_anchor_info);
   updated_anchor_ids_.swap(updated_anchor_ids);
 }
 
@@ -196,7 +220,8 @@
   DCHECK(created) << "This should always be a new anchor, not something we've "
                      "seen previously.";
 
-  anchor_id_to_anchor_object_[anchor_id] = std::move(ar_anchor);
+  anchor_id_to_anchor_info_.emplace(
+      anchor_id, AnchorInfo(std::move(ar_anchor), AR_TRACKING_STATE_TRACKING));
 
   return anchor_id;
 }
@@ -222,38 +247,47 @@
   DCHECK(created) << "This should always be a new anchor, not something we've "
                      "seen previously.";
 
-  anchor_id_to_anchor_object_[anchor_id] = std::move(ar_anchor);
+  anchor_id_to_anchor_info_.emplace(
+      anchor_id, AnchorInfo(std::move(ar_anchor), AR_TRACKING_STATE_TRACKING));
 
   return anchor_id;
 }
 
 void ArCoreAnchorManager::DetachAnchor(AnchorId anchor_id) {
-  auto it = anchor_id_to_anchor_object_.find(anchor_id);
-  if (it == anchor_id_to_anchor_object_.end()) {
+  auto it = anchor_id_to_anchor_info_.find(anchor_id);
+  if (it == anchor_id_to_anchor_info_.end()) {
     return;
   }
 
-  ArAnchor_detach(arcore_session_, it->second.get());
+  ArAnchor_detach(arcore_session_, it->second.anchor.get());
 
-  anchor_id_to_anchor_object_.erase(it);
+  anchor_id_to_anchor_info_.erase(it);
 }
 
 bool ArCoreAnchorManager::AnchorExists(AnchorId id) const {
-  return base::Contains(anchor_id_to_anchor_object_, id);
+  return base::Contains(anchor_id_to_anchor_info_, id);
 }
 
 base::Optional<gfx::Transform> ArCoreAnchorManager::GetMojoFromAnchor(
     AnchorId id) const {
-  auto it = anchor_id_to_anchor_object_.find(id);
-  if (it == anchor_id_to_anchor_object_.end()) {
+  auto it = anchor_id_to_anchor_info_.find(id);
+  if (it == anchor_id_to_anchor_info_.end()) {
     return base::nullopt;
   }
 
-  ArAnchor_getPose(arcore_session_, it->second.get(), ar_pose_.get());
+  ArAnchor_getPose(arcore_session_, it->second.anchor.get(), ar_pose_.get());
   mojom::Pose mojo_pose =
       GetMojomPoseFromArPose(arcore_session_, ar_pose_.get());
 
   return mojo::ConvertTo<gfx::Transform>(mojo_pose);
 }
 
+ArCoreAnchorManager::AnchorInfo::AnchorInfo(
+    device::internal::ScopedArCoreObject<ArAnchor*> anchor,
+    ArTrackingState tracking_state)
+    : anchor(std::move(anchor)), tracking_state(tracking_state) {}
+
+ArCoreAnchorManager::AnchorInfo::AnchorInfo(AnchorInfo&& other) = default;
+ArCoreAnchorManager::AnchorInfo::~AnchorInfo() = default;
+
 }  // namespace device
diff --git a/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.h b/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.h
index 59c969a9..37cb34c 100644
--- a/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.h
+++ b/chrome/browser/android/vr/arcore_device/arcore_anchor_manager.h
@@ -49,9 +49,20 @@
   void DetachAnchor(AnchorId anchor_id);
 
  private:
+  struct AnchorInfo {
+    device::internal::ScopedArCoreObject<ArAnchor*> anchor;
+    ArTrackingState tracking_state;
+
+    AnchorInfo(device::internal::ScopedArCoreObject<ArAnchor*> anchor,
+               ArTrackingState tracking_state);
+    AnchorInfo(AnchorInfo&& other);
+    ~AnchorInfo();
+  };
+
   // Executes |fn| for each still tracked, anchor present in |arcore_anchors|.
   // |fn| will receive a `device::internal::ScopedArCoreObject<ArAnchor*>` that
-  // can be stored, as well as ArTrackingState of the passed in anchor.
+  // can be stored, as well as ArTrackingState of the passed in anchor. An
+  // anchor is tracked if its state is not AR_TRACKING_STATE_STOPPED.
   template <typename FunctionType>
   void ForEachArCoreAnchor(ArAnchorList* arcore_anchors, FunctionType fn);
 
@@ -72,10 +83,9 @@
   // Mapping from anchor address to anchor ID. It should be modified only during
   // calls to |Update()| and anchor creation.
   std::map<void*, AnchorId> ar_anchor_address_to_id_;
-  // Mapping from anchor ID to ARCore anchor object. It should be modified only
-  // during calls to |Update()|.
-  std::map<AnchorId, device::internal::ScopedArCoreObject<ArAnchor*>>
-      anchor_id_to_anchor_object_;
+  // Mapping from anchor ID to ARCore anchor information. It should be modified
+  // only during calls to |Update()|.
+  std::map<AnchorId, AnchorInfo> anchor_id_to_anchor_info_;
   // Set containing IDs of anchors updated in the last frame. It should be
   // modified only during calls to |Update()|.
   std::set<AnchorId> updated_anchor_ids_;
diff --git a/chrome/browser/android/vr/arcore_device/arcore_plane_manager.cc b/chrome/browser/android/vr/arcore_device/arcore_plane_manager.cc
index f1056fd4..981294d 100644
--- a/chrome/browser/android/vr/arcore_device/arcore_plane_manager.cc
+++ b/chrome/browser/android/vr/arcore_device/arcore_plane_manager.cc
@@ -90,7 +90,7 @@
     ArTrackable_getTrackingState(arcore_session_, trackable.get(),
                                  &tracking_state);
 
-    if (tracking_state != ArTrackingState::AR_TRACKING_STATE_TRACKING) {
+    if (tracking_state == ArTrackingState::AR_TRACKING_STATE_STOPPED) {
       // Skip all planes that are not currently tracked.
       continue;
     }
@@ -146,7 +146,7 @@
         bool created;
         std::tie(plane_id, created) = CreateOrGetPlaneId(ar_plane);
 
-        DVLOG(3) << "Previously detected plane found, id=" << plane_id
+        DVLOG(3) << "Previously detected plane found, plane_id=" << plane_id
                  << ", created?=" << created
                  << ", tracking_state=" << tracking_state;
 
@@ -163,11 +163,10 @@
 
   // Collect the objects of all currently tracked planes.
   // |ar_plane_address_to_id_| should *not* grow.
-  std::map<PlaneId, device::internal::ScopedArCoreObject<ArTrackable*>>
-      plane_id_to_plane_object;
+  std::map<PlaneId, PlaneInfo> new_plane_id_to_plane_info;
   ForEachArCorePlane(
       arcore_planes_.get(),
-      [this, &plane_id_to_plane_object](
+      [this, &new_plane_id_to_plane_info, &updated_plane_ids](
           internal::ScopedArCoreObject<ArTrackable*> trackable,
           ArPlane* ar_plane, ArTrackingState tracking_state) {
         // ID
@@ -176,32 +175,43 @@
         std::tie(plane_id, created) = CreateOrGetPlaneId(ar_plane);
 
         DCHECK(!created)
-            << "Newly detected planes should already be handled - new plane id="
+            << "Newly detected planes should already be handled - new plane_id="
             << plane_id;
 
-        plane_id_to_plane_object[plane_id] = std::move(trackable);
+        // Inspect the tracking state of this plane in the previous frame. If it
+        // changed, mark the plane as updated.
+        if (base::Contains(plane_id_to_plane_info_, plane_id) &&
+            plane_id_to_plane_info_.at(plane_id).tracking_state !=
+                tracking_state) {
+          updated_plane_ids.insert(plane_id);
+        }
+
+        PlaneInfo new_plane_info =
+            PlaneInfo(std::move(trackable), tracking_state);
+
+        new_plane_id_to_plane_info.emplace(plane_id, std::move(new_plane_info));
       });
 
-  DVLOG(3) << __func__ << ": plane_id_to_plane_object.size()="
-           << plane_id_to_plane_object.size();
+  DVLOG(3) << __func__ << ": new_plane_id_to_plane_info.size()="
+           << new_plane_id_to_plane_info.size();
 
   // Shrink |ar_plane_address_to_id_|, removing all planes that are no longer
   // tracked or were subsumed - if they do not show up in
-  // |plane_id_to_plane_object| map, they are no longer tracked.
-  base::EraseIf(ar_plane_address_to_id_,
-                [&plane_id_to_plane_object](const auto& plane_address_and_id) {
-                  return !base::Contains(plane_id_to_plane_object,
-                                         plane_address_and_id.second);
-                });
-  plane_id_to_plane_object_.swap(plane_id_to_plane_object);
+  // |new_plane_id_to_plane_info| map, they are no longer tracked.
+  base::EraseIf(ar_plane_address_to_id_, [&new_plane_id_to_plane_info](
+                                             const auto& plane_address_and_id) {
+    return !base::Contains(new_plane_id_to_plane_info,
+                           plane_address_and_id.second);
+  });
+  plane_id_to_plane_info_.swap(new_plane_id_to_plane_info);
   updated_plane_ids_.swap(updated_plane_ids);
 }
 
 mojom::XRPlaneDetectionDataPtr ArCorePlaneManager::GetDetectedPlanesData()
     const {
   std::vector<uint64_t> all_plane_ids;
-  all_plane_ids.reserve(plane_id_to_plane_object_.size());
-  for (const auto& plane_id_and_object : plane_id_to_plane_object_) {
+  all_plane_ids.reserve(plane_id_to_plane_info_.size());
+  for (const auto& plane_id_and_object : plane_id_to_plane_info_) {
     all_plane_ids.push_back(plane_id_and_object.first.GetUnsafeValue());
   }
 
@@ -209,43 +219,54 @@
   updated_planes.reserve(updated_plane_ids_.size());
   for (const auto& plane_id : updated_plane_ids_) {
     const device::internal::ScopedArCoreObject<ArTrackable*>& trackable =
-        plane_id_to_plane_object_.at(plane_id);
+        plane_id_to_plane_info_.at(plane_id).plane;
 
     const ArPlane* ar_plane = ArAsPlane(trackable.get());
 
-    // orientation
-    ArPlaneType plane_type;
-    ArPlane_getType(arcore_session_, ar_plane, &plane_type);
+    if (plane_id_to_plane_info_.at(plane_id).tracking_state ==
+        AR_TRACKING_STATE_TRACKING) {
+      // orientation
+      ArPlaneType plane_type;
+      ArPlane_getType(arcore_session_, ar_plane, &plane_type);
 
-    // pose
-    ArPlane_getCenterPose(arcore_session_, ar_plane, ar_pose_.get());
-    mojom::Pose pose = GetMojomPoseFromArPose(arcore_session_, ar_pose_.get());
+      // pose
+      ArPlane_getCenterPose(arcore_session_, ar_plane, ar_pose_.get());
+      mojom::Pose pose =
+          GetMojomPoseFromArPose(arcore_session_, ar_pose_.get());
 
-    // polygon
-    int32_t polygon_size;
-    ArPlane_getPolygonSize(arcore_session_, ar_plane, &polygon_size);
-    // We are supposed to get 2*N floats describing (x, z) cooridinates of N
-    // points.
-    DCHECK(polygon_size % 2 == 0);
+      // polygon
+      int32_t polygon_size;
+      ArPlane_getPolygonSize(arcore_session_, ar_plane, &polygon_size);
+      // We are supposed to get 2*N floats describing (x, z) cooridinates of N
+      // points.
+      DCHECK(polygon_size % 2 == 0);
 
-    std::unique_ptr<float[]> vertices_raw =
-        std::make_unique<float[]>(polygon_size);
-    ArPlane_getPolygon(arcore_session_, ar_plane, vertices_raw.get());
+      std::unique_ptr<float[]> vertices_raw =
+          std::make_unique<float[]>(polygon_size);
+      ArPlane_getPolygon(arcore_session_, ar_plane, vertices_raw.get());
 
-    std::vector<mojom::XRPlanePointDataPtr> vertices;
-    for (int i = 0; i < polygon_size; i += 2) {
-      vertices.push_back(
-          mojom::XRPlanePointData::New(vertices_raw[i], vertices_raw[i + 1]));
+      std::vector<mojom::XRPlanePointDataPtr> vertices;
+      for (int i = 0; i < polygon_size; i += 2) {
+        vertices.push_back(
+            mojom::XRPlanePointData::New(vertices_raw[i], vertices_raw[i + 1]));
+      }
+
+      DVLOG(3) << __func__ << ": plane_id: " << plane_id.GetUnsafeValue()
+               << ", position=" << pose.position.ToString()
+               << ", orientation=" << pose.orientation.ToString();
+
+      updated_planes.push_back(mojom::XRPlaneData::New(
+          plane_id.GetUnsafeValue(),
+          mojo::ConvertTo<device::mojom::XRPlaneOrientation>(plane_type),
+          device::mojom::Pose::New(pose), std::move(vertices)));
+    } else {
+      DVLOG(3) << __func__ << ": plane_id: " << plane_id.GetUnsafeValue()
+               << ", position=untracked, orientation=untracked";
+
+      updated_planes.push_back(mojom::XRPlaneData::New(
+          plane_id.GetUnsafeValue(), device::mojom::XRPlaneOrientation::UNKNOWN,
+          nullptr, std::vector<mojom::XRPlanePointDataPtr>{}));
     }
-
-    DVLOG(3) << __func__ << ": plane id: " << plane_id.GetUnsafeValue()
-             << ", position=" << pose.position.ToString()
-             << ", orientation=" << pose.orientation.ToString();
-
-    updated_planes.push_back(mojom::XRPlaneData::New(
-        plane_id.GetUnsafeValue(),
-        mojo::ConvertTo<device::mojom::XRPlaneOrientation>(plane_type),
-        device::mojom::Pose::New(pose), std::move(vertices)));
   }
 
   return mojom::XRPlaneDetectionData::New(std::move(all_plane_ids),
@@ -279,19 +300,19 @@
 }
 
 bool ArCorePlaneManager::PlaneExists(PlaneId id) const {
-  return base::Contains(plane_id_to_plane_object_, id);
+  return base::Contains(plane_id_to_plane_info_, id);
 }
 
 base::Optional<gfx::Transform> ArCorePlaneManager::GetMojoFromPlane(
     PlaneId id) const {
-  auto it = plane_id_to_plane_object_.find(id);
-  if (it == plane_id_to_plane_object_.end()) {
+  auto it = plane_id_to_plane_info_.find(id);
+  if (it == plane_id_to_plane_info_.end()) {
     return base::nullopt;
   }
 
-  const ArPlane* plane =
-      ArAsPlane(it->second.get());  // Naked pointer is fine here, ArAsPlane
-                                    // does not increase the internal refcount.
+  // Naked pointer is fine here, ArAsPlane does not increase the internal
+  // refcount:
+  const ArPlane* plane = ArAsPlane(it->second.plane.get());
 
   ArPlane_getCenterPose(arcore_session_, plane, ar_pose_.get());
   mojom::Pose mojo_pose =
@@ -304,8 +325,8 @@
 ArCorePlaneManager::CreateAnchor(util::PassKey<ArCoreAnchorManager> pass_key,
                                  PlaneId id,
                                  const device::mojom::Pose& pose) const {
-  auto it = plane_id_to_plane_object_.find(id);
-  if (it == plane_id_to_plane_object_.end()) {
+  auto it = plane_id_to_plane_info_.find(id);
+  if (it == plane_id_to_plane_info_.end()) {
     return {};
   }
 
@@ -313,7 +334,7 @@
 
   device::internal::ScopedArCoreObject<ArAnchor*> ar_anchor;
   ArStatus status = ArTrackable_acquireNewAnchor(
-      arcore_session_, it->second.get(), ar_pose.get(),
+      arcore_session_, it->second.plane.get(), ar_pose.get(),
       device::internal::ScopedArCoreObject<ArAnchor*>::Receiver(ar_anchor)
           .get());
 
@@ -324,4 +345,12 @@
   return ar_anchor;
 }
 
+ArCorePlaneManager::PlaneInfo::PlaneInfo(
+    device::internal::ScopedArCoreObject<ArTrackable*> plane,
+    ArTrackingState tracking_state)
+    : plane(std::move(plane)), tracking_state(tracking_state) {}
+
+ArCorePlaneManager::PlaneInfo::PlaneInfo(PlaneInfo&& other) = default;
+ArCorePlaneManager::PlaneInfo::~PlaneInfo() = default;
+
 }  // namespace device
diff --git a/chrome/browser/android/vr/arcore_device/arcore_plane_manager.h b/chrome/browser/android/vr/arcore_device/arcore_plane_manager.h
index e7223ce..5314907 100644
--- a/chrome/browser/android/vr/arcore_device/arcore_plane_manager.h
+++ b/chrome/browser/android/vr/arcore_device/arcore_plane_manager.h
@@ -63,10 +63,21 @@
       const device::mojom::Pose& pose) const;
 
  private:
+  struct PlaneInfo {
+    device::internal::ScopedArCoreObject<ArTrackable*> plane;
+    ArTrackingState tracking_state;
+
+    PlaneInfo(device::internal::ScopedArCoreObject<ArTrackable*> plane,
+              ArTrackingState tracking_state);
+    PlaneInfo(PlaneInfo&& other);
+    ~PlaneInfo();
+  };
+
   // Executes |fn| for each still tracked, non-subsumed plane present in
   // |arcore_planes|. |fn| will receive 3 parameters - a
   // `ScopedArCoreObject<ArAnchor*>` that can be stored, the non-owning ArPlane*
-  // typecast from the first parameter, and ArTrackingState.
+  // typecast from the first parameter, and ArTrackingState. A plane is tracked
+  // if its state is not AR_TRACKING_STATE_STOPPED.
   template <typename FunctionType>
   void ForEachArCorePlane(ArTrackableList* arcore_planes, FunctionType fn);
 
@@ -89,10 +100,9 @@
   // Mapping from plane address to plane ID. It should be modified only during
   // calls to |Update()|.
   std::map<void*, PlaneId> ar_plane_address_to_id_;
-  // Mapping from plane ID to ARCore plane object. It should be modified only
-  // during calls to |Update()|.
-  std::map<PlaneId, device::internal::ScopedArCoreObject<ArTrackable*>>
-      plane_id_to_plane_object_;
+  // Mapping from plane ID to ARCore plane information. It should be modified
+  // only during calls to |Update()|.
+  std::map<PlaneId, PlaneInfo> plane_id_to_plane_info_;
   // Set containing IDs of planes updated in the last frame. It should be
   // modified only during calls to |Update()|.
   std::set<PlaneId> updated_plane_ids_;
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index 6c39819c..1973f26 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -159,6 +159,7 @@
 #if defined(OS_ANDROID)
 #include "chrome/browser/android/component_updater/background_task_update_scheduler.h"
 #include "chrome/browser/flags/android/chrome_feature_list.h"
+#include "chrome/browser/ssl/chrome_security_state_client.h"
 #else
 #include "chrome/browser/gcm/gcm_product_util.h"
 #include "chrome/browser/resource_coordinator/tab_manager.h"
@@ -1192,6 +1193,10 @@
   }
 
   CreateNetworkQualityObserver();
+
+#if defined(OS_ANDROID)
+  security_state::SetSecurityStateClient(new ChromeSecurityStateClient());
+#endif
 }
 
 void BrowserProcessImpl::CreateIconManager() {
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index d9eb4ee..b4aa7cf 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -155,7 +155,7 @@
 #include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h"
 #include "chrome/browser/ui/webui/log_web_ui_url.h"
-#include "chrome/browser/usb/usb_tab_helper.h"
+#include "chrome/browser/usb/frame_usb_services.h"
 #include "chrome/browser/vr/vr_tab_helper.h"
 #include "chrome/browser/web_applications/components/app_registrar.h"
 #include "chrome/browser/web_applications/components/web_app_provider_base.h"
@@ -4733,16 +4733,9 @@
   if (!base::FeatureList::IsEnabled(features::kWebUsb))
     return;
 
-  WebContents* web_contents =
-      WebContents::FromRenderFrameHost(render_frame_host);
-  if (!web_contents) {
-    NOTREACHED();
-    return;
-  }
-
-  UsbTabHelper* tab_helper =
-      UsbTabHelper::GetOrCreateForWebContents(web_contents);
-  tab_helper->CreateWebUsbService(render_frame_host, std::move(receiver));
+  CHECK(render_frame_host);
+  FrameUsbServices::CreateFrameUsbServices(render_frame_host,
+                                           std::move(receiver));
 }
 
 content::BluetoothDelegate* ChromeContentBrowserClient::GetBluetoothDelegate() {
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index 16a3e9fe..2668821 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -2343,6 +2343,8 @@
     "system_logs/single_debug_daemon_log_source.h",
     "system_logs/single_log_file_log_source.cc",
     "system_logs/single_log_file_log_source.h",
+    "system_logs/system_logs_writer.cc",
+    "system_logs/system_logs_writer.h",
     "system_logs/touch_log_source.cc",
     "system_logs/touch_log_source.h",
     "system_token_cert_db_initializer.cc",
diff --git a/chrome/browser/chromeos/system_logs/debug_log_writer.h b/chrome/browser/chromeos/system_logs/debug_log_writer.h
index ddb7a68..19e7b03 100644
--- a/chrome/browser/chromeos/system_logs/debug_log_writer.h
+++ b/chrome/browser/chromeos/system_logs/debug_log_writer.h
@@ -11,6 +11,9 @@
 
 namespace chromeos {
 
+// Class for writing logs collected from debugd to a specified location. Also
+// supports writing the Chrome user log. Currently used by
+// chrome://net-internals#chromeos.
 class DebugLogWriter {
  public:
   // Called once StoreDebugLogs is complete. Takes two parameters:
diff --git a/chrome/browser/chromeos/system_logs/system_logs_writer.cc b/chrome/browser/chromeos/system_logs/system_logs_writer.cc
new file mode 100644
index 0000000..a98ad4d
--- /dev/null
+++ b/chrome/browser/chromeos/system_logs/system_logs_writer.cc
@@ -0,0 +1,83 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/system_logs/system_logs_writer.h"
+
+#include "base/files/scoped_temp_dir.h"
+#include "base/task/task_traits.h"
+#include "base/task/thread_pool.h"
+#include "chrome/browser/chromeos/system_logs/debug_log_writer.h"
+#include "chrome/browser/feedback/system_logs/chrome_system_logs_fetcher.h"
+#include "chrome/common/logging_chrome.h"
+#include "components/feedback/feedback_util.h"
+#include "components/feedback/system_logs/system_logs_fetcher.h"
+#include "third_party/zlib/google/zip.h"
+
+namespace chromeos {
+
+namespace {
+
+// Writes |contents| to a temp directory then compresses it to |dest_file_path|.
+// Returns the name of the compressed file (with the zip extension) on success,
+// or nullopt on failure.
+base::Optional<base::FilePath> WriteCompressedFile(
+    const std::string& contents,
+    base::FilePath dest_file_path) {
+  base::ScopedTempDir temp_dir;
+  if (!temp_dir.CreateUniqueTempDir()) {
+    LOG(ERROR) << "Unable to create temp dir.";
+    return base::nullopt;
+  }
+  base::FilePath temp_file_path(
+      temp_dir.GetPath().Append(dest_file_path.BaseName()));
+  if (!base::WriteFile(temp_file_path, contents.c_str(), contents.size())) {
+    LOG(ERROR) << "Unable to write file: " << temp_file_path.value();
+    return base::nullopt;
+  }
+  base::FilePath zip_file_path(
+      dest_file_path.AddExtension(FILE_PATH_LITERAL(".zip")));
+  if (!zip::Zip(temp_dir.GetPath(), zip_file_path,
+                /*include_hidden_files=*/false)) {
+    LOG(ERROR) << "Failed to zip file to: " << zip_file_path.value();
+    return base::nullopt;
+  }
+  return zip_file_path;
+}
+
+// Called when SystemLogsFetcher::Fetch completes. Converts |sys_info| into a
+// single string using the same mechanism as Feedback reports, then writes the
+// string to a compressed system_logs.txt.zip file and invokes |callback|.
+void FetchCompleted(
+    const base::FilePath& dest_dir,
+    base::OnceCallback<void(base::Optional<base::FilePath>)> callback,
+    std::unique_ptr<system_logs::SystemLogsResponse> sys_info) {
+  base::FilePath system_logs_file_path =
+      logging::GenerateTimestampedName(
+          dest_dir.Append(FILE_PATH_LITERAL("system_logs")), base::Time::Now())
+          .AddExtension(FILE_PATH_LITERAL(".txt"));
+
+  std::string system_logs = feedback_util::LogsToString(*sys_info.get());
+
+  base::ThreadPool::PostTaskAndReplyWithResult(
+      FROM_HERE,
+      {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
+       base::TaskShutdownBehavior::BLOCK_SHUTDOWN},
+      base::BindOnce(WriteCompressedFile, std::move(system_logs),
+                     system_logs_file_path),
+      std::move(callback));
+}
+
+}  // namespace
+
+namespace system_logs_writer {
+
+void WriteSystemLogs(
+    const base::FilePath& dest_dir,
+    base::OnceCallback<void(base::Optional<base::FilePath>)> callback) {
+  system_logs::BuildChromeSystemLogsFetcher()->Fetch(
+      base::BindOnce(FetchCompleted, dest_dir, std::move(callback)));
+}
+
+}  // namespace system_logs_writer
+}  // namespace chromeos
diff --git a/chrome/browser/chromeos/system_logs/system_logs_writer.h b/chrome/browser/chromeos/system_logs/system_logs_writer.h
new file mode 100644
index 0000000..51efff5
--- /dev/null
+++ b/chrome/browser/chromeos/system_logs/system_logs_writer.h
@@ -0,0 +1,29 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_SYSTEM_LOGS_SYSTEM_LOGS_WRITER_H_
+#define CHROME_BROWSER_CHROMEOS_SYSTEM_LOGS_SYSTEM_LOGS_WRITER_H_
+
+#include "base/callback.h"
+#include "base/files/file_path.h"
+#include "base/macros.h"
+#include "base/optional.h"
+
+// Helper function for writing system logs used in Feedback reports. Currently
+// used by chrome://net-internals#chromeos for manual uploading of system logs.
+
+namespace chromeos {
+namespace system_logs_writer {
+
+// Writes system_logs.txt.zip to |dest_dir|, containing the contents from
+// Feedback reports. Runs |callback| on completion with the complete file path
+// on success, or nullopt on failure.
+void WriteSystemLogs(
+    const base::FilePath& dest_dir,
+    base::OnceCallback<void(base::Optional<base::FilePath>)> callback);
+
+}  // namespace system_logs_writer
+}  // namespace chromeos
+
+#endif  // CHROME_BROWSER_CHROMEOS_SYSTEM_LOGS_SYSTEM_LOGS_WRITER_H_
diff --git a/chrome/browser/dom_distiller/dom_distiller_viewer_source_browsertest.cc b/chrome/browser/dom_distiller/dom_distiller_viewer_source_browsertest.cc
index 64271eb..56b8928 100644
--- a/chrome/browser/dom_distiller/dom_distiller_viewer_source_browsertest.cc
+++ b/chrome/browser/dom_distiller/dom_distiller_viewer_source_browsertest.cc
@@ -166,8 +166,8 @@
   expect_distillation_ = true;
   expect_distiller_page_ = true;
   GURL original_url("http://www.example.com/1");
-  const GURL view_url =
-      url_utils::GetDistillerViewUrlFromUrl(kDomDistillerScheme, original_url);
+  const GURL view_url = url_utils::GetDistillerViewUrlFromUrl(
+      kDomDistillerScheme, original_url, "Title");
   ViewSingleDistilledPage(view_url, "text/html");
 }
 
@@ -263,8 +263,8 @@
                        InvalidURLShouldGetErrorPage) {
   const GURL original_url("http://www.example.com/1");
   const GURL different_url("http://www.example.com/2");
-  const GURL view_url =
-      url_utils::GetDistillerViewUrlFromUrl(kDomDistillerScheme, original_url);
+  const GURL view_url = url_utils::GetDistillerViewUrlFromUrl(
+      kDomDistillerScheme, original_url, "Title");
   // This is a bogus URL, so no distillation will happen.
   const GURL bad_view_url = net::AppendOrReplaceQueryParameter(
       view_url, kUrlKey, different_url.spec());
@@ -289,7 +289,7 @@
 
   // Navigate to a URL.
   GURL url(dom_distiller::url_utils::GetDistillerViewUrlFromUrl(
-      kDomDistillerScheme, GURL("http://urlthatlooksvalid.com")));
+      kDomDistillerScheme, GURL("http://urlthatlooksvalid.com"), "Title"));
   NavigateParams params(browser(), url, ui::PAGE_TRANSITION_TYPED);
   Navigate(&params);
   distillation_done_runner->Run();
@@ -413,7 +413,7 @@
 
   // Navigate to a URL and wait for the distiller to flush contents to the page.
   GURL url(dom_distiller::url_utils::GetDistillerViewUrlFromUrl(
-      kDomDistillerScheme, GURL("http://urlthatlooksvalid.com")));
+      kDomDistillerScheme, GURL("http://urlthatlooksvalid.com"), "Title"));
   NavigateParams params(browser(), url, ui::PAGE_TRANSITION_TYPED);
   Navigate(&params);
   distillation_done_runner->Run();
@@ -507,7 +507,7 @@
     expect_distiller_page_ = true;
     GURL original_url("http://www.example.com/1");
     view_url = url_utils::GetDistillerViewUrlFromUrl(kDomDistillerScheme,
-                                                     original_url);
+                                                     original_url, "Title");
   }
   content::WebContents* contents =
       browser()->tab_strip_model()->GetActiveWebContents();
diff --git a/chrome/browser/dom_distiller/tab_utils.cc b/chrome/browser/dom_distiller/tab_utils.cc
index 1f3e6c2..46d0787f 100644
--- a/chrome/browser/dom_distiller/tab_utils.cc
+++ b/chrome/browser/dom_distiller/tab_utils.cc
@@ -8,6 +8,7 @@
 
 #include "base/location.h"
 #include "base/single_thread_task_runner.h"
+#include "base/strings/utf_string_conversions.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h"
 #include "chrome/browser/ui/tab_contents/core_tab_helper.h"
@@ -115,6 +116,7 @@
                                       const GURL& url) {
   GURL viewer_url = dom_distiller::url_utils::GetDistillerViewUrlFromUrl(
       dom_distiller::kDomDistillerScheme, url,
+      base::UTF16ToUTF8(web_contents->GetTitle()),
       (base::TimeTicks::Now() - base::TimeTicks()).InMilliseconds());
   content::NavigationController::LoadURLParams params(viewer_url);
   params.transition_type = ui::PAGE_TRANSITION_AUTO_BOOKMARK;
diff --git a/chrome/browser/enterprise/connectors/connectors_manager.cc b/chrome/browser/enterprise/connectors/connectors_manager.cc
index c35531af..d521c26 100644
--- a/chrome/browser/enterprise/connectors/connectors_manager.cc
+++ b/chrome/browser/enterprise/connectors/connectors_manager.cc
@@ -6,6 +6,7 @@
 #include <memory>
 
 #include "base/feature_list.h"
+#include "base/memory/singleton.h"
 #include "base/values.h"
 #include "chrome/browser/browser_process.h"
 #include "components/policy/core/browser/url_util.h"
@@ -54,6 +55,11 @@
 
 ConnectorsManager::ConnectorsManager() = default;
 
+// static
+ConnectorsManager* ConnectorsManager::GetInstance() {
+  return base::Singleton<ConnectorsManager>::get();
+}
+
 void ConnectorsManager::GetAnalysisSettings(const GURL& url,
                                             AnalysisConnector connector,
                                             AnalysisSettingsCallback callback) {
diff --git a/chrome/browser/enterprise/connectors/connectors_manager.h b/chrome/browser/enterprise/connectors/connectors_manager.h
index 97ebebb..73a13081 100644
--- a/chrome/browser/enterprise/connectors/connectors_manager.h
+++ b/chrome/browser/enterprise/connectors/connectors_manager.h
@@ -9,6 +9,11 @@
 #include "base/optional.h"
 #include "url/gurl.h"
 
+namespace base {
+template <typename T>
+struct DefaultSingletonTraits;
+}
+
 namespace enterprise_connectors {
 
 // Enums representing each connector to be used as arguments so the manager can
@@ -66,8 +71,7 @@
   using AnalysisSettingsCallback =
       base::OnceCallback<void(base::Optional<AnalysisSettings>)>;
 
-  ConnectorsManager();
-  ~ConnectorsManager();
+  static ConnectorsManager* GetInstance();
 
   // Validates which settings should be applied to an analysis connector event
   // against cached policies.
@@ -85,6 +89,13 @@
   bool MatchURLAgainstLegacyMalwarePolicies(const GURL& url, bool upload) const;
 
  private:
+  friend struct base::DefaultSingletonTraits<ConnectorsManager>;
+
+  // Constructor and destructor are declared as private so callers use
+  // GetInstance instead.
+  ConnectorsManager();
+  ~ConnectorsManager();
+
   // Private legacy functions.
   // These functions are used to interact with legacy policies and should stay
   // private. They should be removed once legacy policies are deprecated.
diff --git a/chrome/browser/enterprise/connectors/connectors_manager_unittest.cc b/chrome/browser/enterprise/connectors/connectors_manager_unittest.cc
index e5a4497..4040373 100644
--- a/chrome/browser/enterprise/connectors/connectors_manager_unittest.cc
+++ b/chrome/browser/enterprise/connectors/connectors_manager_unittest.cc
@@ -87,6 +87,8 @@
 
     EXPECT_TRUE(profile_manager_.SetUp());
     profile_ = profile_manager_.CreateTestingProfile("test-user");
+
+    connectors_manager_ = ConnectorsManager::GetInstance();
   }
 
   AnalysisConnector connector() const { return std::get<0>(this->GetParam()); }
@@ -117,7 +119,7 @@
             base::Optional<ConnectorsManager::AnalysisSettings> tmp_settings) {
           settings = std::move(tmp_settings);
         });
-    connectors_manager_.GetAnalysisSettings(url, connector, callback);
+    connectors_manager_->GetAnalysisSettings(url, connector, callback);
     return settings;
   }
 
@@ -223,7 +225,7 @@
   base::test::ScopedFeatureList scoped_feature_list_;
   TestingProfileManager profile_manager_;
   TestingProfile* profile_;
-  ConnectorsManager connectors_manager_;
+  ConnectorsManager* connectors_manager_;
   GURL url_ = GURL("https://google.com");
 
   // Set to the default value of their legacy policy.
diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc b/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc
index 93cc46f..f98b1272 100644
--- a/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc
+++ b/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc
@@ -323,13 +323,7 @@
   ASSERT_TRUE(RunExtensionTest("webnavigation/filtered")) << message_;
 }
 
-// Flaky on Windows. See http://crbug.com/662160.
-#if defined(OS_WIN)
-#define MAYBE_UserAction DISABLED_UserAction
-#else
-#define MAYBE_UserAction UserAction
-#endif
-IN_PROC_BROWSER_TEST_F(WebNavigationApiTest, MAYBE_UserAction) {
+IN_PROC_BROWSER_TEST_F(WebNavigationApiTest, UserAction) {
   content::IsolateAllSitesForTesting(base::CommandLine::ForCurrentProcess());
   ASSERT_TRUE(StartEmbeddedTestServer());
 
diff --git a/chrome/browser/extensions/extension_context_menu_model.cc b/chrome/browser/extensions/extension_context_menu_model.cc
index c6c3673..813e77b 100644
--- a/chrome/browser/extensions/extension_context_menu_model.cc
+++ b/chrome/browser/extensions/extension_context_menu_model.cc
@@ -56,9 +56,9 @@
 namespace {
 
 // Returns true if the given |item| is of the given |type|.
-bool MenuItemMatchesAction(ExtensionContextMenuModel::ActionType type,
+bool MenuItemMatchesAction(const base::Optional<ActionInfo::Type> action_type,
                            const MenuItem* item) {
-  if (type == ExtensionContextMenuModel::NO_ACTION)
+  if (!action_type)
     return false;
 
   const MenuItem::ContextList& contexts = item->contexts();
@@ -66,11 +66,15 @@
   if (contexts.Contains(MenuItem::ALL))
     return true;
   if (contexts.Contains(MenuItem::PAGE_ACTION) &&
-      (type == ExtensionContextMenuModel::PAGE_ACTION))
+      (*action_type == ActionInfo::TYPE_PAGE)) {
     return true;
+  }
   if (contexts.Contains(MenuItem::BROWSER_ACTION) &&
-      (type == ExtensionContextMenuModel::BROWSER_ACTION))
+      (*action_type == ActionInfo::TYPE_BROWSER)) {
     return true;
+  }
+
+  // TODO(devlin): Add support for ActionInfo::TYPE_ACTION here.
 
   return false;
 }
@@ -200,7 +204,6 @@
       browser_(browser),
       profile_(browser->profile()),
       delegate_(delegate),
-      action_type_(NO_ACTION),
       button_visibility_(button_visibility),
       can_show_icon_in_toolbar_(can_show_icon_in_toolbar) {
   InitMenu(extension, button_visibility);
@@ -377,16 +380,15 @@
                                          ButtonVisibility button_visibility) {
   DCHECK(extension);
 
+  base::Optional<ActionInfo::Type> action_type;
   extension_action_ =
       ExtensionActionManager::Get(profile_)->GetExtensionAction(*extension);
-  if (extension_action_) {
-    action_type_ = extension_action_->action_type() == ActionInfo::TYPE_PAGE
-                       ? PAGE_ACTION
-                       : BROWSER_ACTION;
-  }
+  if (extension_action_)
+    action_type = extension_action_->action_type();
 
   extension_items_.reset(new ContextMenuMatcher(
-      profile_, this, this, base::Bind(MenuItemMatchesAction, action_type_)));
+      profile_, this, this,
+      base::BindRepeating(MenuItemMatchesAction, action_type)));
 
   std::string extension_name = extension->name();
   // Ampersands need to be escaped to avoid being treated like
diff --git a/chrome/browser/extensions/extension_context_menu_model.h b/chrome/browser/extensions/extension_context_menu_model.h
index 93aee70..3fe44143 100644
--- a/chrome/browser/extensions/extension_context_menu_model.h
+++ b/chrome/browser/extensions/extension_context_menu_model.h
@@ -69,9 +69,6 @@
     kMaxValue = kPageAccessLearnMore,
   };
 
-  // Type of action the extension icon represents.
-  enum ActionType { NO_ACTION = 0, BROWSER_ACTION, PAGE_ACTION };
-
   // The current visibility of the button; this can affect the "hide"/"show"
   // strings in the menu.
   enum ButtonVisibility {
@@ -161,9 +158,6 @@
   // The delegate which handles the 'inspect popup' menu command (or NULL).
   PopupDelegate* delegate_;
 
-  // The type of extension action to which this context menu is attached.
-  ActionType action_type_;
-
   // The visibility of the button at the time the menu opened.
   ButtonVisibility button_visibility_;
 
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 1fc7936..0121c2e9 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -264,6 +264,11 @@
     "expiry_milestone": 83
   },
   {
+    "name": "autofill-enable-surfacing-server-card-nickname",
+    "owners": [ "sujiezhu@google.com", "jsaul@google.com" ],
+    "expiry_milestone": 90
+  },
+  {
     "name": "autofill-enable-toolbar-status-chip",
     "owners": [ "siyua" ],
     "expiry_milestone": 83
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index b77f789..a9fb24a 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -162,6 +162,12 @@
     "When enabled, the local card migration flow will be enabled for users who "
     "have signed in but not enabled Chrome Sync.";
 
+const char kAutofillEnableSurfacingServerCardNicknameName[] =
+    "Enable surfacing masked server card nicknames";
+const char kAutofillEnableSurfacingServerCardNicknameDescription[] =
+    "When enabled, if Google Payments cards were given nicknames in a Google "
+    "Pay app, Autofill will surface these nicknames in suggestions.";
+
 const char kAutofillEnableToolbarStatusChipName[] =
     "Move Autofill omnibox icons next to the profile avatar icon";
 const char kAutofillEnableToolbarStatusChipDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 890b4dda..a34fb8c 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -111,6 +111,9 @@
 extern const char kAutofillEnableLocalCardMigrationForNonSyncUserName[];
 extern const char kAutofillEnableLocalCardMigrationForNonSyncUserDescription[];
 
+extern const char kAutofillEnableSurfacingServerCardNicknameName[];
+extern const char kAutofillEnableSurfacingServerCardNicknameDescription[];
+
 extern const char kAutofillEnableToolbarStatusChipName[];
 extern const char kAutofillEnableToolbarStatusChipDescription[];
 
diff --git a/chrome/browser/media/feeds/media_feeds_fetcher.cc b/chrome/browser/media/feeds/media_feeds_fetcher.cc
index 8f80e8c..74ab1de 100644
--- a/chrome/browser/media/feeds/media_feeds_fetcher.cc
+++ b/chrome/browser/media/feeds/media_feeds_fetcher.cc
@@ -62,9 +62,9 @@
   resource_request->headers.SetHeader(net::HttpRequestHeaders::kAccept,
                                       "application/ld+json");
   resource_request->redirect_mode = ::network::mojom::RedirectMode::kError;
-  resource_request->attach_same_site_cookies = true;
-  resource_request->site_for_cookies = net::SiteForCookies::FromUrl(url);
   url::Origin origin = url::Origin::Create(url);
+  // Treat this request as same-site for the purposes of cookie inclusion.
+  resource_request->site_for_cookies = net::SiteForCookies::FromOrigin(origin);
   resource_request->trusted_params = network::ResourceRequest::TrustedParams();
   resource_request->trusted_params->network_isolation_key =
       net::NetworkIsolationKey(origin, origin);
diff --git a/chrome/browser/media/feeds/media_feeds_fetcher_unittest.cc b/chrome/browser/media/feeds/media_feeds_fetcher_unittest.cc
index fc75eeff..6b79ebe6 100644
--- a/chrome/browser/media/feeds/media_feeds_fetcher_unittest.cc
+++ b/chrome/browser/media/feeds/media_feeds_fetcher_unittest.cc
@@ -61,7 +61,6 @@
     task_environment()->RunUntilIdle();
 
     ASSERT_TRUE(GetCurrentRequest().url.is_valid());
-    EXPECT_TRUE(GetCurrentRequest().attach_same_site_cookies);
     EXPECT_TRUE(GetCurrentRequest().site_for_cookies.IsEquivalent(
         net::SiteForCookies::FromUrl(GURL(kTestUrl))));
     EXPECT_EQ(GetCurrentlyQueriedHeaderValue(net::HttpRequestHeaders::kAccept),
@@ -84,12 +83,8 @@
         url, value, base::Time::Now(), base::nullopt /* server_time */));
     EXPECT_TRUE(cc.get());
 
-    net::CookieOptions options;
-    options.set_include_httponly();
-    options.set_same_site_cookie_context(
-        net::CookieOptions::SameSiteCookieContext::MakeInclusive());
     cookie_manager->SetCanonicalCookie(
-        *cc.get(), url.scheme(), options,
+        *cc.get(), url.scheme(), net::CookieOptions::MakeAllInclusive(),
         base::BindOnce(
             [](bool* result, base::RunLoop* run_loop,
                net::CanonicalCookie::CookieInclusionStatus set_cookie_status) {
diff --git a/chrome/browser/media/webrtc/system_media_capture_permissions_mac.mm b/chrome/browser/media/webrtc/system_media_capture_permissions_mac.mm
index 5e1d1bf..a75a554 100644
--- a/chrome/browser/media/webrtc/system_media_capture_permissions_mac.mm
+++ b/chrome/browser/media/webrtc/system_media_capture_permissions_mac.mm
@@ -35,6 +35,7 @@
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "media/base/media_switches.h"
+#include "ui/base/cocoa/permissions_utils.h"
 
 namespace system_media_permissions {
 
@@ -175,37 +176,9 @@
             features::kMacSystemScreenCapturePermissionCheck)) {
       return true;
     }
-
-    base::ScopedCFTypeRef<CFArrayRef> window_list(
-        CGWindowListCopyWindowInfo(kCGWindowListOptionAll, kCGNullWindowID));
-    int current_pid = [[NSProcessInfo processInfo] processIdentifier];
-    for (NSDictionary* window in base::mac::CFToNSCast(window_list.get())) {
-      NSNumber* window_pid =
-          [window objectForKey:base::mac::CFToNSCast(kCGWindowOwnerPID)];
-      if (!window_pid || [window_pid integerValue] == current_pid)
-        continue;
-
-      NSString* window_name =
-          [window objectForKey:base::mac::CFToNSCast(kCGWindowName)];
-      if (!window_name)
-        continue;
-
-      NSNumber* layer =
-          [window objectForKey:base::mac::CFToNSCast(kCGWindowLayer)];
-      if (!layer)
-        continue;
-
-      NSInteger layer_integer = [layer integerValue];
-      if (layer_integer == CGWindowLevelForKey(kCGNormalWindowLevelKey) ||
-          layer_integer == CGWindowLevelForKey(kCGDockWindowLevelKey)) {
-        return true;
-      }
-    }
-    return false;
   }
 
-  // Screen capture is always allowed in older macOS versions.
-  return true;
+  return ui::IsScreenCaptureAllowed();
 }
 
 }  // namespace
diff --git a/chrome/browser/performance_manager/metrics/memory_pressure_metrics_unittest.cc b/chrome/browser/performance_manager/metrics/memory_pressure_metrics_unittest.cc
index e3a4d9f4..4fe6f740 100644
--- a/chrome/browser/performance_manager/metrics/memory_pressure_metrics_unittest.cc
+++ b/chrome/browser/performance_manager/metrics/memory_pressure_metrics_unittest.cc
@@ -8,6 +8,7 @@
 #include "base/memory/memory_pressure_listener.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/util/memory_pressure/fake_memory_pressure_monitor.h"
+#include "build/build_config.h"
 #include "components/performance_manager/graph/process_node_impl.h"
 #include "components/performance_manager/test_support/graph_test_harness.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -59,7 +60,14 @@
   std::unique_ptr<base::HistogramTester> histogram_tester_;
 };
 
-TEST_F(MemoryPressureMetricsTest, TestHistograms) {
+// Very flaky on Android. http://crbug.com/1069043.
+#if defined(OS_ANDROID)
+#define MAYBE_TestHistograms DISABLED_TestHistograms
+#else
+#define MAYBE_TestHistograms TestHistograms
+#endif
+
+TEST_F(MemoryPressureMetricsTest, MAYBE_TestHistograms) {
   const int kFakeSystemRamMb = 4096;
   // Pretends that we have one process using half of the RAM.
   process_node()->set_resident_set_kb(kFakeSystemRamMb * 1024 / 2);
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit_unittest.cc b/chrome/browser/resource_coordinator/tab_lifecycle_unit_unittest.cc
index 49e3cb7..e231478 100644
--- a/chrome/browser/resource_coordinator/tab_lifecycle_unit_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit_unittest.cc
@@ -36,6 +36,7 @@
 #include "chrome/browser/tab_contents/form_interaction_tab_helper.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/tabs/test_tab_strip_model_delegate.h"
+#include "chrome/browser/usb/frame_usb_services.h"
 #include "chrome/browser/usb/usb_chooser_context.h"
 #include "chrome/browser/usb/usb_chooser_context_factory.h"
 #include "chrome/browser/usb/usb_tab_helper.h"
@@ -470,12 +471,11 @@
   UsbChooserContextFactory::GetForProfile(profile())
       ->SetDeviceManagerForTesting(std::move(pending_device_manager));
 
-  UsbTabHelper* usb_tab_helper =
-      UsbTabHelper::GetOrCreateForWebContents(web_contents_);
   mojo::Remote<blink::mojom::WebUsbService> web_usb_service;
-  usb_tab_helper->CreateWebUsbService(
+  FrameUsbServices::CreateFrameUsbServices(
       web_contents_->GetMainFrame(),
       web_usb_service.BindNewPipeAndPassReceiver());
+  UsbTabHelper* helper = UsbTabHelper::FromWebContents(web_contents_);
 
   // Page could be intending to use the WebUSB API, but there's no connection
   // open yet, so it can still be discarded/frozen.
@@ -485,7 +485,7 @@
   EXPECT_TRUE(decision_details.IsPositive());
 
   // Open a USB connection. Shouldn't be freezable/discardable anymore.
-  usb_tab_helper->IncrementConnectionCount();
+  helper->IncrementConnectionCount();
   ExpectCanDiscardFalseAllReasons(
       &tab_lifecycle_unit, DecisionFailureReason::LIVE_STATE_USING_WEB_USB);
   decision_details = DecisionDetails();
@@ -495,7 +495,7 @@
             decision_details.FailureReason());
 
   // Close the USB connection. Should be freezable/discardable again.
-  usb_tab_helper->DecrementConnectionCount();
+  helper->DecrementConnectionCount();
   ExpectCanDiscardTrueAllReasons(&tab_lifecycle_unit);
   decision_details = DecisionDetails();
   EXPECT_TRUE(tab_lifecycle_unit.CanFreeze(&decision_details));
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ar.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ar.xtb
index 2dbda62..ce3f2238 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ar.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ar.xtb
@@ -173,7 +173,7 @@
 <translation id="2417948780551741035">تعليقات ختامية</translation>
 <translation id="2419852971200420169">قائمة الوصف</translation>
 <translation id="2421113964388408478">حذف</translation>
-<translation id="2422937916923936891">مربّع اختيار عنصر القائمة</translation>
+<translation id="2422937916923936891">مربع اختيار عنصر القائمة</translation>
 <translation id="2428534162001909979">قوائم الأوامر</translation>
 <translation id="242998846562331953">عنوان فرعي</translation>
 <translation id="2435422727584637732">أزرق سماوي خفيف</translation>
diff --git a/chrome/browser/resources/discards/graph_doc.js b/chrome/browser/resources/discards/graph_doc.js
index f0eabf7..c3dc0d7 100644
--- a/chrome/browser/resources/discards/graph_doc.js
+++ b/chrome/browser/resources/discards/graph_doc.js
@@ -557,15 +557,17 @@
 
     // Give dead nodes a distinguishing class to exclude them from the selection
     // above. Interrupt any ongoing transitions, then transition them out.
-    const deletedNodes = node.exit().classed('dead', true).interrupt();
-
-    deletedNodes.select('circle')
+    const deletedNodes = node.exit().classed('dead', true);
+    deletedNodes.interrupt();
+    const deletedTransition = deletedNodes.transition();
+    deletedTransition.select('circle')
         .attr('r', 9)
         .attr('fill', 'red')
         .transition()
         .duration(2000)
-        .attr('r', 0)
-        .remove();
+        .attr('r', 0);
+    // Remove the nodes at the end of transition.
+    deletedTransition.remove();
 
     // Update the title for all nodes.
     node.selectAll('title').text(d => d.title);
diff --git a/chrome/browser/resources/net_internals/browser_bridge.js b/chrome/browser/resources/net_internals/browser_bridge.js
index fb05bc7..fac5fb1 100644
--- a/chrome/browser/resources/net_internals/browser_bridge.js
+++ b/chrome/browser/resources/net_internals/browser_bridge.js
@@ -101,6 +101,10 @@
       this.send('storeCombinedDebugLogs');
     },
 
+    storeFeedbackSystemLogs() {
+      this.send('storeFeedbackSystemLogs');
+    },
+
     setNetworkDebugMode(subsystem) {
       this.send('setNetworkDebugMode', [subsystem]);
     },
@@ -149,6 +153,12 @@
       }
     },
 
+    receivedStoreFeedbackSystemLogs(status) {
+      for (let i = 0; i < this.storeDebugLogsObservers_.length; i++) {
+        this.storeDebugLogsObservers_[i].onStoreFeedbackSystemLogs(status);
+      }
+    },
+
     receivedSetNetworkDebugMode(status) {
       for (let i = 0; i < this.setNetworkDebugModeObservers_.length; i++) {
         this.setNetworkDebugModeObservers_[i].onSetNetworkDebugMode(status);
diff --git a/chrome/browser/resources/net_internals/chromeos_view.css b/chrome/browser/resources/net_internals/chromeos_view.css
index 5739974..14090070 100644
--- a/chrome/browser/resources/net_internals/chromeos_view.css
+++ b/chrome/browser/resources/net_internals/chromeos_view.css
@@ -6,3 +6,7 @@
 #chromeos-view-parse-status {
   margin-top: 20px;
 }
+
+input + label {
+  margin-inline-start: 10px;
+}
diff --git a/chrome/browser/resources/net_internals/chromeos_view.html b/chrome/browser/resources/net_internals/chromeos_view.html
index ad1a965..ac4ae56 100644
--- a/chrome/browser/resources/net_internals/chromeos_view.html
+++ b/chrome/browser/resources/net_internals/chromeos_view.html
@@ -14,22 +14,40 @@
   <div id="chromeos-view-parse-status" hidden>
   </div>
   <div id="chromeos-view-store-debug-logs-div">
-    <h4>Store Logs</h4>
+    <h4>Store system logs</h4>
     <div>
+      <p>This stores system_logs_{date}-{time}.txt.zip to the Downloads
+        directory. The archive contains a single file identical to the
+        system_logs file attached to Feedback reports.</p>
+      <p>Also writes a policies_{date}-{time}.json file for providing policy
+        configurations when that might be a factor.</p>
+      <p>Prefer this when uploading logs to issues or sending logs to developers
+        (unless otherwise requested).</p>
       <input type="button"
-             id="chromeos-view-store-debug-logs"
-             value="Store System Logs">
-      <label for="chromeos-view-store-debug-logs"
-             id="chromeos-view-store-debug-logs-status">
-      </label>
+          id="chromeos-view-store-feedback-system-logs"
+          value="Store Feedback Report System Logs">
+      <label id="chromeos-view-store-feedback-system-logs-status"></label>
+    </div>
+    <h4>Store debugd system logs</h4>
+    <div>
+      <p>This stores the logs collected by debugd as individual files in a
+        single archive file in the Downloads directory:
+        debug-logs_{date}-{time}.tgz.
+      </p>
+      <p>Also writes a policies_{date}-{time}.json file for providing policy
+        configurations when that might be a factor.</p>
+      <input type="button"
+          id="chromeos-view-store-debug-logs"
+          value="Store System Logs">
+      <label id="chromeos-view-store-debug-logs-status"></label>
     </div>
     <div>
+      <p>Identical to the above, but also incldes the Chrome user logs.
+        The output file is named combined-logs_{date}-{time}.tgz.</p>
       <input type="button"
-             id="chromeos-view-store-combined-debug-logs"
-             value="Store System and User Logs">
-      <label for="chromeos-view-store-combined-debug-logs"
-             id="chromeos-view-store-combined-debug-logs-status">
-      </label>
+          id="chromeos-view-store-combined-debug-logs"
+          value="Store System and User Logs">
+      <label id="chromeos-view-store-combined-debug-logs-status"></label>
     </div>
   </div>
   <div id="chromeos-view-network-debugging-div">
diff --git a/chrome/browser/resources/net_internals/chromeos_view.js b/chrome/browser/resources/net_internals/chromeos_view.js
index a83105a..07022b5 100644
--- a/chrome/browser/resources/net_internals/chromeos_view.js
+++ b/chrome/browser/resources/net_internals/chromeos_view.js
@@ -130,6 +130,15 @@
   }
 
   /**
+   *  Set storing combined debug logs status.
+   *
+   *  @private
+   */
+  function setStoreFeedbackSystemLogsStatus_(status) {
+    $(CrosView.STORE_FEEDBACK_SYSTEM_LOGS_STATUS_ID).innerText = status;
+  }
+
+  /**
    *  Set status for current debug mode.
    *
    *  @private
@@ -177,6 +186,11 @@
           $(CrosView.STORE_COMBINED_DEBUG_LOGS_STATUS_ID).innerText = '';
           g_browser.storeCombinedDebugLogs();
         }, false);
+    $(CrosView.STORE_FEEDBACK_SYSTEM_LOGS_ID)
+        .addEventListener('click', function(event) {
+          $(CrosView.STORE_FEEDBACK_SYSTEM_LOGS_STATUS_ID).innerText = '';
+          g_browser.storeFeedbackSystemLogs();
+        }, false);
 
     $(CrosView.DEBUG_WIFI_ID).addEventListener('click', function(event) {
       setNetworkDebugMode_('wifi');
@@ -245,6 +259,10 @@
       'chromeos-view-store-combined-debug-logs';
   CrosView.STORE_COMBINED_DEBUG_LOGS_STATUS_ID =
       'chromeos-view-store-combined-debug-logs-status';
+  CrosView.STORE_FEEDBACK_SYSTEM_LOGS_ID =
+      'chromeos-view-store-feedback-system-logs';
+  CrosView.STORE_FEEDBACK_SYSTEM_LOGS_STATUS_ID =
+      'chromeos-view-store-feedback-system-logs-status';
   CrosView.DEBUG_WIFI_ID = 'chromeos-view-network-debugging-wifi';
   CrosView.DEBUG_ETHERNET_ID = 'chromeos-view-network-debugging-ethernet';
   CrosView.DEBUG_CELLULAR_ID = 'chromeos-view-network-debugging-cellular';
@@ -260,6 +278,7 @@
     onONCFileParse: setParseStatus_,
     onStoreDebugLogs: setStoreDebugLogsStatus_,
     onStoreCombinedDebugLogs: setStoreCombinedDebugLogsStatus_,
+    onStoreFeedbackSystemLogs: setStoreFeedbackSystemLogsStatus_,
     onSetNetworkDebugMode: setNetworkDebugModeStatus_,
   };
 
diff --git a/chrome/browser/resources/new_tab_page/fakebox.html b/chrome/browser/resources/new_tab_page/fakebox.html
index ef01fba1..e71d3b17 100644
--- a/chrome/browser/resources/new_tab_page/fakebox.html
+++ b/chrome/browser/resources/new_tab_page/fakebox.html
@@ -112,7 +112,7 @@
     box-shadow: 0 0 0 2px var(--ntp-focus-shadow-color);
   }
 </style>
-<input id="input" on-mousedown="onMousedown_" on-paste="onPaste_"
+<input id="input" on-pointerdown="onPointerDown_" on-paste="onPaste_"
     on-dragenter="onDragenter_" on-dragleave="onDragleave_" on-drop="onDrop_"
     autocomplete="off" tabindex="-1" type="url" aria-hidden="true">
 </input>
diff --git a/chrome/browser/resources/new_tab_page/fakebox.js b/chrome/browser/resources/new_tab_page/fakebox.js
index 6211599..c11ca6a 100644
--- a/chrome/browser/resources/new_tab_page/fakebox.js
+++ b/chrome/browser/resources/new_tab_page/fakebox.js
@@ -75,7 +75,7 @@
   }
 
   /** @private */
-  onMousedown_() {
+  onPointerDown_() {
     this.pageHandler_.focusOmnibox();
   }
 
diff --git a/chrome/browser/resources/settings/chromeos/os_printing_page/os_printing_page.html b/chrome/browser/resources/settings/chromeos/os_printing_page/os_printing_page.html
index afc102c2..910dbe67 100644
--- a/chrome/browser/resources/settings/chromeos/os_printing_page/os_printing_page.html
+++ b/chrome/browser/resources/settings/chromeos/os_printing_page/os_printing_page.html
@@ -11,7 +11,7 @@
 <dom-module id="os-settings-printing-page">
   <template>
     <style include="settings-shared"></style>
-    <settings-animated-pages id="pages" section="printing"
+    <settings-animated-pages id="pages" section="osPrinting"
         focus-config="[[focusConfig_]]">
       <div route-path="default">
         <cr-link-row id="cupsPrinters" label="$i18n{cupsPrintersTitle}"
diff --git a/chrome/browser/resources/settings/privacy_page/BUILD.gn b/chrome/browser/resources/settings/privacy_page/BUILD.gn
index 25d75501..3c1f649 100644
--- a/chrome/browser/resources/settings/privacy_page/BUILD.gn
+++ b/chrome/browser/resources/settings/privacy_page/BUILD.gn
@@ -563,7 +563,7 @@
                    "chrome/browser/resources/settings/metrics_browser_proxy.html|PrivacyElementInteractions,MetricsBrowserProxyImpl",
                    "chrome/browser/resources/settings/privacy_page/privacy_page_browser_proxy.html|PrivacyPageBrowserProxy,PrivacyPageBrowserProxyImpl",
                    "chrome/browser/resources/settings/site_settings/site_settings_prefs_browser_proxy.html|SiteSettingsPrefsBrowserProxyImpl",
-                   "chrome/browser/resources/settings/site_settings/constants.html|ContentSettingsTypes,ChooserType",
+                   "chrome/browser/resources/settings/site_settings/constants.html|ContentSettingsTypes,CookieControlsMode,ChooserType",
                    "chrome/browser/resources/settings/people_page/sync_browser_proxy.html|SyncBrowserProxyImpl,SyncStatus",
                    "chrome/browser/resources/settings/hats_browser_proxy.html|HatsBrowserProxyImpl",
                    "chrome/browser/resources/settings/page_visibility.html|PrivacyPageVisibility",
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html
index cde7a30..956a14e 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -273,9 +273,13 @@
               sub-option-mode="cookies-session-only">
           </category-default-setting>
           <settings-toggle-button
+              id="blockThirdPartyCookies"
               pref="{{prefs.profile.block_third_party_cookies}}"
               label="$i18n{thirdPartyCookie}"
-              sub-label="$i18n{thirdPartyCookieSublabel}">
+              sub-label="$i18n{thirdPartyCookieSublabel}"
+              on-settings-boolean-control-change=
+                  "onBlockThirdPartyCookiesToggleChange_"
+              no-set-pref>
           </settings-toggle-button>
           <cr-link-row id="site-data-trigger" class="hr"
               on-click="onSiteDataTap_" label="$i18n{siteSettingsCookieLink}">
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.js b/chrome/browser/resources/settings/privacy_page/privacy_page.js
index 9e03e975..316757c0 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.js
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.js
@@ -416,6 +416,20 @@
     },
 
     /**
+     * Updates both required block third party cookie preferences.
+     * @param {!Event} event
+     * @private
+     */
+    onBlockThirdPartyCookiesToggleChange_(event) {
+      const target = /** @type {!SettingsToggleButtonElement} */ (event.target);
+      this.setPrefValue('profile.block_third_party_cookies', target.checked);
+      this.setPrefValue(
+          'profile.cookie_controls_mode',
+          target.checked ? settings.CookieControlsMode.ENABLED :
+                           settings.CookieControlsMode.DISABLED);
+    },
+
+    /**
      * Records changes made to the "can a website check if you have saved
      * payment methods" setting for logging, the logic of actually changing the
      * setting is taken care of by the webUI pref.
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.cc b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.cc
index 12637d9..81c00ea8 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate.cc
@@ -282,8 +282,8 @@
     // both the upload and download paths instead. This is fine for now since
     // the manager isn't caching anything.
     data->do_dlp_scan =
-        enterprise_connectors::ConnectorsManager()
-            .MatchURLAgainstLegacyDlpPolicies(url, /*upload*/ true);
+        enterprise_connectors::ConnectorsManager::GetInstance()
+            ->MatchURLAgainstLegacyDlpPolicies(url, /*upload*/ true);
   }
 
   // See if malware checks are needed.
@@ -296,8 +296,8 @@
 
   if (data->do_malware_scan) {
     data->do_malware_scan =
-        enterprise_connectors::ConnectorsManager()
-            .MatchURLAgainstLegacyMalwarePolicies(url, /*upload*/ true);
+        enterprise_connectors::ConnectorsManager::GetInstance()
+            ->MatchURLAgainstLegacyMalwarePolicies(url, /*upload*/ true);
   }
 
   return data->do_dlp_scan || data->do_malware_scan;
@@ -309,7 +309,7 @@
     Data data,
     CompletionCallback callback,
     DeepScanAccessPoint access_point) {
-  enterprise_connectors::ConnectorsManager().GetAnalysisSettings(
+  enterprise_connectors::ConnectorsManager::GetInstance()->GetAnalysisSettings(
       data.url, enterprise_connectors::AnalysisConnector::FILE_ATTACHED,
       base::BindOnce(&DeepScanningDialogDelegate::OnGotAnalysisSettings,
                      web_contents, std::move(data), std::move(callback),
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_unittest.cc b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_unittest.cc
index 0a0fc59..6e02df3 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_unittest.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_delegate_unittest.cc
@@ -1494,19 +1494,19 @@
   enterprise_connectors::ConnectorsManager::AnalysisSettings settings() {
     base::Optional<enterprise_connectors::ConnectorsManager::AnalysisSettings>
         settings;
-    manager_.GetAnalysisSettings(
-        GURL(kTestUrl), enterprise_connectors::AnalysisConnector::FILE_ATTACHED,
-        base::BindLambdaForTesting(
-            [&settings](
-                base::Optional<
-                    enterprise_connectors::ConnectorsManager::AnalysisSettings>
-                    tmp_settings) { settings = std::move(tmp_settings); }));
+    enterprise_connectors::ConnectorsManager::GetInstance()
+        ->GetAnalysisSettings(
+            GURL(kTestUrl),
+            enterprise_connectors::AnalysisConnector::FILE_ATTACHED,
+            base::BindLambdaForTesting(
+                [&settings](
+                    base::Optional<enterprise_connectors::ConnectorsManager::
+                                       AnalysisSettings> tmp_settings) {
+                  settings = std::move(tmp_settings);
+                }));
     EXPECT_TRUE(settings.has_value());
     return std::move(settings.value());
   }
-
- private:
-  enterprise_connectors::ConnectorsManager manager_;
 };
 
 TEST_F(DeepScanningDialogDelegatePolicyResultsTest, BlockLargeFile) {
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views.cc b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views.cc
index 3fef1f1..40b8864 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views.cc
@@ -193,14 +193,14 @@
       web_contents_(web_contents),
       access_point_(std::move(access_point)),
       is_file_scan_(is_file_scan) {
+  if (observer_for_testing)
+    observer_for_testing->ConstructorCalled(this, base::TimeTicks::Now());
+
   // Show the pending dialog after a delay in case the response is fast enough.
   base::PostDelayedTask(FROM_HERE, {content::BrowserThread::UI},
                         base::BindOnce(&DeepScanningDialogViews::Show,
                                        weak_ptr_factory_.GetWeakPtr()),
                         GetInitialUIDelay());
-
-  if (observer_for_testing)
-    observer_for_testing->ConstructorCalled(this);
 }
 
 base::string16 DeepScanningDialogViews::GetWindowTitle() const {
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views.h b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views.h
index 11a6137..9ebc2af 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views.h
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views.h
@@ -71,10 +71,11 @@
    public:
     virtual ~TestObserver() {}
 
-    // Called at the end of DeepScanningDialogViews's constructor. |views| is a
-    // pointer to the newly constructed DeepScanningDialogViews and should be
+    // Called at the start of DeepScanningDialogViews's constructor. |views| is
+    // a pointer to the newly constructed DeepScanningDialogViews and should be
     // kept in memory by the test in order to validate its state.
-    virtual void ConstructorCalled(DeepScanningDialogViews* views) {}
+    virtual void ConstructorCalled(DeepScanningDialogViews* views,
+                                   base::TimeTicks timestamp) {}
 
     // Called at the end of DeepScanningDialogViews::Show. |timestamp| is the
     // time used by DeepScanningDialogViews to decide whether the pending state
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views_browsertest.cc b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views_browsertest.cc
index a95c33dd..86275358 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views_browsertest.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views_browsertest.cc
@@ -48,8 +48,9 @@
     expected_scan_result_ = dlp_result && malware_result;
   }
 
-  void ConstructorCalled(DeepScanningDialogViews* views) override {
-    ctor_called_timestamp_ = base::TimeTicks::Now();
+  void ConstructorCalled(DeepScanningDialogViews* views,
+                         base::TimeTicks timestamp) override {
+    ctor_called_timestamp_ = timestamp;
     dialog_ = views;
 
     // The scan should be pending when constructed.
diff --git a/chrome/browser/ssl/chrome_security_state_client.cc b/chrome/browser/ssl/chrome_security_state_client.cc
new file mode 100644
index 0000000..c620d7c
--- /dev/null
+++ b/chrome/browser/ssl/chrome_security_state_client.cc
@@ -0,0 +1,12 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ssl/chrome_security_state_client.h"
+
+#include "chrome/browser/ssl/chrome_security_state_model_delegate.h"
+
+std::unique_ptr<SecurityStateModelDelegate>
+ChromeSecurityStateClient::MaybeCreateSecurityStateModelDelegate() {
+  return std::make_unique<ChromeSecurityStateModelDelegate>();
+}
diff --git a/chrome/browser/ssl/chrome_security_state_client.h b/chrome/browser/ssl/chrome_security_state_client.h
new file mode 100644
index 0000000..f6cd9cc
--- /dev/null
+++ b/chrome/browser/ssl/chrome_security_state_client.h
@@ -0,0 +1,20 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_SSL_CHROME_SECURITY_STATE_CLIENT_H_
+#define CHROME_BROWSER_SSL_CHROME_SECURITY_STATE_CLIENT_H_
+
+#include <memory>
+#include "components/security_state/content/android/security_state_client.h"
+
+class ChromeSecurityStateClient : public security_state::SecurityStateClient {
+ public:
+  constexpr ChromeSecurityStateClient() = default;
+  ~ChromeSecurityStateClient() = default;
+
+  std::unique_ptr<SecurityStateModelDelegate>
+  MaybeCreateSecurityStateModelDelegate() override;
+};
+
+#endif  // CHROME_BROWSER_SSL_CHROME_SECURITY_STATE_CLIENT_H_
diff --git a/chrome/browser/ssl/chrome_security_state_model_delegate.cc b/chrome/browser/ssl/chrome_security_state_model_delegate.cc
index c880646..065b63e 100644
--- a/chrome/browser/ssl/chrome_security_state_model_delegate.cc
+++ b/chrome/browser/ssl/chrome_security_state_model_delegate.cc
@@ -4,17 +4,10 @@
 
 #include "chrome/browser/ssl/chrome_security_state_model_delegate.h"
 
-#include "chrome/android/chrome_jni_headers/ChromeSecurityStateModelDelegate_jni.h"
 #include "chrome/browser/ssl/security_state_tab_helper.h"
 #include "components/security_state/core/security_state.h"
 #include "content/public/browser/web_contents.h"
 
-static jlong
-JNI_ChromeSecurityStateModelDelegate_CreateSecurityStateModelDelegate(
-    JNIEnv* env) {
-  return reinterpret_cast<intptr_t>(new ChromeSecurityStateModelDelegate());
-}
-
 security_state::SecurityLevel
 ChromeSecurityStateModelDelegate::GetSecurityLevel(
     content::WebContents* web_contents) const {
diff --git a/chrome/browser/ssl/chrome_security_state_model_delegate.h b/chrome/browser/ssl/chrome_security_state_model_delegate.h
index 8f8780c..6551fb8 100644
--- a/chrome/browser/ssl/chrome_security_state_model_delegate.h
+++ b/chrome/browser/ssl/chrome_security_state_model_delegate.h
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/security_state/content/android/security_state_model_delegate.h"
-
 #ifndef CHROME_BROWSER_SSL_CHROME_SECURITY_STATE_MODEL_DELEGATE_H_
 #define CHROME_BROWSER_SSL_CHROME_SECURITY_STATE_MODEL_DELEGATE_H_
 
+#include "components/security_state/content/android/security_state_model_delegate.h"
+
 namespace content {
 class WebContents;
 }  // namespace content
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 0c9ca74..f447258 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -423,7 +423,6 @@
     "//chrome/services/qrcode_generator/public/cpp",
     "//chrome/services/qrcode_generator/public/mojom",
     "//components/about_ui",
-    "//components/client_hints/browser",
     "//components/account_id",
     "//components/autofill/content/browser:risk_proto",
     "//components/autofill/core/browser",
@@ -434,6 +433,7 @@
     "//components/browsing_data/core",
     "//components/captive_portal/content",
     "//components/captive_portal/core:buildflags",
+    "//components/client_hints/browser",
     "//components/consent_auditor/",
     "//components/content_settings/core/browser",
     "//components/country_codes",
@@ -624,6 +624,7 @@
       "//chrome/browser/ui/webui/explore_sites_internals:mojo_bindings",
       "//chrome/browser/ui/webui/snippets_internals:mojo_bindings",
       "//components/browser_ui/util/android",
+      "//components/security_state/content/android",
     ]
     if (enable_feed_in_chrome) {
       deps += [ "//chrome/browser/ui/webui/feed_internals:mojo_bindings" ]
diff --git a/chrome/browser/ui/android/overlay/overlay_window_android.h b/chrome/browser/ui/android/overlay/overlay_window_android.h
index 44b8d24..0aa5e4ff 100644
--- a/chrome/browser/ui/android/overlay/overlay_window_android.h
+++ b/chrome/browser/ui/android/overlay/overlay_window_android.h
@@ -48,8 +48,6 @@
   void OnAnimate(base::TimeTicks frame_begin_time) override {}
   void OnActivityStopped() override;
   void OnActivityStarted() override {}
-  void OnCursorVisibilityChanged(bool visible) override {}
-  void OnFallbackCursorModeToggled(bool is_on) override {}
 
   // OverlayWindow implementation.
   bool IsActive() override;
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
index c70cf3b5..615fa668 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -725,7 +725,7 @@
 <translation id="6337234675334993532">Encriptação</translation>
 <translation id="6341580099087024258">Perguntar onde guardar os ficheiros</translation>
 <translation id="6343495912647200061">{SHIPPING_ADDRESS,plural, =1{<ph name="SHIPPING_ADDRESS_PREVIEW" />\u2026 e mais <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" />}other{<ph name="SHIPPING_ADDRESS_PREVIEW" />\u2026 e mais <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" />}}</translation>
-<translation id="6364438453358674297">Pretende remover a sugestão do histórico?</translation>
+<translation id="6364438453358674297">Remover a sugestão do histórico?</translation>
 <translation id="6369229450655021117">A partir daqui, pode pesquisar na Web, partilhar com amigos e ver as páginas abertas.</translation>
 <translation id="6378173571450987352">Detalhes: ordenado por quantidade de dados utilizados</translation>
 <translation id="6379829913050047669">A app <ph name="APP_NAME" /> vai abrir no Chrome. Ao continuar, aceita os <ph name="BEGIN_LINK1" />Termos de Utilização do Google<ph name="END_LINK1" /> e os <ph name="BEGIN_LINK2" />Termos de Utilização Adicionais do Google Chrome e Chrome OS<ph name="END_LINK2" />.</translation>
@@ -1062,7 +1062,7 @@
 <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation>
 <translation id="8922289737868596582">Transfira páginas através do botão Mais opções para as utilizar offline.</translation>
 <translation id="8926666909099850184">O NFC está desativado para este dispositivo. Ative-o nas <ph name="BEGIN_LINK" />Definições do Android<ph name="END_LINK" />.</translation>
-<translation id="8937772741022875483">Pretende remover a sua atividade do Chrome do Bem-estar digital?</translation>
+<translation id="8937772741022875483">Remover a sua atividade do Chrome do Bem-estar digital?</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8942627711005830162">Abrir noutra janela</translation>
 <translation id="8951232171465285730">O Chrome permitiu-lhe poupar <ph name="MEGABYTES" /> MB</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
index cfab5cf..b88c66c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -914,7 +914,7 @@
 <translation id="780301667611848630">தேவையில்லை</translation>
 <translation id="7810647596859435254">இதன் மூலம் திற…</translation>
 <translation id="7821588508402923572">உங்கள் டேட்டா சேமிப்புகள் இங்கே தோன்றும்</translation>
-<translation id="7828557259026017104">நீங்கள் பார்வையிடும் தளங்களால் உருவாக்கப்பட்ட கோப்புகளே குக்கீகள். உங்கள் விருப்பங்களை நினைவில் வைத்துக்கொள்ள இணையதளங்கள் இவற்றைப் பயன்படுத்துகின்றன. பிற தளங்களால் மூன்றாம் தரப்புக் குக்கீகள் உருவாக்கப்படுகின்றன. நீங்கள் பார்வையிடும் இணையப் பக்கத்தில் தோன்றக்கூடிய விளம்பரங்கள் அல்லது படங்கள் போன்ற சில உள்ளடக்கங்கள் இந்தத் தளங்களுக்குச் சொந்தமானதாக இருக்கும்.</translation>
+<translation id="7828557259026017104">நீங்கள் பார்வையிடும் தளங்களால் உருவாக்கப்பட்ட கோப்புகளே குக்கீகள். உங்கள் விருப்பங்களை நினைவில் வைத்துக்கொள்ள இணையதளங்கள் இவற்றைப் பயன்படுத்துகின்றன. பிற தளங்களால் மூன்றாம் தரப்புக் குக்கீகள் உருவாக்கப்படுகின்றன. நீங்கள் பார்வையிடும் இணையப் பக்கத்தில் தோன்றக்கூடிய விளம்பரங்கள், படங்கள் போன்ற சில உள்ளடக்கங்கள் இந்தத் தளங்களுடையவையாக இருக்கும்.</translation>
 <translation id="783819812427904514">வீடியோவின் ஒலியை இயக்கு</translation>
 <translation id="784934925303690534">நேர வரம்பு</translation>
 <translation id="7851858861565204677">பிற சாதனங்கள்</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
index e4d66d99..77a2559 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -130,7 +130,7 @@
 <translation id="1984937141057606926">อนุญาต ยกเว้นบุคคลที่สาม</translation>
 <translation id="1986685561493779662">มีชื่อนี้อยู่แล้ว</translation>
 <translation id="1987739130650180037"><ph name="MESSAGE" /> ปุ่ม<ph name="LINK_NAME" /></translation>
-<translation id="1989112275319619282">เล่นเน็ต</translation>
+<translation id="1989112275319619282">เปิดดู</translation>
 <translation id="1993768208584545658"><ph name="SITE" /> ต้องการจับคู่</translation>
 <translation id="1994173015038366702">URL ของเว็บไซต์</translation>
 <translation id="2000419248597011803">ส่งคุกกี้และการค้นหาบางรายการจากแถบที่อยู่และช่องค้นหาไปยังเครื่องมือค้นหาเริ่มต้น</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
index ea11556..49849df 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -103,6 +103,7 @@
 <translation id="1782483593938241562">结束日期:<ph name="DATE" /></translation>
 <translation id="1791662854739702043">安装位置</translation>
 <translation id="1792959175193046959">随时更改默认的下载内容保存位置</translation>
+<translation id="1795251344124198516">Chrome 和 Chrome 操作系统附加服务条款</translation>
 <translation id="1807246157184219062">浅色调</translation>
 <translation id="1810845389119482123">未完成初始同步设置</translation>
 <translation id="1821253160463689938">使用 Cookie 记住您的偏好设置(即使您不访问这些网页)</translation>
@@ -232,6 +233,7 @@
 <translation id="2650751991977523696">是否重新下载文件?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# 个音频文件}other{# 个音频文件}}</translation>
 <translation id="2687403674020088961">阻止所有 Cookie(不建议)</translation>
+<translation id="2689830683995595741">使用 Chrome 即表示您同意接受 <ph name="BEGIN_LINK1" />Google 服务条款<ph name="END_LINK1" />以及 <ph name="BEGIN_LINK2" />Google Chrome 和 Chrome 操作系统附加服务条款<ph name="END_LINK2" />。<ph name="BEGIN_LINK3" />针对通过 Family Link 管理的 Google 帐号的隐私权声明<ph name="END_LINK3" />也适用。</translation>
 <translation id="2707726405694321444">刷新网页</translation>
 <translation id="2709516037105925701">自动填充</translation>
 <translation id="2717722538473713889">电子邮件地址</translation>
@@ -372,6 +374,7 @@
 <translation id="3749259744154402564">不支持</translation>
 <translation id="3771001275138982843">无法下载此项更新</translation>
 <translation id="3771033907050503522">隐身标签页</translation>
+<translation id="3771694256347217732">Google 服务条款</translation>
 <translation id="3773755127849930740">请<ph name="BEGIN_LINK" />开启蓝牙<ph name="END_LINK" />以允许配对</translation>
 <translation id="3775705724665058594">发送到您的设备</translation>
 <translation id="3778956594442850293">已添加到主屏幕</translation>
@@ -399,6 +402,7 @@
 <translation id="396192773038029076">{NUM_IN_PROGRESS,plural, =1{待准备就绪后,Chrome 即会加载您的网页}other{待准备就绪后,Chrome 即会加载您的网页}}</translation>
 <translation id="3963007978381181125">密码加密不包括 Google Pay 中的付款方式和地址。只有知道您密码的人才能读取您的已加密数据。系统不会将该密码发送给 Google,Google 也不会存储该密码。如果您忘记了密码或想更改此设置,则需重置同步设置。<ph name="BEGIN_LINK" />了解详情<ph name="END_LINK" /></translation>
 <translation id="3967822245660637423">下载完毕</translation>
+<translation id="3974987681202239636"><ph name="APP_NAME" />将在 Chrome 中打开。继续操作即表示您同意接受 <ph name="BEGIN_LINK1" />Google 服务条款<ph name="END_LINK1" />以及 <ph name="BEGIN_LINK2" />Google Chrome 和 Chrome 操作系统附加服务条款<ph name="END_LINK2" />。<ph name="BEGIN_LINK3" />针对通过 Family Link 管理的 Google 帐号的隐私权声明<ph name="END_LINK3" />也适用。</translation>
 <translation id="397583555483684758">同步功能已停止工作</translation>
 <translation id="3976396876660209797">移除并重新创建此快捷方式</translation>
 <translation id="3985215325736559418">要重新下载“<ph name="FILE_NAME" />”吗?</translation>
@@ -709,6 +713,7 @@
 <translation id="6255999984061454636">内容建议</translation>
 <translation id="6270391203985052864">网站可以询问能否向您发送通知</translation>
 <translation id="6277522088822131679">打印该页面时出现问题,请重试。</translation>
+<translation id="6292420053234093573">使用 Chrome 即表示您同意接受 <ph name="BEGIN_LINK1" />Google 服务条款<ph name="END_LINK1" />以及 <ph name="BEGIN_LINK2" />Google Chrome 和 Chrome 操作系统附加服务条款<ph name="END_LINK2" />。</translation>
 <translation id="6295158916970320988">所有网站</translation>
 <translation id="629730747756840877">帐号</translation>
 <translation id="6297765934698848803">负责管理您设备的组织已关闭您的摄像头。</translation>
@@ -723,6 +728,7 @@
 <translation id="6364438453358674297">要从历史记录中移除建议吗?</translation>
 <translation id="6369229450655021117">您可从这里搜索网上内容、与好友分享内容以及查看已打开的网页</translation>
 <translation id="6378173571450987352">详细信息:按已使用的数据流量排序</translation>
+<translation id="6379829913050047669"><ph name="APP_NAME" />将在 Chrome 中打开。继续操作即表示您同意接受 <ph name="BEGIN_LINK1" />Google 服务条款<ph name="END_LINK1" />以及 <ph name="BEGIN_LINK2" />Google Chrome 和 Chrome 操作系统附加服务条款<ph name="END_LINK2" />。</translation>
 <translation id="6381421346744604172">调暗网站颜色</translation>
 <translation id="6388207532828177975">清除并重置</translation>
 <translation id="6395288395575013217">链接</translation>
diff --git a/chrome/browser/ui/ash/system_tray_client.cc b/chrome/browser/ui/ash/system_tray_client.cc
index 27fceeb..a171146 100644
--- a/chrome/browser/ui/ash/system_tray_client.cc
+++ b/chrome/browser/ui/ash/system_tray_client.cc
@@ -271,7 +271,7 @@
 
 void SystemTrayClient::ShowAccessibilitySettings() {
   base::RecordAction(base::UserMetricsAction("ShowAccessibilitySettings"));
-  ShowSettingsSubPageForActiveUser(chrome::kAccessibilitySubPage);
+  ShowSettingsSubPageForActiveUser(chrome::kOsAccessibilitySubPage);
 }
 
 void SystemTrayClient::ShowGestureEducationHelp() {
diff --git a/chrome/browser/ui/hats/hats_survey_status_checker.cc b/chrome/browser/ui/hats/hats_survey_status_checker.cc
index 328080d..62fc5c5 100644
--- a/chrome/browser/ui/hats/hats_survey_status_checker.cc
+++ b/chrome/browser/ui/hats/hats_survey_status_checker.cc
@@ -9,6 +9,7 @@
 #include "content/public/browser/storage_partition.h"
 #include "net/base/load_flags.h"
 #include "net/cookies/canonical_cookie.h"
+#include "net/cookies/site_for_cookies.h"
 #include "net/http/http_status_code.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "services/network/public/cpp/resource_request.h"
@@ -71,8 +72,9 @@
   auto request = std::make_unique<network::ResourceRequest>();
   std::string url_without_id(HatsSurveyURLWithoutId());
   request->url = GURL(url_without_id + site_id);
+  // Treat this request as same-site for the purposes of cookie inclusion.
+  request->site_for_cookies = net::SiteForCookies::FromUrl(request->url);
   // Send stored cookie along with the request, but don't save any cookie.
-  request->attach_same_site_cookies = true;
   request->load_flags = net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE |
                         net::LOAD_DO_NOT_SAVE_COOKIES;
   DCHECK(!url_loader_);
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_view_browsertest.cc b/chrome/browser/ui/views/media_router/cast_dialog_view_browsertest.cc
index bb229bc..350096c 100644
--- a/chrome/browser/ui/views/media_router/cast_dialog_view_browsertest.cc
+++ b/chrome/browser/ui/views/media_router/cast_dialog_view_browsertest.cc
@@ -95,6 +95,10 @@
           CreateConnectedSink(),
           CreateUnavailableSink(),
       });
+    } else if (name == "NoSinks") {
+      model = CreateModelWithSinks({});
+    } else {
+      NOTREACHED() << "Unexpected test name " << name;
     }
     media_router::CastDialogView* dialog =
         media_router::CastDialogView::GetInstance();
diff --git a/chrome/browser/ui/views/payments/payment_request_row_view.cc b/chrome/browser/ui/views/payments/payment_request_row_view.cc
index 78e3dcf..df009c6 100644
--- a/chrome/browser/ui/views/payments/payment_request_row_view.cc
+++ b/chrome/browser/ui/views/payments/payment_request_row_view.cc
@@ -13,6 +13,9 @@
 
 namespace payments {
 
+// static
+constexpr char PaymentRequestRowView::kClassName[];
+
 PaymentRequestRowView::PaymentRequestRowView(views::ButtonListener* listener,
                                              bool clickable,
                                              const gfx::Insets& insets)
@@ -20,13 +23,21 @@
       clickable_(clickable),
       insets_(insets),
       previous_row_(nullptr) {
-  SetEnabled(clickable_);
+  // When not clickable, use Button's STATE_DISABLED but don't set our
+  // View state to disabled. The former ensures we aren't clickable, the
+  // latter also disables us and our children for event handling.
+  views::Button::SetState(clickable_ ? views::Button::STATE_NORMAL
+                                     : views::Button::STATE_DISABLED);
   ShowBottomSeparator();
   SetFocusBehavior(views::View::FocusBehavior::ALWAYS);
 }
 
 PaymentRequestRowView::~PaymentRequestRowView() {}
 
+const char* PaymentRequestRowView::GetClassName() const {
+  return kClassName;
+}
+
 void PaymentRequestRowView::SetActiveBackground() {
   // TODO(crbug/976890): Check whether we can GetSystemColor from a NativeTheme
   // ColorId instead of hard code here.
diff --git a/chrome/browser/ui/views/payments/payment_request_row_view.h b/chrome/browser/ui/views/payments/payment_request_row_view.h
index 8cdfa1d..b093ac77 100644
--- a/chrome/browser/ui/views/payments/payment_request_row_view.h
+++ b/chrome/browser/ui/views/payments/payment_request_row_view.h
@@ -17,6 +17,8 @@
     : public views::Button,
       public base::SupportsWeakPtr<PaymentRequestRowView> {
  public:
+  static constexpr char kClassName[] = "PaymentRequestRowView";
+
   // Creates a row view. If |clickable| is true, the row will be shaded on hover
   // and handle click events. |insets| are used as padding around the content.
   PaymentRequestRowView(views::ButtonListener* listener,
@@ -28,6 +30,9 @@
     previous_row_ = previous_row;
   }
 
+  // views::View:
+  const char* GetClassName() const override;
+
  protected:
   bool clickable() { return clickable_; }
 
diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
index 540abb1b..3269ce2 100644
--- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
+++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
@@ -44,6 +44,7 @@
 #include "chrome/browser/chromeos/file_manager/filesystem_api_util.h"
 #include "chrome/browser/chromeos/profiles/profile_helper.h"
 #include "chrome/browser/chromeos/system_logs/debug_log_writer.h"
+#include "chrome/browser/chromeos/system_logs/system_logs_writer.h"
 #include "chrome/browser/net/nss_context.h"
 #include "chrome/common/logging_chrome.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
@@ -72,6 +73,28 @@
 
 void IgnoreBoolCallback(bool result) {}
 
+#if defined(OS_CHROMEOS)
+base::FilePath GetDownloadsDirectory(content::WebUI* web_ui) {
+  Profile* profile = Profile::FromWebUI(web_ui);
+  const DownloadPrefs* const prefs = DownloadPrefs::FromBrowserContext(profile);
+  base::FilePath path = prefs->DownloadPath();
+  if (file_manager::util::IsUnderNonNativeLocalPath(profile, path))
+    path = prefs->GetDefaultDownloadDirectoryForProfile();
+  return path;
+}
+
+std::string GetJsonPolicies(content::WebUI* web_ui) {
+  auto client = std::make_unique<policy::ChromePolicyConversionsClient>(
+      web_ui->GetWebContents()->GetBrowserContext());
+  return policy::DictionaryPolicyConversions(std::move(client)).ToJSON();
+}
+
+void WriteTimestampedFile(base::FilePath file_path, std::string contents) {
+  file_path = logging::GenerateTimestampedName(file_path, base::Time::Now());
+  base::WriteFile(file_path, contents.data(), contents.size());
+}
+#endif
+
 // This class receives javascript messages from the renderer.
 // Note that the WebUI infrastructure runs on the UI thread, therefore all of
 // this class's methods are expected to run on the UI thread.
@@ -125,10 +148,10 @@
   void OnCloseIdleSockets(const base::ListValue* list);
   void OnFlushSocketPools(const base::ListValue* list);
 #if defined(OS_CHROMEOS)
-  void OnDumpPolicyLogsCompleted(const base::FilePath& path,
-                                 bool should_compress,
-                                 bool combined,
-                                 const char* received_event);
+  void OnWritePolicyLogsCompleted(const base::FilePath& path,
+                                  bool should_compress,
+                                  bool combined,
+                                  const char* received_event);
   void OnImportONCFile(const base::ListValue* list);
   void OnStoreDebugLogs(bool combined,
                         const char* received_event,
@@ -136,6 +159,11 @@
   void OnStoreDebugLogsCompleted(const char* received_event,
                                  const base::FilePath& log_path,
                                  bool succeeded);
+  void OnStoreFeedbackSystemLogs(const char* received_event,
+                                 const base::ListValue* list);
+  void OnStoreFeedbackSystemLogsCompleted(
+      const char* received_event,
+      base::Optional<base::FilePath> system_logs_path);
   void OnSetNetworkDebugMode(const base::ListValue* list);
   void OnSetNetworkDebugModeCompleted(const std::string& subsystem,
                                       bool succeeded);
@@ -211,6 +239,11 @@
                           base::Unretained(this), true /* combined */,
                           "receivedStoreCombinedDebugLogs"));
   web_ui()->RegisterMessageCallback(
+      "storeFeedbackSystemLogs",
+      base::BindRepeating(
+          &NetInternalsMessageHandler::OnStoreFeedbackSystemLogs,
+          base::Unretained(this), "receivedStoreFeedbackSystemLogs"));
+  web_ui()->RegisterMessageCallback(
       "setNetworkDebugMode",
       base::BindRepeating(&NetInternalsMessageHandler::OnSetNetworkDebugMode,
                           base::Unretained(this)));
@@ -422,38 +455,27 @@
                  onc_blob, passcode));
 }
 
-void DumpPolicyLogs(base::FilePath file_path, std::string json_policies) {
-  file_path = logging::GenerateTimestampedName(file_path, base::Time::Now());
-  base::WriteFile(file_path, json_policies.data(), json_policies.size());
-}
-
 void NetInternalsMessageHandler::OnStoreDebugLogs(bool combined,
                                                   const char* received_event,
                                                   const base::ListValue* list) {
   DCHECK(list);
 
   SendJavascriptCommand(received_event, base::Value("Creating log file..."));
-  Profile* profile = Profile::FromWebUI(web_ui());
-  const DownloadPrefs* const prefs = DownloadPrefs::FromBrowserContext(profile);
-  base::FilePath path = prefs->DownloadPath();
-  if (file_manager::util::IsUnderNonNativeLocalPath(profile, path))
-    path = prefs->GetDefaultDownloadDirectoryForProfile();
-  base::FilePath policies_path = path.Append("policies.json");
-  auto client = std::make_unique<policy::ChromePolicyConversionsClient>(
-      web_ui()->GetWebContents()->GetBrowserContext());
-  std::string json_policies =
-      policy::DictionaryPolicyConversions(std::move(client)).ToJSON();
+
+  base::FilePath path = GetDownloadsDirectory(web_ui());
+  std::string json_policies = GetJsonPolicies(web_ui());
   base::ThreadPool::PostTaskAndReply(
       FROM_HERE,
       {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
        base::TaskShutdownBehavior::BLOCK_SHUTDOWN},
-      base::BindOnce(DumpPolicyLogs, policies_path, json_policies),
-      base::BindOnce(&NetInternalsMessageHandler::OnDumpPolicyLogsCompleted,
+      base::BindOnce(WriteTimestampedFile, path.Append("policies.json"),
+                     json_policies),
+      base::BindOnce(&NetInternalsMessageHandler::OnWritePolicyLogsCompleted,
                      AsWeakPtr(), path, true /* should_compress */, combined,
                      received_event));
 }
 
-void NetInternalsMessageHandler::OnDumpPolicyLogsCompleted(
+void NetInternalsMessageHandler::OnWritePolicyLogsCompleted(
     const base::FilePath& path,
     bool should_compress,
     bool combined,
@@ -483,6 +505,42 @@
   SendJavascriptCommand(received_event, base::Value(status));
 }
 
+void NetInternalsMessageHandler::OnStoreFeedbackSystemLogs(
+    const char* received_event,
+    const base::ListValue* list) {
+  DCHECK(list);
+  SendJavascriptCommand(received_event,
+                        base::Value("Creating system logs file..."));
+
+  base::FilePath downloads_path = GetDownloadsDirectory(web_ui());
+  std::string json_policies = GetJsonPolicies(web_ui());
+
+  // Write the policies file to disk as a blocking task, then call
+  // system_logs_writer::WriteSystemLogs to asynchronously write the system
+  // logs and respond when complete.
+  base::ThreadPool::PostTaskAndReply(
+      FROM_HERE,
+      {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
+       base::TaskShutdownBehavior::BLOCK_SHUTDOWN},
+      base::BindOnce(WriteTimestampedFile,
+                     downloads_path.Append("policies.json"), json_policies),
+      base::BindOnce(
+          chromeos::system_logs_writer::WriteSystemLogs, downloads_path,
+          base::BindOnce(
+              &NetInternalsMessageHandler::OnStoreFeedbackSystemLogsCompleted,
+              AsWeakPtr(), received_event)));
+}
+
+void NetInternalsMessageHandler::OnStoreFeedbackSystemLogsCompleted(
+    const char* received_event,
+    base::Optional<base::FilePath> system_logs_path) {
+  std::string status = system_logs_path
+                           ? "Created system_logs file: " +
+                                 system_logs_path->BaseName().AsUTF8Unsafe()
+                           : "Failed to create system logs file.";
+  SendJavascriptCommand(received_event, base::Value(status));
+}
+
 void NetInternalsMessageHandler::OnSetNetworkDebugMode(
     const base::ListValue* list) {
   std::string subsystem;
diff --git a/chrome/browser/usb/frame_usb_services.cc b/chrome/browser/usb/frame_usb_services.cc
new file mode 100644
index 0000000..cdab257
--- /dev/null
+++ b/chrome/browser/usb/frame_usb_services.cc
@@ -0,0 +1,82 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/usb/frame_usb_services.h"
+
+#include "build/build_config.h"
+#include "chrome/browser/usb/usb_tab_helper.h"
+#include "content/public/common/content_features.h"
+#include "mojo/public/cpp/bindings/message.h"
+#include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom.h"
+
+#if defined(OS_ANDROID)
+#include "chrome/browser/android/usb/web_usb_chooser_android.h"
+#else
+#include "chrome/browser/ui/browser_finder.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/usb/web_usb_chooser_desktop.h"
+#endif  // defined(OS_ANDROID)
+
+using content::RenderFrameHost;
+using content::WebContents;
+
+namespace {
+
+// The renderer performs its own feature policy checks so a request that gets
+// to the browser process indicates malicious code.
+const char kFeaturePolicyViolation[] =
+    "Feature policy blocks access to WebUSB.";
+
+}  // namespace
+
+FrameUsbServices::FrameUsbServices(RenderFrameHost* render_frame_host)
+    : render_frame_host_(render_frame_host) {
+  // Create UsbTabHelper on creating FrameUsbServices.
+  UsbTabHelper::CreateForWebContents(
+      WebContents::FromRenderFrameHost(render_frame_host_));
+}
+
+FrameUsbServices::~FrameUsbServices() = default;
+
+void FrameUsbServices::InitializeWebUsbChooser() {
+  if (!usb_chooser_) {
+    usb_chooser_.reset(
+#if defined(OS_ANDROID)
+        new WebUsbChooserAndroid(render_frame_host_));
+#else
+        new WebUsbChooserDesktop(render_frame_host_));
+#endif  // defined(OS_ANDROID)
+  }
+}
+
+void FrameUsbServices::InitializeWebUsbService(
+    mojo::PendingReceiver<blink::mojom::WebUsbService> receiver) {
+  if (!AllowedByFeaturePolicy()) {
+    mojo::ReportBadMessage(kFeaturePolicyViolation);
+    return;
+  }
+
+  InitializeWebUsbChooser();
+  if (!web_usb_service_) {
+    web_usb_service_.reset(
+        new WebUsbServiceImpl(render_frame_host_, usb_chooser_->GetWeakPtr()));
+  }
+  web_usb_service_->BindReceiver(std::move(receiver));
+}
+
+bool FrameUsbServices::AllowedByFeaturePolicy() const {
+  return render_frame_host_->IsFeatureEnabled(
+      blink::mojom::FeaturePolicyFeature::kUsb);
+}
+
+// static
+void FrameUsbServices::CreateFrameUsbServices(
+    RenderFrameHost* render_frame_host,
+    mojo::PendingReceiver<blink::mojom::WebUsbService> receiver) {
+  FrameUsbServices::CreateForCurrentDocument(render_frame_host);
+  FrameUsbServices::GetForCurrentDocument(render_frame_host)
+      ->InitializeWebUsbService(std::move(receiver));
+}
+
+RENDER_DOCUMENT_HOST_USER_DATA_KEY_IMPL(FrameUsbServices)
diff --git a/chrome/browser/usb/frame_usb_services.h b/chrome/browser/usb/frame_usb_services.h
new file mode 100644
index 0000000..17f087e1
--- /dev/null
+++ b/chrome/browser/usb/frame_usb_services.h
@@ -0,0 +1,52 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_USB_FRAME_USB_SERVICES_H_
+#define CHROME_BROWSER_USB_FRAME_USB_SERVICES_H_
+
+#include "chrome/browser/usb/web_usb_service_impl.h"
+#include "content/public/browser/render_document_host_user_data.h"
+#include "content/public/browser/render_frame_host.h"
+#include "content/public/browser/web_contents.h"
+
+namespace blink {
+namespace mojom {
+class WebUsbService;
+}
+}  // namespace blink
+
+class WebUsbChooser;
+
+// Collection of USB-related document-associated services (e.g.
+// WebUsbServiceImpl) with the lifetime bound to the lifetime of the document.
+class FrameUsbServices
+    : public content::RenderDocumentHostUserData<FrameUsbServices> {
+ public:
+  ~FrameUsbServices() override;
+
+  static void CreateFrameUsbServices(
+      content::RenderFrameHost* render_frame_host,
+      mojo::PendingReceiver<blink::mojom::WebUsbService> receiver);
+
+ private:
+  explicit FrameUsbServices(content::RenderFrameHost* render_frame_host);
+
+  friend class content::RenderDocumentHostUserData<FrameUsbServices>;
+
+  void InitializeWebUsbChooser();
+
+  void InitializeWebUsbService(
+      mojo::PendingReceiver<blink::mojom::WebUsbService> receiver);
+
+  bool AllowedByFeaturePolicy() const;
+
+  std::unique_ptr<WebUsbChooser> usb_chooser_;
+  std::unique_ptr<WebUsbServiceImpl> web_usb_service_;
+
+  content::RenderFrameHost* render_frame_host_;
+
+  RENDER_DOCUMENT_HOST_USER_DATA_KEY_DECL();
+};
+
+#endif  // CHROME_BROWSER_USB_FRAME_USB_SERVICES_H_
diff --git a/chrome/browser/usb/usb_tab_helper.cc b/chrome/browser/usb/usb_tab_helper.cc
index e04b0ef..8a8c9ed 100644
--- a/chrome/browser/usb/usb_tab_helper.cc
+++ b/chrome/browser/usb/usb_tab_helper.cc
@@ -7,13 +7,10 @@
 #include <memory>
 #include <utility>
 
-#include "chrome/browser/usb/web_usb_service_impl.h"
+#include "build/build_config.h"
+#include "chrome/browser/usb/frame_usb_services.h"
 #include "components/performance_manager/public/decorators/page_live_state_decorator.h"
 #include "content/public/browser/navigation_handle.h"
-#include "content/public/browser/render_frame_host.h"
-#include "content/public/common/content_features.h"
-#include "mojo/public/cpp/bindings/message.h"
-#include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom.h"
 
 #if defined(OS_ANDROID)
 #include "chrome/browser/android/usb/web_usb_chooser_android.h"
@@ -23,23 +20,8 @@
 #include "chrome/browser/usb/web_usb_chooser_desktop.h"
 #endif  // defined(OS_ANDROID)
 
-using content::RenderFrameHost;
 using content::WebContents;
 
-namespace {
-
-// The renderer performs its own feature policy checks so a request that gets
-// to the browser process indicates malicous code.
-const char kFeaturePolicyViolation[] =
-    "Feature policy blocks access to WebUSB.";
-
-}  // namespace
-
-struct FrameUsbServices {
-  std::unique_ptr<WebUsbChooser> usb_chooser;
-  std::unique_ptr<WebUsbServiceImpl> web_usb_service;
-};
-
 // static
 UsbTabHelper* UsbTabHelper::GetOrCreateForWebContents(
     WebContents* web_contents) {
@@ -52,25 +34,27 @@
 }
 
 UsbTabHelper::~UsbTabHelper() {
-  // All RenderFrameHosts should have been deleted before the WebContents.
-  DCHECK(frame_usb_services_.empty());
   DCHECK_EQ(0, device_connection_count_);
 }
 
-void UsbTabHelper::CreateWebUsbService(
-    RenderFrameHost* render_frame_host,
-    mojo::PendingReceiver<blink::mojom::WebUsbService> receiver) {
-  if (!AllowedByFeaturePolicy(render_frame_host)) {
-    mojo::ReportBadMessage(kFeaturePolicyViolation);
-    return;
-  }
+UsbTabHelper::UsbTabHelper(WebContents* web_contents)
+    : web_contents_(web_contents) {}
 
-  FrameUsbServices* frame_usb_services = GetFrameUsbService(render_frame_host);
-  if (!frame_usb_services->web_usb_service) {
-    frame_usb_services->web_usb_service.reset(new WebUsbServiceImpl(
-        render_frame_host, GetUsbChooser(render_frame_host)));
+void UsbTabHelper::NotifyIsDeviceConnectedChanged(
+    bool is_device_connected) const {
+  performance_manager::PageLiveStateDecorator::OnIsConnectedToUSBDeviceChanged(
+      web_contents_, is_device_connected);
+
+  // TODO(https://crbug.com/601627): Implement tab indicator for Android.
+#if !defined(OS_ANDROID)
+  Browser* browser = chrome::FindBrowserWithWebContents(web_contents_);
+  if (browser) {
+    TabStripModel* tab_strip_model = browser->tab_strip_model();
+    tab_strip_model->UpdateWebContentsStateAt(
+        tab_strip_model->GetIndexOfWebContents(web_contents_),
+        TabChangeType::kAll);
   }
-  frame_usb_services->web_usb_service->BindReceiver(std::move(receiver));
+#endif
 }
 
 void UsbTabHelper::IncrementConnectionCount() {
@@ -90,82 +74,4 @@
   return device_connection_count_ > 0;
 }
 
-UsbTabHelper::UsbTabHelper(WebContents* web_contents)
-    : content::WebContentsObserver(web_contents) {}
-
-void UsbTabHelper::RenderFrameDeleted(RenderFrameHost* render_frame_host) {
-  // This method handles the simple case of a frame closing.
-  DeleteFrameServices(render_frame_host);
-}
-
-void UsbTabHelper::RenderFrameHostChanged(RenderFrameHost* old_host,
-                                          RenderFrameHost* new_host) {
-  // This method handles the case where a frame swaps its RenderFrameHost for a
-  // new one on navigation.
-  DeleteFrameServices(old_host);
-}
-
-void UsbTabHelper::DidFinishNavigation(content::NavigationHandle* handle) {
-  // This method handles the case where a frame navigates without swapping its
-  // RenderFrameHost for a new one.
-  if (handle->HasCommitted() && !handle->IsSameDocument())
-    DeleteFrameServices(handle->GetRenderFrameHost());
-}
-
-FrameUsbServices* UsbTabHelper::GetFrameUsbService(
-    RenderFrameHost* render_frame_host) {
-  FrameUsbServicesMap::const_iterator it =
-      frame_usb_services_.find(render_frame_host);
-  if (it == frame_usb_services_.end()) {
-    std::unique_ptr<FrameUsbServices> frame_usb_services(
-        new FrameUsbServices());
-    it = (frame_usb_services_.insert(
-              std::make_pair(render_frame_host, std::move(frame_usb_services))))
-             .first;
-  }
-  return it->second.get();
-}
-
-void UsbTabHelper::DeleteFrameServices(RenderFrameHost* render_frame_host) {
-  frame_usb_services_.erase(render_frame_host);
-}
-
-base::WeakPtr<WebUsbChooser> UsbTabHelper::GetUsbChooser(
-    RenderFrameHost* render_frame_host) {
-  FrameUsbServices* frame_usb_services = GetFrameUsbService(render_frame_host);
-  if (!frame_usb_services->usb_chooser) {
-    frame_usb_services->usb_chooser.reset(
-#if defined(OS_ANDROID)
-        new WebUsbChooserAndroid(render_frame_host));
-#else
-        new WebUsbChooserDesktop(render_frame_host));
-#endif  // defined(OS_ANDROID)
-  }
-  return frame_usb_services->usb_chooser->GetWeakPtr();
-}
-
-void UsbTabHelper::NotifyIsDeviceConnectedChanged(
-    bool is_device_connected) const {
-  performance_manager::PageLiveStateDecorator::OnIsConnectedToUSBDeviceChanged(
-      web_contents(), is_device_connected);
-
-  // TODO(https://crbug.com/601627): Implement tab indicator for Android.
-#if !defined(OS_ANDROID)
-  Browser* browser = chrome::FindBrowserWithWebContents(web_contents());
-  if (browser) {
-    TabStripModel* tab_strip_model = browser->tab_strip_model();
-    tab_strip_model->UpdateWebContentsStateAt(
-        tab_strip_model->GetIndexOfWebContents(web_contents()),
-        TabChangeType::kAll);
-  }
-#endif
-}
-
-bool UsbTabHelper::AllowedByFeaturePolicy(
-    RenderFrameHost* render_frame_host) const {
-  DCHECK(WebContents::FromRenderFrameHost(render_frame_host) == web_contents());
-  return render_frame_host->IsFeatureEnabled(
-      blink::mojom::FeaturePolicyFeature::kUsb);
-}
-
 WEB_CONTENTS_USER_DATA_KEY_IMPL(UsbTabHelper)
diff --git a/chrome/browser/usb/usb_tab_helper.h b/chrome/browser/usb/usb_tab_helper.h
index e69fd36..42fddac 100644
--- a/chrome/browser/usb/usb_tab_helper.h
+++ b/chrome/browser/usb/usb_tab_helper.h
@@ -13,32 +13,14 @@
 #include "content/public/browser/web_contents_user_data.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 
-namespace blink {
-namespace mojom {
-class WebUsbService;
-}
-}  // namespace blink
-
-class WebUsbChooser;
-
-struct FrameUsbServices;
-
-typedef std::map<content::RenderFrameHost*, std::unique_ptr<FrameUsbServices>>
-    FrameUsbServicesMap;
-
 // Per-tab owner of USB services provided to render frames within that tab.
-class UsbTabHelper : public content::WebContentsObserver,
-                     public content::WebContentsUserData<UsbTabHelper> {
+class UsbTabHelper : public content::WebContentsUserData<UsbTabHelper> {
  public:
   static UsbTabHelper* GetOrCreateForWebContents(
       content::WebContents* web_contents);
 
   ~UsbTabHelper() override;
 
-  void CreateWebUsbService(
-      content::RenderFrameHost* render_frame_host,
-      mojo::PendingReceiver<blink::mojom::WebUsbService> receiver);
-
   void IncrementConnectionCount();
   void DecrementConnectionCount();
   bool IsDeviceConnected() const;
@@ -47,27 +29,14 @@
   explicit UsbTabHelper(content::WebContents* web_contents);
   friend class content::WebContentsUserData<UsbTabHelper>;
 
-  // content::WebContentsObserver overrides:
-  void RenderFrameDeleted(content::RenderFrameHost* render_frame_host) override;
-  void RenderFrameHostChanged(content::RenderFrameHost* old_host,
-                              content::RenderFrameHost* new_host) override;
-  void DidFinishNavigation(content::NavigationHandle* handle) override;
-
-  FrameUsbServices* GetFrameUsbService(
-      content::RenderFrameHost* render_frame_host);
-  void DeleteFrameServices(content::RenderFrameHost* render_frame_host);
-
-  base::WeakPtr<WebUsbChooser> GetUsbChooser(
-      content::RenderFrameHost* render_frame_host);
-
   void NotifyIsDeviceConnectedChanged(bool is_device_connected) const;
 
-  bool AllowedByFeaturePolicy(
-      content::RenderFrameHost* render_frame_host) const;
-
-  FrameUsbServicesMap frame_usb_services_;
+  // Initially no device is connected, type int is used as there can be many
+  // devices connected to single UsbTabHelper.
   int device_connection_count_ = 0;
 
+  content::WebContents* web_contents_;
+
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
   DISALLOW_COPY_AND_ASSIGN(UsbTabHelper);
diff --git a/chrome/browser/usb/usb_tab_helper_unittest.cc b/chrome/browser/usb/usb_tab_helper_unittest.cc
index d90869a..093d640 100644
--- a/chrome/browser/usb/usb_tab_helper_unittest.cc
+++ b/chrome/browser/usb/usb_tab_helper_unittest.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/usb/usb_tab_helper.h"
 
 #include "chrome/browser/resource_coordinator/local_site_characteristics_data_unittest_utils.h"
+#include "chrome/browser/usb/frame_usb_services.h"
 #include "chrome/browser/usb/usb_chooser_context.h"
 #include "chrome/browser/usb/usb_chooser_context_factory.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
@@ -46,9 +47,10 @@
 TEST_F(UsbTabHelperTest, IncrementDecrementConnectionCount) {
   mojo::Remote<blink::mojom::WebUsbService> remote;
 
-  UsbTabHelper* helper =
-      UsbTabHelper::GetOrCreateForWebContents(web_contents());
-  helper->CreateWebUsbService(main_rfh(), remote.BindNewPipeAndPassReceiver());
+  FrameUsbServices::CreateFrameUsbServices(main_rfh(),
+                                           remote.BindNewPipeAndPassReceiver());
+  UsbTabHelper* helper = UsbTabHelper::FromWebContents(web_contents());
+
   EXPECT_FALSE(helper->IsDeviceConnected());
   performance_manager::testing::TestPageNodePropertyOnPMSequence(
       web_contents(),
diff --git a/chrome/browser/usb/web_usb_service_impl_unittest.cc b/chrome/browser/usb/web_usb_service_impl_unittest.cc
index a3a17431..5114b039 100644
--- a/chrome/browser/usb/web_usb_service_impl_unittest.cc
+++ b/chrome/browser/usb/web_usb_service_impl_unittest.cc
@@ -14,6 +14,7 @@
 #include "base/bind.h"
 #include "base/run_loop.h"
 #include "base/test/bind_test_util.h"
+#include "chrome/browser/usb/frame_usb_services.h"
 #include "chrome/browser/usb/usb_chooser_context.h"
 #include "chrome/browser/usb/usb_chooser_context_factory.h"
 #include "chrome/browser/usb/usb_tab_helper.h"
@@ -74,8 +75,7 @@
           std::move(pending_device_manager));
     }
 
-    auto* tab_helper = UsbTabHelper::GetOrCreateForWebContents(web_contents());
-    tab_helper->CreateWebUsbService(main_rfh(), std::move(receiver));
+    FrameUsbServices::CreateFrameUsbServices(main_rfh(), std::move(receiver));
   }
 
   UsbChooserContext* GetChooserContext() {
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_af.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_af.xtb
index 8896f88..99cb788 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_af.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_af.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Kan nie die Google-aanmeldskerm oopmaak nie omdat daar 'n probleem is met die Chrome-installering op hierdie toestel. Kontak jou administrateur.</translation>
 <translation id="4057329986137569701">'n Interne fout het voorgekom.</translation>
 <translation id="4267670563222825190">Geen domeingebruiker kon vir jou rekening gekry word nie. Kontak jou administrateur.</translation>
-<translation id="4706454071748629324">Kon nie 'n nuwe gebruiker byvoeg nie. Hierdie rekenaar laat net toe dat een gebruiker met 'n werkrekening geskep word.</translation>
 <translation id="4744575902940448763">Jou werkrekening kon nie met jou Windows-profiel gesinkroniseer word nie omdat wagwoordopdaterings op jou toestel deur jou organisasie beperk word. Kontak jou administrateur vir hulp.</translation>
 <translation id="5186761973554910131">Ongeldige rekenaarnaam is verskaf gedurende poging om die wagwoord te verander. Kontak jou administrateur.</translation>
 <translation id="5265714013989877288">Kan nie voortgaan nie want jou Windows-wagwoord kon nie verander word nie. Kontak jou administrateur.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_am.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_am.xtb
index cff03178..35a36c8 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_am.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_am.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">በዚህ መሣሪያ ላይ በChrome ጭነት ላይ ችግር ስላለ የGoogle በመለያ መግቢያ ገጽን መክፈት አይቻልም። የእርስዎን አስተዳዳሪ ያነጋግሩ።</translation>
 <translation id="4057329986137569701">አንድ ውስጣዊ ስህተት ተከስቷል።</translation>
 <translation id="4267670563222825190">ምንም የጎራ ተጠቃሚ ለእርስዎ መለያ ሊገኝ አልተቻለም። እባክዎ አስተዳዳሪዎን ያነጋግሩ።</translation>
-<translation id="4706454071748629324">አዲስ ተጠቃሚን ማከል አልተቻለም። ይህ ኮምፒውተር የስራ መለያን በመጠቀም አንድ ተጠቃሚ ብቻ እንዲፈጠር ነው የሚፈቅደው።</translation>
 <translation id="4744575902940448763">በመሣሪያዎ ላይ የይለፍ ቃል ዝማኔዎች በድርጅትዎ የተገደበ ስለሆነ የስራ መለያዎን ከWindows መገለጫዎ ጋር ማስመር አልተቻለም። እገዛ ለማግኘት የእርስዎን አስተዳዳሪ ያነጋግሩ።</translation>
 <translation id="5186761973554910131">በይለፍ ቃል መቀየር ሙከራ ጊዜ ልክ ያልሆነ የኮምፒውተር ስም ቀርቧል እባክዎ አስተዳዳሪዎን ያነጋግሩ።</translation>
 <translation id="5265714013989877288">የእርስዎን የWindows የይለፍ ቃል በመለወጥ ላይ ሳለ አንድ ስህተት ስለነበር መቀጠል አልተቻለም። እባክዎ አስተዳዳሪዎን ያነጋግሩ።</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ar.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ar.xtb
index e4e7a47a..430e1bc 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ar.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ar.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">‏يتعذّر فتح شاشة تسجيل الدخول بحساب Google بسبب حدوث مشكلة في تثبيت Chrome على هذا الجهاز. يُرجى التواصل مع المشرف.</translation>
 <translation id="4057329986137569701">حدث خطأ داخلي.</translation>
 <translation id="4267670563222825190">يتعذّر العثور على أي مستخدم نطاق في حسابك. يُرجى التواصل مع المشرف.</translation>
-<translation id="4706454071748629324">تعذَّرت إضافة مستخدم جديد. يسمح جهاز الكمبيوتر هذا بإنشاء مستخدم واحد فقط باستخدام حساب عمل.</translation>
 <translation id="4744575902940448763">‏تعذَّرت مزامنة كلمة مرور حساب العمل مع ملفك الشخصي على Windows لأن مؤسستك تقيّد تغيير كلمة المرور على جهازك. يمكنك الاتصال بالمشرف للحصول على مساعدة.</translation>
 <translation id="5186761973554910131">اسم الكمبيوتر الذي تم تقديمه أثناء محاولة تغيير كلمة المرور غير صحيح، يُرجى التواصل مع المشرف.</translation>
 <translation id="5265714013989877288">‏تتعذّر المتابَعة بسبب حدوث خطأ أثناء تغيير كلمة مرور Windows. يُرجى التواصل مع مشرفك.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_as.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_as.xtb
index cfc8f27..2927cbfa 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_as.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_as.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">এই ডিভাইচটোত Chrome ইনষ্টল কৰাত কোনো সমস্যা হোৱাৰ বাবে Googleৰ ছাইন-ইন কৰা স্ক্ৰীনখন খুলিব নোৱাৰি। আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation>
 <translation id="4057329986137569701">কোনো আভ্যন্তৰীণ আসোঁৱাহ হৈছে।</translation>
 <translation id="4267670563222825190">আপোনাৰ একাউণ্টৰ বাবে কোনো ড’মেইন ব্যৱহাৰকাৰী বিচাৰি পোৱা নগ’ল। অনুগ্ৰহ কৰি আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation>
-<translation id="4706454071748629324">নতুন ব্যৱহাৰকাৰী যোগ কৰিব পৰা নগ’ল। এই কম্পিউটাৰটোৱে কৰ্মস্থানৰ কোনো একাউণ্ট ব্যৱহাৰ কৰি কেৱল এজনহে ব্যৱহাৰকাৰী সৃষ্টি কৰিব দিয়ে।</translation>
 <translation id="4744575902940448763">আপোনাৰ প্ৰতিষ্ঠানে আপোনাৰ ডিভাইচত পাছৱর্ডৰ আপডে'টসমূহ সীমাবদ্ধ কৰাৰ বাবে আপোনাৰ কৰ্মস্থানৰ একাউণ্টটো আপোনাৰ Windows প্ৰ'ফাইলৰ সৈতে ছিংক কৰিব পৰা নগ'ল। সহায়ৰ বাবে আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation>
 <translation id="5186761973554910131">পাছৱৰ্ড সলনি কৰাৰ প্ৰয়াসৰ সময়ত ভুল কম্পিউটাৰৰ নাম দিয়া হৈছে। অনুগ্ৰহ কৰি আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation>
 <translation id="5265714013989877288">আপোনাৰ Windowsৰ পাছৱর্ডটো সলনি কৰাৰ সময়ত কোনো আসোঁৱাহ হোৱাৰ বাবে অব্যাহত ৰাখিব নোৱাৰি। অনুগ্ৰহ কৰি আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_az.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_az.xtb
index 2fe3002..94fe657 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_az.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_az.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Bu cihazda Chrome'un quraşdırılması ilə bağlı problem olduğu üçün Google giriş ekranını açmaq olmur. İnzibatçınız ilə əlaqə saxlayın.</translation>
 <translation id="4057329986137569701">Daxili xəta baş verdi.</translation>
 <translation id="4267670563222825190">Hesabınız üçün Domen istifadəçisi tapılmadı. Administrator ilə əlaqə saxlayın.</translation>
-<translation id="4706454071748629324">Yeni istifadəçi əlavə etmək alınmadı. Bu kompüter iş hesabından istifadə edərək yalnız bir istifadəçinin yaradılmasına icazə verir</translation>
 <translation id="4744575902940448763">Cihazınızda parol yeniləmələri təşkilatınız tərəfindən məhdudlaşdırıldığı üçün iş hesabı parolunuz Windows profiliniz ilə sinxronlaşdırıla bilmədi. Yardım üçün inzibatçınız ilə əlaqə saxlayın.</translation>
 <translation id="5186761973554910131">Parol dəyişmə cəhdi zamanı yanlış kompüter adı təqdim edildi. Administratorunuz ilə əlaqə saxlayın.</translation>
 <translation id="5265714013989877288">Windows parolunuzu dəyişərkən xəta olduğu üçün davam etmək olmur. İnzibatçınız ilə əlaqə saxlayın.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_be.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_be.xtb
index d3f9cc6..50bedc4 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_be.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_be.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Не ўдаецца адкрыць экран уваходу ў Google: на гэтай прыладзе ўзнікла праблема з усталяваннем Chrome. Звярніцеся да адміністратара.</translation>
 <translation id="4057329986137569701">Адбылася ўнутраная памылка.</translation>
 <translation id="4267670563222825190">Карыстальнік дамена для вашага ўліковага запісу не знойдзены. Звярніцеся да адміністратара.</translation>
-<translation id="4706454071748629324">Не ўдалося дадаць новага карыстальніка. На гэтым камп'ютары дазволена стварыць толькі аднаго карыстальніка з працоўным уліковым запісам.</translation>
 <translation id="4744575902940448763">Не ўдалося сінхранізаваць пароль працоўнага ўліковага запісу з профілем Windows, бо абнаўленне пароляў на прыладзе забаронена вашай арганізацыяй. Звярніцеся па дапамогу да адміністратара.</translation>
 <translation id="5186761973554910131">Пры спробе змены пароля ўказана несапраўднае імя камп'ютара. Звярніцеся да адміністратара.</translation>
 <translation id="5265714013989877288">Не ўдаецца працягнуць, бо пры змяненні пароля Windows адбылася памылка. Звярніцеся да адміністратара.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_bg.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_bg.xtb
index 9cea7a9..2d60298 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_bg.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_bg.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Екранът за вход в Google не може да се зареди поради проблем в инсталацията на Chrome на това устройство. Обърнете се към администратора си.</translation>
 <translation id="4057329986137569701">Възникна вътрешна грешка.</translation>
 <translation id="4267670563222825190">Не е намерен потребител на домейна за профила ви. Моля, обърнете се към администратора си.</translation>
-<translation id="4706454071748629324">Добавянето на нов потребител не бе успешно. Този компютър позволява само един потребител да бъде създаден посредством служебен профил.</translation>
 <translation id="4744575902940448763">Паролата за служебния ви профил не бе синхронизирана с профила ви в Windows, защото актуализирането на паролите на устройството е ограничено от организацията ви. За помощ се обърнете към администратора си.</translation>
 <translation id="5186761973554910131">При опита за промяна на паролата бе предоставено невалидно име на компютър. Моля, обърнете се към администратора си.</translation>
 <translation id="5265714013989877288">Не може да се продължи поради грешка при промяната на паролата ви за Windows. Моля, обърнете се към администратора си.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_bn.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_bn.xtb
index cd7ff3f..2c70263 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_bn.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_bn.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">এই ডিভাইসে Chrome ইনস্টল করতে কোনও সমস্যা হওয়ার কারণে Google-এ সাইন-ইন করার স্ক্রিন খোলা যাচ্ছে না। আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation>
 <translation id="4057329986137569701">একটি অভ্যন্তরীণ সমস্যা হয়েছে।</translation>
 <translation id="4267670563222825190">আপনার অ্যাকাউন্টের জন্য কোনও ডোমেন ব্যবহারকারী খুঁজে পাওয়া যায়নি। আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation>
-<translation id="4706454071748629324">নতুন ব্যবহারকারী যোগ করা যায়নি। এই কম্পিউটার কাজের অ্যাকাউন্ট ব্যবহার করে শুধুমাত্র একজন ব্যবহারকারীর প্রোফাইল তৈরি করতে দেয়।</translation>
 <translation id="4744575902940448763">আপনার অফিস অ্যাকাউন্টের পাসওয়ার্ড আপনার Windows প্রোফাইলে সিঙ্ক করে রাখা যায়নি, কারণ আপনার সংস্থা চায় না আপনার ডিভাইসে পাসওয়ার্ড আপডেট করে রাখা হোক। সহায়তার জন্য আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation>
 <translation id="5186761973554910131">পাসওয়ার্ড পরিবর্তনের চেষ্টা করার সময় কম্পিউটারের নাম ভুল দেওয়া হয়েছে। আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation>
 <translation id="5265714013989877288">আপনার Windows-এর পাসওয়ার্ড পরিবর্তন করার সময় একটি সমস্যা হওয়ার কারণে আর আগে কোনও কাজ করা যাচ্ছে না। আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_bs.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_bs.xtb
index 3cb020d..cfc2f9d 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_bs.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_bs.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Nije moguće otvoriti ekran za prijavu na Google jer postoji problem s instalacijom Chromea na ovom uređaju. Kontaktirajte administratora.</translation>
 <translation id="4057329986137569701">Došlo je do interne greške.</translation>
 <translation id="4267670563222825190">Za vaš račun nije pronađem nijedan korisnik domene. Kontaktirajte svog administratora.</translation>
-<translation id="4706454071748629324">Dodavanje novog korisnika nije uspjelo. Ovaj računar dozvoljava kreiranje samo jednog korisnika pomoću poslovnog računa.</translation>
 <translation id="4744575902940448763">Sinhroniziranje lozinke vašeg poslovnog računa s Windows profilom nije uspjelo jer je vaša organizacija ograničila ažuriranja lozinki na uređaju. Kontaktirajte administratora za pomoć.</translation>
 <translation id="5186761973554910131">Nevažeći naziv računara je pružen tokom pokušaja promjene lozinke. Kontaktirajte svog administratora.</translation>
 <translation id="5265714013989877288">Nije moguće nastaviti jer je došlo do greške prilikom promjene vaše Windows lozinke. Kontaktirajte administratora.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ca.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ca.xtb
index 9b5393d2..46d27ca 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ca.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ca.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">No es pot obrir la pantalla d'inici de sessió de Google perquè hi ha un problema amb la instal·lació de Chrome en aquest dispositiu. Contacta amb l'administrador.</translation>
 <translation id="4057329986137569701">S'ha produït un error intern.</translation>
 <translation id="4267670563222825190">No s'ha trobat cap usuari del domini per al teu compte. Contacta amb l'administrador.</translation>
-<translation id="4706454071748629324">No s'ha pogut afegir un usuari nou. En aquest ordinador només es pot crear un usuari amb un compte de la feina.</translation>
 <translation id="4744575902940448763">La contrasenya del compte de la feina no s'ha pogut sincronitzar amb el teu perfil de Windows perquè la teva organització ha restringit les actualitzacions de contrasenyes al dispositiu. Contacta amb l'administrador per obtenir ajuda.</translation>
 <translation id="5186761973554910131">S'ha proporcionat un nom de l'ordinador que no és vàlid en provar de canviar la contrasenya. Contacta amb l'administrador.</translation>
 <translation id="5265714013989877288">No es pot continuar perquè s'ha produït un error en canviar la contrasenya de Windows. Contacta amb l'administrador.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_cs.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_cs.xtb
index 8bfb1ef..e366f30 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_cs.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_cs.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Přihlašovací obrazovku Google nelze otevřít kvůli problému v instalaci Chromu na tomto zařízení. Kontaktujte administrátora.</translation>
 <translation id="4057329986137569701">Došlo k interní chybě.</translation>
 <translation id="4267670563222825190">Pro váš účet nebyl nalezen žádný doménový uživatel. Obraťte se na administrátora.</translation>
-<translation id="4706454071748629324">Přidání nového uživatele se nezdařilo. Na tomto počítači lze pomocí pracovního účtu vytvořit jen jednoho uživatele.</translation>
 <translation id="4744575902940448763">Pracovní účet nebylo možné synchronizovat do profilu Windows, protože vaše organizace aktualizace hesel na zařízení omezuje. Obraťte se na administrátora.</translation>
 <translation id="5186761973554910131">Při pokusu změnit heslo byl zadán nesprávný název počítače. Obraťte se na administrátora.</translation>
 <translation id="5265714013989877288">Nelze pokračovat, protože při změně hesla vašeho účtu Windows došlo k chybě. Obraťte se na administrátora.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_da.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_da.xtb
index 3d1d3c8c..90a5a90 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_da.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_da.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Google-loginskærmen kan ikke åbnes, da der er et problem med Chrome-installationen på denne enhed. Kontakt din administrator.</translation>
 <translation id="4057329986137569701">Der opstod en intern fejl.</translation>
 <translation id="4267670563222825190">Der blev ikke fundet nogen domænebruger for din konto. Kontakt din administrator.</translation>
-<translation id="4706454071748629324">Det var ikke muligt at tilføje en ny bruger. Denne computer giver kun mulighed for at oprette én bruger med en arbejdskonto.</translation>
 <translation id="4744575902940448763">Adgangskoden til din arbejdskonto kunne ikke synkroniseres med din Windows-profil, da din organisation har angivet begrænsninger for opdatering af adgangskoder på din enhed. Kontakt din administrator for at få hjælp.</translation>
 <translation id="5186761973554910131">Der blev angivet et ugyldigt computernavn under forsøget på at ændre adgangskode. Kontakt din administrator.</translation>
 <translation id="5265714013989877288">Der kan ikke fortsættes, da der opstod en fejl under forsøget på at ændre din Windows-adgangskode. Kontakt din administrator.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_de.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_de.xtb
index 0ba2acb..a330a49 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_de.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_de.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Der Google-Anmeldebildschirm kann aufgrund eines Problems mit der Installation von Chrome auf diesem Gerät nicht geöffnet werden. Wenden Sie sich an Ihren Administrator.</translation>
 <translation id="4057329986137569701">Ein interner Fehler ist aufgetreten.</translation>
 <translation id="4267670563222825190">Für Ihr Konto wurde kein Domainnutzer gefunden. Bitte wenden Sie sich an Ihren Administrator.</translation>
-<translation id="4706454071748629324">Es konnte kein neuer Nutzer hinzugefügt werden. Auf diesem Computer kann nur ein Nutzer mit einem Arbeitskonto erstellt werden.</translation>
 <translation id="4744575902940448763">Das Passwort Ihres Arbeitskontos konnte nicht mit Ihrem Windows-Profil synchronisiert werden, da Passwortaktualisierungen auf Ihrem Gerät von Ihrer Organisation eingeschränkt werden. Wenden Sie sich an Ihren Administrator, um Hilfe zu erhalten.</translation>
 <translation id="5186761973554910131">Beim Versuch, das Passwort zu ändern, wurde ein ungültiger Computername angegeben. Bitte wenden Sie sich an Ihren Administrator.</translation>
 <translation id="5265714013989877288">Fortsetzen aufgrund eines Fehlers beim Ändern Ihres Windows-Passworts nicht möglich. Bitte wenden Sie sich an Ihren Administrator.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_el.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_el.xtb
index ca0b170..52c3d024 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_el.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_el.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Δεν είναι δυνατό το άνοιγμα της οθόνης σύνδεσης μέσω Google επειδή υπάρχει ένα πρόβλημα με την εγκατάσταση του Chrome σε αυτήν τη συσκευή. Επικοινωνήστε με τον διαχειριστή σας.</translation>
 <translation id="4057329986137569701">Προέκυψε εσωτερικό σφάλμα.</translation>
 <translation id="4267670563222825190">Δεν βρέθηκε χρήστης τομέα για τον λογαριασμό σας. Επικοινωνήστε με τον διαχειριστή.</translation>
-<translation id="4706454071748629324">Η προσθήκη του νέου χρήστη απέτυχε. Αυτός ο υπολογιστής επιτρέπει τη δημιουργία μόνο ενός χρήστη με τη χρήση λογαριασμού εργασίας.</translation>
 <translation id="4744575902940448763">Δεν είναι δυνατός ο συγχρονισμός του κωδικού πρόσβασης του λογαριασμού εργασίας σας με το προφίλ σας Windows, επειδή οι ενημερώσεις κωδικών πρόσβασης στη συσκευή σας περιορίζονται από τον οργανισμό σας. Επικοινωνήστε με τον διαχειριστή σας για βοήθεια.</translation>
 <translation id="5186761973554910131">Δόθηκε μη έγκυρο όνομα υπολογιστή κατά την προσπάθεια αλλαγής του κωδικού πρόσβασης. Επικοινωνήστε με τον διαχειριστή.</translation>
 <translation id="5265714013989877288">Δεν είναι δυνατή η συνέχεια επειδή παρουσιάστηκε σφάλμα κατά την αλλαγή του κωδικού πρόσβασης των Windows. Επικοινωνήστε με τον διαχειριστή.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_en-GB.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_en-GB.xtb
index 567838b..d588683 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_en-GB.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_en-GB.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Can’t open the Google sign-in screen because there’s an issue with the Chrome installation on this device. Contact your administrator.</translation>
 <translation id="4057329986137569701">An internal error occurred.</translation>
 <translation id="4267670563222825190">No domain user could be found for your account. Please contact your administrator.</translation>
-<translation id="4706454071748629324">Failed to add a new user. This computer only allows one user to be created using a work account.</translation>
 <translation id="4744575902940448763">Your work account password couldn't be synced to your Windows profile because password updates on your device are restricted by your organisation. Contact your administrator for help.</translation>
 <translation id="5186761973554910131">Invalid computer name provided during password change attempt. Please contact your administrator.</translation>
 <translation id="5265714013989877288">Can’t continue because there was an error while changing your Windows password. Please contact your administrator.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_es-419.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_es-419.xtb
index 24d9f29..ac25fe5 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_es-419.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_es-419.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">No se puede abrir la pantalla de Acceso con Google porque hay un problema con la instalación de Chrome en este dispositivo. Comunícate con el administrador.</translation>
 <translation id="4057329986137569701">Ocurrió un error interno.</translation>
 <translation id="4267670563222825190">No se encontró ningún usuario de dominio para tu cuenta. Ponte en contacto con el administrador.</translation>
-<translation id="4706454071748629324">No se pudo agregar un usuario nuevo. Esta computadora solo permite crear un usuario con una cuenta de trabajo.</translation>
 <translation id="4744575902940448763">No se pudo sincronizar la contraseña de la cuenta de trabajo con el perfil de Windows porque la organización restringió las actualizaciones de contraseña para el dispositivo. Comunícate con el administrador para obtener más ayuda.</translation>
 <translation id="5186761973554910131">En el intento para cambiar la contraseña, se proporcionó un nombre de computadora no válido. Comunícate con tu administrador.</translation>
 <translation id="5265714013989877288">No puedes continuar porque se produjo un error al cambiar la contraseña de Windows. Comunícate con el administrador.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_es.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_es.xtb
index 6416d2ca..16eae4a3 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_es.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_es.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">No se puede abrir la pantalla de inicio de sesión de Google porque hay un problema con la instalación de Chrome en este dispositivo. Ponte en contacto con tu administrador.</translation>
 <translation id="4057329986137569701">Se ha producido un error interno.</translation>
 <translation id="4267670563222825190">No se ha encontrado ningún usuario de dominio para tu cuenta. Ponte en contacto con tu administrador.</translation>
-<translation id="4706454071748629324">No se ha podido añadir un nuevo usuario. En este ordenador solo se pueden crear usuarios con una cuenta de trabajo.</translation>
 <translation id="4744575902940448763">No se ha podido sincronizar la contraseña de tu cuenta de trabajo con tu perfil de Windows porque tu organización ha restringido la actualización de contraseñas en tu dispositivo. Ponte en contacto con tu administrador para obtener ayuda.</translation>
 <translation id="5186761973554910131">Se ha proporcionado un nombre de ordenador no válido para el intento de cambio de contraseña. Ponte en contacto con tu administrador.</translation>
 <translation id="5265714013989877288">No se puede continuar porque se ha producido un error al cambiar tu contraseña de Windows. Ponte en contacto con tu administrador.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_et.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_et.xtb
index 4cfb73d..b545ce04 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_et.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_et.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Google'i sisselogimiskuva ei saa avada, kuna Chrome'i installimisega on selles seadmes probleeme. Võtke ühendust administraatoriga.</translation>
 <translation id="4057329986137569701">Ilmnes sisemine viga.</translation>
 <translation id="4267670563222825190">Teie konto puhul ühtegi domeenikasutajat ei leitud. Võtke ühendust administraatoriga.</translation>
-<translation id="4706454071748629324">Uue kasutaja lisamine nurjus. Arvuti lubab töökontoga luua ainult ühe kasutada.</translation>
 <translation id="4744575902940448763">Teie töökonto parooli ei saanud teie Windowsi profiiliga sünkroonida, kuna teie organisatsioon on selles seadmes paroolivärskendused piiranud. Abi saamiseks võtke ühendust administraatoriga.</translation>
 <translation id="5186761973554910131">Parooli muutmise katsel esitati arvuti vale nimi. Võtke ühendust administraatoriga.</translation>
 <translation id="5265714013989877288">Ei saa jätkata, kuna Windowsi parooli muutmisel ilmnes viga. Võtke ühendust administraatoriga.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_eu.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_eu.xtb
index 00f07cdb..db036b9 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_eu.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_eu.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Ezin da ireki Google-n saioa hasteko pantaila arazo bat dagoelako gailu honetako Chrome-ren instalazioarekin. Jarri administratzailearekin harremanetan.</translation>
 <translation id="4057329986137569701">Barneko errore bat gertatu da.</translation>
 <translation id="4267670563222825190">Ez da aurkitu domeinuko erabiltzailerik kontuan. Jarri administratzailearekin harremanetan.</translation>
-<translation id="4706454071748629324">Ezin izan da gehitu beste erabiltzaile bat. Ordenagailu honetan erabiltzaile bakarra sor daiteke laneko kontu batekin.</translation>
 <translation id="4744575902940448763">Laneko kontuaren pasahitza ezin izan da sinkronizatu Windows-eko profilarekin, zure erakundeak mugatu egiten baitu gailuko pasahitzak eguneratzeko aukera. Laguntza lortzeko, jarri administratzailearekin harremanetan.</translation>
 <translation id="5186761973554910131">Pasahitza aldatzen saiatzean emandako ordenagailu-izenak ez du balio. Jarri administratzailearekin harremanetan.</translation>
 <translation id="5265714013989877288">Ezin duzu egin aurrera, errore bat gertatu delako Windows-eko pasahitza aldatzean. Jarri administratzailearekin harremanetan.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_fa.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_fa.xtb
index a6aeb65..b2b6bf5 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_fa.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_fa.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">‏باز کردن صفحه ورود به سیستم Google ممکن نیست زیرا مشکلی درارتباط با نصب Chrome در این دستگاه وجود دارد. با سرپرست تماس بگیرید.</translation>
 <translation id="4057329986137569701">خطای داخلی روی داد.</translation>
 <translation id="4267670563222825190">کاربر دامنه‌ای برای حسابتان پیدا نشد. لطفاً با سرپرست خود تماس بگیرید.</translation>
-<translation id="4706454071748629324">کاربر جدید اضافه نشد. این رایانه فقط اجازه می‌دهد یک کاربر با استفاده از حساب کاری ایجاد شود.</translation>
 <translation id="4744575902940448763">‏همگام‌سازی گذرواژه حساب کاری با نمایه Windows شما ممکن نیست زیرا سازمانتان به‌روزرسانی‌های گذرواژه را در دستگاهتان محدود کرده است. برای دریافت راهنمایی، با سرپرست تماس بگیرید.</translation>
 <translation id="5186761973554910131">هنگام تلاش برای تغییر گذرواژه، نام رایانه ارائه‌شده معتبر نبود. لطفاً با سرپرست خود تماس بگیرید.</translation>
 <translation id="5265714013989877288">‏نمی‌توان ادامه داد زیرا هنگام تغییر گذرواژه Windows خطایی روی داد. لطفاً با سرپرست تماس بگیرید.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_fi.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_fi.xtb
index 76256e9..cf83ada 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_fi.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_fi.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Google-sisäänkirjautumisnäyttöä ei voi avata, koska tämän laitteen Chrome-asennuksessa on ongelma. Ota yhteyttä järjestelmänvalvojaan.</translation>
 <translation id="4057329986137569701">Tapahtui sisäinen virhe.</translation>
 <translation id="4267670563222825190">Verkkotunnuksen käyttäjää ei löytynyt tililtäsi. Ota yhteyttä järjestelmänvalvojaasi.</translation>
-<translation id="4706454071748629324">Uuden käyttäjän lisääminen epäonnistui. Tämä tietokone sallii vain yhden käyttäjän luomisen työtilillä.</translation>
 <translation id="4744575902940448763">Työtilisi salasanaa ei voitu synkronoida Windows-profiiliisi, koska organisaatiosi rajoittaa laitteellasi tehtäviä salasanapäivityksiä. Pyydä apua järjestelmänvalvojaltasi.</translation>
 <translation id="5186761973554910131">Salasanan vaihtoyrityksen yhteydessä annettiin väärä tietokoneen nimi. Ota yhteyttä järjestelmänvalvojaasi.</translation>
 <translation id="5265714013989877288">Ei voi jatkaa, koska Windows-salasanaasi vaihdettaessa tapahtui virhe. Ota yhteyttä järjestelmänvalvojaasi.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_fil.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_fil.xtb
index 2cf0180a..805b77d 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_fil.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_fil.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Hindi mabuksan ang screen sa pag-sign in ng Google dahil may isang sa pag-istall ng Chrome sa device na ito. Makipag-uganayan sa iyong administrator.</translation>
 <translation id="4057329986137569701">Nagkaroon ng internal na error.</translation>
 <translation id="4267670563222825190">Walang makitang user ng Domain para sa iyong account. Makipag-ugnayan sa iyong administrator.</translation>
-<translation id="4706454071748629324">Hindi nakapagdagdag ng bagong user. Isang user lang ang pinapahintulutang magawa ng computer na ito gamit ang isang account sa trabaho.</translation>
 <translation id="4744575902940448763">Hindi ma-sync ang password ng iyong account sa trabaho sa profile mo sa Windows dahil pinaghihigpitan ng iyong organisasyon ang mga update sa password. Makipag-ugnayan sa iyong administrator para sa tulong.</translation>
 <translation id="5186761973554910131">Nagbigay ng invalid na pangalan ng computer habang sinusubukang palitan ang password. Makipag-ugnayan sa iyong administrator.</translation>
 <translation id="5265714013989877288">Hindi makapagpatuloy dahil nagka-error habang binabago ang iyong password sa Windows. Makipag-ugnayan sa iyong administrator.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_fr-CA.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_fr-CA.xtb
index eacd149d..2a50938 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_fr-CA.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_fr-CA.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Impossible d'ouvrir l'écran de connexion Google en raison d'un problème lié à l'installation de Chrome sur cet appareil. Communiquez avec votre administrateur.</translation>
 <translation id="4057329986137569701">Une erreur interne s'est produite.</translation>
 <translation id="4267670563222825190">Aucun utilisateur de domaine n'a été trouvé pour votre compte. Veuillez communiquer avec votre administrateur.</translation>
-<translation id="4706454071748629324">Impossible d'ajouter un utilisateur. Cet ordinateur n'autorise qu'un utilisateur créé à partir d'un compte professionnel.</translation>
 <translation id="4744575902940448763">Le mot de passe de votre compte professionnel n'a pas pu être synchronisé avec votre profil Windows parce que votre organisation restreint la mise à jour des mots de passe. Pour obtenir de l'aide, communiquez avec votre administrateur.</translation>
 <translation id="5186761973554910131">Un nom d'ordinateur incorrect a été fourni lors du changement de mot de passe. Veuillez communiquer avec votre administrateur.</translation>
 <translation id="5265714013989877288">Impossible de continuer parce qu'une erreur s'est produite durant la modification de votre mot de passe Windows. Veuillez communiquer avec votre administrateur.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_fr.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_fr.xtb
index cb6ef3e..6dae026 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_fr.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_fr.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Impossible d'ouvrir l'écran de connexion Google, en raison d'un problème lié à l'installation de Chrome sur cet appareil. Contactez votre administrateur.</translation>
 <translation id="4057329986137569701">Une erreur interne s'est produite.</translation>
 <translation id="4267670563222825190">Impossible de trouver un utilisateur du domaine pour votre compte. Veuillez contacter votre administrateur.</translation>
-<translation id="4706454071748629324">Échec de l'ajout d'un nouvel utilisateur. Cet ordinateur n'autorise que la création d'un utilisateur avec un compte professionnel.</translation>
 <translation id="4744575902940448763">Impossible de synchroniser le mot de passe de votre compte professionnel avec votre profil Windows, car la mise à jour des mots de passe sur votre appareil est limitée par votre organisation. Contactez votre administrateur pour obtenir de l'aide.</translation>
 <translation id="5186761973554910131">Nom d'ordinateur non valide fourni lors de la tentative de changement de mot de passe. Veuillez contacter votre administrateur.</translation>
 <translation id="5265714013989877288">Impossible de poursuivre, car une erreur est survenue lors de la modification de votre mot de passe Windows. Veuillez contacter votre administrateur.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_gl.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_gl.xtb
index 282462f..52599ea 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_gl.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_gl.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Non se puido abrir a pantalla de inicio de sesión en Google porque se produciu un problema coa instalación de Chrome neste dispositivo. Ponte en contacto co teu administrador.</translation>
 <translation id="4057329986137569701">Produciuse un erro interno.</translation>
 <translation id="4267670563222825190">Non se puido atopar ningún usuario do dominio para a túa conta. Ponte en contacto co teu administrador.</translation>
-<translation id="4706454071748629324">Non se puido engadir un usuario novo. Este ordenador só permite crear un usuario mediante unha conta do traballo.</translation>
 <translation id="4744575902940448763">O contrasinal da túa conta do traballo non se puido sincronizar con Windows porque a túa organización restrinxiu os cambios de contrasinal do teu dispositivo. Para obter axuda, ponte en contacto co teu administrador.</translation>
 <translation id="5186761973554910131">Escribiuse un nome de ordenador non válido durante o intento de cambio do contrasinal. Ponte en contacto co teu administrador.</translation>
 <translation id="5265714013989877288">Non se puido continuar porque se produciu un erro ao modificar o teu contrasinal de Windows. Ponte en contacto co teu administrador.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_gu.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_gu.xtb
index a016f1a..f10c997 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_gu.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_gu.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">આ ડિવાઇસ પર Chrome ઇન્સ્ટૉલેશનમાં સમસ્યાને લીધે Google સાઇન ઇન સ્ક્રીન ખોલી શકાતી નથી. તમારા વ્યવસ્થાપકનો સંપર્ક કરો.</translation>
 <translation id="4057329986137569701">કોઈ આંતરિક ભૂલ આવી.</translation>
 <translation id="4267670563222825190">તમારા એકાઉન્ટ માટે કોઈ ડોમેન. વપરાશકર્તા શોધી શક્યાં નથી. કૃપા કરીને તમારા વ્યવસ્થાપકનો સંપર્ક કરો.</translation>
-<translation id="4706454071748629324">નવા વપરાશકર્તા ઉમેરવામાં નિષ્ફળ થયાં. આ કમ્પ્યુટર ઑફિસના એકાઉન્ટનો ઉપયોગ કરીને માત્ર એક વપરાશકર્તા બનાવવાની મંજૂરી આપે છે.</translation>
 <translation id="4744575902940448763">તમારી સંસ્થાએ તમારા ડિવાઇસ પર પાસવર્ડ અપડેટની સુવિધા પ્રતિબંધિત કરેલી હોવાને કારણે તમારા ઑફિસનાં એકાઉન્ટના પાસવર્ડને તમારી Windows પ્રોફાઇલ સાથે સિંક કરી શકાયો નથી. સહાય માટે તમારા વ્યવસ્થાપકનો સંપર્ક કરો.</translation>
 <translation id="5186761973554910131">પાસવર્ડ બદલવાનો પ્રયાસ કરતી વખતે અમાન્ય કમ્પ્યુટર નામ આપવામાં આવ્યું હતું. કૃપા કરીને તમારા વ્યવસ્થાપકનો સંપર્ક કરો.</translation>
 <translation id="5265714013989877288">તમારો Windows પાસવર્ડ બદલતી વખતે ભૂલ આવી હોવાને કારણે ચાલુ રાખી શકતા નથી. કૃપા કરીને તમારા વ્યવસ્થાપકનો સંપર્ક કરો.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_hi.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_hi.xtb
index 55d6bf0..d635ccd 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_hi.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_hi.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Google साइन-इन स्क्रीन को खोला नहीं जा सकता, क्योंकि इस डिवाइस पर Chrome इंस्टॉल करने में कोई समस्या हो रही है. अपने एडमिन से संपर्क करें.</translation>
 <translation id="4057329986137569701">कोई आंतरिक गड़बड़ी हुई.</translation>
 <translation id="4267670563222825190">आपके खाते के लिए कोई डोमेन उपयोगकर्ता नहीं मिला. कृपया अपने एडमिन से संपर्क करें.</translation>
-<translation id="4706454071748629324">नया उपयोगकर्ता नहीं जोड़ा जा सका. यह कंप्यूटर सिर्फ़ एक उपयोगकर्ता को काम से जुड़े खाता बनाने की अनुमति देता है.</translation>
 <translation id="4744575902940448763">आपके काम से जुड़े खाते के पासवर्ड को आपकी Windows प्रोफ़ाइल से सिंक नहीं किया जा सका, क्योंकि आपके संगठन ने डिवाइस के पासवर्ड बदलने की सुविधा पर पाबंदी लगाई है. मदद के लिए अपने एडमिन से संपर्क करें.</translation>
 <translation id="5186761973554910131">पासवर्ड बदलते समय कंप्यूटर का नाम गलत बताया गया. कृपया अपने एडमिन से संपर्क करें.</translation>
 <translation id="5265714013989877288">जारी नहीं रख सकते, क्योंकि आपके Windows पासवर्ड को बदलते समय कोई गड़बड़ी हुई. कृपया अपने एडमिन से संपर्क करें.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_hr.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_hr.xtb
index d19b5c5..bc1c5fd 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_hr.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_hr.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Ne možete otvoriti zaslon za prijavu Google računom zbog poteškoće s instalacijom Chromea na ovom uređaju. Obratite se administratoru.</translation>
 <translation id="4057329986137569701">Došlo je do interne pogreške.</translation>
 <translation id="4267670563222825190">Za vaš račun nije pronađen nijedan korisnik domene. Obratite se administratoru.</translation>
-<translation id="4706454071748629324">Dodavanje novog korisnika nije uspjelo. Ovo računalo dopušta izradu samo jednog korisnika s radnim računom.</translation>
 <translation id="4744575902940448763">Zaporka vašeg poslovnog računa nije se mogla sinkronizirati s vašim Windows profilom jer vaša organizacija ograničava ažuriranja zaporki na vašem uređaju. Obratite se administratoru ako vam je potrebna pomoć.</translation>
 <translation id="5186761973554910131">Pri pokušaju promjene zaporke naveden je nevažeći naziv računala. Obratite se administratoru.</translation>
 <translation id="5265714013989877288">Ne možete nastaviti jer je došlo do pogreške prilikom promjene vaše zaporke za Windows. Obratite se administratoru.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_hu.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_hu.xtb
index 774476f..dfb7aa7 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_hu.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_hu.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Nem lehet megnyitni a Google bejelentkezési képernyőjét, mert hibás az eszközre telepített Chrome. Forduljon a rendszergazdához.</translation>
 <translation id="4057329986137569701">Belső hiba történt.</translation>
 <translation id="4267670563222825190">Nem található domainfelhasználó a fiókjához. Forduljon az adminisztrátorhoz.</translation>
-<translation id="4706454071748629324">Nem sikerült az új felhasználó hozzáadása. Ez a számítógép csak egy felhasználó létrehozását engedélyezi munkahelyi fiók használatával.</translation>
 <translation id="4744575902940448763">Nem tudtuk szinkronizálni munkahelyi fiókjának jelszavát Windows-profiljával, mert szervezete korlátozza a jelszófrissítés lehetőségét ezen az eszközön. Segítségért forduljon a rendszergazdához.</translation>
 <translation id="5186761973554910131">A jelszómódosítási kísérlet során megadott számítógépnév érvénytelen. Forduljon az adminisztrátorhoz.</translation>
 <translation id="5265714013989877288">A művelet nem folytatható, mert hiba történt a Windows-jelszó módosítása során. Forduljon a rendszergazdájához.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_hy.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_hy.xtb
index e54c28c..5eb4ea5a 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_hy.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_hy.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Այս սարքում Chrome-ի տեղադրման հետ կապված խնդրի պատճառով չհաջողվեց բացել Google-ի մուտքի էկրանը։ Դիմեք ձեր ադմինիստրատորին։</translation>
 <translation id="4057329986137569701">Ներքին սխալ առաջացավ:</translation>
 <translation id="4267670563222825190">Ձեր հաշվի համար չհաջողվեց տիրույթի օգտատերեր գտնել: Կապվեք ձեր ադմինիստրատորի հետ:</translation>
-<translation id="4706454071748629324">Չհաջողվեց ավելացնել նոր օգտատեր։ Այս համակարգչում թույլատրվում է ավելացնել օգտատեր միայն աշխատանքային հաշվով։</translation>
 <translation id="4744575902940448763">Ձեր աշխատանքային հաշվի գաղտնաբառը չհաջողվեց համաժամացնել Windows պրոֆիլի հետ, քանի որ ձեր կազմակերպությունն արգելել է գաղտնաբառերի փոփոխումը ձեր սարքում։ Օգնության համար դիմեք ձեր ադմինիստրատորին։</translation>
 <translation id="5186761973554910131">Գաղտնաբառը փոխելու փորձի ժամանակ համակարգի անվավեր անվանում է նշվել։ Կապվեք ձեր ադմինիստրատորի հետ։</translation>
 <translation id="5265714013989877288">Հնարավոր չէ շարունակել, քանի որ չի հաջողվել փոխել Windows-ի ձեր գաղտնաբառը։ Դիմեք ձեր ադմինիստրատորին։</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_id.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_id.xtb
index fa587d5..53be1a6 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_id.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_id.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Tidak dapat membuka layar Login dengan Google karena ada masalah pada penginstalan Chrome di perangkat ini. Hubungi administrator Anda.</translation>
 <translation id="4057329986137569701">Terjadi error internal.</translation>
 <translation id="4267670563222825190">Tidak ada pengguna Domain yang dapat ditemukan untuk akun Anda. Harap hubungi administrator Anda.</translation>
-<translation id="4706454071748629324">Gagal menambahkan pengguna baru. Komputer ini hanya mengizinkan pembuatan satu pengguna yang menggunakan akun kerja.</translation>
 <translation id="4744575902940448763">Sandi akun kerja Anda tidak dapat disinkronkan ke profil Windows karena pembaruan sandi di perangkat Anda dibatasi oleh organisasi Anda. Hubungi administrator untuk meminta bantuan.</translation>
 <translation id="5186761973554910131">Nama komputer yang diberikan saat percobaan perubahan sandi tidak valid. Harap hubungi administrator Anda.</translation>
 <translation id="5265714013989877288">Tidak dapat melanjutkan karena terjadi error saat mengubah sandi Windows. Harap hubungi administrator Anda.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_is.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_is.xtb
index c912740..114b030 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_is.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_is.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Ekki tókst að opna innskráningarskjá Google vegna vandamáls í uppsetningu Chrome á þessu tæki. Hafðu samband við kerfisstjórann þinn.</translation>
 <translation id="4057329986137569701">Innri villa kom upp.</translation>
 <translation id="4267670563222825190">Enginn lénsnotandi fannst fyrir reikninginn þinn. Hafðu samband við kerfisstjórann þinn.</translation>
-<translation id="4706454071748629324">Ekki tókst að bæta nýjum notanda við. Þessi tölva leyfir aðeins stofnun eins notanda með vinnureikningi.</translation>
 <translation id="4744575902940448763">Ekki var hægt að samstilla aðgangsorð vinnureikningsins og Windows-prófílsins þíns vegna þess að fyrirtækið þitt takmarkar uppfærslur aðgangsorða í tækinu þínu. Hafðu samband við kerfisstjórann til að fá aðstoð.</translation>
 <translation id="5186761973554910131">Ógilt tölvuheiti var gefið upp þegar reynt var að breyta aðgangsorði. Hafðu samband við kerfisstjórann þinn.</translation>
 <translation id="5265714013989877288">Ekki er hægt að halda áfram þar sem villa kom upp við að breyta Windows-aðgangsorðinu þínu. Hafðu samband við kerfisstjórann.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_it.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_it.xtb
index 511b2c1..8b061f34 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_it.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_it.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Impossibile caricare la schermata di accesso a Google a causa di un problema con l'installazione di Chrome su questo dispositivo. Contatta l'amministratore.</translation>
 <translation id="4057329986137569701">Errore interno.</translation>
 <translation id="4267670563222825190">Nessun Dominio utente trovato per il tuo account. Contatta l'amministratore.</translation>
-<translation id="4706454071748629324">Aggiunta di un nuovo utente non riuscita. Su questo computer è possibile creare un solo utente con un account di lavoro.</translation>
 <translation id="4744575902940448763">Non è stato possibile sincronizzare la password del tuo account di lavoro con il tuo profilo Windows perché gli aggiornamenti della password sul tuo dispositivo sono limitati dalla tua organizzazione. Contatta l'amministratore per ricevere assistenza.</translation>
 <translation id="5186761973554910131">È stato fornito un nome del computer non valido durante il tentativo di modifica della password. Contatta l'amministratore.</translation>
 <translation id="5265714013989877288">Impossibile continuare perché si è verificato un errore durante la modifica della password di Windows. Contatta l'amministratore.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_iw.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_iw.xtb
index 4f6ddd7..85cca0d3 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_iw.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_iw.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">‏לא ניתן לפתוח את מסך הכניסה של Google, מאחר שיש בעיה בקשר להתקנה של Chrome במכשיר הזה. יש לפנות אל מנהל המערכת.</translation>
 <translation id="4057329986137569701">אירעה שגיאה פנימית.</translation>
 <translation id="4267670563222825190">לא ניתן היה למצוא בדומיין אף משתמש עם החשבון הזה. עליך לפנות למנהל המערכת.</translation>
-<translation id="4706454071748629324">הוספת המשתמש החדש נכשלה. המחשב הזה מאפשר ליצור רק משתמש אחד באמצעות חשבון לצורכי עבודה.</translation>
 <translation id="4744575902940448763">‏לא ניתן לסנכרן את סיסמת החשבון שלך לצורכי עבודה עם הפרופיל שלך ב-Windows, מאחר שעדכון הסיסמאות במכשיר הוגבל על ידי הארגון. יש לפנות אל מנהל המערכת כדי לקבל עזרה.</translation>
 <translation id="5186761973554910131">בזמן הניסיון לשנות סיסמה צוין שם מחשב לא חוקי. עליך לפנות למנהל המערכת.</translation>
 <translation id="5265714013989877288">‏לא ניתן להמשיך, מאחר שאירעה שגיאה במהלך החלפת הסיסמה שלך ל-Windows. יש לפנות למנהל המערכת.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ja.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ja.xtb
index 7985be8c..ebde7ae0 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ja.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ja.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Google ログイン画面を開けません。このデバイスの Chrome のインストールに問題があります。管理者にお問い合わせください。</translation>
 <translation id="4057329986137569701">内部エラーが発生しました。</translation>
 <translation id="4267670563222825190">ドメイン ユーザーがお使いのアカウントで見つかりませんでした。管理者にお問い合わせください。</translation>
-<translation id="4706454071748629324">新しいユーザーを追加できませんでした。このパソコンで仕事用アカウントを使用して作成できるユーザーは 1 人のみです。</translation>
 <translation id="4744575902940448763">仕事用アカウントのパスワードを Windows プロファイルに同期することはできません。お使いのデバイスでは組織によってパスワードの更新が制限されています。詳しくは管理者にお問い合わせください。</translation>
 <translation id="5186761973554910131">パスワードの変更中に無効なコンピュータ名が指定されました。管理者にお問い合わせください。</translation>
 <translation id="5265714013989877288">Windows のパスワードの変更中にエラーが発生したため続行できません。管理者にお問い合わせください。</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ka.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ka.xtb
index 1eadac6d..e10399cb 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ka.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ka.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Google-ის სისტემაში შესვლის ეკრანის გახსნა ვერ მოხერხდა ამ მოწყობილობაზე Chrome-ის ინსტალაციასთან დაკავშირებული პრობლემის გამო. დაუკავშირდით თქვენს ადმინისტრატორს.</translation>
 <translation id="4057329986137569701">წარმოიქმნა შიდა შეცდომა.</translation>
 <translation id="4267670563222825190">თქვენი ანგარიშისთვის დომენის მომხმარებელი ვერ მოიძებნა. გთხოვთ, დაუკავშირდეთ თქვენს ადმინისტრატორს.</translation>
-<translation id="4706454071748629324">ახალი მომხმარებლის დამატება ვერ მოხერხდა. ამ კომპიუტერზე დაშვებულია მხოლოდ ერთი მომხმარებლის შექმნა სამსახურის ანგარიშის მეშვეობით.</translation>
 <translation id="4744575902940448763">თქვენი სამსახურის ანგარიშის პაროლის Windows-ის პროფილთან სინქრონიზაცია ვერ მოხერხდა, ვინაიდან თქვენს მოწყობილობაზე პაროლების განახლებები იზღუდება თქვენი ორგანიზაციის მიერ. დახმარებისთვის დაუკავშირდით თქვენს ადმინისტრატორს.</translation>
 <translation id="5186761973554910131">პაროლის შეცვლის მცდელობისას მოწოდებული იყო კომპიუტერის არასწორი სახელი. გთხოვთ, დაუკავშირდეთ თქვენს ადმინისტრატორს.</translation>
 <translation id="5265714013989877288">გაგრძელება ვერ მოხერხდება Windows-ის პაროლის შეცვლისას წარმოქმნილი პრობლემის გამო. გთხოვთ, დაუკავშირდეთ თქვენს ადმინისტრატორს.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_kk.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_kk.xtb
index b106ad4..cb41bd4 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_kk.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_kk.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Google-дың кіру экранын ашу мүмкін емес, себебі бұл құрылғыға Chrome браузерін орнату кезінде мәселе шықты. Әкімшіңізге хабарласыңыз.</translation>
 <translation id="4057329986137569701">Ішкі қате орын алды.</translation>
 <translation id="4267670563222825190">Есептік жазбаңызбен ешбір домен пайдаланушысы байланыстырылмаған. Әкімшіге хабарласыңыз.</translation>
-<translation id="4706454071748629324">Жаңа пайдаланушы енгізілмеді. Бұл компьютер жұмыс есептік жазбасы арқылы тек бір пайдаланушы профилін жасауға рұқсат береді.</translation>
 <translation id="4744575902940448763">Жұмыс есептік жазбаңыздың құпия сөзін Windows профиліңізбен синхрондау мүмкін болмады, себебі ұйымыңыз құрылғыңыздағы құпия сөзді жаңарту функцияларын өшіріп қойған. Әкімшіңізден көмек сұраңыз.</translation>
 <translation id="5186761973554910131">Құпия сөзді ауыстыру барысында компьютердің атауы қате жазылды. Әкімшіге хабарласыңыз.</translation>
 <translation id="5265714013989877288">Windows құпия сөзін өзгерту кезінде қате шыққандықтан, операцияны жалғастыру мүмкін емес. Әкімшіге хабарласыңыз.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_km.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_km.xtb
index 3a3b720..a9ca3b37 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_km.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_km.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">មិន​អាចបើកអេក្រង់ចូល Google បានទេ ដោយសារមានបញ្ហាក្នុងការដំឡើង Chrome នៅលើឧបករណ៍នេះ។ សូមទាក់ទង​អ្នកគ្រប់គ្រង​របស់អ្នក។</translation>
 <translation id="4057329986137569701">មាន​បញ្ហា​ផ្នែកខាងក្នុង។</translation>
 <translation id="4267670563222825190">រកមិនឃើញ​អ្នកប្រើប្រាស់​ដែនសម្រាប់​គណនីរបស់អ្នកទេ។ សូមទាក់ទង​អ្នកគ្រប់គ្រង​របស់អ្នក។</translation>
-<translation id="4706454071748629324">មិនអាច​បញ្ចូលអ្នក​ប្រើប្រាស់ថ្មីបានទេ។ កុំព្យូទ័រនេះ​អនុញ្ញាតឱ្យបង្កើត​អ្នកប្រើប្រាស់ដោយប្រើ​គណនីការងារ​តែម្នាក់ប៉ុណ្ណោះ។</translation>
 <translation id="4744575902940448763">មិនអាចធ្វើសមកាលកម្មពាក្យសម្ងាត់គណនីការងារទៅកម្រងព័ត៌មាន Windows របស់អ្នកបានទេ ដោយសារស្ថាប័នរបស់អ្នកបានដាក់កំហិតលើការធ្វើបច្ចុប្បន្នភាពពាក្យសម្ងាត់នៅលើឧបករណ៍របស់អ្នក។ សូមទាក់ទង​អ្នកគ្រប់គ្រង​របស់អ្នក ដើម្បីទទួលបានជំនួយ។</translation>
 <translation id="5186761973554910131">បានផ្ដល់ឈ្មោះ​កុំព្យូទ័រមិនត្រឹមត្រូវ អំឡុងពេលព្យាយាមប្ដូរ​ពាក្យសម្ងាត់។ សូមទាក់ទង​អ្នកគ្រប់គ្រង​របស់អ្នក។</translation>
 <translation id="5265714013989877288">មិន​អាចបន្តបានទេ ដោយសារ​មានបញ្ហា ពេលកំពុងប្ដូរពាក្យសម្ងាត់ Windows របស់អ្នក។ សូមទាក់ទង​អ្នកគ្រប់គ្រង​របស់អ្នក។</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_kn.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_kn.xtb
index 536d0b3..56be69a 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_kn.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_kn.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">ಈ ಸಾಧನದಲ್ಲಿ, Chrome ಇನ್‌ಸ್ಟಾಲೇಶನ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ಸಮಸ್ಯೆ ಇರುವ ಕಾರಣ, Google ಸೈನ್ ಇನ್ ಪರದೆಯನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="4057329986137569701">ಆಂತರಿಕ ದೋಷ ಸಂಭವಿಸಿದೆ.</translation>
 <translation id="4267670563222825190">ನಿಮ್ಮ ಖಾತೆಗೆ ಸಂಬಂಧಿಸಿದ ಯಾವುದೇ ಡೊಮೇನ್ ಬಳಕೆದಾರರು ಕಂಡುಬಂದಿಲ್ಲ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
-<translation id="4706454071748629324">ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಲು ವಿಫಲವಾಗಿದೆ. ಕೆಲಸದ ಖಾತೆಯನ್ನು ಬಳಸಿ, ಒರ್ವ ಬಳಕೆದಾರರನ್ನು ಮಾತ್ರ ರಚಿಸಲು ಈ ಕಂಪ್ಯೂಟರ್ ಅನುಮತಿ ನೀಡುತ್ತದೆ.</translation>
 <translation id="4744575902940448763">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಪಾಸ್‌ವರ್ಡ್ ಅಪ್‌ಡೇಟ್ ಮಾಡದ ಹಾಗೆ ನಿಮ್ಮ ಸಂಸ್ಥೆಯು ನಿರ್ಬಂಧಿಸಿರುವ ಕಾರಣ, ನಿಮ್ಮ ಕೆಲಸದ ಖಾತೆಯ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಿಮ್ಮ Windows ಪ್ರೊಫೈಲ್‌ನೊಂದಿಗೆ ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಸಹಾಯ ಬೇಕಿದ್ದರೆ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="5186761973554910131">ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವಾಗ ಅಮಾನ್ಯವಾದ ಕಂಪ್ಯೂಟರ್ ಹೆಸರನ್ನು ನೀಡಲಾಗಿದೆ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="5265714013989877288">ನಿಮ್ಮ Windows ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸುವಾಗ ದೋಷ ಉಂಟಾದ ಕಾರಣ, ಮುಂದುವರಿಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ko.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ko.xtb
index 62f74dd..3c67f71 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ko.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ko.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">이 기기의 Chrome 설치에 문제가 있어 Google 로그인 화면을 열 수 없습니다. 관리자에게 문의하세요.</translation>
 <translation id="4057329986137569701">내부 오류가 발생했습니다.</translation>
 <translation id="4267670563222825190">계정에 도메인 사용자가 없습니다. 관리자에게 문의하시기 바랍니다.</translation>
-<translation id="4706454071748629324">신규 사용자를 추가하지 못했습니다. 이 컴퓨터에서는 직장 계정마다 사용자 1명만 만들 수 있습니다.</translation>
 <translation id="4744575902940448763">조직에서 기기에서의 비밀번호 업데이트를 제한하기 때문에 직장 계정 비밀번호를 Windows 프로필과 동기화할 수 없습니다. 관리자에게 도움을 요청하세요.</translation>
 <translation id="5186761973554910131">비밀번호 변경 시도 중 잘못된 컴퓨터 이름을 입력했습니다. 관리자에게 문의하세요.</translation>
 <translation id="5265714013989877288">Windows 비밀번호를 변경하는 동안 오류가 발생하여 계속할 수 없습니다. 관리자에게 문의하세요.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ky.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ky.xtb
index a0f2540..1080eb75 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ky.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ky.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Google'га кирүү экраны ачылбай жатат, анткени бул түзмөккө Chrome'ду орнотууда маселе келип чыкты. Администраторуңуз менен байланышыңыз.</translation>
 <translation id="4057329986137569701">Ички ката кетти.</translation>
 <translation id="4267670563222825190">Аккаунтуңуз үчүн домендин колдонуучусу табылган жок. Администраторуңузга кайрылыңыз.</translation>
-<translation id="4706454071748629324">Жаңы колдонуучу кошулган жок. Бул компьютерде бир жумуш аккаунтун гана түзүүгө болот.</translation>
 <translation id="4744575902940448763">Жумуш аккаунтуңуздун сырсөзү Windows профилиңиз менен шайкештирилген жок, анткени түзмөгүңүздөгү сырсөздөрдү жаңыртуу функциясын уюмуңуз чектеп койгон. Жардам алуу үчүн администраторуңузга кайрылыңыз.</translation>
 <translation id="5186761973554910131">Сырсөздү өзгөртүүгө аракет жасалганда компьютердин аталышы туура эмес көрсөтүлдү. Администраторуңузга кайрылыңыз.</translation>
 <translation id="5265714013989877288">Windows сырсөзүңүздү өзгөртүүдө ката кеткендиктен улам улантуу мүмкүн эмес. Администраторуңузга кайрылыңыз.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_lo.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_lo.xtb
index 9ba77055..d513a22d 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_lo.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_lo.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">ບໍ່ສາມາດເປີດໜ້າຈໍການເຂົ້າສູ່ລະບົບ Google ໄດ້ ເພາະວ່າມີບັນຫາກັບການຕິດຕັ້ງ Chrome ໃນອຸປະກອນນີ້. ຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ.</translation>
 <translation id="4057329986137569701">ເກີດຂໍ້ຜິດພາດພາຍໃນຂຶ້ນ.</translation>
 <translation id="4267670563222825190">ບໍ່ສາມາດຊອກເຫັນຜູ້ໃຊ້ໃນໂດເມນໃດສຳລັບບັນຊີຂອງທ່ານ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ.</translation>
-<translation id="4706454071748629324">ເພີ່ມຜູ້ໃຊ້ໃໝ່ບໍ່ສຳເລັດ. ຄອມພິວເຕີນີ້ອະນຸຍາດໃຫ້ສ້າງໄດ້ແຕ່ຜູ້ໃຊ້ດຽວເທົ່ານັ້ນໂດຍໃຊ້ບັນຊີບ່ອນເຮັດວຽກ.</translation>
 <translation id="4744575902940448763">ບໍ່ສາມາດຊິ້ງຂໍ້ມູນລະຫັດຜ່ານບັນຊີບ່ອນເຮັດວຽກຂອງທ່ານກັບໂປຣໄຟລ໌ Windows ຂອງທ່ານໄດ້ ເພາະວ່າອົງການຂອງທ່ານຈຳກັດການອັບເດດລະຫັດຜ່ານໃນອຸປະກອນຂອງທ່ານໄວ້. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານເພື່ອຂໍຄວາມຊ່ວຍເຫຼືອ.</translation>
 <translation id="5186761973554910131">ລະບຸຊື່ຄອມພິວເຕີບໍ່ຖືກຕ້ອງໃນຂະນະພະຍາຍາມປ່ຽນລະຫັດຜ່ານ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ.</translation>
 <translation id="5265714013989877288">ບໍ່ສາມາດສືບຕໍ່ໄດ້ ເພາະວ່າເກີດຂໍ້ຜິດພາດໃນຂະນະປ່ຽນລະຫັດຜ່ານ Windows ຂອງທ່ານ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_lt.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_lt.xtb
index e72600a0..e5f4957 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_lt.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_lt.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Nepavyksta atidaryti „Google“ prisijungimo ekrano, nes iškilo „Chrome“ diegimo problema šiame įrenginyje. Susisiekite su administratoriumi.</translation>
 <translation id="4057329986137569701">Įvyko vidinė klaida.</translation>
 <translation id="4267670563222825190">Nerasta nė vieno jūsų paskyros domeno naudotojo. Susisiekite su administratoriumi.</translation>
-<translation id="4706454071748629324">Nepavyko pridėti naujo naudotojo. Šiuo kompiuteriu galima sukurti tik vieną naudotoją naudojant darbo paskyrą.</translation>
 <translation id="4744575902940448763">Nepavyko sinchronizuoti jūsų darbo paskyros slaptažodžio su „Windows“ profiliu, nes organizacija riboja slaptažodžių atnaujinimą jūsų įrenginyje. Susisiekite su administratoriumi, kad gautumėte pagalbos.</translation>
 <translation id="5186761973554910131">Bandant pakeisti slaptažodį pateiktas netinkamas kompiuterio pavadinimas. Susisiekite su administratoriumi.</translation>
 <translation id="5265714013989877288">Negalima tęsti, nes keičiant „Windows“ slaptažodį iškilo problema. Susisiekite su administratoriumi.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_lv.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_lv.xtb
index b928c3a..60abb46d 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_lv.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_lv.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Nevar atvērt Google pierakstīšanās ekrānu, jo šajā ierīcē ir problēma ar Chrome instalāciju. Sazinieties ar administratoru.</translation>
 <translation id="4057329986137569701">Radās iekšēja kļūda.</translation>
 <translation id="4267670563222825190">Jūsu kontam nevarēja atrast nevienu domēna lietotāju. Lūdzu, sazinieties ar savu administratoru.</translation>
-<translation id="4706454071748629324">Neizdevās pievienot jaunu lietotāju. Šis dators ļauj tikai vienam lietotājam veidot darba kontu.</translation>
 <translation id="4744575902940448763">Jūsu darba konta paroli nevar sinhronizēt ar jūsu Windows profilu, jo jūsu organizācija ierobežo paroļu atjauninājumus jūsu ierīcē. Lai saņemtu palīdzību, sazinieties ar administratoru.</translation>
 <translation id="5186761973554910131">Mēģinot mainīt paroli, tika norādīts nederīgs datora nosaukums. Lūdzu, sazinieties ar administratoru.</translation>
 <translation id="5265714013989877288">Nevar turpināt, jo, mainot Windows paroli, radās kļūda. Lūdzu, sazinieties ar administratoru.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_mk.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_mk.xtb
index 09fa488..20d6ef7 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_mk.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_mk.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Не може да се отвори екранот за најавување на Google бидејќи има проблем со инсталацијата на Chrome на уредов. Контактирајте со администраторот.</translation>
 <translation id="4057329986137569701">Се случи внатрешна грешка.</translation>
 <translation id="4267670563222825190">Не е најден корисник на домен за вашата сметка. Контактирајте со администраторот.</translation>
-<translation id="4706454071748629324">Не успеа да се додаде нов корисник. Компјутеров дозволува создавање на само еден корисник со работна сметка.</translation>
 <translation id="4744575902940448763">Лозинката за работната сметка не можеше да се синхронизира со профилот на Windows бидејќи ажурирањата на лозинките на уредот се ограничени од вашата организација. Контактирајте со администраторот за помош.</translation>
 <translation id="5186761973554910131">Дадено е погрешно име на компјутер при обидот за промена на лозинката. Контактирајте со администраторот.</translation>
 <translation id="5265714013989877288">Не може да продолжите бидејќи имаше грешка при промената на вашата лозинка за Windows. Контактирајте со администраторот.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ml.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ml.xtb
index 1bb9e7eb..7a73e40 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ml.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ml.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">ഈ ഉപകരണത്തിലെ Chrome ഇൻസ്‌‌റ്റലേഷനിൽ ഒരു പ്രശ്നമുള്ളതിനാൽ Google സൈൻ ഇൻ സ്‌ക്രീൻ തുറക്കാനാവുന്നില്ല. നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെടുക.</translation>
 <translation id="4057329986137569701">ഒരു ആന്തരിക പിശക് സംഭവിച്ചു.</translation>
 <translation id="4267670563222825190">നിങ്ങളുടെ അക്കൗണ്ടിന് ഡൊമെയ്‌ൻ ഉപയോക്താവിനെയൊന്നും കണ്ടെത്താനായില്ല. നിങ്ങളുടെ അഡ്‌മിനുമായി ബന്ധപ്പെടുക.</translation>
-<translation id="4706454071748629324">പുതിയ ഉപയോക്താവിനെ ചേർക്കാനായില്ല. ഒരു ഔദ്യോഗിക അക്കൗണ്ട് ഉപയോഗിച്ച് ഒരു ഉപയോക്താവിനെ സൃഷ്‌ടിക്കാൻ മാത്രമേ ഈ കമ്പ്യൂട്ടർ അനുവദിക്കൂ.</translation>
 <translation id="4744575902940448763">നിങ്ങളുടെ ഉപകരണത്തിലെ പാസ്‌വേഡ് അപ്‌ഡേറ്റുകൾ നിങ്ങളുടെ ഓർഗനൈസേഷൻ നിയന്ത്രിച്ചിരിക്കുന്നതിനാൽ ഔദ്യോഗിക അക്കൗണ്ടിന്റെ പാസ്‌വേഡ് നിങ്ങളുടെ Windows പ്രൊഫൈലുമായി സമന്വയിപ്പിക്കാനായില്ല. സഹായത്തിനായി നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെടുക.</translation>
 <translation id="5186761973554910131">പാസ്‌വേഡ് മാറ്റാൻ ശ്രമിച്ചപ്പോൾ നൽകിയ കമ്പ്യൂട്ടറിന്റെ പേര് അസാധുവാണ്. നിങ്ങളുടെ അഡ്മിനെ ബന്ധപ്പെടുക.</translation>
 <translation id="5265714013989877288">നിങ്ങളുടെ Windows പാസ്‌വേഡ് മാറ്റുന്നതിനിടയിൽ ഒരു പിശകുണ്ടായതിനാൽ തുടരാനാവില്ല. നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെടുക.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_mn.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_mn.xtb
index 60fafb7d..b038bc0 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_mn.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_mn.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Энэ төхөөрөмж дээр Chrome-г суулгахад асуудал байгаа тул Google-д нэвтрэх дэлгэцийг нээх боломжгүй байна. Администратортайгаа холбогдоно уу.</translation>
 <translation id="4057329986137569701">Дотоод алдаа гарлаа.</translation>
 <translation id="4267670563222825190">Таны бүртгэлд ямар ч домэйн хэрэглэгч олдсонгүй. Админтайгаа холбогдоно уу.</translation>
-<translation id="4706454071748629324">Шинэ хэрэглэгчийг нэмж чадсангүй. Энэ компьютер ажлын бүртгэлээр зөвхөн нэг хэрэглэгч үүсгэхийг зөвшөөрдөг.</translation>
 <translation id="4744575902940448763">Таны төхөөрөмж дээр нууц үг шинэчлэхийг танай байгууллага хязгаарладаг тул таны ажлын бүртгэлийн нууц үгийг таны Windows-н профайлтай синк хийж чадсангүй. Тусламж хэрэгтэй бол администратортайгаа холбогдоно уу.</translation>
 <translation id="5186761973554910131">Нууц үгийг өөрчлөх оролдлогын үеэр компьютерын нэрийг буруу оруулсан. Администратортайгаа холбогдоно уу.</translation>
 <translation id="5265714013989877288">Таны Windows-н нууц үгийг өөрчлөх үед алдаа гарсан тул үргэлжлүүлэх боломжгүй байна. Администратортайгаа холбогдоно уу.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_mr.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_mr.xtb
index 6d0cc01..1c9cede 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_mr.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_mr.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">या डिव्हाइसवर Chrome इंस्टॉलेशनबाबत समस्या असल्यामुळे Google साइन इन स्क्रीन उघडू शकत नाही. तुमच्या अ‍ॅडमिनिस्ट्रेटरशी संपर्क साधा.</translation>
 <translation id="4057329986137569701">अंतर्गत एरर आली.</translation>
 <translation id="4267670563222825190">तुमच्या खात्यासाठी कोणताही डोमेन वापरकर्ता शोधू शकलो नाही. कृपया तुमच्या अ‍ॅडमिनिस्ट्रेटरशी संपर्क साधा.</translation>
-<translation id="4706454071748629324">नवीन वापरकर्ता जोडता आला नाही. हा काँप्युटर ऑफिस खाते वापरून फक्त एकच वापरकर्ता तयार करू देतो.</translation>
 <translation id="4744575902940448763">तुमच्या संस्थेने तुमच्या डिव्हाइसवर पासवर्ड अपडेट प्रतिबंधित केली असल्यामुळे तुमचा ऑफिस खाते पासवर्ड तुमच्या Windows प्रोफाइलशी सिंक करता आला नाही. मदतीसाठी तुमच्या अ‍ॅडमिनिस्ट्रेटरशी संपर्क साधा.</translation>
 <translation id="5186761973554910131">पासवर्ड बदलण्याचा प्रयत्न करत असताना कॉंप्युटर नाव चुकीचे दिले. कृपया तुमच्या अ‍ॅडमिनिस्ट्रेटरशी संपर्क साधा.</translation>
 <translation id="5265714013989877288">तुमचा Windows पासवर्ड बदलताना एरर आल्यामुळे सुरू ठेवू शकत नाही. कृपया तुमच्या अ‍ॅडमिनिस्ट्रेटरशी संपर्क साधा.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ms.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ms.xtb
index bf96ee2..ce7721a 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ms.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ms.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Tidak dapat membuka skrin log masuk Google kerana terdapat masalah berkaitan pemasangan Chrome pada peranti ini. Hubungi pentadbir anda.</translation>
 <translation id="4057329986137569701">Ralat dalaman telah berlaku.</translation>
 <translation id="4267670563222825190">Tiada pengguna Domain ditemui untuk akaun anda. Sila hubungi pentadbir anda.</translation>
-<translation id="4706454071748629324">Gagal menambahkan pengguna baharu. Komputer ini hanya membenarkan satu pengguna dibuat menggunakan akaun kerja.</translation>
 <translation id="4744575902940448763">Kata laluan akaun kerja anda tidak dapat disegerakkan dengan profil Windows anda kerana kemas kini kata laluan pada peranti anda disekat oleh organisasi anda. Hubungi pentadbir anda untuk mendapatkan bantuan.</translation>
 <translation id="5186761973554910131">Nama komputer yang tidak sah diberikan semasa percubaan mengubah kata laluan. Sila hubungi pentadbir anda.</translation>
 <translation id="5265714013989877288">Tidak dapat meneruskan proses kerana ralat telah berlaku semasa menukar kata laluan Windows anda. Sila hubungi pentadbir anda.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_my.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_my.xtb
index 5dfe73da..15034d2 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_my.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_my.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">ဤစက်တွင် Chrome ထည့်သွင်းမှုနှင့် ပတ်သက်ပြီး ပြဿနာရှိသဖြင့် Google လက်မှတ်ထိုးဝင်သည့် ဖန်သားပြင်ကို ဖွင့်၍မရပါ။ သင်၏စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation>
 <translation id="4057329986137569701">အတွင်းပိုင်းအမှားတစ်ခု ရှိနေသည်။</translation>
 <translation id="4267670563222825190">သင့်အကောင့်အတွက် မည်သည့် 'ဒိုမိန်း' အသုံးပြုသူကိုမျှ မတွေ့ပါ။ သင်၏ စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation>
-<translation id="4706454071748629324">အသုံးပြုသူအသစ် ထည့်၍မရပါ။ ဤကွန်ပျူတာက အလုပ်သုံးအကောင့်သုံးပြီး အသုံးပြုသူတစ်ဦးသာ အသစ်ပြုလုပ်ခွင့်ပေးပါသည်။</translation>
 <translation id="4744575902940448763">သင့်စက်ပေါ်ရှိ စကားဝှက်အပ်ဒိတ်များကို သင့်အဖွဲ့အစည်းက ကန့်သတ်ထားသဖြင့် Windows ပရိုဖိုင်သို့ သင်၏အလုပ်သုံး အကောင့်စကားဝှက်ကို စင့်ခ်လုပ်၍ မရပါ။ အကူအညီအတွက် သင်၏စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation>
 <translation id="5186761973554910131">စကားဝှက်ပြောင်းရန် ကြိုးပမ်းစဉ် ပေးသည့် ကွန်ပျူတာအမည် မမှန်ပါ။ သင်၏စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation>
 <translation id="5265714013989877288">သင့် Windows စကားဝှက် ပြောင်းနေစဉ် အမှားဖြစ်သွားသဖြင့် ရှေ့ဆက်၍မရပါ။ သင်၏စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ne.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ne.xtb
index 3f5cd1f..df1ad4d1 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ne.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ne.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">यो यन्त्रमा Chrome स्थापना गर्ने क्रममा समस्या आएकाले Google को साइन इन स्क्रिन खोल्न सकिएन। आफ्ना प्रशासकलाई सम्पर्क गर्नुहोस्।</translation>
 <translation id="4057329986137569701">एउटा आन्तरिक त्रुटि भयो।</translation>
 <translation id="4267670563222825190">तपाईंको खाताको कुनै पनि डोमेन प्रयोगकर्ता फेला पार्न सकिएन। कृपया आफ्ना व्यवस्थापकलाई सम्पर्क गर्नुहोस्।</translation>
-<translation id="4706454071748629324">नयाँ प्रयोगकर्ता थप्न सकिएन। यो कम्प्युटरले कार्य खाता प्रयोग गरेर एउटा प्रयोगकर्ता मात्र सिर्जना गर्न दिन्छ।</translation>
 <translation id="4744575902940448763">तपाईंको संस्थाले तपाईंको यन्त्रमा पासवर्ड अद्यावधिक गर्ने सुविधामाथि रोक लगाएको हुनाले तपाईंको कार्य खाताको पासवर्ड तपाईंको Windows को प्रोफाइलसँग सिंक गर्न सकिएन। मद्दत प्राप्त गर्न आफ्ना प्रशासकलाई सम्पर्क गर्नुहोस्।</translation>
 <translation id="5186761973554910131">पासवर्ड परिवर्तन गर्ने प्रयास गर्दा कम्प्युटरको गलत नाम प्रविष्टि गरियो। कृपया आफ्ना प्रशासकसँग सम्पर्क गर्नुहोस्।</translation>
 <translation id="5265714013989877288">तपाईंको Windows पासवर्ड परिवर्तन गर्ने क्रममा कुनै त्रुटि भएकाले अगाडि बढ्न सकिएन। कृपया आफ्ना प्रशासकलाई सम्पर्क गर्नुहोस्।</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_nl.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_nl.xtb
index 7e51ecf..ca2d084 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_nl.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_nl.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Kan het Google-inlogscherm niet openen omdat er een probleem is met de Chrome-installatie op dit apparaat. Neem contact op met je beheerder.</translation>
 <translation id="4057329986137569701">Er is een interne fout opgetreden.</translation>
 <translation id="4267670563222825190">Er kan geen domeingebruiker worden gevonden voor je account. Neem contact op met je beheerder.</translation>
-<translation id="4706454071748629324">Nieuwe gebruiker toevoegen is mislukt. Op deze computer kan slechts één gebruiker worden gemaakt met een werkaccount.</translation>
 <translation id="4744575902940448763">Het wachtwoord van je werkaccount kan niet worden gesynchroniseerd met je Windows-profiel omdat je organisatie wachtwoordupdates op je apparaat heeft beperkt. Neem contact op met de beheerder voor hulp.</translation>
 <translation id="5186761973554910131">Je hebt een ongeldige computernaam opgegeven toen je het wachtwoord probeerde te wijzigen. Neem contact op met je beheerder.</translation>
 <translation id="5265714013989877288">Kan niet doorgaan omdat er een fout is opgetreden bij het wijzigen van je Windows-wachtwoord. Neem contact op met je beheerder.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_no.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_no.xtb
index d7cc9b6..b30efde7 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_no.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_no.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Kan ikke åpne Google-påloggingsskjermen, ettersom det er problemer med Chrome-installasjonen på enheten. Kontakt administratoren din.</translation>
 <translation id="4057329986137569701">Det oppsto en intern feil.</translation>
 <translation id="4267670563222825190">Fant ingen domenebruker for kontoen din. Kontakt administratoren din.</translation>
-<translation id="4706454071748629324">Kunne ikke legge til den nye brukeren. Denne datamaskinen tillater bare oppretting av én bruker per jobbkonto.</translation>
 <translation id="4744575902940448763">Passordet for jobbkontoen kunne ikke synkroniseres med Windows-profilen din, ettersom organisasjonen din har lagt restriksjoner på passordoppdateringer på enheten. Kontakt administratoren din for å få hjelp.</translation>
 <translation id="5186761973554910131">Ugyldig datamaskinnavn ble oppgitt under forsøk på endring av passord. Kontakt administratoren din.</translation>
 <translation id="5265714013989877288">Kan ikke fortsette. Det oppsto en feil under endring av Windows-passordet. Kontakt administratoren din.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_or.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_or.xtb
index 9a351e23..a79cb3c1 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_or.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_or.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">ଏହି ଡିଭାଇସରେ Chrome ଇନଷ୍ଟଲ୍ କରିବା ସମୟରେ ଏକ ତ୍ରୁଟି ଦେଖାଦେଇଥିବାରୁ Google ସାଇନ୍ ଇନ୍ ସ୍କ୍ରିନ୍ ଖୋଲି ହେବ ନାହିଁ। ଆପଣଙ୍କର ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ସହିତ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation>
 <translation id="4057329986137569701">ଏକ ଇଣ୍ଟର୍ନଲ୍‌ ତ୍ରୁଟି ଘଟିଲା।</translation>
 <translation id="4267670563222825190">ଆପଣଙ୍କର ଆକାଉଣ୍ଟ ପାଇଁ କୌଣସି ଡୋମେନ୍ ଉପଯୋଗକର୍ତ୍ତା ମିଳିଲେ ନାହିଁ। ଆପଣଙ୍କର ଆଡ୍‌ମିନିଷ୍ଟ୍ରେଟର୍‌ଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation>
-<translation id="4706454071748629324">ଏକ ନୂଆ ଉପଯୋଗକର୍ତ୍ତା ଯୋଗକରିବାକୁ ବିଫଳ ହେଲା। ଗୋଟିଏ ୱର୍କ ଆକାଉଣ୍ଟ ବ୍ୟବହାର କରି ଏହି କମ୍ପ୍ୟୁଟର୍‌ କେବଳ ଜଣେ ଉପଯୋଗକର୍ତ୍ତାଙ୍କୁ ଅନୁମତି ଦିଏ।</translation>
 <translation id="4744575902940448763">ଆପଣଙ୍କର ସଂସ୍ଥା ଦ୍ୱାରା ଆପଣଙ୍କ ଡିଭାଇସରେ ପାସୱାର୍ଡ ଅପଡେଟଗୁଡ଼ିକ ପ୍ରତିବନ୍ଧିତ କରାଯାଇଥିବାରୁ ଆପଣଙ୍କର କାର୍ଯ୍ୟସ୍ଥଳୀ ଆକାଉଣ୍ଟ ପାସୱାର୍ଡ ଆପଣଙ୍କ Windows ପ୍ରୋଫାଇଲକୁ ସିଙ୍କ୍ କରାଯାଇପାରିଲା ନାହିଁ। ସହାୟତା ପାଇଁ ଆପଣଙ୍କର ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation>
 <translation id="5186761973554910131">ପାସୱାର୍ଡ ପରିବର୍ତ୍ତନ କରିବାକୁ ଚେଷ୍ଟା କରିବା ସମୟରେ ଅବୈଧ କମ୍ପ୍ୟୁଟର୍ ନାମ ପ୍ରଦାନ କରାଯାଇଛି। ଦୟାକରି ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation>
 <translation id="5265714013989877288">ଆପଣଙ୍କର Windows ପାସୱାର୍ଡ ପରିବର୍ତ୍ତନ କରିବା ସମୟରେ ଏକ ତ୍ରୁଟି ଦେଖାଦେଇଥିବାରୁ, ଏହା ଜାରି ରଖିପାରିବେ ନାହିଁ। ଦୟାକରି ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_pa.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_pa.xtb
index 1737be7..03f74e55 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_pa.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_pa.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Google ਸਾਈਨ-ਇਨ ਸਕ੍ਰੀਨ ਨੂੰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਕਿਉਂਕਿ ਇਸ ਡੀਵਾਈਸ 'ਤੇ Chrome ਸਥਾਪਨਾ ਵਿੱਚ ਕੋਈ ਸਮੱਸਿਆ ਹੈ। ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।</translation>
 <translation id="4057329986137569701">ਕੋਈ ਅੰਦਰੂਨੀ ਗੜਬੜ ਹੋ ਗਈ।</translation>
 <translation id="4267670563222825190">ਤੁਹਾਡੇ ਖਾਤੇ ਲਈ ਕੋਈ ਡੋਮੇਨ ਵਰਤੋਂਕਾਰ ਨਹੀਂ ਮਿਲ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।</translation>
-<translation id="4706454071748629324">ਨਵਾਂ ਵਰਤੋਂਕਾਰ ਸ਼ਾਮਲ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ। ਇਹ ਕੰਪਿਊਟਰ ਇੱਕ ਕਾਰਜ ਖਾਤਾ ਵਰਤ ਕੇ ਸਿਰਫ਼ ਇੱਕ ਵਰਤੋਂਕਾਰ ਬਣਾਉਣ ਦਿੰਦਾ ਹੈ।</translation>
 <translation id="4744575902940448763">ਤੁਹਾਡੇ Windows ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ ਤੁਹਾਡੇ ਕਾਰਜ ਖਾਤੇ ਦੇ ਪਾਸਵਰਡ ਦਾ ਸਮਕਾਲੀਕਰਨ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ ਕਿਉਂਕਿ ਤੁਹਾਡੀ ਸੰਸਥਾ ਵੱਲੋਂ ਤੁਹਾਡੇ ਡੀਵਾਈਸ 'ਤੇ ਪਾਸਵਰਡ ਅੱਪਡੇਟਾਂ 'ਤੇ ਪਾਬੰਦੀ ਲਗਾਈ ਗਈ ਹੈ। ਮਦਦ ਲਈ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।</translation>
 <translation id="5186761973554910131">ਪਾਸਵਰਡ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਵੇਲੇ ਅਵੈਧ ਕੰਪਿਊਟਰ ਨਾਮ ਮੁਹੱਈਆ ਕਰਵਾਇਆ ਗਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।</translation>
 <translation id="5265714013989877288">ਤੁਹਾਡੇ Windows ਪਾਸਵਰਡ ਨੂੰ ਬਦਲਣ ਦੌਰਾਨ ਕੋਈ ਗੜਬੜ ਹੋਣ ਕਰਕੇ ਜਾਰੀ ਨਹੀਂ ਰੱਖਿਆ ਜਾ ਸਕਦਾ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_pl.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_pl.xtb
index ab69864..5985787 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_pl.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_pl.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Nie udało się otworzyć ekranu logowania przez Google, ponieważ wystąpił problem z instalacją Chrome na tym urządzeniu. Skontaktuj się z administratorem.</translation>
 <translation id="4057329986137569701">Wystąpił błąd wewnętrzny.</translation>
 <translation id="4267670563222825190">Z tym kontem nie jest powiązany żaden użytkownik w domenie. Skontaktuj się z administratorem.</translation>
-<translation id="4706454071748629324">Nie udało się dodać nowego użytkownika. Ten komputer zezwala na utworzenie tylko jednego użytkownika za pomocą konta do pracy.</translation>
 <translation id="4744575902940448763">Nie udało się zsynchronizować hasła do konta do pracy z Twoim profilem Windows, ponieważ organizacja nie zezwala na aktualizowanie haseł na tym urządzeniu. Poproś o pomoc administratora.</translation>
 <translation id="5186761973554910131">Podczas próby zmiany hasła podano nieprawidłową nazwę komputera. Skontaktuj się z administratorem.</translation>
 <translation id="5265714013989877288">Nie możesz przejść dalej, bo podczas zmieniania hasła do systemu Windows wystąpił błąd. Skontaktuj się z administratorem.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_pt-BR.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_pt-BR.xtb
index e7f98b73..d0862ac7 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_pt-BR.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_pt-BR.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Não é possível abrir a tela de login do Google porque ocorreu um problema na instalação do Chrome neste dispositivo. Entre em contato com o administrador.</translation>
 <translation id="4057329986137569701">Ocorreu um erro interno.</translation>
 <translation id="4267670563222825190">Nenhum usuário de domínio encontrado para sua conta. Entre em contato com seu administrador.</translation>
-<translation id="4706454071748629324">Falha ao adicionar um novo usuário. Este computador só permite que um único usuário seja criado com uma conta de trabalho.</translation>
 <translation id="4744575902940448763">A senha da sua conta de trabalho não pode ser sincronizada com seu perfil do Windows porque atualizações de senha no dispositivo são restringidas pela organização. Entre em contato com o administrador para pedir ajuda.</translation>
 <translation id="5186761973554910131">Nome de computador inválido inserido durante a tentativa de mudança de senha. Entre em contato com seu administrador.</translation>
 <translation id="5265714013989877288">Não foi possível continuar porque ocorreu um erro ao mudar a senha do Windows. Entre em contato com o administrador.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_pt-PT.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_pt-PT.xtb
index 503bcdf..8927842 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_pt-PT.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_pt-PT.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Não é possível abrir o ecrã de início de sessão do Google porque ocorreu um problema com a instalação do Chrome neste dispositivo. Contacte o seu administrador.</translation>
 <translation id="4057329986137569701">Ocorreu um erro interno.</translation>
 <translation id="4267670563222825190">Não foi possível encontrar qualquer utilizador do domínio para a sua conta. Contacte o seu administrador.</translation>
-<translation id="4706454071748629324">Falha ao adicionar um novo utilizador. Este computador apenas permite a criação de um utilizador através de uma conta profissional.</translation>
 <translation id="4744575902940448763">Não foi possível sincronizar a palavra-passe da sua conta profissional com o seu perfil do Windows porque as atualizações de palavras-passe no dispositivo estão restringidas pela sua entidade. Contacte o seu administrador para obter ajuda.</translation>
 <translation id="5186761973554910131">Nome de computador inválido fornecido durante a tentativa de alteração da palavra-passe. Contacte o seu administrador.</translation>
 <translation id="5265714013989877288">Não é possível continuar porque ocorreu um erro ao alterar a palavra-passe do Windows. Contacte o seu administrador.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ro.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ro.xtb
index 01b60ea..95d22d2a 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ro.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ro.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Nu se poate deschide ecranul de conectare Google din cauza unei probleme cu instalarea Chrome pe acest dispozitiv. Contactează administratorul.</translation>
 <translation id="4057329986137569701">A apărut o eroare internă.</translation>
 <translation id="4267670563222825190">Nu s-a găsit niciun utilizator de domeniu pentru contul tău. Contactează administratorul.</translation>
-<translation id="4706454071748629324">Nu s-a reușit adăugarea unui utilizator nou. Computerul permite crearea unui singur utilizator folosind un cont de serviciu.</translation>
 <translation id="4744575902940448763">Parola contului de serviciu nu a putut fi sincronizată în profilul Windows, deoarece actualizările parolelor de pe dispozitivul tău sunt restricționate de organizație. Contactează administratorul pentru ajutor.</translation>
 <translation id="5186761973554910131">Ai introdus un nume de computer nevalid în timpul încercării de schimbare a parolei. Contactează administratorul.</translation>
 <translation id="5265714013989877288">Nu poți continua, deoarece a apărut o eroare la schimbarea parolei pentru Windows. Contactează administratorul.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ru.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ru.xtb
index 6fb10608..66c755bf6 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ru.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ru.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Не удалось загрузить экран входа в аккаунт Google из-за проблемы, связанной с установкой Chrome. Обратитесь к администратору.</translation>
 <translation id="4057329986137569701">Произошла внутренняя ошибка.</translation>
 <translation id="4267670563222825190">С вашим аккаунтом не связан ни один из пользователей домена. Обратитесь к администратору.</translation>
-<translation id="4706454071748629324">Не удалось добавить нового пользователя. На этом компьютере можно создать только одного пользователя с помощью рабочего аккаунта.</translation>
 <translation id="4744575902940448763">Не удалось синхронизировать пароль от рабочего аккаунта с профилем Windows, так как ваша организация запретила обновлять пароли на этом устройстве. Обратитесь к администратору за дополнительной информацией.</translation>
 <translation id="5186761973554910131">При попытке изменить пароль было указано неверное название компьютера. Обратитесь к администратору.</translation>
 <translation id="5265714013989877288">Не удалось сменить пароль для Windows. Обратитесь к администратору.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_si.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_si.xtb
index c561bec..9cf4095d 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_si.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_si.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">මෙම උපාංගය මත Chrome ස්ථාපනය සම්බන්ධයෙන් ගැටලුවක් ඇති බැවින් Google පුරන තිරය විවෘත කළ නොහැක. ඔබේ පරිපාලක සම්බන්ධ කර ගන්න.</translation>
 <translation id="4057329986137569701">අභ්‍යන්තර දෝෂයක් සිදු විය.</translation>
 <translation id="4267670563222825190">ඔබේ ගිණුම සඳහා වසම් කිසිවක් සොයා ගත නොහැකි විය. ඔබගේ පරිපාලක සම්බන්ධ කර ගන්න.</translation>
-<translation id="4706454071748629324">නව පරිශීලකයෙක් එක් කිරීම අසාර්ථක විය. මෙම පරිගණකය එක කාර්යාල ගිණුමක් භාවිත කර එක පරිශීලකයෙකු පමණක් නිර්මාණ කිරීමට ඉඩ දෙයි.</translation>
 <translation id="4744575902940448763">ඔබේ ආයතනය ඔබේ උපාංගය මත මුරපද යාවත්කාලීන කිරීම් සීමා කර ඇති බැවින් ඔබේ Windows පැතිකඩට ඔබේ කාර්යාල ගිණුම් මුරපදය සමමුහූර්ත කළ නොහැකි විය. උදවු සඳහා ඔබේ පරිපාලකයා සම්බන්ධ කර ගන්න.</translation>
 <translation id="5186761973554910131">මුරපද වෙනස් කිරීමේ උත්සාහයේදී අවලංගු පරිගණක නම සැපයිණි. ඔබගේ පරිපාලක සම්බන්ධ කර ගන්න.</translation>
 <translation id="5265714013989877288">ඔබේ Windows මුරපදය වෙනස් කරන අතරතුර දෝෂයක් තිබූ බැවින් ඉදිරියට යාමට නොහැක. ඔබගේ පරිපාලක සම්බන්ධ කර ගන්න.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_sk.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_sk.xtb
index 31b292dc..c062c65 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_sk.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_sk.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Obrazovku prihlásenia cez Google sa nepodarilo otvoriť pre problém s inštaláciou Chromu v tomto zariadení. Kontaktujte správcu.</translation>
 <translation id="4057329986137569701">Vyskytla sa interná chyba.</translation>
 <translation id="4267670563222825190">Pre váš účet sa nenašiel žiadny používateľ domény. Kontaktujte správcu.</translation>
-<translation id="4706454071748629324">Nepodarilo sa pridať nového používateľa. V tomto počítači je možné pomocou pracovného účtu vytvoriť iba jedného používateľa.</translation>
 <translation id="4744575902940448763">Heslo pracovného účtu sa nepodarilo synchronizovať s profilom systému Windows, pretože vaša organizácia obmedzila v zariadení aktualizácie hesiel. Obráťte sa na správcu a požiadajte ho o pomoc.</translation>
 <translation id="5186761973554910131">Pri pokuse o zmenu hesla bol zadaný nesprávny názov počítača. Kontaktujte správcu.</translation>
 <translation id="5265714013989877288">Pri zmene hesla systému Windows sa vyskytla chyba, a preto nie je možné pokračovať. Kontaktujte správcu.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_sl.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_sl.xtb
index 77131f6b..5d5d1f5 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_sl.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_sl.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Zaradi težave z namestitvijo Chroma v tej napravi zaslona za prijavo v Google ni mogoče odpreti. Obrnite se na skrbnika.</translation>
 <translation id="4057329986137569701">Prišlo je do notranje napake.</translation>
 <translation id="4267670563222825190">Za vaš račun ni bilo mogoče najti nobenega uporabnika domene. Obrnite se na skrbnika.</translation>
-<translation id="4706454071748629324">Ni bilo mogoče dodati novega uporabnika. V tem računalniku je s službenim računom dovoljeno ustvariti samo enega uporabnika.</translation>
 <translation id="4744575902940448763">Gesla za službeni račun ni bilo mogoče sinhronizirati s profilom za Windows, ker posodobitve gesel v napravi omejuje organizacija. Za pomoč se obrnite na skrbnika.</translation>
 <translation id="5186761973554910131">Med poskusom spremembe gesla je bilo navedeno neveljavno ime računalnika. Obrnite se na skrbnika.</translation>
 <translation id="5265714013989877288">Pri spreminjanju gesla za Windows je prišlo do napake, zato ni mogoče nadaljevati. Obrnite se na skrbnika.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_sq.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_sq.xtb
index 2fb9563..2c7484965 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_sq.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_sq.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Nuk mund të hapet ekrani i identifikimit të Google sepse ka një problem me instalimin e Chrome në këtë pajisje. Kontakto me administratorin tënd.</translation>
 <translation id="4057329986137569701">Ndodhi një gabim i brendshëm.</translation>
 <translation id="4267670563222825190">Nuk mund të gjendej asnjë përdorues domeni për llogarinë tënde. Kontakto me administratorin tënd.</translation>
-<translation id="4706454071748629324">Dështoi shtimi i një përdoruesi të ri. Ky kompjuter lejon që të krijohet vetëm një përdorues duke përdorur një llogari pune.</translation>
 <translation id="4744575902940448763">Fjalëkalimi i llogarisë sate të punës nuk mund të sinkronizohej me profilin tënd të Windows sepse përditësimet e fjalëkalimit në pajisjen tënde janë të kufizuara nga organizata jote. Kontakto me administratorin tënd për ndihmë.</translation>
 <translation id="5186761973554910131">Një emër i pavlefshëm kompjuteri është dhënë gjatë përpjekjes për ndryshimin e fjalëkalimit. Kontakto me administratorin tënd.</translation>
 <translation id="5265714013989877288">Nuk mund të vazhdojë sepse ndodhi një gabim gjatë ndryshimit të fjalëkalimit tënd të Windows. Kontakto me administratorin tënd.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_sr-Latn.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_sr-Latn.xtb
index b4a6b424..abf8603 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_sr-Latn.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_sr-Latn.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Ne možemo da otvorimo ekran za prijavljivanje preko Google-a zato što postoji problem u vezi sa instalacijom Chrome-a na ovom uređaju. Obratite se administratoru.</translation>
 <translation id="4057329986137569701">Došlo je do interne greške.</translation>
 <translation id="4267670563222825190">Nismo pronašli nijednog korisnika domena za vaš nalog. Obratite se administratoru.</translation>
-<translation id="4706454071748629324">Dodavanje novog korisnika nije uspelo. Ovaj računar dozvoljava pravljenje samo jednog korisnika pomoću poslovnog naloga.</translation>
 <translation id="4744575902940448763">Sinhronizovanje lozinke za poslovni nalog sa Windows profilom nije uspelo zato što vaša organizacija ograničava ažuriranja lozinke na uređaju. Obratite se administratoru da biste dobili pomoć.</translation>
 <translation id="5186761973554910131">Naveden je nevažeći naziv računara pri pokušaju promene lozinke. Obratite se administratoru.</translation>
 <translation id="5265714013989877288">Ne možete da nastavite zato što je došlo do greške pri promeni lozinke za Windows. Obratite se administratoru.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_sr.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_sr.xtb
index c5a7bcd..aae94143 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_sr.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_sr.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Не можемо да отворимо екран за пријављивање преко Google-а зато што постоји проблем у вези са инсталацијом Chrome-а на овом уређају. Обратите се администратору.</translation>
 <translation id="4057329986137569701">Дошло је до интерне грешке.</translation>
 <translation id="4267670563222825190">Нисмо пронашли ниједног корисника домена за ваш налог. Обратите се администратору.</translation>
-<translation id="4706454071748629324">Додавање новог корисника није успело. Овај рачунар дозвољава прављење само једног корисника помоћу пословног налога.</translation>
 <translation id="4744575902940448763">Синхронизовање лозинке за пословни налог са Windows профилом није успело зато што ваша организација ограничава ажурирања лозинке на уређају. Обратите се администратору да бисте добили помоћ.</translation>
 <translation id="5186761973554910131">Наведен је неважећи назив рачунара при покушају промене лозинке. Обратите се администратору.</translation>
 <translation id="5265714013989877288">Не можете да наставите зато што је дошло до грешке при промени лозинке за Windows. Обратите се администратору.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_sv.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_sv.xtb
index 1e64a81..0856c5e 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_sv.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_sv.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Det gick inte att öppna inloggningsskärmen för Google på grund av ett problem med installationen av Chrome på den här enheten. Kontakta administratören.</translation>
 <translation id="4057329986137569701">Ett internt fel uppstod.</translation>
 <translation id="4267670563222825190">Ingen domänanvändare hittades för kontot. Kontakta administratören.</translation>
-<translation id="4706454071748629324">Det gick inte att lägga till en ny användare. Datorn tillåter bara att en användare skapas med ett jobbkonto.</translation>
 <translation id="4744575902940448763">Det gick inte att synkronisera lösenordet för jobbkontot till Windows-profilen eftersom lösenordsuppdateringar på enheten är begränsade till organisationen. Kontakta administratören om du behöver hjälp.</translation>
 <translation id="5186761973554910131">Ogiltigt datornamn angavs under försöket att byta lösenord. Kontakta administratören.</translation>
 <translation id="5265714013989877288">Det gick inte att fortsätta eftersom ett fel uppstod medan lösenordet för Windows ändrades. Kontakta administratören.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_sw.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_sw.xtb
index ae0162b6..015809e 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_sw.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_sw.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Imeshindwa kufungua skrini ya Google ya kuingia katika akaunti kwa sababu ya tatizo la usakinishaji wa Chrome kwenye kifaa hiki. Wasiliana na msimamizi wako.</translation>
 <translation id="4057329986137569701">Hitilafu ya ndani imetokea.</translation>
 <translation id="4267670563222825190">Haikupata mtumiaji wa Kikoa kwenye akaunti yako. Tafadhali wasiliana na msimamizi wako.</translation>
-<translation id="4706454071748629324">Imeshindwa kuongeza mtumiaji mpya. Kompyuta hii inaruhusu tu mtumiaji mmoja kuwekwa kwa kutumia akaunti ya kazini.</translation>
 <translation id="4744575902940448763">Tumeshindwa kusawazisha nenosiri la akaunti kwenye wasifu wako wa Windows kwa sababu ubadilishaji wa manenosiri yaliyo kwenye kifaa chako unafanywa na shirika lako pekee. Ili upate usaidizi, wasiliana na msimamizi wako.</translation>
 <translation id="5186761973554910131">Jina la kompyuta lisilo sahihi lilitolewa wakati wa jaribio la kubadilisha nenosiri. Tafadhali wasiliana na msimamizi wako.</translation>
 <translation id="5265714013989877288">Imeshindwa kuendelea kwa sababu hitilafu fulani imetokea wakati wa kubadilisha nenosiri lako la Windows. Tafadhali wasiliana na msimamizi wako.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ta.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ta.xtb
index ec0955e..66a8efd 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ta.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ta.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">இந்தச் சாதனத்தில் Chromeமை நிறுவுவதில் சிக்கல் உள்ளதால் Google உள்நுழைவுத் திரையைக் காட்ட முடியாது. உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="4057329986137569701">அகப்பிழை ஏற்பட்டது.</translation>
 <translation id="4267670563222825190">உங்கள் கணக்கிற்கான டொமைன் பயனர் இல்லை. உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
-<translation id="4706454071748629324">புதிய பயனரைச் சேர்க்க முடியவில்லை. இந்தக் கம்ப்யூட்டர் பணிக் கணக்கைப் பயன்படுத்தி ஒரு பயனரை மட்டுமே உருவாக்க அனுமதிக்கும்.</translation>
 <translation id="4744575902940448763">நிறுவனம் உங்கள் சாதனத்தில் கடவுச்சொல் புதுப்பிப்புகளைக் கட்டுப்படுத்தி உள்ளதால் Windows சுயவிவரத்துடன் உங்கள் பணிக் கணக்கின் கடவுச்சொல்லை ஒத்திசைக்க முடியவில்லை. உதவிக்கு உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="5186761973554910131">கடவுச்சொல்லை மாற்ற முயலும்போது தவறான கம்ப்யூட்டர் பெயர் வழங்கப்பட்டது. உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="5265714013989877288">உங்கள் Windows கடவுச்சொல்லை மாற்றும்போது பிழை ஏற்பட்டதால் தொடர முடியவில்லை. உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_te.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_te.xtb
index 4decc570..0ba4900 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_te.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_te.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">ఈ పరికరంలో Chrome ఇన్‌స్టాలేషన్‌తో సమస్య ఉన్నందున Google సైన్-ఇన్ స్క్రీన్‌ను తెరలేకపోయింది. మీ అడ్మినిస్ట్రేటర్‌ను కాంటాక్ట్ చేయండి.</translation>
 <translation id="4057329986137569701">అంతర్గత ఎర్రర్ ఏర్పడింది.</translation>
 <translation id="4267670563222825190">మీ ఖాతాకు సంబంధించిన డొమైన్ వినియోగదారు ఎవరూ కనుగొనబడలేదు. దయచేసి మీ నిర్వాహకుడిని సంప్రదించండి.</translation>
-<translation id="4706454071748629324">కొత్త వినియోగదారుని జోడించడం విఫలమైంది. కార్యాలయ ఖాతాని ఉపయోగించి ఒక వినియోగదారుని సృష్టించడానికి మాత్రమే ఈ కంప్యూటర్ అనుమతిస్తుంది.</translation>
 <translation id="4744575902940448763">మీ పరికరంలో పాస్‌వర్డ్ అప్‌డేట్‌లను మీ సంస్థ నిలిపివేసినందున మీ కార్యాలయ ఖాతాను మీ Windows ప్రొఫైల్‌తో సింక్ చేయడం సాధ్యపడలేదు. సహాయం కోసం మీ అడ్మినిస్ట్రేటర్‌ను కాంటాక్ట్ చేయండి.</translation>
 <translation id="5186761973554910131">పాస్‌వర్డ్‌ను మార్చే ప్రయత్నంలో చెల్లని కంప్యూటర్ పేరును అందించారు . దయచేసి మీ నిర్వాహకుడిని సంప్రదించండి.</translation>
 <translation id="5265714013989877288">మీ Windows పాస్‌వర్డ్‌ను మారుస్తున్నప్పుడు ఎర్రర్ ఏర్పడినందున కొనసాగించడం సాధ్యపడదు. దయచేసి మీ అడ్మినిస్ట్రేటర్‌ను సంప్రదించండి.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_th.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_th.xtb
index d9be922..3d1b0ad 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_th.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_th.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">เปิดหน้าจอการลงชื่อเข้าใช้ของ Google ไม่ได้เนื่องจากมีปัญหาในการติดตั้ง Chrome ในอุปกรณ์นี้ โปรดติดต่อผู้ดูแลระบบ</translation>
 <translation id="4057329986137569701">เกิดข้อผิดพลาดภายใน</translation>
 <translation id="4267670563222825190">ไม่พบผู้ใช้โดเมนสำหรับบัญชีของคุณ โปรดติดต่อผู้ดูแลระบบ</translation>
-<translation id="4706454071748629324">เพิ่มผู้ใช้ใหม่ไม่สำเร็จ คอมพิวเตอร์เครื่องนี้อนุญาตให้สร้างผู้ใช้โดยใช้บัญชีงานได้เพียงคนเดียว</translation>
 <translation id="4744575902940448763">ซิงค์รหัสผ่านบัญชีงานของคุณกับโปรไฟล์ Windows ไม่ได้เนื่องจากองค์กรของคุณจำกัดการอัปเดตรหัสผ่านในอุปกรณ์ โปรดติดต่อผู้ดูแลระบบเพื่อขอรับความช่วยเหลือ</translation>
 <translation id="5186761973554910131">ระบุชื่อคอมพิวเตอร์ไม่ถูกต้องขณะพยายามเปลี่ยนรหัสผ่าน โปรดติดต่อผู้ดูแลระบบ</translation>
 <translation id="5265714013989877288">ดำเนินการต่อไม่ได้เนื่องจากเกิดข้อผิดพลาดขณะเปลี่ยนรหัสผ่าน Windows ของคุณ โปรดติดต่อผู้ดูแลระบบ</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_tr.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_tr.xtb
index 6ef6600..ee36ab9 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_tr.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_tr.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Bu cihazdaki Chrome yüklemesiyle ilgili bir sorun olduğundan, Google ile oturum açma ekranı açılamıyor. Yöneticinizle iletişime geçin.</translation>
 <translation id="4057329986137569701">Dahili bir hata oluştu.</translation>
 <translation id="4267670563222825190">Hesabınız için hiçbir alan kullanıcısı bulunamadı. Lütfen yöneticinizle görüşün.</translation>
-<translation id="4706454071748629324">Yeni kullanıcı eklenemedi. Bu bilgisayar yalnızca bir kullanıcının, iş hesabı kullanılarak oluşturulmasına izin verir.</translation>
 <translation id="4744575902940448763">Cihazınızdaki şifre güncellemeleri kuruluşunuz tarafından kısıtlandığından, iş hesabı şifreniz Windows profilinizle senkronize edilemedi. Yardım için yöneticinizle iletişime geçin.</translation>
 <translation id="5186761973554910131">Parola değiştirme girişimi sırasında geçersiz bilgisayar adı belirtildi. Lütfen yöneticinizle görüşün.</translation>
 <translation id="5265714013989877288">Windows şifreniz değiştirilirken bir hata oluştuğundan devam edilemiyor. Lütfen yöneticinizle iletişime geçin.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_uk.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_uk.xtb
index 8b80faa..a02fc19 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_uk.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_uk.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Не вдається відкрити екран входу з Google через проблему зі встановленням Chrome на цьому пристрої. Зв'яжіться з адміністратором.</translation>
 <translation id="4057329986137569701">Сталася внутрішня помилка.</translation>
 <translation id="4267670563222825190">Не знайдено користувачів домену для вашого облікового запису. Зв'яжіться з адміністратором.</translation>
-<translation id="4706454071748629324">Не вдалося додати нового користувача. На цьому комп’ютері дозволено створювати лише одного користувача з корпоративним обліковим записом.</translation>
 <translation id="4744575902940448763">Не вдалося синхронізувати пароль корпоративного облікового запису з профілем Windows, оскільки ваша організація обмежила можливість оновлення паролів на цьому пристрої. Зв'яжіться з адміністратором.</translation>
 <translation id="5186761973554910131">Недійсне ім'я комп'ютера, введене під час спроби змінити пароль. Зв'яжіться з адміністратором.</translation>
 <translation id="5265714013989877288">Неможливо продовжити, оскільки не вдалося змінити пароль Windows. Зв'яжіться з адміністратором.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_ur.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_ur.xtb
index 9e4947a..e203fd6 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_ur.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_ur.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">‏Google سائن ان اسکرین نہیں کھول سکتا کیونکہ اس آلہ پر Chrome انسٹالیشن میں کوئی مسئلہ ہے۔ اپنے منتظم سے رابطہ کریں۔</translation>
 <translation id="4057329986137569701">ایک اندرونی خرابی پیش آ گئی۔</translation>
 <translation id="4267670563222825190">آپ کے اکاؤنٹ کے لیے کوئی ڈومین صارف نہیں ملا۔ براہ کرم اپنے منتظم سے رابطہ کریں۔</translation>
-<translation id="4706454071748629324">ایک نیا صارف شامل کرنے میں ناکام۔ یہ کمپیوٹر ایک دفتری اکاؤنٹ کا استعمال کر کے صرف ایک صارف تخلیق کرنے کی اجازت دیتا ہے۔</translation>
 <translation id="4744575902940448763">‏آپ کے دفتری اکاؤنٹ کا پاس ورڈ آپ کی Windows پروفائل میں مطابقت پذیر نہیں ہوسکا کیونکہ آپ کے آلہ پر آپ کی تنظیم کے ذریعے پاس ورڈ اپ ڈیٹس محدود ہیں۔ مدد کے لیے اپنے منتظم سے رابطہ کریں۔</translation>
 <translation id="5186761973554910131">پاس ورڈ تبدیل کرنے کی کوشش کے دوران غلط کمپیوٹر نام فراہم کیا گیا۔ براہ کرم اپنے منتظم سے رابطہ کریں۔</translation>
 <translation id="5265714013989877288">‏جاری نہیں رکھ سکتے کیونکہ آپ کے Windows پاس ورڈ کو تبدیل کرتے وقت ایک خرابی تھی۔ براہ کرم اپنے منتظم سے رابطہ کریں۔</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_uz.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_uz.xtb
index 983fd0c..f0d4035 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_uz.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_uz.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Bu qurilmada Chromeni oʻrnatish bilan muammo borligi sababli Google hisobiga kirish oynasi ochilmadi. Administratorga murojaat qiling.</translation>
 <translation id="4057329986137569701">Ichki xatolik yuz berdi.</translation>
 <translation id="4267670563222825190">Hisobingiz uchun hech qanday domen foydalanuvchisi topilmadi. Administratorga murojaat qiling.</translation>
-<translation id="4706454071748629324">Yangi foydalanuvchi kiritilmadi. Bu kompyuterda ishchi hisob orqali faqat bitta profil ochish mumkin.</translation>
 <translation id="4744575902940448763">Bu qurilmada parolni yangilash tashkilotingiz tomonidan taqiqlangani sababli ishchi hisobingiz paroli Windows profilingizga sinxronlanmadi. Administratorga murojaat qiling.</translation>
 <translation id="5186761973554910131">Parol almashtirishda kompyuter nomi xato kiritildi. Administratorga murojaat qiling.</translation>
 <translation id="5265714013989877288">Windows parolini yangilashdagi xatolik tufayli davom etish imkonsiz. Administratorga murojaat qiling.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_vi.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_vi.xtb
index 3afa9ff1..9823210 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_vi.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_vi.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Không thể mở màn hình đăng nhập bằng Google do xảy ra vấn đề khi cài đặt Chrome trên thiết bị này. Hãy liên hệ với quản trị viên.</translation>
 <translation id="4057329986137569701">Đã xảy ra lỗi nội bộ.</translation>
 <translation id="4267670563222825190">Không tìm được người dùng miền nào cho tài khoản của bạn. Vui lòng liên hệ với quản trị viên.</translation>
-<translation id="4706454071748629324">Không thêm được người dùng mới. Máy tính này chỉ cho phép tạo 1 người dùng bằng tài khoản công việc.</translation>
 <translation id="4744575902940448763">Mật khẩu tài khoản công việc của bạn không đồng bộ hóa được với hồ sơ trên Windows do tổ chức bạn đã hạn chế việc cập nhật mật khẩu trên thiết bị của bạn. Hãy liên hệ với quản trị viên để được trợ giúp.</translation>
 <translation id="5186761973554910131">Bạn đã cung cấp tên máy tính không hợp lệ khi cố thay đổi mật khẩu. Vui lòng liên hệ với quản trị viên.</translation>
 <translation id="5265714013989877288">Không thể tiếp tục do đã xảy ra lỗi khi thay đổi mật khẩu Windows của bạn. Vui lòng liên hệ với quản trị viên.</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_zh-CN.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_zh-CN.xtb
index b3c9a336d..e635c78 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_zh-CN.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_zh-CN.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">无法打开 Google 登录屏幕,因为此设备上安装的 Chrome 出了点问题。请与您的管理员联系。</translation>
 <translation id="4057329986137569701">发生了内部错误。</translation>
 <translation id="4267670563222825190">找不到您帐号的任何网域用户。请与管理员联系。</translation>
-<translation id="4706454071748629324">未能添加新用户。此计算机仅允许使用一个工作帐号创建一个用户。</translation>
 <translation id="4744575902940448763">无法将您的工作帐号密码同步到您的 Windows 个人资料,因为贵组织不允许用户更新设备上的密码。请联系您的管理员以获得帮助。</translation>
 <translation id="5186761973554910131">您在尝试更改密码期间提供的计算机名称无效。请与管理员联系。</translation>
 <translation id="5265714013989877288">无法继续,因为更改您的 Windows 密码时出错。请联系您的管理员。</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_zh-HK.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_zh-HK.xtb
index 41c5965..c2c5b6f 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_zh-HK.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_zh-HK.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">在此裝置安裝 Chrome 時發生問題,因此無法開啟 Google 登入畫面。請聯絡您的管理員。</translation>
 <translation id="4057329986137569701">發生內部錯誤。</translation>
 <translation id="4267670563222825190">找不到帳戶的網域使用者。請聯絡您的管理員。</translation>
-<translation id="4706454071748629324">無法新增使用者。此電腦只允許使用公司帳戶建立一個使用者。</translation>
 <translation id="4744575902940448763">由於機構限制更新裝置上的密碼,因此系統無法將您的公司帳戶密碼同步至 Windows 設定檔。請聯絡您的管理員尋求協助。</translation>
 <translation id="5186761973554910131">嘗試變更密碼時提供的電腦名稱無效。請聯絡您的管理員。</translation>
 <translation id="5265714013989877288">變更您的 Windows 密碼時發生錯誤,因此無法繼續。請聯絡您的管理員。</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_zh-TW.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_zh-TW.xtb
index d6f78857..930cb6ad 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_zh-TW.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_zh-TW.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">這部裝置的 Chrome 安裝作業發生問題,因此無法開啟 Google 登入畫面。請與系統管理員聯絡。</translation>
 <translation id="4057329986137569701">發生內部錯誤。</translation>
 <translation id="4267670563222825190">找不到帳戶的網域使用者。請與你的系統管理員聯絡。</translation>
-<translation id="4706454071748629324">無法新增使用者。在這台電腦上,公司帳戶只能用於建立一位使用者。</translation>
 <translation id="4744575902940448763">由於貴機構禁止更新裝置上的密碼,因此系統無法將你的公司帳戶密碼同步到你的 Windows 設定檔。如需協助,請與系統管理員聯絡。</translation>
 <translation id="5186761973554910131">嘗試變更密碼時提供的電腦名稱無效。請與你的系統管理員聯絡。</translation>
 <translation id="5265714013989877288">變更你的 Windows 密碼時發生錯誤,因此無法繼續。請與系統管理員聯絡。</translation>
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_zu.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_zu.xtb
index 0163e434..abc29221 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_zu.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_zu.xtb
@@ -15,7 +15,6 @@
 <translation id="399130515869721714">Akukwazi ukuvula isikrini sokungena ngemvume se-Google ngoba kunenkinga ngesifaki se-Chrome kule divayisi. Xhumana nomlawuli wakho.</translation>
 <translation id="4057329986137569701">Kuvele iphutha langaphakathi.</translation>
 <translation id="4267670563222825190">Akekho umsebenzisi wesizinda otholelwe i-akhawunti yakho. Sicela uxhumane nomlawuli wakho.</translation>
-<translation id="4706454071748629324">Yehlulekile ukungeza umsebenzisi omusha. Le khompuyutha ivumela kuphela umsebenzisi oyedwa ukuthi adalwe kusetshenziswa i-akhawunti yomsebenzi.</translation>
 <translation id="4744575902940448763">Iphasiwedi yakho ye-akhawunti yomsebenzi ayivumelaniswanga neprofayela lakho le-Windows ngoba izibuyekezo zephasiwedi kudivayisi yakho zikhawulelwe yinhlangano yakho. Xhumana nomlawuli wakho mayelana nosizo.</translation>
 <translation id="5186761973554910131">Kufakwe igama lekhompuyutha elingasebenzi phakathi nokuzama ukushintsha iphasiwedi. Sicela uxhumane nomlawuli wakho.</translation>
 <translation id="5265714013989877288">Akukwazi ukuqhubeka ngoba kube nephutha lapho kushintsha iphasiwedi yakho ye-Windows. Sicela uxhumane nomlawuli wakho.</translation>
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ViewUtils.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ViewUtils.java
index 65f28a1..36dce5c 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ViewUtils.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ViewUtils.java
@@ -6,6 +6,9 @@
 
 import static java.lang.annotation.RetentionPolicy.SOURCE;
 
+import android.support.test.espresso.NoMatchingViewException;
+import android.support.test.espresso.ViewAssertion;
+import android.support.test.espresso.ViewInteraction;
 import android.view.View;
 import android.view.ViewGroup;
 
@@ -95,8 +98,7 @@
     /**
      * Waits until a view matching the given matches any of the given {@link ExpectedViewState}s.
      * Fails if the matcher applies to multiple views. Times out if no view was found while waiting
-     * up to
-     * {@link CriteriaHelper#DEFAULT_MAX_TIME_TO_POLL} milliseconds.
+     * up to {@link CriteriaHelper#DEFAULT_MAX_TIME_TO_POLL} milliseconds.
      * @param root The view group to search in.
      * @param viewMatcher The matcher matching the view that should be waited for.
      * @param viewState State that the matching view should be in. If multiple states are passed,
@@ -108,6 +110,28 @@
     }
 
     /**
+     * Waits until a view matching the given matches any of the given {@link ExpectedViewState}s.
+     * Fails if the matcher applies to multiple views. Times out if no view was found while waiting
+     * up to {@link CriteriaHelper#DEFAULT_MAX_TIME_TO_POLL} milliseconds.
+     * This should be used on {@link ViewInteraction#check} with a {@link ViewGroup}. For example,
+     * the following usage assumes the root view is a {@link ViewGroup}.
+     * <pre>
+     *   onView(isRoot()).check(waitForView(withId(R.id.example_id));
+     * </pre>
+     * @param viewMatcher The matcher matching the view that should be waited for.
+     * @param viewState State that the matching view should be in. If multiple states are passed,
+     *                  the waiting will stop if at least one applies.
+     */
+    public static ViewAssertion waitForView(
+            Matcher<View> viewMatcher, @ExpectedViewState int viewState) {
+        return (View view, NoMatchingViewException noMatchException) -> {
+            if (noMatchException != null) throw noMatchException;
+            CriteriaHelper.pollUiThread(
+                    new ExpectedViewCriteria(viewMatcher, viewState, (ViewGroup) view));
+        };
+    }
+
+    /**
      * Waits until a visible view matching the given matcher appears. Fails if the matcher applies
      * to multiple views.  Times out if no view was found while waiting up to
      * {@link CriteriaHelper#DEFAULT_MAX_TIME_TO_POLL} milliseconds.
@@ -119,6 +143,16 @@
     }
 
     /**
+     * Waits until a visible view matching the given matcher appears. Fails if the matcher applies
+     * to multiple views.  Times out if no view was found while waiting up to
+     * {@link CriteriaHelper#DEFAULT_MAX_TIME_TO_POLL} milliseconds.
+     * @param viewMatcher The matcher matching the view that should be waited for.
+     */
+    public static ViewAssertion waitForView(Matcher<View> viewMatcher) {
+        return waitForView(viewMatcher, VIEW_VISIBLE);
+    }
+
+    /**
      * Wait until the specified view has finished layout updates.
      * @param view The specified view.
      */
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/webapps/WebApkInfoBuilder.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/webapps/WebApkInfoBuilder.java
index dc70df9..e58588f 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/webapps/WebApkInfoBuilder.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/webapps/WebApkInfoBuilder.java
@@ -11,6 +11,7 @@
 import org.chromium.chrome.browser.webapps.WebApkDistributor;
 import org.chromium.chrome.browser.webapps.WebApkInfo;
 import org.chromium.chrome.browser.webapps.WebDisplayMode;
+import org.chromium.chrome.browser.webapps.WebappInfo;
 import org.chromium.content_public.common.ScreenOrientationValues;
 
 import java.util.ArrayList;
@@ -49,7 +50,7 @@
     /**
      * Builds {@link WebApkInfo} object using options that have been set.
      */
-    public WebApkInfo build() {
+    public WebappInfo build() {
         return WebApkInfo.create(mUrl, mScope, null, null, null, null, mDisplayMode,
                 ScreenOrientationValues.DEFAULT, ShortcutSource.UNKNOWN,
                 ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING,
diff --git a/chrome/test/chromedriver/chrome/chrome.h b/chrome/test/chromedriver/chrome/chrome.h
index 2e708f7..95edf66 100644
--- a/chrome/test/chromedriver/chrome/chrome.h
+++ b/chrome/test/chromedriver/chrome/chrome.h
@@ -27,7 +27,14 @@
     kPrompt,
   };
 
-  virtual ~Chrome() {}
+  struct WindowRect {
+    int x;
+    int y;
+    int width;
+    int height;
+  };
+
+  virtual ~Chrome() = default;
 
   virtual Status GetAsDesktop(ChromeDesktopImpl** desktop) = 0;
 
@@ -53,30 +60,13 @@
                            WindowType type,
                            std::string* window_handle) = 0;
 
-  // Gets the size of the specified WebView.
-  virtual Status GetWindowSize(const std::string& id,
-                               int* width,
-                               int* height) = 0;
+  // Gets the rect of the specified WebView
+  virtual Status GetWindowRect(const std::string& id, WindowRect* rect) = 0;
 
   // Sets the rect of the specified WebView
   virtual Status SetWindowRect(const std::string& target_id,
                                const base::DictionaryValue& params) = 0;
 
-  // Sets the size of the specified WebView.
-  virtual Status SetWindowSize(const std::string& target_id,
-                               int width,
-                               int height) = 0;
-
-  // Gets the on-screen position of the specified WebView.
-  virtual Status GetWindowPosition(const std::string& target_id,
-                                   int* x,
-                                   int* y) = 0;
-
-  // Sets the on-screen position of the specified WebView.
-  virtual Status SetWindowPosition(const std::string& target_id,
-                                   int x,
-                                   int y) = 0;
-
   // Maximizes specified WebView.
   virtual Status MaximizeWindow(const std::string& target_id) = 0;
 
diff --git a/chrome/test/chromedriver/chrome/chrome_impl.cc b/chrome/test/chromedriver/chrome/chrome_impl.cc
index a8a0d661..2d78b4c 100644
--- a/chrome/test/chromedriver/chrome/chrome_impl.cc
+++ b/chrome/test/chromedriver/chrome/chrome_impl.cc
@@ -162,33 +162,20 @@
   return ParseWindow(std::move(result), window);
 }
 
-Status ChromeImpl::GetWindowPosition(const std::string& target_id,
-                                     int* x,
-                                     int* y) {
+Status ChromeImpl::GetWindowRect(const std::string& target_id,
+                                 WindowRect* rect) {
   Window window;
   Status status = GetWindow(target_id, &window);
   if (status.IsError())
     return status;
 
-  *x = window.left;
-  *y = window.top;
+  rect->x = window.left;
+  rect->y = window.top;
+  rect->width = window.width;
+  rect->height = window.height;
   return Status(kOk);
 }
 
-Status ChromeImpl::SetWindowPosition(const std::string& target_id,
-                                            int x,
-                                            int y) {
-  Window window;
-  Status status = GetWindow(target_id, &window);
-  if (status.IsError())
-    return status;
-
-  auto bounds = std::make_unique<base::DictionaryValue>();
-  bounds->SetInteger("left", x);
-  bounds->SetInteger("top", y);
-  return SetWindowBounds(&window, target_id, std::move(bounds));
-}
-
 Status ChromeImpl::MaximizeWindow(const std::string& target_id) {
   Window window;
   Status status = GetWindow(target_id, &window);
@@ -259,19 +246,6 @@
   return SetWindowBounds(&window, target_id, std::move(bounds));
 }
 
-Status ChromeImpl::GetWindowSize(const std::string& target_id,
-                                 int* width,
-                                 int* height) {
-  Window window;
-  Status status = GetWindow(target_id, &window);
-  if (status.IsError())
-    return status;
-
-  *width = window.width;
-  *height = window.height;
-  return Status(kOk);
-}
-
 Status ChromeImpl::GetWindowBounds(int window_id, Window* window) {
   Status status = devtools_websocket_client_->ConnectIfNecessary();
   if (status.IsError())
@@ -385,21 +359,6 @@
   }
 }
 
-Status ChromeImpl::SetWindowSize(const std::string& target_id,
-                                        int width,
-                                        int height) {
-  Window window;
-
-  Status status = GetWindow(target_id, &window);
-  if (status.IsError())
-    return status;
-
-  auto bounds = std::make_unique<base::DictionaryValue>();
-  bounds->SetInteger("width", width);
-  bounds->SetInteger("height", height);
-  return SetWindowBounds(&window, target_id, std::move(bounds));
-}
-
 Status ChromeImpl::ParseWindow(std::unique_ptr<base::DictionaryValue> params,
                                Window* window) {
   if (!params->GetInteger("windowId", &window->id))
diff --git a/chrome/test/chromedriver/chrome/chrome_impl.h b/chrome/test/chromedriver/chrome/chrome_impl.h
index 8a3443a..e88037f6 100644
--- a/chrome/test/chromedriver/chrome/chrome_impl.h
+++ b/chrome/test/chromedriver/chrome/chrome_impl.h
@@ -38,13 +38,9 @@
   Status NewWindow(const std::string& target_id,
                    WindowType type,
                    std::string* window_handle) override;
-  Status GetWindowSize(const std::string& id, int* width, int* height) override;
-  Status SetWindowSize(const std::string& target_id,
-                       int width, int height) override;
+  Status GetWindowRect(const std::string& id, WindowRect* rect) override;
   Status SetWindowRect(const std::string& target_id,
                        const base::DictionaryValue& params) override;
-  Status GetWindowPosition(const std::string& id, int* x, int* y) override;
-  Status SetWindowPosition(const std::string& target_id, int x, int y) override;
   Status MaximizeWindow(const std::string& target_id) override;
   Status MinimizeWindow(const std::string& target_id) override;
   Status FullScreenWindow(const std::string& target_id) override;
diff --git a/chrome/test/chromedriver/chrome/stub_chrome.cc b/chrome/test/chromedriver/chrome/stub_chrome.cc
index 7a5113ae..da05366c 100644
--- a/chrome/test/chromedriver/chrome/stub_chrome.cc
+++ b/chrome/test/chromedriver/chrome/stub_chrome.cc
@@ -42,15 +42,7 @@
   return Status(kOk);
 }
 
-Status StubChrome::GetWindowSize(const std::string& id,
-                                 int* width,
-                                 int* height) {
-  return Status(kOk);
-}
-
-Status StubChrome::SetWindowSize(const std::string& id,
-                                 int width,
-                                 int height) {
+Status StubChrome::GetWindowRect(const std::string& id, WindowRect* rect) {
   return Status(kOk);
 }
 
@@ -59,17 +51,6 @@
   return Status(kOk);
 }
 
-Status StubChrome::GetWindowPosition(const std::string& target_id,
-                                     int* x,
-                                     int* y) {
-  return Status(kOk);
-}
-
-Status StubChrome::SetWindowPosition(const std::string& target_id,
-                                     int x, int y) {
-  return Status(kOk);
-}
-
 Status StubChrome::MaximizeWindow(const std::string& target_id) {
   return Status(kOk);
 }
diff --git a/chrome/test/chromedriver/chrome/stub_chrome.h b/chrome/test/chromedriver/chrome/stub_chrome.h
index f76572a0..7da93d7 100644
--- a/chrome/test/chromedriver/chrome/stub_chrome.h
+++ b/chrome/test/chromedriver/chrome/stub_chrome.h
@@ -32,14 +32,9 @@
   Status NewWindow(const std::string& target_id,
                    WindowType type,
                    std::string* window_handle) override;
-  Status GetWindowSize(const std::string& id, int* width, int* height) override;
-  Status SetWindowSize(const std::string& id, int width, int height) override;
+  Status GetWindowRect(const std::string& id, WindowRect* rect) override;
   Status SetWindowRect(const std::string& target_id,
                        const base::DictionaryValue& params) override;
-  Status GetWindowPosition(const std::string& target_id,
-                           int* x,
-                           int* y) override;
-  Status SetWindowPosition(const std::string& target_id, int x, int y) override;
   Status MaximizeWindow(const std::string& target_id) override;
   Status MinimizeWindow(const std::string& target_id) override;
   Status FullScreenWindow(const std::string& target_id) override;
diff --git a/chrome/test/chromedriver/session_commands.cc b/chrome/test/chromedriver/session_commands.cc
index b914913..33b6a8b 100644
--- a/chrome/test/chromedriver/session_commands.cc
+++ b/chrome/test/chromedriver/session_commands.cc
@@ -1107,15 +1107,15 @@
 Status ExecuteGetWindowPosition(Session* session,
                                 const base::DictionaryValue& params,
                                 std::unique_ptr<base::Value>* value) {
-  int x, y;
-  Status status = session->chrome->GetWindowPosition(session->window, &x, &y);
+  Chrome::WindowRect windowRect;
+  Status status = session->chrome->GetWindowRect(session->window, &windowRect);
 
   if (status.IsError())
     return status;
 
   base::DictionaryValue position;
-  position.SetInteger("x", x);
-  position.SetInteger("y", y);
+  position.SetInteger("x", windowRect.x);
+  position.SetInteger("y", windowRect.y);
   value->reset(position.DeepCopy());
   return Status(kOk);
 }
@@ -1128,24 +1128,24 @@
   if (!params.GetDouble("x", &x) || !params.GetDouble("y", &y))
     return Status(kInvalidArgument, "missing or invalid 'x' or 'y'");
 
-  return session->chrome->SetWindowPosition(session->window,
-                                            static_cast<int>(x),
-                                            static_cast<int>(y));
+  base::DictionaryValue rect_params;
+  rect_params.SetInteger("x", static_cast<int>(x));
+  rect_params.SetInteger("y", static_cast<int>(y));
+  return session->chrome->SetWindowRect(session->window, rect_params);
 }
 
 Status ExecuteGetWindowSize(Session* session,
                             const base::DictionaryValue& params,
                             std::unique_ptr<base::Value>* value) {
-  int width, height;
+  Chrome::WindowRect windowRect;
+  Status status = session->chrome->GetWindowRect(session->window, &windowRect);
 
-  Status status =
-      session->chrome->GetWindowSize(session->window, &width, &height);
   if (status.IsError())
     return status;
 
   base::DictionaryValue size;
-  size.SetInteger("width", width);
-  size.SetInteger("height", height);
+  size.SetInteger("width", windowRect.width);
+  size.SetInteger("height", windowRect.height);
   value->reset(size.DeepCopy());
   return Status(kOk);
 }
@@ -1159,9 +1159,10 @@
       !params.GetDouble("height", &height))
     return Status(kInvalidArgument, "missing or invalid 'width' or 'height'");
 
-  return session->chrome->SetWindowSize(session->window,
-                                        static_cast<int>(width),
-                                        static_cast<int>(height));
+  base::DictionaryValue rect_params;
+  rect_params.SetInteger("width", static_cast<int>(width));
+  rect_params.SetInteger("height", static_cast<int>(height));
+  return session->chrome->SetWindowRect(session->window, rect_params);
 }
 
 Status ExecuteGetAvailableLogTypes(Session* session,
diff --git a/chrome/test/chromedriver/window_commands.cc b/chrome/test/chromedriver/window_commands.cc
index 56fa70d..9afef867 100644
--- a/chrome/test/chromedriver/window_commands.cc
+++ b/chrome/test/chromedriver/window_commands.cc
@@ -2107,31 +2107,21 @@
   return web_view->TakeHeapSnapshot(value);
 }
 
-// TODO(johnchen): There is no public method in Chrome or ChromeDesktopImpl to
-// get both size and position in one call. What we're doing now is kind of
-// wasteful, since both GetWindowPosition and GetWindowSize end up getting both
-// position and size, and then discard one of the two pieces.
 Status ExecuteGetWindowRect(Session* session,
                             WebView* web_view,
                             const base::DictionaryValue& params,
                             std::unique_ptr<base::Value>* value,
                             Timeout* timeout) {
-  int x, y;
-  int width, height;
-
-  Status status = session->chrome->GetWindowPosition(session->window, &x, &y);
-  if (status.IsError())
-    return status;
-  status = session->chrome->GetWindowSize(session->window, &width, &height);
-
+  Chrome::WindowRect windowRect;
+  Status status = session->chrome->GetWindowRect(session->window, &windowRect);
   if (status.IsError())
     return status;
 
   base::DictionaryValue rect;
-  rect.SetInteger("x", x);
-  rect.SetInteger("y", y);
-  rect.SetInteger("width", width);
-  rect.SetInteger("height", height);
+  rect.SetInteger("x", windowRect.x);
+  rect.SetInteger("y", windowRect.y);
+  rect.SetInteger("width", windowRect.width);
+  rect.SetInteger("height", windowRect.height);
   value->reset(rect.DeepCopy());
   return Status(kOk);
 }
diff --git a/chrome/test/data/android/render_tests/TabSelectionEditorTest.list_view_one_selected_tab.Nexus_5X-23.png.sha1 b/chrome/test/data/android/render_tests/TabSelectionEditorTest.list_view_one_selected_tab.Nexus_5X-23.png.sha1
index 85a799c6..e3bf735 100644
--- a/chrome/test/data/android/render_tests/TabSelectionEditorTest.list_view_one_selected_tab.Nexus_5X-23.png.sha1
+++ b/chrome/test/data/android/render_tests/TabSelectionEditorTest.list_view_one_selected_tab.Nexus_5X-23.png.sha1
@@ -1 +1 @@
-d2a3d54324a4998c56d8b9d6e8025dd69027a22b
\ No newline at end of file
+1806aba0441b7fdaba023f5a4855c5dc94a9d0f6
\ No newline at end of file
diff --git a/chrome/test/data/webui/new_tab_page/fakebox_test.js b/chrome/test/data/webui/new_tab_page/fakebox_test.js
index 46cfb5a..d039e45 100644
--- a/chrome/test/data/webui/new_tab_page/fakebox_test.js
+++ b/chrome/test/data/webui/new_tab_page/fakebox_test.js
@@ -5,7 +5,6 @@
 import 'chrome://new-tab-page/fakebox.js';
 
 import {BrowserProxy} from 'chrome://new-tab-page/browser_proxy.js';
-import {down} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
 import {assertNotStyle, assertStyle, createTestProxy, NONE_ANIMATION} from 'chrome://test/new_tab_page/test_support.js';
 import {eventToPromise} from 'chrome://test/test_util.m.js';
 
@@ -88,7 +87,7 @@
 
   test('on mouse down focuses omnibox', async () => {
     // Act.
-    down(fakebox.$.input);
+    fakebox.$.input.dispatchEvent(new PointerEvent('pointerdown'));
 
     // Assert.
     await testProxy.handler.whenCalled('focusOmnibox');
diff --git a/chrome/test/data/webui/settings/privacy_page_test.js b/chrome/test/data/webui/settings/privacy_page_test.js
index f24548c..1ad2740 100644
--- a/chrome/test/data/webui/settings/privacy_page_test.js
+++ b/chrome/test/data/webui/settings/privacy_page_test.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // clang-format off
-// #import {SiteSettingsPrefsBrowserProxyImpl} from 'chrome://settings/lazy_load.js';
+// #import {CookieControlsMode, SiteSettingsPrefsBrowserProxyImpl} from 'chrome://settings/lazy_load.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {MetricsBrowserProxyImpl, PrivacyElementInteractions, PrivacyPageBrowserProxyImpl, SyncBrowserProxyImpl, HatsBrowserProxyImpl, Router, routes} from 'chrome://settings/settings.js';
 // #import {TestMetricsBrowserProxy} from 'chrome://test/settings/test_metrics_browser_proxy.m.js';
@@ -165,6 +165,7 @@
 
   teardown(function() {
     page.remove();
+    settings.Router.getInstance().navigateTo(settings.routes.BASIC);
   });
 
   test('showClearBrowsingDataDialog', function() {
@@ -226,6 +227,30 @@
           test_util.isChildVisible(page, '#security-keys-subpage-trigger'));
     }
   });
+
+  test('BlockThirdPartyCookiesToggle', async function() {
+    page.prefs.profile.block_third_party_cookies = {value: false};
+    page.prefs.profile.cookie_controls_mode = {
+      value: settings.CookieControlsMode.DISABLED
+    };
+    settings.Router.getInstance().navigateTo(
+        settings.routes.SITE_SETTINGS_COOKIES);
+    Polymer.dom.flush();
+
+    page.$$('#blockThirdPartyCookies').click();
+    Polymer.dom.flush();
+    assertTrue(page.prefs.profile.block_third_party_cookies.value);
+    assertEquals(
+        page.prefs.profile.cookie_controls_mode.value,
+        settings.CookieControlsMode.ENABLED);
+
+    page.$$('#blockThirdPartyCookies').click();
+    Polymer.dom.flush();
+    assertFalse(page.prefs.profile.block_third_party_cookies.value);
+    assertEquals(
+        page.prefs.profile.cookie_controls_mode.value,
+        settings.CookieControlsMode.DISABLED);
+  });
 });
 
 suite('PrivacyPageRedesignEnabled', function() {
diff --git a/chromecast/media/BUILD.gn b/chromecast/media/BUILD.gn
index ef469d7..3cd39a1 100644
--- a/chromecast/media/BUILD.gn
+++ b/chromecast/media/BUILD.gn
@@ -77,6 +77,7 @@
     "//chromecast/base",
     "//chromecast/base/metrics:test_support",
     "//chromecast/common/mojom",
+    "//chromecast/media/api:test_support",
     "//chromecast/media/audio:unittests",
     "//chromecast/media/audio/capture_service:unittests",
     "//chromecast/media/base:monotonic_clock",
diff --git a/chromecast/media/api/BUILD.gn b/chromecast/media/api/BUILD.gn
index 6de7b4f5..66e896b 100644
--- a/chromecast/media/api/BUILD.gn
+++ b/chromecast/media/api/BUILD.gn
@@ -20,3 +20,19 @@
 
   assert_no_deps = [ "//media" ]
 }
+
+cast_source_set("test_support") {
+  testonly = true
+  sources = [
+    "test/mock_cma_backend.cc",
+    "test/mock_cma_backend.h",
+  ]
+
+  deps = [
+    "//chromecast/media/api",
+    "//testing/gmock",
+    "//testing/gtest",
+  ]
+
+  assert_no_deps = [ "//media" ]
+}
diff --git a/chromecast/media/cma/test/mock_cma_backend.cc b/chromecast/media/api/test/mock_cma_backend.cc
similarity index 92%
rename from chromecast/media/cma/test/mock_cma_backend.cc
rename to chromecast/media/api/test/mock_cma_backend.cc
index b2ca6f2..9cd2938 100644
--- a/chromecast/media/cma/test/mock_cma_backend.cc
+++ b/chromecast/media/api/test/mock_cma_backend.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/media/cma/test/mock_cma_backend.h"
+#include "chromecast/media/api/test/mock_cma_backend.h"
 
 namespace chromecast {
 namespace media {
diff --git a/chromecast/media/cma/test/mock_cma_backend.h b/chromecast/media/api/test/mock_cma_backend.h
similarity index 92%
rename from chromecast/media/cma/test/mock_cma_backend.h
rename to chromecast/media/api/test/mock_cma_backend.h
index 6467f3a5..cc4d683 100644
--- a/chromecast/media/cma/test/mock_cma_backend.h
+++ b/chromecast/media/api/test/mock_cma_backend.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_MEDIA_CMA_BACKEND_MOCK_CMA_BACKEND_H_
-#define CHROMECAST_MEDIA_CMA_BACKEND_MOCK_CMA_BACKEND_H_
+#ifndef CHROMECAST_MEDIA_API_TEST_MOCK_CMA_BACKEND_H_
+#define CHROMECAST_MEDIA_API_TEST_MOCK_CMA_BACKEND_H_
 
 #include <string>
 
@@ -71,4 +71,4 @@
 }  // namespace media
 }  // namespace chromecast
 
-#endif  // CHROMECAST_MEDIA_CMA_BACKEND_MOCK_CMA_BACKEND_H_
+#endif  // CHROMECAST_MEDIA_API_TEST_MOCK_CMA_BACKEND_H_
diff --git a/chromecast/media/audio/cast_audio_manager_unittest.cc b/chromecast/media/audio/cast_audio_manager_unittest.cc
index 4d7193c..3a0744ddf 100644
--- a/chromecast/media/audio/cast_audio_manager_unittest.cc
+++ b/chromecast/media/audio/cast_audio_manager_unittest.cc
@@ -17,7 +17,7 @@
 #include "chromecast/common/mojom/multiroom.mojom.h"
 #include "chromecast/common/mojom/service_connector.mojom.h"
 #include "chromecast/media/api/cma_backend.h"
-#include "chromecast/media/cma/test/mock_cma_backend.h"
+#include "chromecast/media/api/test/mock_cma_backend.h"
 #include "chromecast/media/cma/test/mock_cma_backend_factory.h"
 #include "chromecast/media/cma/test/mock_multiroom_manager.h"
 #include "media/audio/audio_device_info_accessor_for_tests.h"
@@ -36,8 +36,8 @@
 using testing::_;
 using testing::AnyNumber;
 using testing::Invoke;
-using testing::Return;
 using testing::NiceMock;
+using testing::Return;
 using testing::StrictMock;
 
 namespace {
diff --git a/chromecast/media/cma/BUILD.gn b/chromecast/media/cma/BUILD.gn
index 0d2bcb2..0a26786 100644
--- a/chromecast/media/cma/BUILD.gn
+++ b/chromecast/media/cma/BUILD.gn
@@ -21,8 +21,6 @@
     "test/frame_generator_for_test.h",
     "test/frame_segmenter_for_test.cc",
     "test/frame_segmenter_for_test.h",
-    "test/mock_cma_backend.cc",
-    "test/mock_cma_backend.h",
     "test/mock_cma_backend_factory.cc",
     "test/mock_cma_backend_factory.h",
     "test/mock_frame_consumer.cc",
@@ -72,6 +70,7 @@
     "//chromecast/media",
     "//chromecast/media:libcast_media",
     "//chromecast/media/api",
+    "//chromecast/media/api:test_support",
     "//media",
     "//testing/gmock",
     "//testing/gtest",
diff --git a/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc b/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc
index 2ba3577..77ac5adc 100644
--- a/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc
+++ b/chromecast/media/cma/pipeline/audio_video_pipeline_impl_unittest.cc
@@ -11,13 +11,13 @@
 #include "base/stl_util.h"
 #include "base/test/task_environment.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "chromecast/media/api/test/mock_cma_backend.h"
 #include "chromecast/media/base/decrypt_context_impl.h"
 #include "chromecast/media/cdm/cast_cdm_context.h"
 #include "chromecast/media/cma/pipeline/av_pipeline_client.h"
 #include "chromecast/media/cma/pipeline/media_pipeline_impl.h"
 #include "chromecast/media/cma/pipeline/video_pipeline_client.h"
 #include "chromecast/media/cma/test/frame_generator_for_test.h"
-#include "chromecast/media/cma/test/mock_cma_backend.h"
 #include "chromecast/media/cma/test/mock_frame_provider.h"
 #include "chromecast/public/media/cast_decoder_buffer.h"
 #include "media/base/audio_decoder_config.h"
diff --git a/chromeos/system/BUILD.gn b/chromeos/system/BUILD.gn
index a4766b3a..8a2b462 100644
--- a/chromeos/system/BUILD.gn
+++ b/chromeos/system/BUILD.gn
@@ -9,9 +9,12 @@
   defines = [ "IS_CHROMEOS_SYSTEM_IMPL" ]
   deps = [
     "//base",
+    "//chromeos:chromeos_export",
     "//chromeos/constants",
   ]
   sources = [
+    "core_scheduling.cc",
+    "core_scheduling.h",
     "cpu_temperature_reader.cc",
     "cpu_temperature_reader.h",
     "devicemode.cc",
diff --git a/chromeos/system/core_scheduling.cc b/chromeos/system/core_scheduling.cc
new file mode 100644
index 0000000..c3e84533
--- /dev/null
+++ b/chromeos/system/core_scheduling.cc
@@ -0,0 +1,39 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromeos/system/core_scheduling.h"
+
+#include <base/logging.h>
+#include <errno.h>
+#include <sys/prctl.h>
+
+#include "base/feature_list.h"
+#include "base/metrics/field_trial_params.h"
+
+#ifndef PR_SET_CORE_SCHED
+#define PR_SET_CORE_SCHED 57
+#endif
+
+namespace chromeos {
+namespace system {
+
+namespace {
+const base::Feature kCoreScheduling{"CoreSchedulingEnabled",
+                                    base::FEATURE_ENABLED_BY_DEFAULT};
+}
+
+void EnableCoreSchedulingIfAvailable() {
+  if (!base::FeatureList::IsEnabled(kCoreScheduling)) {
+    return;
+  }
+
+  if (prctl(PR_SET_CORE_SCHED, 1) == -1) {
+    // prctl(2) will return EINVAL for unknown functions. We're tolerant to this
+    // and will log an error message for non EINVAL errnos.
+    PLOG_IF(WARNING, errno != EINVAL) << "Unable to set core scheduling";
+  }
+}
+
+}  // namespace system
+}  // namespace chromeos
diff --git a/chromeos/system/core_scheduling.h b/chromeos/system/core_scheduling.h
new file mode 100644
index 0000000..dfcc9f6
--- /dev/null
+++ b/chromeos/system/core_scheduling.h
@@ -0,0 +1,20 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMEOS_SYSTEM_CORE_SCHEDULING_H_
+#define CHROMEOS_SYSTEM_CORE_SCHEDULING_H_
+
+#include "chromeos/chromeos_export.h"
+
+namespace chromeos {
+namespace system {
+
+// EnableCoreScheduVlingIfAvailable will turn on core scheduling for a process
+// if it's available,
+void CHROMEOS_EXPORT EnableCoreSchedulingIfAvailable();
+
+}  // namespace system
+}  // namespace chromeos
+
+#endif  // CHROMEOS_SYSTEM_CORE_SCHEDULING_H_
diff --git a/components/autofill/core/browser/data_model/credit_card.cc b/components/autofill/core/browser/data_model/credit_card.cc
index 7a2a172a..1278709 100644
--- a/components/autofill/core/browser/data_model/credit_card.cc
+++ b/components/autofill/core/browser/data_model/credit_card.cc
@@ -33,6 +33,7 @@
 #include "components/autofill/core/common/autofill_clock.h"
 #include "components/autofill/core/common/autofill_constants.h"
 #include "components/autofill/core/common/autofill_features.h"
+#include "components/autofill/core/common/autofill_payments_features.h"
 #include "components/autofill/core/common/autofill_regexes.h"
 #include "components/autofill/core/common/form_field_data.h"
 #include "components/grit/components_scaled_resources.h"
@@ -55,6 +56,8 @@
 
 const base::char16 kCreditCardObfuscationSymbol = '*';
 
+const int kMaxNicknameLength = 25;
+
 base::string16 NetworkForFill(const std::string& network) {
   if (network == kAmericanExpressCard)
     return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_AMEX);
@@ -778,6 +781,15 @@
                          : network + ASCIIToUTF16("  ") + obfuscated_string;
 }
 
+base::string16 CreditCard::NicknameOrNetworkAndLastFourDigits() const {
+  if (base::FeatureList::IsEnabled(
+          features::kAutofillEnableSurfacingServerCardNickname) &&
+      HasValidNickname()) {
+    return NicknameAndLastFourDigits();
+  }
+  return NetworkAndLastFourDigits();
+}
+
 base::string16
 CreditCard::NetworkOrBankNameLastFourDigitsAndDescriptiveExpiration(
     const std::string& app_locale) const {
@@ -831,6 +843,15 @@
   return !name_on_card_.empty();
 }
 
+bool CreditCard::HasValidNickname() const {
+  // Valid nickname: 1) Non-empty 2) Doesn't exceed max length 3) Doesn't
+  // contain newline or tab characters.
+  // TODO(crbug/1059087): Trim whitespaces/newlines when set nickname.
+  return !nickname_.empty() && nickname_.size() <= kMaxNicknameLength &&
+         nickname_.find('\n') == base::string16::npos &&
+         nickname_.find('\t') == base::string16::npos;
+}
+
 base::string16 CreditCard::Expiration2DigitYearAsString() const {
   return data_util::Expiration2DigitYearAsString(expiration_year_);
 }
@@ -881,6 +902,18 @@
   return ::autofill::NetworkForFill(network_);
 }
 
+base::string16 CreditCard::NicknameAndLastFourDigits() const {
+  // Should call HasValidNickname() to check valid nickname before calling this.
+  DCHECK(HasValidNickname());
+  const base::string16 digits = LastFourDigits();
+  // If digits are empty, return nickname.
+  if (digits.empty())
+    return nickname_;
+
+  return nickname_ + ASCIIToUTF16("  ") +
+         internal::GetObfuscatedStringForCardDigits(digits);
+}
+
 void CreditCard::SetNumber(const base::string16& number) {
   number_ = number;
 
diff --git a/components/autofill/core/browser/data_model/credit_card.h b/components/autofill/core/browser/data_model/credit_card.h
index 1e687e3..c6898e5 100644
--- a/components/autofill/core/browser/data_model/credit_card.h
+++ b/components/autofill/core/browser/data_model/credit_card.h
@@ -237,6 +237,9 @@
   base::string16 ObfuscatedLastFourDigits() const;
   // A label for this card formatted as 'IssuerNetwork - ****2345'.
   base::string16 NetworkAndLastFourDigits() const;
+  // A label for this card formatted as 'Nickname - ****2345' if nickname is
+  // available and valid; otherwise, formatted as 'IssuerNetwork - ****2345'.
+  base::string16 NicknameOrNetworkAndLastFourDigits() const;
   // A label for this card formatted as
   // 'BankName/Netowrk' - ****2345, expires on MM/YY' if bank name
   // experiment turned on and bank name available; otherwise, formatted as
@@ -266,10 +269,13 @@
   // Returns whether the card has a cardholder name.
   bool HasNameOnCard() const;
 
+  // Returns whether the card has a valid nickname.
+  bool HasValidNickname() const;
+
  private:
   FRIEND_TEST_ALL_PREFIXES(CreditCardTest, SetExpirationDateFromString);
   FRIEND_TEST_ALL_PREFIXES(CreditCardTest, SetExpirationYearFromString);
-  FRIEND_TEST_ALL_PREFIXES(CreditCardTest, BankNameAndLastFourDigitsStrings);
+  FRIEND_TEST_ALL_PREFIXES(CreditCardTest, NicknameAndLastFourDigitsStrings);
 
   base::string16 Expiration2DigitYearAsString() const;
 
@@ -284,6 +290,10 @@
   // The issuer network of the card to fill in to the page, e.g. 'Mastercard'.
   base::string16 NetworkForFill() const;
 
+  // A label for this card formatted as 'Nickname - ****2345'. Always call
+  // HasValidNickname() before calling this.
+  base::string16 NicknameAndLastFourDigits() const;
+
   // Sets the name_on_card_ value based on the saved name parts.
   void SetNameOnCardFromSeparateParts();
 
diff --git a/components/autofill/core/browser/data_model/credit_card_unittest.cc b/components/autofill/core/browser/data_model/credit_card_unittest.cc
index 429086c6..b16224a2 100644
--- a/components/autofill/core/browser/data_model/credit_card_unittest.cc
+++ b/components/autofill/core/browser/data_model/credit_card_unittest.cc
@@ -6,9 +6,11 @@
 
 #include "base/guid.h"
 #include "base/macros.h"
+#include "base/strings/string16.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/metrics/histogram_tester.h"
+#include "base/test/scoped_feature_list.h"
 #include "base/time/time.h"
 #include "build/build_config.h"
 #include "components/autofill/core/browser/autofill_experiments.h"
@@ -20,6 +22,7 @@
 #include "components/autofill/core/browser/validation.h"
 #include "components/autofill/core/common/autofill_clock.h"
 #include "components/autofill/core/common/autofill_constants.h"
+#include "components/autofill/core/common/autofill_payments_features.h"
 #include "components/autofill/core/common/form_field_data.h"
 #include "components/grit/components_scaled_resources.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -55,6 +58,21 @@
     "3056 9309 0259 04aa",  /* non-digit characters */
 };
 
+const char* const kValidNicknames[] = {
+    "Grocery Card", "2% Cashback online",
+    "Mastercard \\ud83d\\udcb3", /* Nickname with UTF encoded emoji */
+};
+
+const char* const kInvalidNicknames[] = {
+    "",                                      /* empty */
+    "Nickname length exceeds 25 characters", /* too long */
+    "\n Grocery Card",                       /* Leading newline */
+    "Grocery Card \n",                       /* Newline in the end */
+    "Grocery \n Card",                       /* Newline within text */
+    "Grocery Card \t",                       /* Contains tab */
+    "Grocery \t\n Card",                     /* Newline and tab */
+};
+
 // Time moves on. Today is yesterday's tomorrow. Tests don't like time moving
 // on, in particular if Credit Card expiration is compared to local time.
 // Use this function to generate a year in the future.
@@ -157,6 +175,74 @@
             obfuscated5);
 }
 
+TEST(CreditCardTest, NicknameAndLastFourDigitsStrings) {
+  base::string16 valid_nickname = ASCIIToUTF16("My Visa Card");
+
+  // Case 1: No credit card number but has nickname. Only return nickname.
+  CreditCard credit_card1(base::GenerateGUID(), "https://www.example.com/");
+  test::SetCreditCardInfo(&credit_card1, "John Dillinger", "", "01", "2020",
+                          "1");
+  credit_card1.set_nickname(valid_nickname);
+  EXPECT_EQ(valid_nickname, credit_card1.NicknameAndLastFourDigits());
+
+  // Case 2: Have everything.
+  CreditCard credit_card2(base::GenerateGUID(), "https://www.example.com/");
+  test::SetCreditCardInfo(&credit_card2, "John Dillinger",
+                          "5105 1051 0510 5100", "01", "2020", "1");
+  credit_card2.set_nickname(valid_nickname);
+  EXPECT_EQ(
+      valid_nickname + UTF8ToUTF16(std::string("  ") +
+                                   test::ObfuscatedCardDigitsAsUTF8("5100")),
+      credit_card2.NicknameAndLastFourDigits());
+}
+
+TEST(CreditCardTest, NicknameOrNetworkAndLastFourDigitsStrings) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  base::string16 valid_nickname = ASCIIToUTF16("My Visa Card");
+  base::string16 invalid_nickname = ASCIIToUTF16("My Visa\n Card");
+  // Enable the flag.
+  scoped_feature_list.InitAndEnableFeature(
+      features::kAutofillEnableSurfacingServerCardNickname);
+
+  // Case 1: Nickname name is invalid -> show network name.
+  CreditCard credit_card1(base::GenerateGUID(), "https://www.example.com/");
+  test::SetCreditCardInfo(&credit_card1, "John Dillinger",
+                          "5105 1051 0510 5100" /* Mastercard */, "01", "2020",
+                          "1");
+  credit_card1.set_nickname(invalid_nickname);
+  EXPECT_FALSE(credit_card1.HasValidNickname());
+  EXPECT_EQ(UTF8ToUTF16(std::string("Mastercard  ") +
+                        test::ObfuscatedCardDigitsAsUTF8("5100")),
+            credit_card1.NicknameOrNetworkAndLastFourDigits());
+
+  // Case 2: Experiment is on and nickname is valid -> show nickname.
+  CreditCard credit_card2(base::GenerateGUID(), "https://www.example.com/");
+  test::SetCreditCardInfo(&credit_card2, "John Dillinger",
+                          "5105 1051 0510 5100" /* Mastercard */, "01", "2020",
+                          "1");
+  credit_card2.set_nickname(valid_nickname);
+  EXPECT_TRUE(credit_card2.HasValidNickname());
+  EXPECT_EQ(
+      valid_nickname + UTF8ToUTF16(std::string("  ") +
+                                   test::ObfuscatedCardDigitsAsUTF8("5100")),
+      credit_card2.NicknameOrNetworkAndLastFourDigits());
+
+  // Case 3: Experiment off -> show network name.
+  // Reset and disable the feature flag.
+  scoped_feature_list.Reset();
+  scoped_feature_list.InitAndDisableFeature(
+      features::kAutofillEnableSurfacingServerCardNickname);
+  CreditCard credit_card3(base::GenerateGUID(), "https://www.example.com/");
+  test::SetCreditCardInfo(&credit_card3, "John Dillinger",
+                          "5105 1051 0510 5100" /* Mastercard */, "01", "2020",
+                          "1");
+  credit_card3.set_nickname(valid_nickname);
+  EXPECT_TRUE(credit_card3.HasValidNickname());
+  EXPECT_EQ(UTF8ToUTF16(std::string("Mastercard  ") +
+                        test::ObfuscatedCardDigitsAsUTF8("5100")),
+            credit_card3.NicknameOrNetworkAndLastFourDigits());
+}
+
 TEST(CreditCardTest, AssignmentOperator) {
   CreditCard a(base::GenerateGUID(), test::kEmptyOrigin);
   test::SetCreditCardInfo(&a, "John Dillinger", "123456789012", "01", "2010",
@@ -971,6 +1057,23 @@
   }
 }
 
+TEST(CreditCardTest, HasValidNickname) {
+  CreditCard card(base::GenerateGUID(), "https://www.example.com/");
+  test::SetCreditCardInfo(&card, "John Dillinger", "5105 1051 0510 5100", "01",
+                          "2020", "1");
+
+  for (const char* valid_nickname : kValidNicknames) {
+    SCOPED_TRACE(valid_nickname);
+    card.set_nickname(UTF8ToUTF16(valid_nickname));
+    EXPECT_TRUE(card.HasValidNickname());
+  }
+  for (const char* invalid_nickname : kInvalidNicknames) {
+    SCOPED_TRACE(invalid_nickname);
+    card.set_nickname(UTF8ToUTF16(invalid_nickname));
+    EXPECT_FALSE(card.HasValidNickname());
+  }
+}
+
 // Verify that we preserve exactly what the user typed for credit card numbers.
 TEST(CreditCardTest, SetRawInfoCreditCardNumber) {
   CreditCard card(base::GenerateGUID(), "https://www.example.com/");
diff --git a/components/autofill/core/common/autofill_payments_features.cc b/components/autofill/core/common/autofill_payments_features.cc
index 9e81ee838..00fc1d7 100644
--- a/components/autofill/core/common/autofill_payments_features.cc
+++ b/components/autofill/core/common/autofill_payments_features.cc
@@ -48,6 +48,12 @@
     "AutofillEnableLocalCardMigrationForNonSyncUser",
     base::FEATURE_ENABLED_BY_DEFAULT};
 
+// When enabled, if Google Payments cards were given nicknames in a Google Pay
+// app, Autofill will surface these nicknames in suggestions.
+const base::Feature kAutofillEnableSurfacingServerCardNickname{
+    "AutofillEnableSurfacingServerCardNickname",
+    base::FEATURE_DISABLED_BY_DEFAULT};
+
 // When enabled, Autofill data related icons will be shown in the status
 // chip in toolbar along with the avatar toolbar button.
 const base::Feature kAutofillEnableToolbarStatusChip{
diff --git a/components/autofill/core/common/autofill_payments_features.h b/components/autofill/core/common/autofill_payments_features.h
index a3379947..e383725 100644
--- a/components/autofill/core/common/autofill_payments_features.h
+++ b/components/autofill/core/common/autofill_payments_features.h
@@ -24,6 +24,7 @@
 extern const base::Feature kAutofillCreditCardAuthentication;
 extern const base::Feature kAutofillCreditCardUploadFeedback;
 extern const base::Feature kAutofillEnableLocalCardMigrationForNonSyncUser;
+extern const base::Feature kAutofillEnableSurfacingServerCardNickname;
 extern const base::Feature kAutofillEnableToolbarStatusChip;
 extern const base::Feature kAutofillEnableVirtualCard;
 extern const base::Feature kAutofillNoLocalSaveOnUnmaskSuccess;
diff --git a/components/browser_ui/modaldialog/android/java/src/org/chromium/components/browser_ui/modaldialog/TabModalPresenter.java b/components/browser_ui/modaldialog/android/java/src/org/chromium/components/browser_ui/modaldialog/TabModalPresenter.java
index 5788a592..035aa6e3 100644
--- a/components/browser_ui/modaldialog/android/java/src/org/chromium/components/browser_ui/modaldialog/TabModalPresenter.java
+++ b/components/browser_ui/modaldialog/android/java/src/org/chromium/components/browser_ui/modaldialog/TabModalPresenter.java
@@ -35,6 +35,7 @@
  * Several abstract methods allow embedder-specific specializations.
  */
 public abstract class TabModalPresenter extends ModalDialogManager.Presenter {
+    /** Enter and exit animation duration. */
     private static final int ENTER_EXIT_ANIMATION_DURATION_MS = 200;
 
     private final Context mContext;
@@ -49,9 +50,6 @@
     /** Whether the action bar on selected text is temporarily cleared for showing dialogs. */
     private boolean mDidClearTextControls;
 
-    /** Enter and exit animation duration that can be overwritten in tests. */
-    private int mEnterExitAnimationDurationMs;
-
     private class ViewBinder extends ModalDialogViewBinder {
         @Override
         public void bind(PropertyModel model, ModalDialogView view, PropertyKey propertyKey) {
@@ -76,7 +74,6 @@
      */
     public TabModalPresenter(Context context) {
         mContext = context;
-        mEnterExitAnimationDurationMs = ENTER_EXIT_ANIMATION_DURATION_MS;
     }
 
     /**
@@ -206,7 +203,7 @@
         mDialogContainer.setAlpha(0f);
         mDialogContainer.setVisibility(View.VISIBLE);
         mDialogContainer.animate()
-                .setDuration(mEnterExitAnimationDurationMs)
+                .setDuration(ENTER_EXIT_ANIMATION_DURATION_MS)
                 .alpha(1f)
                 .setInterpolator(BakedBezierInterpolator.FADE_IN_CURVE)
                 .setListener(new AnimatorListenerAdapter() {
@@ -224,7 +221,7 @@
         dialogView.clearFocus();
         mDialogContainer.animate().cancel();
         mDialogContainer.animate()
-                .setDuration(mEnterExitAnimationDurationMs)
+                .setDuration(ENTER_EXIT_ANIMATION_DURATION_MS)
                 .alpha(0f)
                 .setInterpolator(BakedBezierInterpolator.FADE_OUT_CURVE)
                 .setListener(new AnimatorListenerAdapter() {
@@ -241,9 +238,4 @@
     public View getDialogContainerForTest() {
         return mDialogContainer;
     }
-
-    @VisibleForTesting
-    public void disableAnimationForTest() {
-        mEnterExitAnimationDurationMs = 0;
-    }
 }
diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/text/TextViewWithCompoundDrawables.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/text/TextViewWithCompoundDrawables.java
index 9d76495..a2d6a434 100644
--- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/text/TextViewWithCompoundDrawables.java
+++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/text/TextViewWithCompoundDrawables.java
@@ -13,6 +13,7 @@
 import android.util.AttributeSet;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatTextView;
 
 import org.chromium.components.browser_ui.widget.R;
@@ -59,6 +60,19 @@
         }
     }
 
+    @Override
+    public void setCompoundDrawablesRelative(@Nullable Drawable start, @Nullable Drawable top,
+            @Nullable Drawable end, @Nullable Drawable bottom) {
+        Drawable[] drawables = {start, top, end, bottom};
+        setDrawableBounds(drawables);
+
+        if (mDrawableTint != null) {
+            setDrawableTint(drawables);
+        }
+
+        super.setCompoundDrawablesRelative(drawables[0], drawables[1], drawables[2], drawables[3]);
+    }
+
     private void init(Context context, AttributeSet attrs, int defStyleAttr) {
         TypedArray array = context.obtainStyledAttributes(
                 attrs, R.styleable.TextViewWithCompoundDrawables, defStyleAttr, 0);
@@ -75,20 +89,8 @@
         if (mDrawableWidth <= 0 && mDrawableHeight <= 0 && mDrawableTint == null) return;
 
         Drawable[] drawables = getCompoundDrawablesRelative();
-        for (Drawable drawable : drawables) {
-            if (drawable == null) continue;
 
-            if (mDrawableWidth > 0 || mDrawableHeight > 0) {
-                Rect bounds = drawable.getBounds();
-                if (mDrawableWidth > 0) {
-                    bounds.right = bounds.left + mDrawableWidth;
-                }
-                if (mDrawableHeight > 0) {
-                    bounds.bottom = bounds.top + mDrawableHeight;
-                }
-                drawable.setBounds(bounds);
-            }
-        }
+        setDrawableBounds(drawables);
 
         if (mDrawableTint != null) setDrawableTint(drawables);
 
@@ -104,4 +106,21 @@
                     mDrawableTint.getColorForState(getDrawableState(), 0), PorterDuff.Mode.SRC_IN);
         }
     }
+
+    private void setDrawableBounds(Drawable[] drawables) {
+        for (Drawable drawable : drawables) {
+            if (drawable == null) continue;
+
+            if (mDrawableWidth > 0 || mDrawableHeight > 0) {
+                Rect bounds = drawable.copyBounds();
+                if (mDrawableWidth > 0) {
+                    bounds.right = bounds.left + mDrawableWidth;
+                }
+                if (mDrawableHeight > 0) {
+                    bounds.bottom = bounds.top + mDrawableHeight;
+                }
+                drawable.setBounds(bounds);
+            }
+        }
+    }
 }
diff --git a/components/dom_distiller/core/android/java/src/org/chromium/components/dom_distiller/core/DomDistillerUrlUtils.java b/components/dom_distiller/core/android/java/src/org/chromium/components/dom_distiller/core/DomDistillerUrlUtils.java
index d1699ff..cffe801 100644
--- a/components/dom_distiller/core/android/java/src/org/chromium/components/dom_distiller/core/DomDistillerUrlUtils.java
+++ b/components/dom_distiller/core/android/java/src/org/chromium/components/dom_distiller/core/DomDistillerUrlUtils.java
@@ -24,13 +24,14 @@
      *
      * @param scheme The scheme for the DOM Distiller source.
      * @param url The URL to distill.
+     * @param title The title of the page being distilled.
      * @return the URL to load to get the distilled version of a page.
      */
     @VisibleForTesting
-    public static String getDistillerViewUrlFromUrl(String scheme, String url) {
+    public static String getDistillerViewUrlFromUrl(String scheme, String url, String title) {
         assert scheme != null;
         if (TextUtils.isEmpty(url)) return url;
-        return DomDistillerUrlUtilsJni.get().getDistillerViewUrlFromUrl(scheme, url);
+        return DomDistillerUrlUtilsJni.get().getDistillerViewUrlFromUrl(scheme, url, title);
     }
 
     /**
@@ -63,7 +64,7 @@
 
     @NativeMethods
     interface Natives {
-        String getDistillerViewUrlFromUrl(String scheme, String url);
+        String getDistillerViewUrlFromUrl(String scheme, String url, String title);
         String getOriginalUrlFromDistillerUrl(String viewerUrl);
         boolean isDistilledPage(String url);
         String getValueForKeyInUrl(String url, String key);
diff --git a/components/dom_distiller/core/distillable_page_detector.cc b/components/dom_distiller/core/distillable_page_detector.cc
index 9ca5364f..baef8eb7 100644
--- a/components/dom_distiller/core/distillable_page_detector.cc
+++ b/components/dom_distiller/core/distillable_page_detector.cc
@@ -51,7 +51,7 @@
   }
 }
 
-DistillablePageDetector::~DistillablePageDetector() {}
+DistillablePageDetector::~DistillablePageDetector() = default;
 
 bool DistillablePageDetector::Classify(
     const std::vector<double>& features) const {
diff --git a/components/dom_distiller/core/distillable_page_detector.h b/components/dom_distiller/core/distillable_page_detector.h
index 9d0fa34..cbeee1ea 100644
--- a/components/dom_distiller/core/distillable_page_detector.h
+++ b/components/dom_distiller/core/distillable_page_detector.h
@@ -8,7 +8,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "components/dom_distiller/core/proto/adaboost.pb.h"
 
 namespace dom_distiller {
@@ -31,10 +30,12 @@
   double Score(const std::vector<double>& features) const;
   double GetThreshold() const;
 
+  DistillablePageDetector(const DistillablePageDetector&) = delete;
+  DistillablePageDetector& operator=(const DistillablePageDetector) = delete;
+
  private:
   std::unique_ptr<AdaBoostProto> proto_;
   double threshold_;
-  DISALLOW_COPY_AND_ASSIGN(DistillablePageDetector);
 };
 
 }  // namespace dom_distiller
diff --git a/components/dom_distiller/core/distilled_content_store.cc b/components/dom_distiller/core/distilled_content_store.cc
index 17a0240..1e857c27 100644
--- a/components/dom_distiller/core/distilled_content_store.cc
+++ b/components/dom_distiller/core/distilled_content_store.cc
@@ -94,7 +94,7 @@
 InMemoryContentStore::CacheDeletor::CacheDeletor(InMemoryContentStore* store)
     : store_(store) {}
 
-InMemoryContentStore::CacheDeletor::~CacheDeletor() {}
+InMemoryContentStore::CacheDeletor::~CacheDeletor() = default;
 
 void InMemoryContentStore::CacheDeletor::operator()(
     DistilledArticleProto* proto) {
diff --git a/components/dom_distiller/core/distilled_content_store.h b/components/dom_distiller/core/distilled_content_store.h
index 06ee027..f029685 100644
--- a/components/dom_distiller/core/distilled_content_store.h
+++ b/components/dom_distiller/core/distilled_content_store.h
@@ -11,7 +11,6 @@
 
 #include "base/bind.h"
 #include "base/containers/mru_cache.h"
-#include "base/macros.h"
 #include "components/dom_distiller/core/article_entry.h"
 #include "components/dom_distiller/core/proto/distilled_article.pb.h"
 
@@ -35,11 +34,11 @@
   virtual void LoadContent(const ArticleEntry& entry,
                            LoadCallback callback) = 0;
 
-  DistilledContentStore() {}
-  virtual ~DistilledContentStore() {}
+  DistilledContentStore() = default;
+  virtual ~DistilledContentStore() = default;
 
- private:
-  DISALLOW_COPY_AND_ASSIGN(DistilledContentStore);
+  DistilledContentStore(const DistilledContentStore&) = delete;
+  DistilledContentStore& operator=(const DistilledContentStore&) = delete;
 };
 
 // This content store keeps up to |max_num_entries| of the last accessed items
diff --git a/components/dom_distiller/core/distiller.h b/components/dom_distiller/core/distiller.h
index 253ab31..d46578ca 100644
--- a/components/dom_distiller/core/distiller.h
+++ b/components/dom_distiller/core/distiller.h
@@ -15,7 +15,6 @@
 #include <vector>
 
 #include "base/callback.h"
-#include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "components/dom_distiller/core/article_distillation_update.h"
@@ -36,7 +35,7 @@
   using DistillationUpdateCallback =
       base::RepeatingCallback<void(const ArticleDistillationUpdate&)>;
 
-  virtual ~Distiller() {}
+  virtual ~Distiller() = default;
 
   // Distills a page, and asynchronously returns the article HTML to the
   // supplied |finished_cb| callback. |update_cb| is invoked whenever article
@@ -53,7 +52,7 @@
 class DistillerFactory {
  public:
   virtual std::unique_ptr<Distiller> CreateDistillerForUrl(const GURL& url) = 0;
-  virtual ~DistillerFactory() {}
+  virtual ~DistillerFactory() = default;
 };
 
 // Factory for creating a Distiller.
@@ -87,6 +86,9 @@
 
   static bool DoesFetchImages();
 
+  DistillerImpl(const DistillerImpl&) = delete;
+  DistillerImpl& operator=(const DistillerImpl&) = delete;
+
  private:
   // In case of multiple pages, the Distiller maintains state of multiple pages
   // as page numbers relative to the page number where distillation started.
@@ -103,8 +105,8 @@
     scoped_refptr<base::RefCountedData<DistilledPageProto>>
         distilled_page_proto;
 
-   private:
-    DISALLOW_COPY_AND_ASSIGN(DistilledPageData);
+    DistilledPageData(const DistilledPageData&) = delete;
+    DistilledPageData& operator=(const DistilledPageData&) = delete;
   };
 
   void OnFetchImageDone(int page_num,
@@ -189,8 +191,6 @@
   bool destruction_allowed_;
 
   base::WeakPtrFactory<DistillerImpl> weak_factory_{this};
-
-  DISALLOW_COPY_AND_ASSIGN(DistillerImpl);
 };
 
 }  // namespace dom_distiller
diff --git a/components/dom_distiller/core/distiller_page.cc b/components/dom_distiller/core/distiller_page.cc
index e207021..46f07ab0 100644
--- a/components/dom_distiller/core/distiller_page.cc
+++ b/components/dom_distiller/core/distiller_page.cc
@@ -67,11 +67,11 @@
 
 }  // namespace
 
-DistillerPageFactory::~DistillerPageFactory() {}
+DistillerPageFactory::~DistillerPageFactory() = default;
 
 DistillerPage::DistillerPage() : ready_(true) {}
 
-DistillerPage::~DistillerPage() {}
+DistillerPage::~DistillerPage() = default;
 
 void DistillerPage::DistillPage(
     const GURL& gurl,
diff --git a/components/dom_distiller/core/distiller_page.h b/components/dom_distiller/core/distiller_page.h
index 3a2a91f6..deb3b34 100644
--- a/components/dom_distiller/core/distiller_page.h
+++ b/components/dom_distiller/core/distiller_page.h
@@ -20,7 +20,7 @@
 
 class SourcePageHandle {
  public:
-  virtual ~SourcePageHandle() {}
+  virtual ~SourcePageHandle() = default;
 };
 
 // Injects JavaScript into a page, and uses it to extract and return long-form
@@ -50,6 +50,9 @@
   virtual void OnDistillationDone(const GURL& page_url,
                                   const base::Value* value);
 
+  DistillerPage(const DistillerPage&) = delete;
+  DistillerPage& operator=(const DistillerPage&) = delete;
+
  protected:
   // Called by |DistillPage| to carry out platform-specific instructions to load
   // and distill the |url| using the provided |script|. The extracted content
@@ -64,7 +67,6 @@
   bool ready_;
   DistillerPageCallback distiller_page_callback_;
   base::TimeTicks distillation_start_;
-  DISALLOW_COPY_AND_ASSIGN(DistillerPage);
 };
 
 // Factory for generating a |DistillerPage|.
diff --git a/components/dom_distiller/core/distiller_ui_handle.h b/components/dom_distiller/core/distiller_ui_handle.h
index 6ecb7a6..4cecbf7 100644
--- a/components/dom_distiller/core/distiller_ui_handle.h
+++ b/components/dom_distiller/core/distiller_ui_handle.h
@@ -5,23 +5,20 @@
 #ifndef COMPONENTS_DOM_DISTILLER_CORE_DISTILLER_UI_HANDLE_H_
 #define COMPONENTS_DOM_DISTILLER_CORE_DISTILLER_UI_HANDLE_H_
 
-#include "base/macros.h"
-#include "url/gurl.h"
-
 namespace dom_distiller {
 
 // ExternalFeedbackReporter handles reporting distillation quality through an
 // external source.
 class DistillerUIHandle {
  public:
-  DistillerUIHandle() {}
-  virtual ~DistillerUIHandle() {}
+  DistillerUIHandle() = default;
+  virtual ~DistillerUIHandle() = default;
 
   // Open the UI settings for dom distiller.
   virtual void OpenSettings() = 0;
 
- private:
-  DISALLOW_COPY_AND_ASSIGN(DistillerUIHandle);
+  DistillerUIHandle(const DistillerUIHandle&) = delete;
+  DistillerUIHandle& operator=(const DistillerUIHandle&) = delete;
 };
 
 }  // namespace dom_distiller
diff --git a/components/dom_distiller/core/distiller_unittest.cc b/components/dom_distiller/core/distiller_unittest.cc
index dcf475d..4bbfe2f 100644
--- a/components/dom_distiller/core/distiller_unittest.cc
+++ b/components/dom_distiller/core/distiller_unittest.cc
@@ -16,7 +16,6 @@
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/location.h"
-#include "base/macros.h"
 #include "base/message_loop/message_loop_current.h"
 #include "base/run_loop.h"
 #include "base/single_thread_task_runner.h"
@@ -36,8 +35,6 @@
 #include "third_party/dom_distiller_js/dom_distiller.pb.h"
 #include "third_party/dom_distiller_js/dom_distiller_json_converter.h"
 
-using std::string;
-using std::vector;
 using ::testing::_;
 using ::testing::Invoke;
 using ::testing::Return;
@@ -59,25 +56,25 @@
 const char* kImageData[kTotalImages] = {"abcde", "12345", "VWXYZ"};
 const char kDebugLog[] = "Debug Log";
 
-const string GetImageName(int page_num, int image_num) {
+const std::string GetImageName(int page_num, int image_num) {
   return base::NumberToString(page_num) + "_" + base::NumberToString(image_num);
 }
 
 std::unique_ptr<base::Value> CreateDistilledValueReturnedFromJS(
-    const string& title,
-    const string& content,
-    const vector<int>& image_indices,
-    const string& next_page_url,
-    const string& prev_page_url = "") {
+    const std::string& title,
+    const std::string& content,
+    const std::vector<int>& image_indices,
+    const std::string& next_page_url,
+    const std::string& prev_page_url = "") {
   DomDistillerResult result;
   result.set_title(title);
   result.mutable_distilled_content()->set_html(content);
   result.mutable_pagination_info()->set_next_page(next_page_url);
   result.mutable_pagination_info()->set_prev_page(prev_page_url);
 
-  for (size_t i = 0; i < image_indices.size(); ++i) {
+  for (int image_indice : image_indices) {
     DomDistillerResult_ContentImage* curr_image = result.add_content_images();
-    curr_image->set_url(kImageURLs[image_indices[i]]);
+    curr_image->set_url(kImageURLs[image_indice]);
   }
 
   return dom_distiller::proto::json::DomDistillerResult::WriteToValue(result);
@@ -85,10 +82,10 @@
 
 // Return the sequence in which Distiller will distill pages.
 // Note: ignores any delays due to fetching images etc.
-vector<int> GetPagesInSequence(int start_page_num, int num_pages) {
+std::vector<int> GetPagesInSequence(int start_page_num, int num_pages) {
   // Distiller prefers distilling past pages first. E.g. when distillation
   // starts on page 2 then pages are distilled in the order: 2, 1, 0, 3, 4.
-  vector<int> page_nums;
+  std::vector<int> page_nums;
   for (int page = start_page_num; page >= 0; --page)
     page_nums.push_back(page);
   for (int page = start_page_num + 1; page < num_pages; ++page)
@@ -97,25 +94,25 @@
 }
 
 struct MultipageDistillerData {
- public:
-  MultipageDistillerData() {}
-  ~MultipageDistillerData() {}
-  vector<string> page_urls;
-  vector<string> content;
-  vector<vector<int>> image_ids;
+  MultipageDistillerData() = default;
+  ~MultipageDistillerData() = default;
+  std::vector<std::string> page_urls;
+  std::vector<std::string> content;
+  std::vector<std::vector<int>> image_ids;
   // The Javascript values returned by mock distiller.
   std::vector<std::unique_ptr<base::Value>> distilled_values;
 
- private:
-  DISALLOW_COPY_AND_ASSIGN(MultipageDistillerData);
+  MultipageDistillerData(const MultipageDistillerData&) = delete;
+  MultipageDistillerData& operator=(const MultipageDistillerData&) = delete;
 };
 
 void VerifyIncrementalUpdatesMatch(
     const MultipageDistillerData* distiller_data,
     int num_pages_in_article,
-    const vector<dom_distiller::ArticleDistillationUpdate>& incremental_updates,
+    const std::vector<dom_distiller::ArticleDistillationUpdate>&
+        incremental_updates,
     int start_page_num) {
-  vector<int> page_seq =
+  std::vector<int> page_seq =
       GetPagesInSequence(start_page_num, num_pages_in_article);
   // Updates should contain a list of pages. Pages in an update should be in
   // the correct ascending page order regardless of |start_page_num|.
@@ -130,7 +127,7 @@
         incremental_updates[update_count];
     EXPECT_EQ(update_count + 1, update.GetPagesSize());
 
-    vector<int> expected_page_nums_in_update(
+    std::vector<int> expected_page_nums_in_update(
         page_seq.begin(), page_seq.begin() + update.GetPagesSize());
     std::sort(expected_page_nums_in_update.begin(),
               expected_page_nums_in_update.end());
@@ -152,31 +149,32 @@
   }
 }
 
-string GenerateNextPageUrl(const std::string& url_prefix,
-                           size_t page_num,
-                           size_t pages_size) {
+std::string GenerateNextPageUrl(const std::string& url_prefix,
+                                size_t page_num,
+                                size_t pages_size) {
   return page_num + 1 < pages_size
              ? url_prefix + base::NumberToString(page_num + 1)
              : "";
 }
 
-string GeneratePrevPageUrl(const std::string& url_prefix, size_t page_num) {
+std::string GeneratePrevPageUrl(const std::string& url_prefix,
+                                size_t page_num) {
   return page_num > 0 ? url_prefix + base::NumberToString(page_num - 1) : "";
 }
 
 std::unique_ptr<MultipageDistillerData> CreateMultipageDistillerDataWithImages(
-    const vector<vector<int>>& image_ids) {
+    const std::vector<std::vector<int>>& image_ids) {
   size_t pages_size = image_ids.size();
   std::unique_ptr<MultipageDistillerData> result(new MultipageDistillerData());
-  string url_prefix = kURL;
+  std::string url_prefix = kURL;
   result->image_ids = image_ids;
   for (size_t page_num = 0; page_num < pages_size; ++page_num) {
     result->page_urls.push_back(url_prefix + base::NumberToString(page_num));
     result->content.push_back("Content for page:" +
                               base::NumberToString(page_num));
-    string next_page_url =
+    std::string next_page_url =
         GenerateNextPageUrl(url_prefix, page_num, pages_size);
-    string prev_page_url = GeneratePrevPageUrl(url_prefix, page_num);
+    std::string prev_page_url = GeneratePrevPageUrl(url_prefix, page_num);
     std::unique_ptr<base::Value> distilled_value =
         CreateDistilledValueReturnedFromJS(kTitle, result->content[page_num],
                                            image_ids[page_num], next_page_url,
@@ -189,7 +187,7 @@
 std::unique_ptr<MultipageDistillerData>
 CreateMultipageDistillerDataWithoutImages(size_t pages_size) {
   return CreateMultipageDistillerDataWithImages(
-      vector<vector<int>>(pages_size));
+      std::vector<std::vector<int>>(pages_size));
 }
 
 void VerifyArticleProtoMatchesMultipageData(
@@ -208,7 +206,8 @@
     EXPECT_EQ(distiller_data->page_urls[page_num], page.url());
     EXPECT_EQ(distiller_data->image_ids[page_num].size(),
               static_cast<size_t>(page.image_size()));
-    const vector<int>& image_ids_for_page = distiller_data->image_ids[page_num];
+    const std::vector<int>& image_ids_for_page =
+        distiller_data->image_ids[page_num];
     for (size_t img_num = 0; img_num < image_ids_for_page.size(); ++img_num) {
       if (dom_distiller::DistillerImpl::DoesFetchImages()) {
         EXPECT_EQ(kImageData[image_ids_for_page[img_num]],
@@ -240,11 +239,11 @@
  public:
   explicit TestDistillerURLFetcher(bool delay_fetch)
       : DistillerURLFetcher(nullptr), delay_fetch_(delay_fetch) {
-    responses_[kImageURLs[0]] = string(kImageData[0]);
-    responses_[kImageURLs[1]] = string(kImageData[1]);
+    responses_[kImageURLs[0]] = std::string(kImageData[0]);
+    responses_[kImageURLs[1]] = std::string(kImageData[1]);
   }
 
-  void FetchURL(const string& url, URLFetcherCallback callback) override {
+  void FetchURL(const std::string& url, URLFetcherCallback callback) override {
     ASSERT_FALSE(callback.is_null());
     url_ = url;
     callback_ = std::move(callback);
@@ -261,8 +260,8 @@
   }
 
  private:
-  std::map<string, string> responses_;
-  string url_;
+  std::map<std::string, std::string> responses_;
+  std::string url_;
   URLFetcherCallback callback_;
   bool delay_fetch_;
 };
@@ -271,7 +270,7 @@
  public:
   TestDistillerURLFetcherFactory() : DistillerURLFetcherFactory(nullptr) {}
 
-  ~TestDistillerURLFetcherFactory() override {}
+  ~TestDistillerURLFetcherFactory() override = default;
   DistillerURLFetcher* CreateDistillerURLFetcher() const override {
     return new TestDistillerURLFetcher(false);
   }
@@ -280,14 +279,14 @@
 class MockDistillerURLFetcherFactory : public DistillerURLFetcherFactory {
  public:
   MockDistillerURLFetcherFactory() : DistillerURLFetcherFactory(nullptr) {}
-  ~MockDistillerURLFetcherFactory() override {}
+  ~MockDistillerURLFetcherFactory() override = default;
 
   MOCK_CONST_METHOD0(CreateDistillerURLFetcher, DistillerURLFetcher*());
 };
 
 class DistillerTest : public testing::Test {
  public:
-  ~DistillerTest() override {}
+  ~DistillerTest() override = default;
 
   void OnDistillArticleDone(std::unique_ptr<DistilledArticleProto> proto) {
     article_proto_ = std::move(proto);
@@ -346,7 +345,7 @@
   MockDistillerPage* distiller_page = new MockDistillerPage();
   {
     testing::InSequence s;
-    vector<int> page_nums = GetPagesInSequence(start_page_num, pages_size);
+    std::vector<int> page_nums = GetPagesInSequence(start_page_num, pages_size);
     for (size_t page_num = 0; page_num < pages_size; ++page_num) {
       int page = page_nums[page_num];
       GURL url = GURL(distiller_data->page_urls[page]);
@@ -360,8 +359,8 @@
 }
 
 TEST_F(DistillerTest, DistillPage) {
-  std::unique_ptr<base::Value> result =
-      CreateDistilledValueReturnedFromJS(kTitle, kContent, vector<int>(), "");
+  std::unique_ptr<base::Value> result = CreateDistilledValueReturnedFromJS(
+      kTitle, kContent, std::vector<int>(), "");
   distiller_.reset(
       new DistillerImpl(url_fetcher_factory_, DomDistillerOptions()));
   DistillPage(kURL, CreateMockDistillerPage(result.get(), GURL(kURL)));
@@ -425,7 +424,7 @@
 }
 
 TEST_F(DistillerTest, DistillPageWithImages) {
-  vector<int> image_indices;
+  std::vector<int> image_indices;
   image_indices.push_back(0);
   image_indices.push_back(1);
   image_indices.push_back(2);
@@ -463,12 +462,12 @@
   const size_t kNumPages = 8;
 
   // Add images.
-  vector<vector<int>> image_ids;
+  std::vector<std::vector<int>> image_ids;
   int next_image_number = 0;
   for (size_t page_num = 0; page_num < kNumPages; ++page_num) {
     // Each page has different number of images.
     size_t tot_images = (page_num + kTotalImages) % (kTotalImages + 1);
-    vector<int> image_indices;
+    std::vector<int> image_indices;
     for (size_t img_num = 0; img_num < tot_images; img_num++) {
       image_indices.push_back(next_image_number);
       next_image_number = (next_image_number + 1) % kTotalGoodImages;
@@ -491,8 +490,8 @@
 TEST_F(DistillerTest, DistillLinkLoop) {
   // Create a loop, the next page is same as the current page. This could
   // happen if javascript misparses a next page link.
-  std::unique_ptr<base::Value> result =
-      CreateDistilledValueReturnedFromJS(kTitle, kContent, vector<int>(), kURL);
+  std::unique_ptr<base::Value> result = CreateDistilledValueReturnedFromJS(
+      kTitle, kContent, std::vector<int>(), kURL);
   distiller_.reset(
       new DistillerImpl(url_fetcher_factory_, DomDistillerOptions()));
   DistillPage(kURL, CreateMockDistillerPage(result.get(), GURL(kURL)));
@@ -512,7 +511,8 @@
   std::unique_ptr<base::Value> last_page_data =
       CreateDistilledValueReturnedFromJS(
           kTitle, distiller_data->content[kMaxPagesInArticle - 1],
-          vector<int>(), "", distiller_data->page_urls[kMaxPagesInArticle - 2]);
+          std::vector<int>(), "",
+          distiller_data->page_urls[kMaxPagesInArticle - 2]);
 
   distiller_data->distilled_values.pop_back();
   distiller_data->distilled_values.push_back(std::move(last_page_data));
@@ -597,7 +597,7 @@
   distiller_data->content[empty_page_num] = "";
   std::unique_ptr<base::Value> distilled_value =
       CreateDistilledValueReturnedFromJS(
-          kTitle, "", vector<int>(),
+          kTitle, "", std::vector<int>(),
           GenerateNextPageUrl(kURL, empty_page_num, kNumPages),
           GeneratePrevPageUrl(kURL, empty_page_num));
   // Reset distilled data of the first page.
@@ -628,7 +628,7 @@
   distiller_data->content[empty_page_num] = "";
   std::unique_ptr<base::Value> distilled_value =
       CreateDistilledValueReturnedFromJS(
-          kTitle, "", vector<int>(),
+          kTitle, "", std::vector<int>(),
           GenerateNextPageUrl(kURL, empty_page_num, kNumPages),
           GeneratePrevPageUrl(kURL, empty_page_num));
   // Reset distilled data of the second page.
@@ -736,7 +736,7 @@
   if (!DistillerImpl::DoesFetchImages())
     return;
 
-  vector<int> image_indices;
+  std::vector<int> image_indices;
   image_indices.push_back(0);
   std::unique_ptr<base::Value> distilled_value =
       CreateDistilledValueReturnedFromJS(kTitle, kContent, image_indices, "");
@@ -758,7 +758,8 @@
 
 TEST_F(DistillerTest, CancelWithDelayedJSCallback) {
   std::unique_ptr<base::Value> distilled_value =
-      CreateDistilledValueReturnedFromJS(kTitle, kContent, vector<int>(), "");
+      CreateDistilledValueReturnedFromJS(kTitle, kContent, std::vector<int>(),
+                                         "");
   MockDistillerPage* distiller_page = nullptr;
   distiller_.reset(
       new DistillerImpl(url_fetcher_factory_, DomDistillerOptions()));
diff --git a/components/dom_distiller/core/distiller_url_fetcher.h b/components/dom_distiller/core/distiller_url_fetcher.h
index 12f3545..89f2a5f 100644
--- a/components/dom_distiller/core/distiller_url_fetcher.h
+++ b/components/dom_distiller/core/distiller_url_fetcher.h
@@ -8,7 +8,6 @@
 #include <string>
 
 #include "base/callback.h"
-#include "base/macros.h"
 
 namespace network {
 class SharedURLLoaderFactory;
@@ -22,7 +21,7 @@
 // Class for creating a DistillerURLFetcher.
 class DistillerURLFetcherFactory {
  public:
-  DistillerURLFetcherFactory(
+  explicit DistillerURLFetcherFactory(
       scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory);
   virtual ~DistillerURLFetcherFactory();
   virtual DistillerURLFetcher* CreateDistillerURLFetcher() const;
@@ -46,6 +45,9 @@
   // Fetches a |url|. Notifies when the fetch is done via |callback|.
   virtual void FetchURL(const std::string& url, URLFetcherCallback callback);
 
+  DistillerURLFetcher(const DistillerURLFetcher&) = delete;
+  DistillerURLFetcher& operator=(const DistillerURLFetcher&) = delete;
+
  protected:
   virtual std::unique_ptr<network::SimpleURLLoader> CreateURLFetcher(
       const std::string& url);
@@ -56,7 +58,6 @@
   std::unique_ptr<network::SimpleURLLoader> url_loader_;
   URLFetcherCallback callback_;
   scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
-  DISALLOW_COPY_AND_ASSIGN(DistillerURLFetcher);
 };
 
 }  //  namespace dom_distiller
diff --git a/components/dom_distiller/core/dom_distiller_request_view_base.cc b/components/dom_distiller/core/dom_distiller_request_view_base.cc
index 9c82d149..ebe1450 100644
--- a/components/dom_distiller/core/dom_distiller_request_view_base.cc
+++ b/components/dom_distiller/core/dom_distiller_request_view_base.cc
@@ -26,7 +26,7 @@
       distilled_page_prefs_(distilled_page_prefs),
       is_error_page_(false) {}
 
-DomDistillerRequestViewBase::~DomDistillerRequestViewBase() {}
+DomDistillerRequestViewBase::~DomDistillerRequestViewBase() = default;
 
 void DomDistillerRequestViewBase::FlagAsErrorPage() {
   // Viewer handle is not passed to this in the case of error pages
diff --git a/components/dom_distiller/core/dom_distiller_service.h b/components/dom_distiller/core/dom_distiller_service.h
index 2a46cb7..97d7674 100644
--- a/components/dom_distiller/core/dom_distiller_service.h
+++ b/components/dom_distiller/core/dom_distiller_service.h
@@ -32,7 +32,7 @@
 // thread. Callbacks will be called on that same thread.
 class DomDistillerServiceInterface {
  public:
-  virtual ~DomDistillerServiceInterface() {}
+  virtual ~DomDistillerServiceInterface() = default;
 
   // Request to view an article by url.
   // Use CreateDefaultDistillerPage() to create a default |distiller_page|.
@@ -57,11 +57,12 @@
   // DomDistillerService.
   virtual DistillerUIHandle* GetDistillerUIHandle() = 0;
 
- protected:
-  DomDistillerServiceInterface() {}
+  DomDistillerServiceInterface(const DomDistillerServiceInterface&) = delete;
+  DomDistillerServiceInterface& operator=(const DomDistillerServiceInterface&) =
+      delete;
 
- private:
-  DISALLOW_COPY_AND_ASSIGN(DomDistillerServiceInterface);
+ protected:
+  DomDistillerServiceInterface() = default;
 };
 
 // Provide a view of the article list and ways of interacting with it.
@@ -111,8 +112,6 @@
 
   typedef std::vector<std::unique_ptr<TaskTracker>> TaskList;
   TaskList tasks_;
-
-  DISALLOW_COPY_AND_ASSIGN(DomDistillerService);
 };
 
 }  // namespace dom_distiller
diff --git a/components/dom_distiller/core/dom_distiller_service_unittest.cc b/components/dom_distiller/core/dom_distiller_service_unittest.cc
index 1b032c5..255870e 100644
--- a/components/dom_distiller/core/dom_distiller_service_unittest.cc
+++ b/components/dom_distiller/core/dom_distiller_service_unittest.cc
@@ -29,7 +29,7 @@
 
 class FakeViewRequestDelegate : public ViewRequestDelegate {
  public:
-  ~FakeViewRequestDelegate() override {}
+  ~FakeViewRequestDelegate() override = default;
   MOCK_METHOD1(OnArticleReady, void(const DistilledArticleProto* proto));
   MOCK_METHOD1(OnArticleUpdated,
                void(ArticleDistillationUpdate article_update));
diff --git a/components/dom_distiller/core/fake_distiller.cc b/components/dom_distiller/core/fake_distiller.cc
index 67397610..a06890a 100644
--- a/components/dom_distiller/core/fake_distiller.cc
+++ b/components/dom_distiller/core/fake_distiller.cc
@@ -16,8 +16,8 @@
 namespace dom_distiller {
 namespace test {
 
-MockDistillerFactory::MockDistillerFactory() {}
-MockDistillerFactory::~MockDistillerFactory() {}
+MockDistillerFactory::MockDistillerFactory() = default;
+MockDistillerFactory::~MockDistillerFactory() = default;
 
 FakeDistiller::FakeDistiller(bool execute_callback)
     : execute_callback_(execute_callback), destruction_allowed_(true) {
diff --git a/components/dom_distiller/core/fake_distiller.h b/components/dom_distiller/core/fake_distiller.h
index 3ed67c7..92884700 100644
--- a/components/dom_distiller/core/fake_distiller.h
+++ b/components/dom_distiller/core/fake_distiller.h
@@ -36,8 +36,8 @@
   explicit FakeDistiller(bool execute_callback);
   // TODO(yfriedman): Drop execute_callback from this and give the option of
   // "auto-distilling" or calling the provided closure.
-  explicit FakeDistiller(bool execute_callback,
-                         base::OnceClosure distillation_initiated_callback);
+  FakeDistiller(bool execute_callback,
+                base::OnceClosure distillation_initiated_callback);
   ~FakeDistiller() override;
   MOCK_METHOD0(Die, void());
 
diff --git a/components/dom_distiller/core/fake_distiller_page.cc b/components/dom_distiller/core/fake_distiller_page.cc
index 0d5a9e58..f8a59c4d4 100644
--- a/components/dom_distiller/core/fake_distiller_page.cc
+++ b/components/dom_distiller/core/fake_distiller_page.cc
@@ -7,11 +7,11 @@
 namespace dom_distiller {
 namespace test {
 
-MockDistillerPageFactory::MockDistillerPageFactory() {}
-MockDistillerPageFactory::~MockDistillerPageFactory() {}
+MockDistillerPageFactory::MockDistillerPageFactory() = default;
+MockDistillerPageFactory::~MockDistillerPageFactory() = default;
 
-MockDistillerPage::MockDistillerPage() {}
-MockDistillerPage::~MockDistillerPage() {}
+MockDistillerPage::MockDistillerPage() = default;
+MockDistillerPage::~MockDistillerPage() = default;
 
 }  // namespace test
 }  // namespace dom_distiller
diff --git a/components/dom_distiller/core/task_tracker.cc b/components/dom_distiller/core/task_tracker.cc
index ba7329b..e66a62c 100644
--- a/components/dom_distiller/core/task_tracker.cc
+++ b/components/dom_distiller/core/task_tracker.cc
@@ -202,7 +202,7 @@
     std::unique_ptr<DistilledArticleProto> distilled_article) {
   DCHECK(!content_ready_);
 
-  if (distilled_article->pages_size() == 0) {
+  if (distilled_article->pages().empty()) {
     return;
   }
 
@@ -211,16 +211,16 @@
   distilled_article_ = std::move(distilled_article);
   entry_.title = distilled_article_->title();
   entry_.pages.clear();
-  for (int i = 0; i < distilled_article_->pages_size(); ++i) {
-    entry_.pages.push_back(GURL(distilled_article_->pages(i).url()));
+  for (const auto& page : distilled_article_->pages()) {
+    entry_.pages.push_back(GURL(page.url()));
   }
 
   NotifyViewersAndCallbacks();
 }
 
 void TaskTracker::NotifyViewersAndCallbacks() {
-  for (size_t i = 0; i < viewers_.size(); ++i) {
-    NotifyViewer(viewers_[i]);
+  for (auto* viewer : viewers_) {
+    NotifyViewer(viewer);
   }
 
   // Already inside a callback run SaveCallbacks directly.
@@ -242,8 +242,8 @@
 
 void TaskTracker::OnArticleDistillationUpdated(
     const ArticleDistillationUpdate& article_update) {
-  for (size_t i = 0; i < viewers_.size(); ++i) {
-    viewers_[i]->OnArticleUpdated(article_update);
+  for (auto* viewer : viewers_) {
+    viewer->OnArticleUpdated(article_update);
   }
 }
 
diff --git a/components/dom_distiller/core/task_tracker.h b/components/dom_distiller/core/task_tracker.h
index ccae84a..484145c 100644
--- a/components/dom_distiller/core/task_tracker.h
+++ b/components/dom_distiller/core/task_tracker.h
@@ -10,7 +10,6 @@
 
 #include "base/bind.h"
 #include "base/callback.h"
-#include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "components/dom_distiller/core/article_distillation_update.h"
 #include "components/dom_distiller/core/article_entry.h"
@@ -32,16 +31,19 @@
   explicit ViewerHandle(CancelCallback callback);
   ~ViewerHandle();
 
+  ViewerHandle(const ViewerHandle&) = delete;
+  ViewerHandle& operator=(const ViewerHandle&) = delete;
+
  private:
   CancelCallback cancel_callback_;
-  DISALLOW_COPY_AND_ASSIGN(ViewerHandle);
 };
 
 // Interface for a DOM distiller entry viewer. Implement this to make a view
 // request and receive the data for an entry when it becomes available.
 class ViewRequestDelegate {
  public:
-  virtual ~ViewRequestDelegate() {}
+  virtual ~ViewRequestDelegate() = default;
+
   // Called when the distilled article contents are available. The
   // DistilledArticleProto is owned by a TaskTracker instance and is invalidated
   // when the corresponding ViewerHandle is destroyed (or when the
@@ -97,6 +99,9 @@
   bool HasEntryId(const std::string& entry_id) const;
   bool HasUrl(const GURL& url) const;
 
+  TaskTracker(const TaskTracker&) = delete;
+  TaskTracker& operator=(const TaskTracker&) = delete;
+
  private:
   void OnArticleDistillationUpdated(
       const ArticleDistillationUpdate& article_update);
@@ -150,8 +155,6 @@
   // Note: This should remain the last member so it'll be destroyed and
   // invalidate its weak pointers before any other members are destroyed.
   base::WeakPtrFactory<TaskTracker> weak_ptr_factory_{this};
-
-  DISALLOW_COPY_AND_ASSIGN(TaskTracker);
 };
 
 }  // namespace dom_distiller
diff --git a/components/dom_distiller/core/task_tracker_unittest.cc b/components/dom_distiller/core/task_tracker_unittest.cc
index 3c7a106..532161b 100644
--- a/components/dom_distiller/core/task_tracker_unittest.cc
+++ b/components/dom_distiller/core/task_tracker_unittest.cc
@@ -24,7 +24,7 @@
 
 class FakeViewRequestDelegate : public ViewRequestDelegate {
  public:
-  ~FakeViewRequestDelegate() override {}
+  ~FakeViewRequestDelegate() override = default;
   MOCK_METHOD1(OnArticleReady,
                void(const DistilledArticleProto* article_proto));
   MOCK_METHOD1(OnArticleUpdated,
diff --git a/components/dom_distiller/core/test_request_view_handle.h b/components/dom_distiller/core/test_request_view_handle.h
index 1a7cd93..99e0f238 100644
--- a/components/dom_distiller/core/test_request_view_handle.h
+++ b/components/dom_distiller/core/test_request_view_handle.h
@@ -16,7 +16,7 @@
 // point and viewed. This class is for testing only.
 class TestRequestViewHandle : public DomDistillerRequestViewBase {
  public:
-  TestRequestViewHandle(DistilledPagePrefs* prefs);
+  explicit TestRequestViewHandle(DistilledPagePrefs* prefs);
   ~TestRequestViewHandle() override;
 
   std::string GetJavaScriptBuffer();
diff --git a/components/dom_distiller/core/url_constants.cc b/components/dom_distiller/core/url_constants.cc
index acacffc..b55ff06 100644
--- a/components/dom_distiller/core/url_constants.cc
+++ b/components/dom_distiller/core/url_constants.cc
@@ -9,6 +9,7 @@
 const char kDomDistillerScheme[] = "chrome-distiller";
 const char kEntryIdKey[] = "entry_id";
 const char kUrlKey[] = "url";
+const char kTitleKey[] = "title";
 const char kTimeKey[] = "time";
 const char kViewerCssPath[] = "dom_distiller_viewer.css";
 const char kViewerLoadingImagePath[] = "dom_distiller_material_spinner.svg";
diff --git a/components/dom_distiller/core/url_constants.h b/components/dom_distiller/core/url_constants.h
index d546359..73c28038 100644
--- a/components/dom_distiller/core/url_constants.h
+++ b/components/dom_distiller/core/url_constants.h
@@ -10,6 +10,7 @@
 extern const char kDomDistillerScheme[];
 extern const char kEntryIdKey[];
 extern const char kUrlKey[];
+extern const char kTitleKey[];
 extern const char kTimeKey[];
 extern const char kViewerCssPath[];
 extern const char kViewerLoadingImagePath[];
diff --git a/components/dom_distiller/core/url_utils.cc b/components/dom_distiller/core/url_utils.cc
index cd7fc39bf..0cdc504 100644
--- a/components/dom_distiller/core/url_utils.cc
+++ b/components/dom_distiller/core/url_utils.cc
@@ -41,9 +41,11 @@
 
 const GURL GetDistillerViewUrlFromUrl(const std::string& scheme,
                                       const GURL& url,
+                                      const std::string& title,
                                       int64_t start_time_ms) {
   GURL view_url(scheme + "://" + base::GenerateGUID() + kSeparator +
                 SHA256InHex(url.spec()));
+  view_url = net::AppendOrReplaceQueryParameter(view_url, kTitleKey, title);
   if (start_time_ms > 0) {
     view_url = net::AppendOrReplaceQueryParameter(
         view_url, kTimeKey, base::NumberToString(start_time_ms));
@@ -52,7 +54,7 @@
 }
 
 const GURL GetOriginalUrlFromDistillerUrl(const GURL& url) {
-  if (!IsDistilledPage(url))
+  if (!IsUrlDistilledFormat(url))
     return url;
 
   std::string original_url_str;
@@ -91,6 +93,17 @@
   return time_int;
 }
 
+std::string GetTitleFromDistillerUrl(const GURL& url) {
+  if (!IsDistilledPage(url))
+    return "";
+
+  std::string title;
+  if (!net::GetValueForKeyInQuery(url, kTitleKey, &title))
+    return "";
+
+  return title;
+}
+
 std::string GetValueForKeyInUrl(const GURL& url, const std::string& key) {
   if (!url.is_valid())
     return "";
@@ -114,6 +127,11 @@
 }
 
 bool IsDistilledPage(const GURL& url) {
+  return IsUrlDistilledFormat(url) &&
+         GetOriginalUrlFromDistillerUrl(url).is_valid();
+}
+
+bool IsUrlDistilledFormat(const GURL& url) {
   return url.is_valid() && url.scheme() == kDomDistillerScheme;
 }
 
diff --git a/components/dom_distiller/core/url_utils.h b/components/dom_distiller/core/url_utils.h
index a17b930..3bea4319 100644
--- a/components/dom_distiller/core/url_utils.h
+++ b/components/dom_distiller/core/url_utils.h
@@ -16,6 +16,7 @@
 namespace url_utils {
 
 // Returns the URL for viewing distilled content for an entry.
+// This is only used for testing.
 const GURL GetDistillerViewUrlFromEntryId(const std::string& scheme,
                                           const std::string& entry_id);
 
@@ -30,6 +31,7 @@
 // |view_url| and |start_time_ms|.
 const GURL GetDistillerViewUrlFromUrl(const std::string& scheme,
                                       const GURL& view_url,
+                                      const std::string& title,
                                       int64_t start_time_ms = 0);
 
 // Returns the original article's URL from the distilled URL.
@@ -42,6 +44,10 @@
 // Returns 0 when not available or on error.
 int64_t GetTimeFromDistillerUrl(const GURL& url);
 
+// Returns the title of the original page from the distilled URL. Returns an
+// empty string if not available or on error.
+std::string GetTitleFromDistillerUrl(const GURL& url);
+
 // Returns the value of the query parameter for the given |key| for a given URL.
 // If the URL is invalid or if the key is not found, returns an empty string.
 // If there are multiple keys found in the URL, returns the value for the first
@@ -55,9 +61,15 @@
 // Returns whether it should be possible to distill the given |url|.
 bool IsUrlDistillable(const GURL& url);
 
-// Returns whether the given |url| is for a distilled page.
+// Returns whether the given |url| is for a distilled page. This means the
+// format of the URL is proper for a distilled page and that it encodes a
+// valid article URL.
 bool IsDistilledPage(const GURL& url);
 
+// Returns whether the given |url| is formatted as if it were for a distilled
+// page, i.e. it is valid and has a chrome-distiller:// scheme.
+bool IsUrlDistilledFormat(const GURL& url);
+
 }  // namespace url_utils
 
 }  // namespace dom_distiller
diff --git a/components/dom_distiller/core/url_utils_android.cc b/components/dom_distiller/core/url_utils_android.cc
index 548fa8c..f51db0f 100644
--- a/components/dom_distiller/core/url_utils_android.cc
+++ b/components/dom_distiller/core/url_utils_android.cc
@@ -23,14 +23,16 @@
 ScopedJavaLocalRef<jstring> JNI_DomDistillerUrlUtils_GetDistillerViewUrlFromUrl(
     JNIEnv* env,
     const JavaParamRef<jstring>& j_scheme,
-    const JavaParamRef<jstring>& j_url) {
-  std::string scheme(base::android::ConvertJavaStringToUTF8(env, j_scheme));
+    const JavaParamRef<jstring>& j_url,
+    const JavaParamRef<jstring>& j_title) {
   GURL url(base::android::ConvertJavaStringToUTF8(env, j_url));
   if (!url.is_valid()) {
     return ScopedJavaLocalRef<jstring>();
   }
+  std::string scheme(base::android::ConvertJavaStringToUTF8(env, j_scheme));
+  std::string title(base::android::ConvertJavaStringToUTF8(env, j_title));
   GURL view_url =
-      dom_distiller::url_utils::GetDistillerViewUrlFromUrl(scheme, url);
+      dom_distiller::url_utils::GetDistillerViewUrlFromUrl(scheme, url, title);
   if (!view_url.is_valid()) {
     return ScopedJavaLocalRef<jstring>();
   }
diff --git a/components/dom_distiller/core/url_utils_unittest.cc b/components/dom_distiller/core/url_utils_unittest.cc
index 5dd2100..bac4843 100644
--- a/components/dom_distiller/core/url_utils_unittest.cc
+++ b/components/dom_distiller/core/url_utils_unittest.cc
@@ -55,11 +55,27 @@
 TEST(DomDistillerUrlUtilsTest, TestGetDistillerViewUrlFromUrl) {
   AssertEqualExceptHost(
       GURL("chrome-distiller://any/"
-           "?time=123&url=http%3A%2F%2Fexample.com%2Fpath%3Fq%3Dabc%26p%3D1%"
+           "?title=cats&time=123&url=http%3A%2F%2Fexample.com%2Fpath%3Fq%3Dabc%"
+           "26p%3D1%"
            "23anchor"),
       GetDistillerViewUrlFromUrl(
           kDomDistillerScheme, GURL("http://example.com/path?q=abc&p=1#anchor"),
-          123));
+          "cats", 123));
+}
+
+TEST(DomDistillerUrlUtilsTest, TestGetPageTitleFromDistillerUrl) {
+  // Ensure that odd characters make it through.
+  std::string title = "An Interesting Article: Cats >= Dogs!";
+  GURL distilled = GetDistillerViewUrlFromUrl(
+      kDomDistillerScheme, GURL("http://example.com/path?q=abc&p=1#anchor"),
+      title);
+  EXPECT_EQ(title, GetTitleFromDistillerUrl(distilled));
+
+  // Let's try some Unicode outside of BMP.
+  title = "Γάτα قط ねこ חתול ␡";
+  distilled = GetDistillerViewUrlFromUrl(
+      kDomDistillerScheme, GURL("http://example.com/article.html"), title);
+  EXPECT_EQ(title, GetTitleFromDistillerUrl(distilled));
 }
 
 std::string GetOriginalUrlFromDistillerUrl(const std::string& url) {
@@ -79,7 +95,8 @@
 
 std::string ThroughDistiller(const std::string& url) {
   return GetOriginalUrlFromDistillerUrl(
-             GetDistillerViewUrlFromUrl(kDomDistillerScheme, GURL(url), 123))
+             GetDistillerViewUrlFromUrl(kDomDistillerScheme, GURL(url), "title",
+                                        123))
       .spec();
 }
 
@@ -102,7 +119,8 @@
 
   // Tests a nested url.
   const std::string nested_url =
-      GetDistillerViewUrlFromUrl(kDomDistillerScheme, GURL(url)).spec();
+      GetDistillerViewUrlFromUrl(kDomDistillerScheme, GURL(url), "title")
+          .spec();
   EXPECT_EQ("", ThroughDistiller(nested_url));
   EXPECT_EQ(url, GetOriginalUrlFromDistillerUrl(nested_url));
 }
@@ -111,11 +129,33 @@
   const std::string url = "http://example.com/";
   const std::string url2 = "http://example.org/";
   const GURL view_url =
-      GetDistillerViewUrlFromUrl(kDomDistillerScheme, GURL(url), 123);
+      GetDistillerViewUrlFromUrl(kDomDistillerScheme, GURL(url), "title", 123);
   GURL bad_view_url =
       net::AppendOrReplaceQueryParameter(view_url, kUrlKey, url2);
   EXPECT_EQ(GURL(), GetOriginalUrlFromDistillerUrl(bad_view_url));
 }
+
+TEST(DomDistillerUrlUtilsTest, TestRejectInvalidDistilledURLs) {
+  EXPECT_FALSE(IsDistilledPage(GURL("chrome-distiller://any")));
+  EXPECT_FALSE(IsDistilledPage(GURL("chrome-distiller://any/invalid")));
+  EXPECT_FALSE(
+      IsDistilledPage(GURL("chrome-distiller://any/?time=123&url=abc")));
+
+  EXPECT_FALSE(IsDistilledPage(GetDistillerViewUrlFromUrl(
+      "not-distiller", GURL("http://example.com/"), "title")));
+  EXPECT_FALSE(IsDistilledPage(GetDistillerViewUrlFromUrl(
+      kDomDistillerScheme, GURL("not-http://example.com/"), "title")));
+
+  EXPECT_TRUE(IsDistilledPage(GetDistillerViewUrlFromUrl(
+      kDomDistillerScheme, GURL("http://example.com/"), "title")));
+  EXPECT_TRUE(IsDistilledPage(GetDistillerViewUrlFromUrl(
+      kDomDistillerScheme, GURL("http://www.example.com/page.html"), "title")));
+  EXPECT_TRUE(IsDistilledPage(GetDistillerViewUrlFromUrl(
+      kDomDistillerScheme,
+      GURL("http://www.example.com/page.html?cats=1&dogs=2"), "title")));
+  EXPECT_TRUE(IsDistilledPage(GetDistillerViewUrlFromUrl(
+      kDomDistillerScheme, GURL("https://example.com/?params=any"), "title")));
+}
 }  // namespace url_utils
 
 }  // namespace dom_distiller
diff --git a/components/dom_distiller/core/viewer_unittest.cc b/components/dom_distiller/core/viewer_unittest.cc
index 1d86b34..f3d342f 100644
--- a/components/dom_distiller/core/viewer_unittest.cc
+++ b/components/dom_distiller/core/viewer_unittest.cc
@@ -20,7 +20,8 @@
 namespace {
 
 const GURL GetDistillerViewUrlFromUrl(const std::string& url) {
-  return url_utils::GetDistillerViewUrlFromUrl(kDomDistillerScheme, GURL(url));
+  return url_utils::GetDistillerViewUrlFromUrl(kDomDistillerScheme, GURL(url),
+                                               "Title");
 }
 
 const GURL GetDistillerViewUrlFromEntryId(const std::string& id) {
diff --git a/components/embedder_support/android/metrics/android_metrics_service_client.cc b/components/embedder_support/android/metrics/android_metrics_service_client.cc
index 3a3c080..b534180 100644
--- a/components/embedder_support/android/metrics/android_metrics_service_client.cc
+++ b/components/embedder_support/android/metrics/android_metrics_service_client.cc
@@ -78,7 +78,6 @@
 
   pref_service_ = pref_service;
 
-  InitInternal();
   metrics_state_manager_ =
       MetricsStateManager::Create(pref_service_, this, base::string16(),
                                   base::BindRepeating(&StoreClientInfo),
diff --git a/components/embedder_support/android/metrics/android_metrics_service_client.h b/components/embedder_support/android/metrics/android_metrics_service_client.h
index 9d72fde..0a85ee7 100644
--- a/components/embedder_support/android/metrics/android_metrics_service_client.h
+++ b/components/embedder_support/android/metrics/android_metrics_service_client.h
@@ -135,9 +135,6 @@
   }
 
  protected:
-  // Called by Initialize() to allow embedder specific initialization.
-  virtual void InitInternal() = 0;
-
   // Called by MaybeStartMetrics() to allow embedder specific initialization.
   virtual void OnMetricsStart() = 0;
 
diff --git a/components/embedder_support/android/metrics/android_metrics_service_client_unittest.cc b/components/embedder_support/android/metrics/android_metrics_service_client_unittest.cc
index e11675e..b4e21f1 100644
--- a/components/embedder_support/android/metrics/android_metrics_service_client_unittest.cc
+++ b/components/embedder_support/android/metrics/android_metrics_service_client_unittest.cc
@@ -71,8 +71,6 @@
   using AndroidMetricsServiceClient::IsInSample;
 
  protected:
-  void InitInternal() override {}
-
   void OnMetricsStart() override {}
 
   int GetSampleBucketValue() override { return sample_bucket_value_; }
diff --git a/components/feedback/feedback_common.cc b/components/feedback/feedback_common.cc
index 3dfed97..aa0b638 100644
--- a/components/feedback/feedback_common.cc
+++ b/components/feedback/feedback_common.cc
@@ -7,7 +7,6 @@
 #include <utility>
 
 #include "base/memory/ptr_util.h"
-#include "base/strings/string_util.h"
 #include "components/feedback/feedback_report.h"
 #include "components/feedback/feedback_util.h"
 #include "components/feedback/proto/common.pb.h"
@@ -24,10 +23,6 @@
 constexpr int kChromeBrowserProductId = 237;
 #endif
 
-constexpr char kMultilineIndicatorString[] = "<multiline>\n";
-constexpr char kMultilineStartString[] = "---------- START ----------\n";
-constexpr char kMultilineEndString[] = "---------- END ----------\n\n";
-
 // The below thresholds were chosen arbitrarily to conveniently show small data
 // as part of the report itself without having to look into the system_logs.zip
 // file.
@@ -54,34 +49,6 @@
   return true;
 }
 
-// Converts the system logs into a string that we can compress and send
-// with the report.
-std::string LogsToString(const FeedbackCommon::SystemLogsMap& sys_info) {
-  std::string syslogs_string;
-  for (const auto& iter : sys_info) {
-    std::string key = iter.first;
-    std::string value = iter.second;
-
-    base::TrimString(key, "\n ", &key);
-    base::TrimString(value, "\n ", &value);
-
-    // We must avoid adding the crash IDs to the system_logs.txt file for
-    // privacy reasons. They should just be part of the product specific data.
-    if (key == feedback::FeedbackReport::kCrashReportIdsKey ||
-        key == feedback::FeedbackReport::kAllCrashReportIdsKey)
-      continue;
-
-    if (value.find("\n") != std::string::npos) {
-      syslogs_string.append(key + "=" + kMultilineIndicatorString +
-                            kMultilineStartString + value + "\n" +
-                            kMultilineEndString);
-    } else {
-      syslogs_string.append(key + "=" + value + "\n");
-    }
-  }
-  return syslogs_string;
-}
-
 void AddFeedbackData(userfeedback::ExtensionSubmit* feedback_data,
                      const std::string& key,
                      const std::string& value) {
@@ -228,7 +195,9 @@
 }
 
 void FeedbackCommon::CompressLogs() {
-  std::string logs = LogsToString(logs_);
+  // Convert the system logs into a string that we can compress and send with
+  // the report.
+  std::string logs = feedback_util::LogsToString(logs_);
   if (!logs.empty()) {
     CompressFile(base::FilePath(kLogsFilename), kLogsAttachmentName,
                  std::move(logs));
diff --git a/components/feedback/feedback_util.cc b/components/feedback/feedback_util.cc
index caa5abcc..ee4e207 100644
--- a/components/feedback/feedback_util.cc
+++ b/components/feedback/feedback_util.cc
@@ -9,15 +9,23 @@
 #include "base/bind.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
+#include "base/strings/string_util.h"
+#include "components/feedback/feedback_report.h"
 #include "third_party/zlib/google/zip.h"
 
-namespace feedback_util {
 namespace {
 
+constexpr char kMultilineIndicatorString[] = "<multiline>\n";
+constexpr char kMultilineStartString[] = "---------- START ----------\n";
+constexpr char kMultilineEndString[] = "---------- END ----------\n\n";
+
 }  // namespace
 
+namespace feedback_util {
+
 bool ZipString(const base::FilePath& filename,
-               const std::string& data, std::string* compressed_logs) {
+               const std::string& data,
+               std::string* compressed_logs) {
   base::ScopedTempDir temp_dir;
   base::FilePath zip_file;
 
@@ -39,4 +47,30 @@
   return succeed;
 }
 
+std::string LogsToString(const FeedbackCommon::SystemLogsMap& sys_info) {
+  std::string syslogs_string;
+  for (const auto& iter : sys_info) {
+    std::string key = iter.first;
+    base::TrimString(key, "\n ", &key);
+
+    if (key == feedback::FeedbackReport::kCrashReportIdsKey ||
+        key == feedback::FeedbackReport::kAllCrashReportIdsKey) {
+      // Avoid adding the crash IDs to the system_logs.txt file for privacy
+      // reasons. They should just be part of the product specific data.
+      continue;
+    }
+
+    std::string value = iter.second;
+    base::TrimString(value, "\n ", &value);
+    if (value.find("\n") != std::string::npos) {
+      syslogs_string.append(key + "=" + kMultilineIndicatorString +
+                            kMultilineStartString + value + "\n" +
+                            kMultilineEndString);
+    } else {
+      syslogs_string.append(key + "=" + value + "\n");
+    }
+  }
+  return syslogs_string;
+}
+
 }  // namespace feedback_util
diff --git a/components/feedback/feedback_util.h b/components/feedback/feedback_util.h
index 8cb4012..72b7fcb 100644
--- a/components/feedback/feedback_util.h
+++ b/components/feedback/feedback_util.h
@@ -8,6 +8,7 @@
 #include <string>
 
 #include "base/files/file_path.h"
+#include "components/feedback/feedback_common.h"
 
 namespace feedback_util {
 
@@ -15,6 +16,10 @@
                const std::string& data,
                std::string* compressed_data);
 
+// Converts the entries in |sys_info| into a single string. Primarily used for
+// creating a system_logs.txt file attached to feedback reports.
+std::string LogsToString(const FeedbackCommon::SystemLogsMap& sys_info);
+
 }  // namespace feedback_util
 
 #endif  // COMPONENTS_FEEDBACK_FEEDBACK_UTIL_H_
diff --git a/components/omnibox/browser/location_bar_model_impl.cc b/components/omnibox/browser/location_bar_model_impl.cc
index d6ee8a3..abcf58ad 100644
--- a/components/omnibox/browser/location_bar_model_impl.cc
+++ b/components/omnibox/browser/location_bar_model_impl.cc
@@ -96,7 +96,9 @@
   // and Reader Mode has its own security chip. In addition virtual URLs would
   // add a lot of complexity around passing necessary URL parameters to the
   // Reader Mode pages.
-  if (url.SchemeIs(dom_distiller::kDomDistillerScheme)) {
+  // Note: if the URL begins with dom-distiller:// but is invalid we display it
+  // as-is because it cannot be transformed into an article URL.
+  if (dom_distiller::url_utils::IsDistilledPage(url)) {
     // Ensure that HTTPS and HTTP will be removed. Reader mode should not
     // display a scheme, and should only run on HTTP/HTTPS pages.
     format_types |= url_formatter::kFormatUrlOmitHTTP;
diff --git a/components/omnibox/browser/location_bar_model_impl_unittest.cc b/components/omnibox/browser/location_bar_model_impl_unittest.cc
index 5337e12..e8bc0b5 100644
--- a/components/omnibox/browser/location_bar_model_impl_unittest.cc
+++ b/components/omnibox/browser/location_bar_model_impl_unittest.cc
@@ -129,17 +129,17 @@
   base::string16 originalFormattedFullUrl = model()->GetFormattedFullURL();
   // We expect that they don't start with "http://." We want the reader mode
   // URL shown to the user to be the same as this original URL.
-#ifdef OS_IOS
+#if defined(OS_IOS)
   EXPECT_EQ(base::ASCIIToUTF16("example.com/TestSuffix"), originalDisplayUrl);
-#else
+#else   // #!defined(OS_IOS)
   EXPECT_EQ(base::ASCIIToUTF16("example.com/article.html/TestSuffix"),
             originalDisplayUrl);
-#endif
+#endif  // #defined (OS_IOS)
   EXPECT_EQ(base::ASCIIToUTF16("www.example.com/article.html/TestSuffix"),
             originalFormattedFullUrl);
 
   GURL distilled = dom_distiller::url_utils::GetDistillerViewUrlFromUrl(
-      dom_distiller::kDomDistillerScheme, http_url);
+      dom_distiller::kDomDistillerScheme, http_url, "title");
   // Ensure the test is set up properly by checking the reader mode URL has
   // the reader mode scheme.
   EXPECT_EQ(dom_distiller::kDomDistillerScheme, distilled.scheme());
@@ -152,10 +152,25 @@
   // Similarly, https scheme should also be hidden.
   const GURL https_url("https://www.example.com/article.html");
   distilled = dom_distiller::url_utils::GetDistillerViewUrlFromUrl(
-      dom_distiller::kDomDistillerScheme, https_url);
+      dom_distiller::kDomDistillerScheme, https_url, "title");
   delegate()->SetURL(distilled);
   EXPECT_EQ(originalDisplayUrl, model()->GetURLForDisplay());
   EXPECT_EQ(originalFormattedFullUrl, model()->GetFormattedFullURL());
+
+  // Invalid dom-distiller:// URLs should be shown, because they do not
+  // correspond to any article.
+  delegate()->SetURL(GURL(("chrome-distiller://abc/?url=invalid")));
+#if defined(OS_IOS)
+  EXPECT_EQ(base::ASCIIToUTF16("chrome-distiller://abc/TestSuffix"),
+            model()->GetURLForDisplay());
+#else   // #!defined(OS_IOS)
+  EXPECT_EQ(
+      base::ASCIIToUTF16("chrome-distiller://abc/?url=invalid/TestSuffix"),
+      model()->GetURLForDisplay());
+#endif  // #defined (OS_IOS)
+  EXPECT_EQ(
+      base::ASCIIToUTF16("chrome-distiller://abc/?url=invalid/TestSuffix"),
+      model()->GetFormattedFullURL());
 }
 
 // TODO(https://crbug.com/1010418): Fix flakes on linux_chromium_asan_rel_ng and
diff --git a/components/omnibox/browser/omnibox_edit_model.cc b/components/omnibox/browser/omnibox_edit_model.cc
index 1b1277c..4c86fd2 100644
--- a/components/omnibox/browser/omnibox_edit_model.cc
+++ b/components/omnibox/browser/omnibox_edit_model.cc
@@ -390,10 +390,10 @@
     // If the omnibox is displaying a URL, set the hyperlink text to the URL's
     // spec. This undoes any URL elisions.
     if (!controller()->GetLocationBarModel()->GetDisplaySearchTerms(nullptr)) {
-      // Don't let users copy Reader Mode ("chrome-distiller://") URLs.
+      // Don't let users copy Reader Mode page URLs.
       // We display the original article's URL in the omnibox, so users will
       // expect that to be what is copied to the clipboard.
-      if (url_from_text->SchemeIs(dom_distiller::kDomDistillerScheme)) {
+      if (dom_distiller::url_utils::IsDistilledPage(*url_from_text)) {
         *url_from_text =
             dom_distiller::url_utils::GetOriginalUrlFromDistillerUrl(
                 *url_from_text);
diff --git a/components/omnibox/browser/omnibox_edit_model_unittest.cc b/components/omnibox/browser/omnibox_edit_model_unittest.cc
index 0073459..ac2a3c5 100644
--- a/components/omnibox/browser/omnibox_edit_model_unittest.cc
+++ b/components/omnibox/browser/omnibox_edit_model_unittest.cc
@@ -231,7 +231,7 @@
   const GURL article_url("https://www.example.com/article.html");
   const GURL distiller_url =
       dom_distiller::url_utils::GetDistillerViewUrlFromUrl(
-          dom_distiller::kDomDistillerScheme, article_url);
+          dom_distiller::kDomDistillerScheme, article_url, "title");
   // In ReaderMode, the URL is chrome-distiller://<hash>,
   // but the user should only see the original URL minus the scheme.
   location_bar_model()->set_url(distiller_url);
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json
index 9827554..e21597ed 100644
--- a/components/policy/resources/policy_templates.json
+++ b/components/policy/resources/policy_templates.json
@@ -2832,6 +2832,7 @@
         'chrome.*:8-',
         'chrome_os:11-',
         'android:30-',
+        'ios:84-',
       ],
       'features': {
         'can_be_recommended': True,
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index b0ca5b2..b549695 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -1170,6 +1170,7 @@
 <translation id="2592162121850992309">Wenn diese Richtlinie auf "true" gesetzt oder nicht konfiguriert ist, wird die Hardwarebeschleunigung aktiviert, sofern eine bestimmte GPU-Funktion nicht auf die schwarze Liste gesetzt wurde.
 
       Wenn diese Richtlinie auf "false" gesetzt ist, wird die Hardwarebeschleunigung deaktiviert.</translation>
+<translation id="2593762551209145088">Safe Browsing ist nie aktiv.</translation>
 <translation id="2596260130957832043">Legt fest, ob NTLMv2 aktiviert ist.
 
           Alle aktuellen Versionen der Samba- und Windows-Server unterstützen NTLMv2. Eine Deaktivierung sollte nur zum Zweck der Rückwärtskompatibilität erfolgen und verringert die Sicherheit der Authentifizierung.
@@ -1241,6 +1242,7 @@
 
       Weitere Informationen zu Safe Browsing finden Sie unter https://developers.google.com/safe-browsing.</translation>
 <translation id="2706708761587205154">Drucken nur mit PIN zulassen</translation>
+<translation id="2707873794476722903">Safe Browsing ist im Standardmodus aktiv.</translation>
 <translation id="2710534340210290498">Wenn diese Richtlinie auf "false" gesetzt ist, können Nutzer den Bildschirm nicht sperren, sondern sich lediglich von der Nutzersitzung abmelden. Ist diese Einstellung hingegen auf "true" gesetzt oder nicht konfiguriert, können Nutzer, die sich mit einem Passwort authentifiziert haben, den Bildschirm sperren.</translation>
 <translation id="2731627323327011390">Verwendung von <ph name="PRODUCT_OS_NAME" />-Zertifikaten für ARC-Apps deaktivieren</translation>
 <translation id="2742843273354638707">Hiermit werden die Chrome Web Store App und der zugehörige Fußzeilenlink auf der "Neuer Tab"-Seite und im App Launcher von <ph name="PRODUCT_OS_NAME" /> ausgeblendet.
@@ -2330,6 +2332,19 @@
 <translation id="437791893267799639">Richtlinie nicht konfiguriert, Datenmigration und ARC nicht zulassen</translation>
 <translation id="4389073105055031853">Nutzern erlauben, alle Zertifikate zu verwalten</translation>
 <translation id="4389091865841123886">Konfiguriert die Remote-Bestätigung mit TPM-Mechanismus</translation>
+<translation id="4401496838830169080">Mit dieser Richtlinie können Sie festlegen, ob die Safe Browsing-Funktion von <ph name="PRODUCT_NAME" /> aktiviert ist und in welchem Modus sie ausgeführt wird.
+
+      Wird die Richtlinie auf "NoProtection" (Wert 0) gesetzt, ist Safe Browsing nie aktiv.
+
+      Wird sie auf "StandardProtection" (Wert 1, die Standardeinstellung) gesetzt, ist Safe Browsing immer im Standardmodus aktiv.
+
+      Wird die Richtlinie auf "EnhancedProtection" (Wert 2), gesetzt, ist Safe Browsing immer im erweiterten Modus aktiv. Dieser bietet einen besseren Schutz. Es müssen jedoch mehr Browserdaten mit Google geteilt werden.
+
+      Wird diese Richtlinie als verbindlich konfiguriert, können Nutzer die Safe Browsing-Einstellung in <ph name="PRODUCT_NAME" /> nicht ändern oder überschreiben.
+
+      Wird sie nicht konfiguriert, ist Safe Browsing im Standard-Schutzmodus aktiv, Nutzer können diese Einstellung jedoch ändern.
+
+      Weitere Informationen zu Safe Browsing finden Sie unter https://developers.google.com/safe-browsing.</translation>
 <translation id="4408428864159735559">Liste der vorkonfigurierten Netzwerkfreigaben.</translation>
 <translation id="4410236409016356088">Begrenzung der Netzwerkbandbreite erlauben</translation>
 <translation id="441217499641439905">Synchronisierung zwischen Google Drive und der App "Dateien" von <ph name="PRODUCT_OS_NAME" /> per Mobilfunkverbindung deaktivieren</translation>
@@ -3440,6 +3455,7 @@
 <translation id="6111936128861357925">Easter Egg-Dinosaurierspiel zulassen</translation>
 <translation id="6114416803310251055">Veraltet</translation>
 <translation id="6133088669883929098">Schlüsselgenerierung für alle Websites zulassen</translation>
+<translation id="6135398260575578389">Safe Browsing ist im erweiterten Modus aktiv. Dieser bietet einen besseren Schutz. Es müssen jedoch mehr Browserdaten mit Google geteilt werden.</translation>
 <translation id="6136537398661737682">Mit dieser Richtlinie wird der Ausgangszustand der Standortdienste von Google festgelegt.
 
       Wenn die Richtlinie nicht konfiguriert oder auf "<ph name="GLS_DISABLED" />" festgelegt ist, sind die Standortdienste anfangs deaktiviert.
@@ -4407,6 +4423,23 @@
 <translation id="7687943045976362719">Wenn diese Richtlinie konfiguriert ist, wird für alle angegebenen Inhaltstypen <ph name="PRODUCT_FRAME_NAME" /> verwendet.
 
           Ist die Richtlinie nicht konfiguriert, kommt der Standardrenderer für alle Websites zum Einsatz. Anhand der Richtlinie "<ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" />" kann der Standardrenderer konfiguriert werden.</translation>
+<translation id="7691028179743802462">Diese Richtlinie wurde in M83 eingestellt. Verwenden Sie stattdessen "SafeBrowsingProtectionLevel".
+
+      Mit dieser Richtlinie können Sie die Safe Browsing-Funktion von <ph name="PRODUCT_NAME" /> aktivieren und verhindern, dass Nutzer diese Einstellung ändern können.
+
+      Wenn diese Einstellung aktiviert ist, ist Safe Browsing immer aktiv.
+
+      Wenn diese Einstellung deaktiviert ist, ist Safe Browsing nie aktiv.
+
+      Wird diese Einstellung aktiviert oder deaktiviert, können Nutzer die Einstellung "Phishing- und Malware-Schutz aktivieren" in <ph name="PRODUCT_NAME" /> nicht ändern oder überschreiben.
+
+      Ist die Richtlinie nicht konfiguriert, wird diese Einstellung aktiviert, kann jedoch vom Nutzer geändert werden.
+
+      Weitere Informationen zu Safe Browsing finden Sie unter https://developers.google.com/safe-browsing.
+
+      Diese Richtlinie steht nur bei Windows-Instanzen zur Verfügung, die Teil einer <ph name="MS_AD_NAME" />-Domain sind, oder bei Windows 10 Pro- oder Enterprise-Instanzen, die zur Geräteverwaltung angemeldet sind.
+
+      Ist die Richtlinie "SafeBrowsingProtectionLevel" konfiguriert, wird der Wert der Richtlinie "SafeBrowsingEnabled" ignoriert.</translation>
 <translation id="7694245791806617022">Diese Richtlinie legt fest, ob die Funktion zum Speichern von Passwörtern im Dialogfeld für die Kerberos-Authentifizierung aktiviert ist. Passwörter werden verschlüsselt auf dem Laufwerk gespeichert und sind nur für den Kerberos-System-Daemon während einer Nutzersitzung zugänglich.
 
           Ist die Richtlinie aktiviert oder nicht konfiguriert, können die Nutzer entscheiden, ob Kerberos-Passwörter gespeichert werden, sodass sie nicht wieder eingegeben werden müssen. Die Kerberos-Tickets werden automatisch abgerufen, sofern keine zusätzliche Authentifizierung erforderlich ist (Bestätigung in zwei Schritten).
@@ -4985,6 +5018,7 @@
 
           Genaue Informationen zu gültigen URL-Mustern finden Sie unter https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="8661297125441579970">Datenmigration und ARC nicht zulassen.</translation>
+<translation id="8665314828727504286">Schutzniveau für Safe Browsing</translation>
 <translation id="8672321184841719703">Automatische Aktualisierung auf Zielversion</translation>
 <translation id="867410340948518937">U2F (Universal Second Factor)</translation>
 <translation id="8685024486845674965">Die Passwortschutzwarnung wird durch die Wiederverwendung eines Passworts ausgelöst</translation>
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index 5dd54641..3b258d6 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -1160,6 +1160,7 @@
 <translation id="2592162121850992309">Si esta política se configura como verdadera o no se configura, se habilitará la aceleración de hardware a menos que una función determinada de la GPU esté en la lista negra.
 
       Si se configura como falsa, se inhabilitará la aceleración de hardware.</translation>
+<translation id="2593762551209145088">La Navegación segura nunca está activa.</translation>
 <translation id="2596260130957832043">Controla la habilitación de NTLMv2.
 
           Todas las versiones recientes de servidores de Samba y Windows son compatibles con NTLMv2. Esta política solo debe inhabilitarse para garantizar la compatibilidad con versiones anteriores. Además, reduce la seguridad de la autenticación.
@@ -1231,6 +1232,7 @@
 
       Consulta https://developers.google.com/safe-browsing para obtener más información sobre "Navegación segura".</translation>
 <translation id="2706708761587205154">Permite la impresión solo con PIN</translation>
+<translation id="2707873794476722903">Se activó la Navegación segura en el modo estándar.</translation>
 <translation id="2710534340210290498">Si esta política se configura como falsa, los usuarios no podrán bloquear la pantalla (solo podrán salir de la sesión). Si esta política se configura como verdadera, o no se configura, los usuarios autenticados con una contraseña podrán bloquear la pantalla.</translation>
 <translation id="2731627323327011390">Inhabilitar el uso de certificados de <ph name="PRODUCT_OS_NAME" /> para apps de ARC</translation>
 <translation id="2742843273354638707">Permite ocultar la aplicación Chrome Web Store y el vínculo de la parte inferior de la página Nueva pestaña y del Selector de aplicaciones de <ph name="PRODUCT_OS_NAME" />.
@@ -2331,6 +2333,19 @@
 <translation id="437791893267799639">No se estableció la política; no permitir la migración de datos y ARC</translation>
 <translation id="4389073105055031853">Permitir que los usuarios administren todos los certificados</translation>
 <translation id="4389091865841123886">Permite configurar la atestación remota con el mecanismo de TPM.</translation>
+<translation id="4401496838830169080">Te permite controlar si se habilita o no la función de Navegación segura de <ph name="PRODUCT_NAME" /> y el modo en el que opera.
+
+      Si se establece esta política como "NoProtection" (value 0), no se activará nunca la Navegación segura.
+
+      Si se establece como "StandardProtection" (valor 1, el cual es el predeterminado), la Navegación segura estará siempre activa en el modo estándar.
+
+      Si se establece como "EnhancedProtection" (valor 2), la Navegación segura estará siempre activa en el modo mejorado, el cual es más seguro, pero requiere que compartas con Google más datos sobre la navegación.
+
+      Si la estableces como obligatoria, los usuarios no podrán cambiar ni anular la configuración de la Navegación segura en <ph name="PRODUCT_NAME" />.
+
+      Si no se establece, la Navegación segura operará en el modo de protección estándar, pero los usuarios podrán cambiar esta configuración.
+
+      Para obtener más información sobre la Navegación segura, consulta https://developers.google.com/safe-browsing.</translation>
 <translation id="4408428864159735559">Lista de archivos compartidos de red configurados previamente</translation>
 <translation id="4410236409016356088">Habilitar la velocidad moderada del ancho de banda de la red</translation>
 <translation id="441217499641439905">Inhabilitar Google Drive a través de conexiones móviles en la app de Archivos de <ph name="PRODUCT_OS_NAME" /></translation>
@@ -3436,6 +3451,7 @@
 <translation id="6111936128861357925">Permitir juego del huevo de pascua del dinosaurio</translation>
 <translation id="6114416803310251055">en desuso</translation>
 <translation id="6133088669883929098">Permitir que todos los sitios utilicen la generación de claves</translation>
+<translation id="6135398260575578389">Se activó la Navegación segura en el modo mejorado. Este modo es más seguro, pero requiere que compartas con Google más datos sobre la navegación.</translation>
 <translation id="6136537398661737682">Esta política controla el estado inicial de los Servicios de ubicación de Google.
 
       Si no se configura o se establece como <ph name="GLS_DISABLED" />, se inhabilitarán los Servicios de ubicación de Google de forma inicial.
@@ -4418,6 +4434,23 @@
 <translation id="7687943045976362719">Si se configura esta política, <ph name="PRODUCT_FRAME_NAME" /> determinará los tipos de contenido especificados.
 
           Si no se configura esta política, se usará el procesador determinado en todos los sitios. (Se puede usar la política <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> para configurar este procesador).</translation>
+<translation id="7691028179743802462">Esta política deja de estar disponible en la versión M83. En su lugar, utiliza SafeBrowsingProtectionLevel.
+
+      Habilita la función Navegación segura de <ph name="PRODUCT_NAME" /> y evita que los usuarios puedan cambiar esta configuración.
+
+      Si habilitas esta configuración, Navegación segura estará siempre activa.
+
+      Si inhabilitas esta configuración, Navegación segura nunca estará activa.
+
+      Si la habilitas o inhabilitas, los usuarios no podrán cambiar ni anular la configuración para habilitar la protección contra software malicioso y suplantación de identidad (phishing) en <ph name="PRODUCT_NAME" />.
+
+      Si no se establece esta política, la configuración estará habilitada, pero el usuario podrá cambiarla.
+
+      Para obtener más información sobre la Navegación segura, consulta https://developers.google.com/safe-browsing.
+
+      Esta política está disponible en instancias de Windows vinculadas a un dominio de <ph name="MS_AD_NAME" /> o instancias de Windows 10 Pro o Enterprise habilitadas para la administración de dispositivos.
+
+      Si se establece la política SafeBrowsingProtectionLevel, se ignorará el valor de la política SafeBrowsingEnabled.</translation>
 <translation id="7694245791806617022">Determina si se habilita la función "Recordar contraseña" en el cuadro de diálogo de la autenticación Kerberos. Las contraseñas se almacenan encriptadas en el disco, y solo puede acceder a ellas el daemon del sistema Kerberos durante la sesión de usuario.
 
           Si se habilita esta política o no se establece, los usuarios podrán decidir si se recuerdan las contraseñas de Kerberos para no tener que ingresarlas de nuevo. Los tickets de Kerberos se recuperan automáticamente a menos que se requiera autenticación adicional (autenticación de dos factores).
@@ -5028,6 +5061,7 @@
 
           Para obtener información detallada sobre los patrones de URL válidos, consulta: https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="8661297125441579970">No permitir la migración de datos y ARC</translation>
+<translation id="8665314828727504286">Nivel de protección de la Navegación segura</translation>
 <translation id="8672321184841719703">Versión de destino para las actualizaciones automáticas</translation>
 <translation id="867410340948518937">U2F (segundo factor universal)</translation>
 <translation id="8685024486845674965">La advertencia de la protección de la contraseña se activa cuando se vuelve a usar la contraseña</translation>
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index 12f136e..dc5c149 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -1183,6 +1183,7 @@
 <translation id="2592162121850992309">Si se asigna el valor "True" a esta política o no se le asigna ningún valor, se habilitará la aceleración por hardware a no ser que se incluya una función de GPU determinada en la lista negra.
 
       Si se le asigna el valor "False", se inhabilitará la aceleración por hardware.</translation>
+<translation id="2593762551209145088">Navegación Segura nunca está activa.</translation>
 <translation id="2596260130957832043">Controla si la autenticación NTLMv2 está habilitada.
 
           Todas las versiones recientes de los servidores Windows y Samba admiten la autenticación NTLMv2. Solo debe inhabilitarse para obtener compatibilidad con versiones anteriores, lo cual reduce la seguridad a la hora de autenticarse.
@@ -1263,6 +1264,7 @@
 
       Consulta la página https://developers.google.com/safe-browsing para obtener más información acerca de Navegación Segura.</translation>
 <translation id="2706708761587205154">Permitir imprimir solo con PIN</translation>
+<translation id="2707873794476722903">La función Navegación Segura está activa en modo estándar.</translation>
 <translation id="2710534340210290498">Si se asigna el valor "False" a esta política, los usuarios no podrán bloquear la pantalla (solo podrán cerrar su sesión de usuario). Si se asigna el valor "True" a esta opción o no se le asigna ninguno, los usuarios que se autenticaron con una contraseña pueden bloquear la pantalla.</translation>
 <translation id="2731627323327011390">Inhabilitar el uso de certificados de <ph name="PRODUCT_OS_NAME" /> a las aplicaciones ARC</translation>
 <translation id="2742843273354638707">Permite ocultar la aplicación Chrome Web Store y el enlace de la parte inferior de la página en la página Nueva pestaña y en el menú de aplicaciones de <ph name="PRODUCT_OS_NAME" />.
@@ -2375,6 +2377,19 @@
 <translation id="437791893267799639">Política no establecida (no permitir la migración de datos ni ARC)</translation>
 <translation id="4389073105055031853">Permitir que los usuarios gestionen todos los certificados</translation>
 <translation id="4389091865841123886">Permite configurar la confirmación remota con el mecanismo de TPM.</translation>
+<translation id="4401496838830169080">Te permite controlar si la función Navegación Segura de <ph name="PRODUCT_NAME" /> está habilitada y el modo en el que funciona.
+
+      Si se asigna el valor NoProtection (valor 0) a esta política, Navegación Segura no estará activa nunca.
+
+      Si se le asigna el valor StandardProtection (valor 1, que es el predeterminado), Navegación Segura estará siempre activa en modo estándar.
+
+      Si se le asigna el valor EnhancedProtection (valor 2), Navegación Segura estará siempre activa en modo mejorado, el cual proporciona mayor seguridad, pero requiere compartir más información de navegación con Google.
+
+      Si estableces esta política como obligatoria, los usuarios no podrán cambiar ni anular la opción de Navegación Segura en <ph name="PRODUCT_NAME" />.
+
+      Si no se establece esta política, Navegación Segura funcionará en modo de protección estándar, pero los usuarios podrán cambiar esta opción.
+
+      Consulta la página https://developers.google.com/safe-browsing para obtener más información acerca de Navegación Segura.</translation>
 <translation id="4408428864159735559">Lista de sistemas de archivos de red compartidos preconfigurados.</translation>
 <translation id="4410236409016356088">Habilitar la limitación de ancho de banda</translation>
 <translation id="441217499641439905">Inhabilitar Google Drive a través de conexiones móviles en la aplicación Archivos de <ph name="PRODUCT_OS_NAME" /></translation>
@@ -3521,6 +3536,7 @@
 <translation id="6111936128861357925">Permitir el juego del huevo de pascua de dinosaurio</translation>
 <translation id="6114416803310251055">obsoleto</translation>
 <translation id="6133088669883929098">Permitir que todos los sitios web utilicen la generación de claves</translation>
+<translation id="6135398260575578389">Navegación Segura está activa en modo mejorado. Este modo proporciona mayor seguridad, pero requiere compartir más información de navegación con Google.</translation>
 <translation id="6136537398661737682">Esta política controla el estado inicial de los servicios de ubicación de Google.
 
       Si no se configura esta política o se le asigna el valor <ph name="GLS_DISABLED" />, los servicios de ubicación de Google están inhabilitados inicialmente.
@@ -3665,7 +3681,7 @@
 
           En el caso de las URL que no se incluyan en los patrones especificados en esta política, o en el caso de todas las URL, si no se establece esta política, se usará el valor general predeterminado especificado en la política DefaultCookiesSetting (si se ha definido) o en la configuración personal del usuario (en caso contrario).
 
-          Ten en cuenta que si <ph name="PRODUCT_NAME" /> se está ejecutando en segundo plano, es posible que la sesión no se cierre al cerrar la última ventana del navegador y que permanezca activa hasta que el usuario salga del navegador. Consulta la política BackgroundModeEnabled para obtener más información sobre cómo configurar este comportamiento.
+          Ten en cuenta que si <ph name="PRODUCT_NAME" /> se está ejecutando en segundo plano, es posible que la sesión no se cierre al cerrar la última ventana del navegador y que permanezca activa hasta que el navegador se cierre. Consulta la política BackgroundModeEnabled para obtener más información sobre cómo configurar este comportamiento.
 
           Consulta también las políticas CookiesAllowedForUrls y CookiesBlockedForUrls. Ten en cuenta que no puede haber patrones de URL en conflicto entre estas políticas, ya que no se especifica qué política prevalece.
 
@@ -4523,6 +4539,23 @@
 <translation id="7687943045976362719">Si se asigna un valor a esta política, <ph name="PRODUCT_FRAME_NAME" /> gestiona los tipos de contenido especificados.
 
           Si no se asigna ningún valor a esta política, se usará el procesador predeterminado para todos los sitios web. Se puede usar la política <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> para configurar el procesador predeterminado.</translation>
+<translation id="7691028179743802462">Esta política no está disponible en la versión M83. Utiliza la política SafeBrowsingProtectionLevel en su lugar.
+
+      Habilita la función Navegación Segura de <ph name="PRODUCT_NAME" /> y evita que los usuarios cambien esta opción.
+
+      Si habilitas esta opción, la función Navegación Segura estará siempre activada.
+
+      Si inhabilitas esta opción, no estará nunca activada.
+
+      Tanto si habilitas como si inhabilitas esta opción, los usuarios no podrán cambiar ni anular la opción "Habilitar protección contra phishing y software malicioso" en <ph name="PRODUCT_NAME" />.
+
+      Si no se establece esta política, la opción estará habilitada, pero el usuario podrá cambiarla.
+
+      Consulta la página https://developers.google.com/safe-browsing para obtener más información acerca de Navegación Segura.
+
+      Esta política solo está disponible en instancias de Windows que estén vinculadas a un dominio de <ph name="MS_AD_NAME" /> y en instancias de Windows 10 Pro o Enterprise que se hayan registrado para gestionar dispositivos.
+
+      Si se establece la política SafeBrowsingProtectionLevel, se ignorará el valor de la política SafeBrowsingEnabled.</translation>
 <translation id="7694245791806617022">Permite controlar si la función "Recordar contraseña" está habilitada en el cuadro de diálogo de autenticación Kerberos. Las contraseñas se almacenan cifradas en disco y solo se puede acceder a ellas con el daemon del sistema Kerberos durante una sesión de usuario.
 
           Si se habilita esta política o no se configura, los usuarios podrán decidir si se recuerdan las contraseñas de Kerberos para que no tengan que introducirlas de nuevo. Los tickets de Kerberos se obtienen automáticamente a menos que se necesite una autenticación adicional (autenticación de dos factores).
@@ -5110,6 +5143,7 @@
 
           Para obtener información detallada sobre los patrones de URL válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="8661297125441579970">No permitir la migración de datos ni ARC.</translation>
+<translation id="8665314828727504286">Nivel de protección de Navegación Segura</translation>
 <translation id="8672321184841719703">Versión de destino de actualizaciones automáticas</translation>
 <translation id="867410340948518937">U2F (Universal Second Factor)</translation>
 <translation id="8685024486845674965">La advertencia de protección de contraseña se activa al reutilizar la contraseña</translation>
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 857248a..e6ee9be 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -1195,6 +1195,7 @@
 <translation id="2592162121850992309">Si cette règle est définie sur "True" ou n'est pas configurée, l'accélération matérielle est activée, sauf si une certaine fonctionnalité GPU figure sur la liste noire.
 
       Si cette règle est définie sur "False", l'accélération matérielle est désactivée.</translation>
+<translation id="2593762551209145088">La navigation sécurisée n'est jamais active.</translation>
 <translation id="2596260130957832043">Contrôle si l'authentification NTLMv2 est activée.
 
           Toutes les versions récentes des serveurs Samba et Windows incluent l'authentification NTLMv2. La désactivation de cette fonctionnalité, qui réduit la sécurité de l'authentification, n'est conseillée qu'à des fins de rétrocompatibilité.
@@ -1272,6 +1273,7 @@
 
       Pour en savoir plus sur la navigation privée, consultez la page https://developers.google.com/safe-browsing.</translation>
 <translation id="2706708761587205154">Autoriser l'impression avec code uniquement</translation>
+<translation id="2707873794476722903">La navigation sécurisée est active et en mode de protection standard.</translation>
 <translation id="2710534340210290498">Si cette règle est définie sur "False", les utilisateurs ne peuvent pas verrouiller l'écran (seule la déconnexion de la session de l'utilisateur est possible). Si ce paramètre est défini sur "True", ou s'il n'est pas configuré, les utilisateurs ayant procédé à l'authentification avec un mot de passe peuvent verrouiller l'écran.</translation>
 <translation id="2731627323327011390">Désactiver l'utilisation de certificats <ph name="PRODUCT_OS_NAME" /> pour les applications ARC</translation>
 <translation id="2742843273354638707">Masque l'application Chrome Web Store et le lien de bas de page sur la page Nouvel onglet et dans le lanceur d'applications de <ph name="PRODUCT_OS_NAME" />.
@@ -2378,6 +2380,19 @@
 <translation id="437791893267799639">Règle non définie, interdire la migration de données et ARC</translation>
 <translation id="4389073105055031853">Autoriser les utilisateurs à gérer tous les certificats</translation>
 <translation id="4389091865841123886">Configurer l'attestation à distance avec le mécanisme TPM</translation>
+<translation id="4401496838830169080">Permet de contrôler si la fonctionnalité de navigation sécurisée de <ph name="PRODUCT_NAME" /> est activée ou non, ainsi que le mode dans lequel elle est définie.
+
+      Si cette règle est définie sur "NoProtection" (valeur 0), la navigation sécurisée n'est jamais active.
+
+      Si cette règle est définie sur "StandardProtection" (valeur 1, qui correspond à la valeur par défaut), la navigation sécurisée est toujours active et en mode de protection standard.
+
+      Si cette règle est définie sur "EnhancedProtection" (valeur 2), la navigation sécurisée est toujours active et en mode de protection renforcée. Ce mode offre une meilleure sécurité, mais nécessite de partager plus d'informations de navigation avec Google.
+
+      Si vous définissez cette règle comme obligatoire, les utilisateurs ne peuvent pas modifier ni ignorer le paramètre de navigation sécurisée dans <ph name="PRODUCT_NAME" />.
+
+      Si cette règle n'est pas configurée, la navigation sécurisée est en mode de protection standard. Toutefois, les utilisateurs peuvent modifier ce paramètre.
+
+      Pour en savoir plus sur la navigation sécurisée, consultez la page https://developers.google.com/safe-browsing.</translation>
 <translation id="4408428864159735559">Liste de partages de fichiers sur le réseau préconfigurés.</translation>
 <translation id="4410236409016356088">Activer la limitation de la bande passante réseau</translation>
 <translation id="441217499641439905">Désactiver Google Drive en cas de connexion au réseau mobile dans l'application "Fichiers" de <ph name="PRODUCT_OS_NAME" /></translation>
@@ -3518,6 +3533,7 @@
 <translation id="6111936128861357925">Autoriser le jeu Easter Egg du dinosaure</translation>
 <translation id="6114416803310251055">obsolète</translation>
 <translation id="6133088669883929098">Autoriser tous les sites à utiliser la génération de clé</translation>
+<translation id="6135398260575578389">La navigation sécurisée est active et en mode de protection renforcée. Ce mode offre une meilleure sécurité, mais nécessite de partager plus d'informations de navigation avec Google.</translation>
 <translation id="6136537398661737682">Cette règle permet de contrôler l'état initial des services de localisation Google.
 
       Si cette règle n'est pas configurée ou si elle est définie sur <ph name="GLS_DISABLED" />, ces services sont initialement désactivés.
@@ -4512,6 +4528,23 @@
 
 
 Dans le cas contraire, le moteur de rendu par défaut sera utilisé pour tous les sites. (La règle <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> peut être utilisée pour configurer le moteur de rendu par défaut.)</translation>
+<translation id="7691028179743802462">Cette règle étant obsolète dans la version M83, veuillez utiliser la règle "SafeBrowsingProtectionLevel" à la place.
+
+      Permet d'activer la fonctionnalité de navigation sécurisée de <ph name="PRODUCT_NAME" /> et d'empêcher les utilisateurs de modifier ce paramètre.
+
+      Si vous activez ce paramètre, la navigation sécurisée est active en permanence.
+
+      Si vous le désactivez, la navigation sécurisée n'est jamais active.
+
+      Si vous activez ou désactivez ce paramètre, les utilisateurs ne peuvent pas modifier ni ignorer le paramètre "Activer la protection contre l'hameçonnage et les logiciels malveillants" dans <ph name="PRODUCT_NAME" />.
+
+      Si cette règle n'est pas configurée, ce paramètre sera activé, mais les utilisateurs pourront le modifier.
+
+      Pour en savoir plus sur la navigation sécurisée, consultez la page https://developers.google.com/safe-browsing.
+
+      Cette règle n'est disponible que sur les instances Windows qui sont associées à un domaine <ph name="MS_AD_NAME" />, ou sur les instances Windows 10 Pro ou Windows Enterprise qui sont enregistrées pour bénéficier de la gestion des appareils.
+
+      Si la règle "SafeBrowsingProtectionLevel" est configurée, la valeur de la règle "SafeBrowsingEnabled" est ignorée.</translation>
 <translation id="7694245791806617022">Permet de contrôler si la fonctionnalité "Mémoriser le mot de passe" est activée ou non dans la boîte de dialogue d'authentification Kerberos. Les mots de passe sont stockés chiffrés sur le disque, et ne sont accessibles qu'au démon du système Kerberos et pendant une session utilisateur.
 
           Si cette règle est activée ou si elle n'est pas définie, les utilisateurs peuvent décider de mémoriser les mots de passe Kerberos afin de ne pas avoir à les saisir de nouveau. Les tickets Kerberos sont récupérés automatiquement, sauf si une authentification supplémentaire est requise (authentification à deux facteurs).
@@ -5101,6 +5134,7 @@
 
           Pour en savoir plus sur les formats d'URL valides, consultez cette page : https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="8661297125441579970">Interdire la migration de données et ARC.</translation>
+<translation id="8665314828727504286">Mode de protection de la navigation sécurisée</translation>
 <translation id="8672321184841719703">Cibler une version pour les mises à jour automatiques</translation>
 <translation id="867410340948518937">U2F (Deuxième facteur universel)</translation>
 <translation id="8685024486845674965">L'avertissement de protection par mot de passe est déclenché en cas de réutilisation du mot de passe</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index a427fa67..9b675b3 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -1159,6 +1159,7 @@
 <translation id="2592162121850992309">Jika kebijakan ini ditetapkan ke True atau tidak ditetapkan, akselerasi hardware akan diaktifkan kecuali jika fitur GPU tertentu termasuk dalam daftar tidak diizinkan.
 
       Jika kebijakan ini ditetapkan ke False, akselerasi hardware akan dinonaktifkan.</translation>
+<translation id="2593762551209145088">Safe Browsing tidak pernah aktif.</translation>
 <translation id="2596260130957832043">Mengontrol apakah NTLMv2 dinonaktifkan.
           
           Semua versi terbaru server Samba dan Windows mendukung NTLMv2.
@@ -1232,6 +1233,7 @@
 
       Lihat https://developers.google.com/safe-browsing untuk mengetahui info selengkapnya tentang Safe Browsing.</translation>
 <translation id="2706708761587205154">Hanya izinkan pencetakan dengan PIN</translation>
+<translation id="2707873794476722903">Safe Browsing aktif dalam mode standar.</translation>
 <translation id="2710534340210290498">Jika kebijakan ini ditetapkan ke False, pengguna tidak akan dapat mengunci layar (hanya dapat logout dari sesi pengguna). Jika setelan ini ditetapkan ke True atau tidak ditetapkan, pengguna yang melakukan autentikasi dengan sandi dapat mengunci layar.</translation>
 <translation id="2731627323327011390">Menonaktifkan penggunaan sertifikat <ph name="PRODUCT_OS_NAME" /> untuk aplikasi ARC</translation>
 <translation id="2742843273354638707">Menyembunyikan aplikasi Chrome Webstore serta link footer dari Halaman Tab Baru dan peluncur aplikasi <ph name="PRODUCT_OS_NAME" />.
@@ -2333,6 +2335,19 @@
 <translation id="437791893267799639">Kebijakan tidak disetel, jangan izinkan migrasi data dan ARC</translation>
 <translation id="4389073105055031853">Izinkan pengguna mengelola semua sertifikat</translation>
 <translation id="4389091865841123886">Mengonfigurasi pengesahan jarak jauh dengan mekanisme TPM.</translation>
+<translation id="4401496838830169080">Memungkinkan Anda mengontrol apakah fitur Safe Browsing <ph name="PRODUCT_NAME" /> diaktifkan dan dalam mode apa fitur tersebut beroperasi.
+
+      Jika kebijakan ini ditetapkan ke 'NoProtection' (nilai 0), Safe Browsing tidak pernah aktif.
+
+      Jika kebijakan ini ditetapkan ke 'StandardProtection' (nilai 1, yang merupakan default), Safe Browsing selalu aktif dalam mode standar.
+
+      Jika kebijakan ini ditetapkan ke 'EnhancedProtection' (nilai 2), Safe Browsing selalu aktif dalam mode yang disempurnakan, yang memberikan keamanan lebih baik, tetapi perlu membagikan lebih banyak informasi penjelajahan kepada Google.
+
+      Jika Anda menetapkan kebijakan ini sebagai sesuatu yang wajib, pengguna tidak dapat mengubah atau mengganti setelan Safe Browsing di <ph name="PRODUCT_NAME" />.
+
+      Jika kebijakan ini tidak ditetapkan, Safe Browsing akan beroperasi dalam mode Perlindungan Standar tetapi pengguna dapat mengubah setelan ini.
+
+      Lihat https://developers.google.com/safe-browsing untuk mengetahui info selengkapnya tentang Safe Browsing.</translation>
 <translation id="4408428864159735559">Daftar berbagi file jaringan yang telah dikonfigurasikan sebelumnya.</translation>
 <translation id="4410236409016356088">Aktifkan pembatasan bandwidth jaringan</translation>
 <translation id="441217499641439905">Nonaktifkan Google Drive melalui koneksi seluler di aplikasi File <ph name="PRODUCT_OS_NAME" /></translation>
@@ -2911,7 +2926,7 @@
 
       Jika kebijakan ini ditetapkan ke "Aktifkan login browser", pengguna diizinkan untuk login ke browser, dan akan otomatis login ke browser saat mereka login ke layanan web Google seperti Gmail. Setelah login ke browser, informasi akun pengguna akan disimpan oleh browser. Namun, ini tidak berarti bahwa sinkronisasi Chrome akan diaktifkan secara default; pengguna harus secara khusus memilih untuk ikut serta menggunakan fitur ini. Jika kebijakan ini diaktifkan, pengguna tidak akan dapat menonaktifkan setelan yang mengizinkan login browser. Untuk mengontrol ketersediaan sinkronisasi Chrome, gunakan kebijakan "SyncDisabled".
 
-      Jika kebijakan ini ditetapkan ke "Paksa login ke browser", sebuah dialog untuk memilih akun akan ditampilkan dan pengguna harus memilih serta login ke salah satu akun agar dapat menggunakan browser. Hal ini memastikan bahwa, untuk akun terkelola, kebijakan yang terkait dengan akun tersebut diterapkan dan diberlakukan. Secara default, langkah ini mengaktifkan sinkronisasi Chrome untuk akun tersebut, kecuali jika sinkronisasi dinonaktifkan oleh admin domain atau melalui kebijakan "SyncDisabled". Nilai default BrowserGuestModeEnabled akan ditetapkan ke salah. Perlu diketahui bahwa profil yang ada serta belum ditandatangani akan dikunci dan tidak dapat diakses setelah kebijakan ini diaktifkan. Untuk mengetahui informasi selengkapnya, lihat artikel pusat bantuan: https://support.google.com/chrome/a/answer/7572556. Opsi ini tidak mendukung Linux dan Android, dan akan dikembalikan ke kebijakan "Aktifkan login browser" jika digunakan.
+      Jika kebijakan ini ditetapkan ke "Paksa login ke browser", sebuah dialog untuk memilih akun akan ditampilkan dan pengguna harus memilih serta login ke salah satu akun agar dapat menggunakan browser. Hal ini memastikan bahwa, untuk akun terkelola, kebijakan yang terkait dengan akun tersebut diterapkan dan diberlakukan. Secara default, langkah ini mengaktifkan sinkronisasi Chrome untuk akun tersebut, kecuali jika sinkronisasi dinonaktifkan oleh admin domain atau melalui kebijakan "SyncDisabled". Nilai default BrowserGuestModeEnabled akan ditetapkan ke Salah. Perlu diketahui bahwa profil yang ada serta belum ditandatangani akan dikunci dan tidak dapat diakses setelah kebijakan ini diaktifkan. Untuk mengetahui informasi selengkapnya, lihat artikel pusat bantuan: https://support.google.com/chrome/a/answer/7572556. Opsi ini tidak mendukung Linux dan Android, dan akan dikembalikan ke kebijakan "Aktifkan login browser" jika digunakan.
 
       Jika kebijakan ini tidak ditetapkan, pengguna dapat memutuskan apakah mereka ingin mengaktifkan opsi login browser dan menggunakannya jika dirasa sesuai.</translation>
 <translation id="532848608876725157">Aktifkan DNS-over-HTTPS dengan fallback yang tidak aman</translation>
@@ -3446,6 +3461,7 @@
 <translation id="6111936128861357925">Izinkan Game Dinosaur Easter Egg</translation>
 <translation id="6114416803310251055">tak lagi digunakan</translation>
 <translation id="6133088669883929098">Izinkan semua situs menggunakan pembuatan kunci</translation>
+<translation id="6135398260575578389">Safe Browsing aktif dalam mode yang disempurnakan. Mode ini memberikan keamanan yang lebih baik, tetapi perlu membagikan lebih banyak informasi penjelajahan kepada Google.</translation>
 <translation id="6136537398661737682">Kebijakan ini mengontrol status awal layanan lokasi Google.
 
       Jika kebijakan ini tidak dikonfigurasi atau ditetapkan ke <ph name="GLS_DISABLED" />, status awal layanan lokasi Google adalah dinonaktifkan.
@@ -4404,6 +4420,23 @@
 <translation id="7687943045976362719">Jika kebijakan ini ditetapkan, jenis konten yang ditentukan akan ditangani oleh <ph name="PRODUCT_FRAME_NAME" />.
 
           Jika kebijakan ini tidak ditetapkan, perender default akan digunakan untuk semua situs. (Kebijakan <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> dapat digunakan untuk mengonfigurasi perender default.)</translation>
+<translation id="7691028179743802462">Kebijakan ini tidak digunakan lagi di M83, gunakan SafeBrowsingProtectionLevel sebagai gantinya.
+
+      Mengaktifkan fitur Safe Browsing <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubah setelan ini.
+
+      Jika Anda mengaktifkan setelan ini, Safe Browsing akan selalu aktif.
+
+      Jika Anda menonaktifkan setelan ini, Safe Browsing tidak akan pernah aktif.
+
+      Jika Anda mengaktifkan atau menonaktifkan setelan ini, pengguna tidak dapat mengubah atau mengganti setelan "Aktifkan perlindungan dari phishing dan malware" di <ph name="PRODUCT_NAME" />.
+
+      Jika tidak ditetapkan, kebijakan ini akan diaktifkan tetapi pengguna dapat mengubahnya.
+
+      Lihat https://developers.google.com/safe-browsing untuk mengetahui info selengkapnya tentang Safe Browsing.
+
+      Kebijakan ini hanya tersedia pada instance Windows yang dihubungkan ke domain <ph name="MS_AD_NAME" />, atau instance Windows 10 Pro atau Enterprise yang terdaftar untuk pengelolaan perangkat.
+
+      Jika kebijakan SafeBrowsingProtectionLevel ditetapkan, nilai kebijakan SafeBrowsingEnabled akan diabaikan.</translation>
 <translation id="7694245791806617022">Mengontrol apakah fitur 'Ingat sandi' diaktifkan di dialog autentikasi Kerberos. Sandi disimpan dan dienkripsi di disk, serta hanya dapat diakses oleh daemon sistem Kerberos dan selama sesi pengguna.
 
           Jika kebijakan ini diaktifkan atau tidak disetel, pengguna dapat menentukan apakah sandi Kerberos akan diingat, sehingga Anda tidak perlu memasukkannya lagi. Tiket Kerberos diambil secara otomatis, kecuali diperlukan autentikasi tambahan (autentikasi 2 langkah).
@@ -4984,6 +5017,7 @@
 
           Untuk informasi mendetail tentang pola URL yang valid, lihat https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="8661297125441579970">Jangan izinkan migrasi data dan ARC.</translation>
+<translation id="8665314828727504286">Tingkat Perlindungan Safe Browsing</translation>
 <translation id="8672321184841719703">Versi Update Otomatis Target</translation>
 <translation id="867410340948518937">U2F (Universal Second Factor)</translation>
 <translation id="8685024486845674965">Peringatan perlindungan sandi dipicu oleh penggunaan ulang sandi</translation>
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index e24aea7e..39ae99fb 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -2306,15 +2306,15 @@
 <translation id="4389091865841123886">Configura l'attestazione da remoto con meccanismo TPM.</translation>
 <translation id="4401496838830169080">Consente di controllare se la funzionalità Navigazione sicura di <ph name="PRODUCT_NAME" /> è attiva e la relativa modalità.
 
-      Se questo criterio viene impostato su "NoProtection" (valore 0), la Navigazione sicura non è mai attiva.
+      Se questo criterio viene impostato su "NoProtection" (valore 0), Navigazione sicura non è mai attiva.
 
-      Se questo criterio viene impostato su "StandardProtection" (valore 1, predefinito), la Navigazione sicura è sempre attiva in modalità standard.
+      Se questo criterio viene impostato su "StandardProtection" (valore 1, predefinito), Navigazione sicura è sempre attiva in modalità standard.
 
-      Se questo criterio viene impostato su "EnhancedProtection" (valore 2), la Navigazione sicura è sempre attiva in modalità avanzata e fornisce maggior sicurezza, ma non richiede la condivisione di ulteriori dati di navigazione con Google.
+      Se questo criterio viene impostato su "EnhancedProtection" (valore 2), Navigazione sicura è sempre attiva in modalità avanzata e fornisce maggior sicurezza, ma non richiede la condivisione di ulteriori dati di navigazione con Google.
 
       Se imposti questo criterio come obbligatorio, gli utenti non potranno modificare o ignorare l'impostazione Navigazione sicura in <ph name="PRODUCT_NAME" />.
 
-      Se questo criterio non viene impostato, la Navigazione sicura sarà attiva in modalità di protezione standard, ma gli utenti potranno modificare questa impostazione.
+      Se questo criterio non viene impostato, Navigazione sicura sarà attiva in modalità di protezione standard, ma gli utenti potranno modificare questa impostazione.
 
       Visita il sito https://developers.google.com/safe-browsing per ulteriori informazioni sulla funzionalità Navigazione sicura.</translation>
 <translation id="4408428864159735559">Elenco di condivisioni di file di rete preconfigurate.</translation>
@@ -3421,7 +3421,7 @@
 <translation id="6111936128861357925">Attiva il gioco del dinosauro</translation>
 <translation id="6114416803310251055">obsoleto</translation>
 <translation id="6133088669883929098">Consenti a tutti i siti di utilizzare la generazione di chiavi</translation>
-<translation id="6135398260575578389">Navigazione sicura è attiva in modalità avanzata. Questa modalità fornisce maggior sicurezza, ma non richiede la condivisione di ulteriori dati di navigazione con Google.</translation>
+<translation id="6135398260575578389">Navigazione sicura è attiva in modalità potenziata. Questa modalità fornisce maggior sicurezza, ma non richiede la condivisione di ulteriori dati di navigazione con Google.</translation>
 <translation id="6136537398661737682">Questo criterio consente di controllare lo stato iniziale dei Servizi di geolocalizzazione di Google.
 
       Se questo criterio non viene configurato o viene impostato su <ph name="GLS_DISABLED" />, i Servizi di geolocalizzazione di Google sono inizialmente disattivati.
@@ -4403,13 +4403,13 @@
 
       Consente di attivare la funzionalità Navigazione sicura di <ph name="PRODUCT_NAME" /> e di impedire agli utenti di modificare questa impostazione.
 
-      Se attivi questa impostazione, la Navigazione sicura è sempre attiva.
+      Se attivi questa impostazione, Navigazione sicura è sempre attiva.
 
-      Se la disattivi, la Navigazione sicura non è mai attiva.
+      Se la disattivi, Navigazione sicura non è mai attiva.
 
       Se attivi questa impostazione o la disattivi, gli utenti non potranno modificare o ignorare l'impostazione "Attiva protezione contro phishing e malware" in <ph name="PRODUCT_NAME" />.
 
-      Se questo criterio non viene impostato, l'impostazione verrà attivata ma gli utenti non potranno modificarla.
+      Se questo criterio non viene impostato, l'impostazione verrà attivata, ma gli utenti non potranno modificarla.
 
       Visita il sito https://developers.google.com/safe-browsing per ulteriori informazioni sulla funzionalità Navigazione sicura.
 
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index 83bfcbc1..40ccb92 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -1160,6 +1160,7 @@
 <translation id="2592162121850992309">このポリシーが true または未設定の場合、特定の GPU 機能がブラックリストに登録されていない限り、ハードウェア アクセラレーションは有効となります。
 
       このポリシーが false の場合、ハードウェア アクセラレーションは無効となります。</translation>
+<translation id="2593762551209145088">セーフ ブラウジングを常に無効にする。</translation>
 <translation id="2596260130957832043">NTLMv2 を有効にするかどうかを指定します。
 
           比較的新しいバージョンの Samba サーバーと Windows サーバーでは NTLMv2 がサポートされています。この設定は、古いバージョンとの互換性が必要な場合にのみ無効にしてください。無効にした場合は、認証のセキュリティが低下します。
@@ -1230,6 +1231,7 @@
 
       セーフ ブラウジングについて詳しくは、https://developers.google.com/safe-browsing をご覧ください。</translation>
 <translation id="2706708761587205154">PIN ありの印刷のみを許可します</translation>
+<translation id="2707873794476722903">セーフ ブラウジングを標準モードで有効にする。</translation>
 <translation id="2710534340210290498">このポリシーが false の場合、ユーザーは画面をロックできません(ユーザー セッションからのログアウトのみ可能です)。このポリシーが true または未設定の場合、パスワードで認証されたユーザーは画面をロックできます。</translation>
 <translation id="2731627323327011390">ARC アプリで <ph name="PRODUCT_OS_NAME" /> の証明書を使用できないようにする</translation>
 <translation id="2742843273354638707">[新しいタブ] ページと <ph name="PRODUCT_OS_NAME" /> のアプリ ランチャーで、Chrome ウェブストア アプリとフッターのリンクを非表示にします。
@@ -2321,6 +2323,19 @@
 <translation id="437791893267799639">ポリシー未設定、データ移行と ARC を許可しない</translation>
 <translation id="4389073105055031853">すべての証明書の管理をユーザーに許可する</translation>
 <translation id="4389091865841123886">TPM メカニズムを使用してリモート認証を設定します。</translation>
+<translation id="4401496838830169080"><ph name="PRODUCT_NAME" /> のセーフ ブラウジング機能を有効にするかどうかと、有効にする場合に使用するモードを管理できます。
+
+      このポリシーを「NoProtection」(値 0)に設定した場合、セーフ ブラウジングは常に無効になります。
+
+      このポリシーを「StandardProtection」(値 1、デフォルト値)に設定した場合、セーフ ブラウジングは常に標準モードで有効になります。
+
+      このポリシーを「EnhancedProtection」(値 2)に設定した場合、セーフ ブラウジングは常に強化モードで有効になります。強化モードではセキュリティが強化されますが、より多くの閲覧情報を Google に提供する必要があります。
+
+      このポリシーを必須として設定した場合、ユーザーは <ph name="PRODUCT_NAME" /> のセーフ ブラウジング設定を変更したりオーバーライドしたりすることはできません。
+
+      このポリシーを未設定のままにした場合、セーフ ブラウジングは標準保護モードで有効になりますが、ユーザーはこの設定を変更できます。
+
+      セーフ ブラウジングについて詳しくは、https://developers.google.com/safe-browsing をご覧ください。</translation>
 <translation id="4408428864159735559">事前設定のネットワーク ファイル共有のリスト。</translation>
 <translation id="4410236409016356088">ネットワークの帯域幅制限を有効にする</translation>
 <translation id="441217499641439905">モバイル接続時に <ph name="PRODUCT_OS_NAME" /> ファイルアプリで Google ドライブを無効にする</translation>
@@ -2564,9 +2579,7 @@
       このポリシーが false に設定されているか未設定の場合、OS のアップデート情報はレポートされません。true に設定されている場合、OS のアップデート情報がレポートされます。</translation>
 <translation id="4858735034935305895">全画面モードを許可する</translation>
 <translation id="4861767323695239729">ユーザー セッションで許可する入力方法を設定します</translation>
-<translation id="4869603341164509842">このリストに指定されているパターンが、リクエスト元 URL の
-      セキュリティ オリジンと照合されます。一致するものが見つかった場合は、
-      動画キャプチャ デバイスへのアクセスが許可されます。その際、確認のメッセージは表示されません。
+<translation id="4869603341164509842">このリストに指定されているパターンが、リクエスト元 URL のセキュリティ オリジンと照合されます。一致するものが見つかった場合は、動画キャプチャ デバイスへのアクセスが許可されます。その際、確認のメッセージは表示されません。
 
       有効な URL パターンについて詳しくは、https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns をご覧ください。
 
@@ -2894,7 +2907,7 @@
 
       このポリシーが「ブラウザのログインを無効にする」に設定されている場合、ユーザーは、ブラウザにログインしてアカウントに基づくサービスを使用することができません。この場合、Chrome 同期のようなブラウザレベルの機能は使用不可となります。ユーザーがすでにログインしている状態でこのポリシーが「無効」に設定された場合は、次回 Chrome を起動するとログアウトの状態になります。ただし、ブックマーク、パスワードといったローカルのプロフィール データは保持されます。Gmail のような Google ウェブサービスは、引き続きログインして使用することができます。
 
-      このポリシーが「ブラウザのログインを有効にする」に設定されている場合、ユーザーはブラウザにログインすることができ、また Gmail のような Google ウェブサービスにログインするとブラウザにも自動的にログインした状態になります。ブラウザにログインしているときには、ユーザーのアカウント情報がブラウザで保持されます。ただし、Chrome 同期はデフォルトでオンにはなりません。Chrome 同期を使用するには、ユーザーが別途この機能をオンにする必要があります。このポリシーを有効にした場合、ブラウザのログインを許可するかどうかの設定をユーザーがオフにすることはできません。Chrome 同期を利用できるかどうかを制御するには、「SyncDisabled」ポリシーを使用します。
+      このポリシーが「ブラウザのログインを有効にする」に設定されている場合、ユーザーはブラウザにログインすることができ、また Gmail のような Google ウェブサービスにログインするとブラウザにも自動的にログインした状態になります。ブラウザにログインしているときには、ユーザーのアカウント情報がブラウザで保持されます。ただし、Chrome 同期はデフォルトではオンになりません。Chrome 同期を使用するには、ユーザーが別途この機能をオンにする必要があります。このポリシーを有効にした場合、ブラウザのログインを許可するかどうかの設定をユーザーがオフにすることはできません。Chrome 同期を利用できるかどうかを制御するには、「SyncDisabled」ポリシーを使用します。
 
       このポリシーが「ブラウザのログインを必須とする」に設定されている場合、ユーザーにはアカウント選択のダイアログが表示されます。ブラウザを使用するには、いずれかのアカウントを選択してログインする必要があります。管理対象アカウントの場合、この設定を使用することで、アカウントに関連付けられているポリシーの適用を徹底できます。対象のアカウントでは Chrome 同期もデフォルトでオンになります(ドメインの管理者または「SyncDisabled」ポリシーによって同期が無効に設定されている場合を除く)。また、BrowserGuestModeEnabled のデフォルト値は false になります。このポリシーを有効にした後、ログインしていない既存のプロフィールはロックされ、アクセスできなくなります。詳しくはヘルプセンター記事(https://support.google.com/chrome/a/answer/7572556)をご覧ください。このオプションは Linux と Android には対応していません。Linux または Android でこのオプションを使用した場合は、「ブラウザのログインを有効にする」の設定に置き換えられます。
 
@@ -3430,6 +3443,7 @@
 <translation id="6111936128861357925">恐竜のイースター エッグゲームを許可する</translation>
 <translation id="6114416803310251055">廃止予定</translation>
 <translation id="6133088669883929098">すべてのサイトにキー生成の使用を許可する</translation>
+<translation id="6135398260575578389">セーフ ブラウジングを強化モードで有効にする。このモードではセキュリティが強化されますが、より多くの閲覧情報を Google に提供する必要があります。</translation>
 <translation id="6136537398661737682">このポリシーでは、Google 位置情報サービスの初期状態を管理します。
 
       このポリシーを設定していないか <ph name="GLS_DISABLED" /> に設定した場合、Google 位置情報サービスは初期状態で無効になります。
@@ -4274,7 +4288,7 @@
 
           この設定を有効にして、ドメインを 1 つ以上指定した場合、ホストに接続できるのは、指定されたいずれかのドメインのクライアントのみとなります。
 
-          この設定を無効にするか未設定のままにした場合、または空のリストに設定した場合は、接続タイプのデフォルトのポリシーが適用されます。リモート サポートの場合は、どのドメインのクライアントでもホストに接続できます。常時リモート アクセスの場合は、ホストの所有者のみが接続できます。
+          この設定を無効にするか未設定のままにした場合、または空のリストに設定した場合は、この接続タイプに対するデフォルトのポリシーが適用されます。リモート サポートの場合は、どのドメインのクライアントでもホストに接続できます。常時リモート アクセスの場合は、ホストの所有者のみが接続できます。
 
           この設定は RemoteAccessHostClientDomain に優先します(指定されている場合)。
 
@@ -4398,6 +4412,23 @@
 <translation id="7687943045976362719">このポリシーが設定されている場合、指定されたコンテンツ タイプは <ph name="PRODUCT_FRAME_NAME" /> で処理されます。
 
           このポリシーが未設定の場合、デフォルトのレンダラがすべてのサイトで使用されます(<ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> ポリシーを使用してデフォルトのレンダラを設定することもできます)。</translation>
+<translation id="7691028179743802462">このポリシーは M83 でサポートが終了しています。代わりに SafeBrowsingProtectionLevel を使用してください。
+
+      <ph name="PRODUCT_NAME" /> のセーフ ブラウジング機能を有効にするとともに、ユーザーがこの設定を変更できないようにします。
+
+      この設定を有効にすると、セーフ ブラウジングは常に有効になります。
+
+      この設定を無効にすると、セーフ ブラウジングは常に無効になります。
+
+      この設定を有効または無効にした場合、ユーザーは <ph name="PRODUCT_NAME" /> の [フィッシングや不正なソフトウェアからの保護を有効にする] 設定を変更したりオーバーライドしたりすることはできません。
+
+      このポリシーを未設定のままにした場合、セーフ ブラウジングは有効になりますが、ユーザーはこの設定を変更できます。
+
+      セーフ ブラウジングについて詳しくは、https://developers.google.com/safe-browsing をご覧ください。
+
+      このポリシーは、<ph name="MS_AD_NAME" /> ドメインに追加した Windows インスタンス、またはデバイスの管理対象として登録した Windows 10 Pro あるいは Enterprise インスタンスでのみ使用できます。
+
+      ポリシー SafeBrowsingProtectionLevel が設定されている場合、ポリシー SafeBrowsingEnabled の値は無視されます。</translation>
 <translation id="7694245791806617022">Kerberos 認証ダイアログで「パスワードを保存する」機能が有効かどうかを制御します。パスワードはディスク上で暗号化して保存され、ユーザー セッション中に Kerberos システム デーモンからのみアクセスできます。
 
           このポリシーが有効に設定されているか未設定の場合、ユーザーは再入力の手間を省くために Kerberos パスワードを保存するかどうかを指定できます。Kerberos チケットは、追加の認証(2 段階認証プロセス)が必要な場合以外は自動的に取得されます。
@@ -4987,10 +5018,11 @@
 
           このポリシーが未設定のままの場合は、すべてのサイトでグローバルなデフォルト値(「DefaultWebUsbGuardSetting」ポリシーで値が設定されている場合はその値、設定されていない場合はユーザーの個人設定の値)が使用されます。
 
-          このポリシーで指定する URL パターンは、WebUsbBlockedForUrls ポリシーで指定する URL パターンと競合しないようにする必要があります。URL が両方のポリシーのパターンに一致する場合、どちらのポリシーが優先されるかは決まっていません。
+          このポリシーで指定する URL パターンは、WebUsbBlockedForUrls ポリシーで指定する URL パターンとの競合を避ける必要があります。URL が両方のポリシーのパターンに一致する場合、どちらのポリシーが優先されるかは決まっていません。
 
           有効な URL パターンについて詳しくは、https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns をご覧ください。</translation>
 <translation id="8661297125441579970">データ移行と ARC を許可しない。</translation>
+<translation id="8665314828727504286">セーフ ブラウジングの保護レベル</translation>
 <translation id="8672321184841719703">自動更新の対象バージョンを指定</translation>
 <translation id="867410340948518937">U2F(Universal Second Factor)</translation>
 <translation id="8685024486845674965">パスワードが再使用されたときに、パスワード保護について警告する</translation>
@@ -5124,9 +5156,8 @@
 
           このポリシーを設定しない場合、ログイン画面において自動クリックは初期設定で無効になりますが、ユーザーはいつでも設定を有効にできます。</translation>
 <translation id="8876188741456358123">デフォルトの両面印刷モードをオーバーライドします。このモードを使用できない場合、このポリシーは無視されます。</translation>
-<translation id="8878850056189891727">このリストに指定されているパターンが、リクエスト元 URL の
-      セキュリティ オリジンと照合されます。一致するものが見つかった場合は、
-      音声キャプチャ デバイスへのアクセスが許可されます。その際、確認のメッセージは表示されません。
+<translation id="8878850056189891727">このリストに指定されているパターンが、リクエスト元 URL のセキュリティ オリジンと照合されます。
+一致するものが見つかった場合は、音声キャプチャ デバイスへのアクセスが許可されます。その際、確認のメッセージは表示されません。
 
       有効な URL パターンについて詳しくは、https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns をご覧ください。
 
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index ff356cf..39ae0b1 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -500,7 +500,7 @@
 
           이 정책을 설정하지 않으면 'DefaultImagesSetting' 정책(설정된 경우) 또는 사용자 개인 설정의 전체 기본값이 모든 사이트에 사용됩니다.
 
-          이전에는 이 정책이 Android에서 사용되도록 잘못 설정되었으나 이 기능이 Android에서 완전히 지원된 적은 없습니다.
+          이전에는 이 정책이 Android에서 잘못 사용 설정되었으나 이 기능이 Android에서 완전히 지원된 적은 없습니다.
 
           올바른 URL 패턴을 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참조하세요.</translation>
 <translation id="1767673020408652620">검색창이 0 상태일 때 앱 추천을 사용 설정합니다.</translation>
@@ -929,7 +929,7 @@
 
           이 정책을 설정하지 않으면 'DefaultImagesSetting' 정책(설정된 경우) 또는 사용자 개인 설정의 전체 기본값이 모든 사이트에 사용됩니다.
 
-          이전에는 이 정책이 Android에서 사용되도록 잘못 설정되었으나 이 기능이 Android에서 완전히 지원된 적은 없습니다.
+          이전에는 이 정책이 Android에서 잘못 사용 설정되었으나 이 기능이 Android에서 완전히 지원된 적은 없습니다.
 
           올바른 URL 패턴을 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참조하세요.</translation>
 <translation id="2411817661175306360">비밀번호 보호 경고가 꺼짐</translation>
@@ -1182,6 +1182,7 @@
 <translation id="2592162121850992309">이 정책을 true로 설정하거나 설정하지 않으면 특정 GPU 기능이 차단된 경우를 제외하고 하드웨어 가속이 사용 설정됩니다.
 
       이 정책을 false로 설정하면 하드웨어 가속이 사용 중지됩니다.</translation>
+<translation id="2593762551209145088">세이프 브라우징이 활성화되지 않습니다.</translation>
 <translation id="2596260130957832043">NTLMv2의 사용 설정 여부를 관리합니다.
 
           NTLMv2는 최신 버전의 Samba 및 Windows 서버에서 모두 지원됩니다. 이 정책은 하위 호환성을 위해서만 사용 중지해야 하며, 사용 중지할 경우 인증 보안이 약화됩니다.
@@ -1259,6 +1260,7 @@
 
       https://developers.google.com/safe-browsing에서 세이프 브라우징을 자세히 알아보세요.</translation>
 <translation id="2706708761587205154">PIN이 있을 때만 인쇄 허용</translation>
+<translation id="2707873794476722903">세이프 브라우징이 표준 모드에서 활성화됩니다.</translation>
 <translation id="2710534340210290498">이 정책을 false로 설정하면 사용자가 화면을 잠글 수 없습니다(사용자 세션에서 로그아웃만 가능). 이 설정이 true로 설정되거나 설정되지 않으면 비밀번호로 인증받은 사용자는 화면을 잠글 수 있습니다.</translation>
 <translation id="2731627323327011390">ARC 앱에서 <ph name="PRODUCT_OS_NAME" /> 인증서를 사용하지 않도록 설정</translation>
 <translation id="2742843273354638707">새 탭 페이지 및 <ph name="PRODUCT_OS_NAME" /> 앱 런처에서 Chrome 웹 스토어 앱과 바닥글 링크가 표시되지 않도록 숨깁니다.
@@ -1849,7 +1851,7 @@
 
           이 정책을 설정하지 않으면 'DefaultWebUsbGuardSetting' 정책(설정된 경우) 또는 사용자 개인 설정의 전체 기본값이 모든 사이트에 사용됩니다.
 
-          정책의 URL 패턴은 WebUsbAskForUrls를 통해 설정된 패턴과 충돌해서는 안 됩니다. URL이 두 정책과 모두 일치할 때 어떤 정책이 우선 적용되는지 지정되어 있지 않습니다.
+          정책의 URL 패턴은 WebUsbAskForUrls를 통해 설정된 패턴과 충돌해서는 안 됩니다. URL이 두 정책과 모두 일치할 때 어떤 정책이 우선 적용되는지는 지정되어 있지 않습니다.
 
           올바른 URL 패턴을 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참조하세요.</translation>
 <translation id="3701121231485832347"><ph name="MS_AD_NAME" /> 관리 <ph name="PRODUCT_OS_NAME" /> 기기에 대한 설정을 제어합니다.</translation>
@@ -2370,6 +2372,19 @@
 <translation id="437791893267799639">정책이 설정되지 않음, 데이터 이전 및 ARC 허용 안함</translation>
 <translation id="4389073105055031853">사용자가 모든 인증서를 관리하도록 허용</translation>
 <translation id="4389091865841123886">TPM 메커니즘으로 원격 인증을 구성합니다.</translation>
+<translation id="4401496838830169080"><ph name="PRODUCT_NAME" />의 세이프 브라우징 기능을 사용할지와 작동 모드를 제어할 수 있습니다.
+
+      정책을 'NoProtection'(값 0)으로 설정하면 세이프 브라우징이 활성화되지 않습니다.
+
+      정책을 'StandardProtection'(기본값인 값 1)으로 설정하면 세이프 브라우징이 표준 모드에서 항상 활성화됩니다.
+
+      정책을 'EnhancedProtection'(값 2)으로 설정하면 세이프 브라우징이 강화 모드에서 항상 활성화되어 보안이 강화되지만 Google과 인터넷 사용 정보를 더 많이 공유해야 합니다.
+
+      정책을 필수로 설정하면 사용자는 <ph name="PRODUCT_NAME" />에서 세이프 브라우징 설정을 변경하거나 재정의할 수 없습니다.
+
+      정책을 설정하지 않으면 세이프 브라우징이 표준 보호 모드에서 작동하지만 사용자가 설정을 변경할 수 있습니다.
+
+      https://developers.google.com/safe-browsing에서 세이프 브라우징에 관해 자세히 알아보세요.</translation>
 <translation id="4408428864159735559">미리 구성된 네트워크 파일 공유 목록입니다.</translation>
 <translation id="4410236409016356088">네트워크 대역폭 조절 사용</translation>
 <translation id="441217499641439905"><ph name="PRODUCT_OS_NAME" /> 파일 앱에서 모바일 데이터로 연결 시 Google 드라이브 사용 중지</translation>
@@ -3517,6 +3532,7 @@
 <translation id="6111936128861357925">공룡 부활절 달걀 게임 허용</translation>
 <translation id="6114416803310251055">사용중단됨</translation>
 <translation id="6133088669883929098">모든 사이트에서 키 생성 사용 허용</translation>
+<translation id="6135398260575578389">세이프 브라우징이 강화 모드에서 활성화됩니다. 이 모드에서는 보안이 강화되지만 Google과 인터넷 사용 정보를 더 많이 공유해야 합니다.</translation>
 <translation id="6136537398661737682">이 정책은 Google 위치 서비스의 초기 상태를 관리합니다.
 
       정책이 구성되지 않거나 <ph name="GLS_DISABLED" />(으)로 설정되면 Google 위치 서비스가 처음부터 사용 중지됩니다.
@@ -3659,11 +3675,11 @@
 <translation id="6342187235303612558">사용자가 현재 DLP 또는 멀웨어 검사에서 지원되지 않는 파일을 업로드 또는 다운로드하지 못하게 합니다.</translation>
 <translation id="6348718801326095108">다음의 URL 패턴과 일치하는 페이지에서 설정된 쿠키는 현재 세션으로 제한됩니다. 즉, 브라우저가 종료되면 쿠키가 삭제됩니다.
 
-          여기에서 지정된 패턴에 해당하지 않는 URL에서, 또는 이 정책이 설정되지 않은 경우 모든 URL에서 'DefaultCookiesSetting' 정책(설정된 경우) 또는 사용자 개인 설정의 전체 기본값이 사용됩니다.
+          여기에서 지정된 패턴에 해당하지 않는 URL 또는 이 정책이 설정되지 않은 경우 모든 URL에서는 'DefaultCookiesSetting' 정책(설정된 경우) 또는 사용자 개인 설정의 전체 기본값이 사용됩니다.
 
           <ph name="PRODUCT_NAME" />이(가) '백그라운드 모드'에서 실행 중인 경우 마지막 브라우저 창이 닫혀도 세션이 종료되지 않으며 브라우저가 열려 있는 동안에는 활성화되어 있습니다. 이 작업 설정을 자세히 알아보려면 'BackgroundModeEnabled' 정책을 참조하세요.
 
-          'CookiesAllowedForUrls' 및 'CookiesBlockedForUrls'정책도 참조하시기 바랍니다. 이 세 정책 간에 충돌하는 URL 패턴이 없어야 합니다. 어떤 정책이 우선 적용되는지 지정되어 있지 않습니다.
+          'CookiesAllowedForUrls' 및 'CookiesBlockedForUrls'정책도 참조하시기 바랍니다. 이 세 정책 간에 충돌하는 URL 패턴이 없어야 합니다. 어떤 정책이 우선 적용되는지는 지정되어 있지 않습니다.
 
           'RestoreOnStartup' 정책이 이전 세션의 URL을 복원하도록 설정되어 있는 경우 이 정책은 적용되지 않으며 해당 사이트의 쿠키는 영구 저장됩니다.
 
@@ -3696,7 +3712,7 @@
 
           이 정책을 설정하지 않으면 'DefaultCookiesSetting' 정책(설정된 경우) 또는 사용자 개인 설정의 전체 기본값이 모든 사이트에 사용됩니다.
 
-          'CookiesAllowedForUrls' 및 'CookiesSessionOnlyForUrls' 정책도 참조하세요. 이 세 정책 간에 충돌하는 URL 패턴이 없어야 합니다. 어떤 정책이 우선 적용되는지 지정되어 있지 않습니다.
+          'CookiesAllowedForUrls' 및 'CookiesSessionOnlyForUrls' 정책도 참조하세요. 이 세 정책 간에 충돌하는 URL 패턴이 없어야 합니다. 어떤 정책이 우선 적용되는지는 지정되어 있지 않습니다.
 
           올바른 URL 패턴을 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참조하세요.</translation>
 <translation id="6399242659768117666">확장 프로그램 및 플러그인 정보 보고 여부를 제어하는 정책입니다.
@@ -3803,7 +3819,7 @@
 
           이 정책을 설정하지 않으면 'DefaultCookiesSetting' 정책(설정된 경우) 또는 사용자 개인 설정의 전체 기본값이 모든 사이트에 사용됩니다.
 
-          'CookiesBlockedForUrls' 및 'CookiesSessionOnlyForUrls' 정책도 참조하세요. 이 세 정책 간에 충돌하는 URL 패턴이 없어야 합니다. 어떤 정책이 우선 적용되는지 지정되어 있지 않습니다.
+          'CookiesBlockedForUrls' 및 'CookiesSessionOnlyForUrls' 정책도 참조하세요. 이 세 정책 간에 충돌하는 URL 패턴이 없어야 합니다. 어떤 정책이 우선 적용되는지는 지정되어 있지 않습니다.
 
           올바른 URL 패턴을 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참조하세요.</translation>
 <translation id="6553143066970470539">화면 밝기 퍼센트</translation>
@@ -4521,6 +4537,23 @@
 <translation id="7687943045976362719">이 정책이 설정되면 특정 콘텐츠 유형은 <ph name="PRODUCT_FRAME_NAME" />에서 처리됩니다.
 
           이 정책이 설정되지 않으면 모든 사이트에서 기본 렌더기가 사용됩니다. 기본 렌더기 설정 시 <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> 정책이 사용됩니다.</translation>
+<translation id="7691028179743802462">이 정책은 M83에서 지원 중단됩니다. 대신 SafeBrowsingProtectionLevel을 사용하세요.
+
+      <ph name="PRODUCT_NAME" />의 세이프 브라우징 기능을 사용 설정하고 사용자가 이 설정을 변경하지 못하게 차단합니다.
+
+      설정을 사용하면 세이프 브라우징이 항상 활성화됩니다.
+
+      설정을 사용 중지하면 세이프 브라우징이 활성화되지 않습니다.
+
+      설정을 사용 또는 사용 중지하면 사용자는 <ph name="PRODUCT_NAME" />에서 '피싱 및 멀웨어 차단 사용' 설정을 변경하거나 재정의할 수 없습니다.
+
+      정책을 설정하지 않는 경우 기능이 사용되지만 사용자가 변경할 수 있습니다.
+
+      https://developers.google.com/safe-browsing에서 세이프 브라우징에 관해 자세히 알아보세요.
+
+      이 정책은 <ph name="MS_AD_NAME" /> 도메인에 참여하는 Windows 인스턴스 또는 기기 관리에 등록된 Windows 10 Pro/Enterprise 인스턴스에서만 사용할 수 있습니다.
+
+      SafeBrowsingProtectionLevel 정책이 설정되면 SafeBrowsingEnabled 정책 값은 무시됩니다.</translation>
 <translation id="7694245791806617022">Kerberos 인증 대화상자에서 '비밀번호 기억' 기능의 사용 여부를 제어합니다. 비밀번호는 암호화되어 디스크에 저장되며 사용자 세션 동안에 Kerberos 시스템 데몬에서만 액세스할 수 있습니다.
 
           이 정책이 사용 설정되거나 설정되지 않으면 다시 비밀번호를 입력하지 않아도 되도록 사용자가 Kerberos 비밀번호를 저장 여부를 결정할 수 있습니다. 추가 인증이 필요한 경우(2단계 인증)가 아니면 Kerberos 티켓을 자동으로 가져옵니다.
@@ -5117,10 +5150,11 @@
 
           이 정책을 설정하지 않으면 'DefaultWebUsbGuardSetting' 정책(설정된 경우) 또는 사용자 개인 설정의 전체 기본값이 모든 사이트에 사용됩니다.
 
-          정책의 URL 패턴은 WebUsbBlockedForUrls를 통해 설정된 패턴과 충돌해서는 안 됩니다. URL이 두 정책과 모두 일치할 때 어떤 정책이 우선 적용되는지 지정되어 있지 않습니다.
+          정책의 URL 패턴은 WebUsbBlockedForUrls를 통해 설정된 패턴과 충돌해서는 안 됩니다. URL이 두 정책과 모두 일치할 때 어떤 정책이 우선 적용되는지는 지정되어 있지 않습니다.
 
           올바른 URL 패턴을 자세히 알아보려면 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns를 참조하세요.</translation>
 <translation id="8661297125441579970">데이터 이전 및 ARC를 허용하지 않습니다.</translation>
+<translation id="8665314828727504286">세이프 브라우징 보호 수준</translation>
 <translation id="8672321184841719703">자동 업데이트 버전 타겟팅</translation>
 <translation id="867410340948518937">U2F(범용 2차 요소)</translation>
 <translation id="8685024486845674965">비밀번호가 재사용되어 비밀번호 보호 경고가 실행됨</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 9598be2..44cda2d 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -142,11 +142,11 @@
           Se esta política não for definida, o feedback falado ficará desativado quando a tela de login for exibida pela primeira vez. Os usuários poderão ativar ou desativar o feedback falado a qualquer momento, e o estado dele na tela de login será persistente entre eles.
 
           Observação: se <ph name="DEVICE_LOGIN_SCREEN_SPOKEN_FEEDBACK_ENABLED_POLICY_NAME" /> for especificada, ela substituirá esta política.</translation>
-<translation id="1128717055763152639">Permite definir uma lista de padrões de URL que especificam quais sites têm permissão para exibir conteúdo misto ativo (bloqueável), ou seja, conteúdo HTTP em sites HTTPS, e em que o conteúdo misto passivo (opcionalmente bloqueável) será desativado.
+<translation id="1128717055763152639">Permite definir uma lista de padrões de URL que especificam quais sites têm permissão para exibir conteúdo misto ativo (bloqueável), ou seja, conteúdo HTTP em sites HTTPS, e em que o upgrade de conteúdo misto passivo (opcionalmente bloqueável) será desativado.
 
           Se esta política não for definida, o conteúdo misto ativo será bloqueado e o conteúdo misto passivo ganhará um upgrade. Além disso, o usuário poderá definir exceções para dar permissão a sites específicos.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="1128903365609589950">Configura o diretório que o <ph name="PRODUCT_NAME" /> usará para armazenar arquivos em cache no disco.
 
       Se você definir esta política, o <ph name="PRODUCT_NAME" /> usará o diretório fornecido, independentemente de o usuário ter especificado a sinalização "--disk-cache-dir" ou não. Para evitar perda de dados ou erros inesperados, esta política não deve ser definida para um diretório raiz de volume ou um diretório usado para outros fins, pois o <ph name="PRODUCT_NAME" /> gerencia seus conteúdos.
@@ -267,9 +267,9 @@
 <translation id="1376119291123231789">Ativar o modo avançado de carregamento da bateria</translation>
 <translation id="1376298389964661475">Permite definir uma lista com padrões de URL que especificam quais sites têm permissão para exibir notificações.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultNotificationsSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultNotificationsSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="1377134027840513298">Observe que esta política está obsoleta e será removida na versão 82 do <ph name="PRODUCT_OS_NAME" />. Sendo assim, passe a usar <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
 
           Esta política fornece um valor substituto para as políticas <ph name="IDLE_ACTION_AC_POLICY_NAME" /> e <ph name="IDLE_ACTION_BATTERY_POLICY_NAME" /> mais específicas. Se esta política for definida, os valores serão usados quando uma política respectiva mais específica não for usada.
@@ -331,9 +331,9 @@
 <translation id="1486021504508098388">Enviar informações sobre as luzes de fundo</translation>
 <translation id="1497640071678474358">Permite definir uma lista com padrões de URL que especificam quais sites não têm permissão para abrir pop-ups.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultPopupsSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultPopupsSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="1502843533062797703">Ativar bloqueio de injeção de software de terceiros</translation>
 <translation id="1507382822467487898">
           Configura qual endereço de controle de acesso de mídia (MAC, na sigla em inglês) será usado quando uma base estiver conectada ao dispositivo.
@@ -492,17 +492,17 @@
 <translation id="1750315445671978749">Bloquear todos os downloads</translation>
 <translation id="1757544636315644531">Permite definir uma lista com padrões de URL que especificam quais sites podem exibir imagens.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultImagesSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultImagesSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
           Esta política já foi ativada no Android por engano, mas a funcionalidade nunca foi totalmente compatível com ele.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="1767673020408652620">Ativar recomendações de app no estado inicial da caixa de pesquisa</translation>
 <translation id="1777842213242723063">Permite definir uma lista com padrões de URL que especificam quais sites não têm permissão para executar o plug-in <ph name="FLASH_PLUGIN_NAME" />.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultPluginsSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultPluginsSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="1781356041596378058">Esta política também controla o acesso às Opções do desenvolvedor Android. Se você configurar essa política como true, os usuários não poderão acessar as Opções do desenvolvedor. Se configurá-la como false ou deixá-la sem definição, os usuários poderão acessar as Opções do desenvolvedor tocado sete vezes no número da versão no app Config. do Android.</translation>
 <translation id="1793346220873697538">Desativar impressão com PIN como padrão</translation>
 <translation id="1797233582739332495">Mostrar um prompt recorrente ao usuário indicando que é necessário reiniciar</translation>
@@ -910,11 +910,11 @@
       Se esta política for definida como falsa ou não definida, a caixa de seleção "Sempre aberto" não será exibida, e o usuário precisará confirmar sempre que um protocolo externo for invocado.</translation>
 <translation id="2406820201690307634">Permite definir uma lista com padrões de URL que especificam quais sites não têm permissão para exibir imagens.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultImagesSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultImagesSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
           Esta política já foi ativada no Android por engano, mas a funcionalidade nunca foi totalmente compatível com ele.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="2411817661175306360">O aviso de proteção de senha está desativado</translation>
 <translation id="2411919772666155530">Bloquear notificações nestes sites</translation>
 <translation id="2413022450179356125">Ativar/desativar o recurso de tela de privacidade.
@@ -1041,9 +1041,9 @@
       Quando esta política é configurada como "Filtrar sites de nível superior com conteúdo adulto", os sites classificados como pornográficos são filtrados.</translation>
 <translation id="2484356232170636726">Permite definir uma lista com os padrões de URL que especificam quais sites têm permissão para executar o JavaScript.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultJavaScriptSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultJavaScriptSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="2486371469462493753">Desativa a aplicação dos requisitos de Transparência dos certificados para os URLs listados.
 
       Esta política permite que os certificados dos nomes de host nos URLs especificados não sejam divulgados pela Transparência dos certificados. Dessa forma, os certificados que não seriam confiáveis por não terem sido devidamente divulgados publicamente continuam a ser utilizados, mas a detecção de certificados usados erroneamente por esses hosts é dificultada.
@@ -1393,13 +1393,13 @@
 <translation id="2960691910306063964">Ativar ou desativar autenticação sem PIN para hosts de acesso remoto</translation>
 <translation id="2969797921412053304">Esta política configura quais URLs terão acesso para usar o atestado remoto da identidade do dispositivo durante o fluxo SAML na tela de login.
 
-      Especificamente, se um URL corresponder a um dos padrões fornecidos por esta política, ele poderá receber um cabeçalho HTTP com uma resposta para um desafio de atestado remoto, atestando a identidade e o estado do dispositivo.
+      Especificamente, se um URL corresponder a um dos padrões fornecidos por esta política, ele poderá receber um cabeçalho HTTP com uma resposta para um desafio de atestado remoto, confirmando a identidade e o estado do dispositivo.
 
       Se esta política não for definida ou for definida como uma lista vazia, nenhum URL poderá usar o atestado remoto na tela de login.
 
       Os URLs precisam ter um esquema HTTPS, como "https://example.com".
 
-      Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+      Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="2987155890997901449">Ativar ARC</translation>
 <translation id="2987227569419001736">Controla o uso da API Web Bluetooth</translation>
 <translation id="3016255526521614822">Colocar na lista de permissões os apps de anotação permitidos na tela de bloqueio do <ph name="PRODUCT_OS_NAME" />.</translation>
@@ -1573,9 +1573,9 @@
       Se esta política for definida, o usuário não poderá alterá-la ou substitui-la.</translation>
 <translation id="3312835062252480209">Permite definir uma lista de padrões de URL que especificam quais sites não têm permissão para usar a geração de chaves. Se um padrão de URL estiver em KeygenAllowedForUrls, essas exceções serão modificadas por esta política.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultKeygenSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultKeygenSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="3327195598110816609">Não atrasar envios</translation>
 <translation id="332771718998993005">Determina o nome anunciado como um destino do <ph name="PRODUCT_NAME" />.
 
@@ -1803,16 +1803,16 @@
 <translation id="3660562134618097814">Transferir cookies do IDP de SAML durante o login</translation>
 <translation id="3684866411224031107">Permite definir uma lista com padrões de URL que especificam quais sites têm permissão para executar o plug-in <ph name="FLASH_PLUGIN_NAME" />.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultPluginsSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultPluginsSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="3688225008199664446">Permite definir uma lista de padrões de URL que especificam quais sites estão impedidos de pedir que o usuário conceda acesso a um dispositivo USB.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultWebUsbGuardSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultWebUsbGuardSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
           Os padrões de URL desta política não podem entrar em conflito com os configurados por meio da WebUsbAskForUrls. Não foi especificado qual das duas políticas terá prioridade se um URL aparecer em ambas.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="3701121231485832347">Controla configurações específicas de dispositivos <ph name="PRODUCT_OS_NAME" /> gerenciados pelo <ph name="MS_AD_NAME" />.</translation>
 <translation id="3702518095257671450">Atestado remoto</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" />: o campo de linha única é obsoleto e será removido no futuro. Comece a usar a caixa de texto de várias linhas abaixo.</translation>
@@ -2454,7 +2454,7 @@
 
       Se esta política não for definida, não haverá seleção automática para nenhum site.
 
-      Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+      Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="4617338332148204752">Ignorar a verificação de metatags em <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="4625915093043961294">Configurar a lista branca de instalação de extensão</translation>
 <translation id="4632343302005518762">Permitir que o <ph name="PRODUCT_FRAME_NAME" /> trabalhe com os tipos de conteúdo listados</translation>
@@ -2579,7 +2579,7 @@
 <translation id="4861767323695239729">Configurar os métodos de entrada permitidos em uma sessão de usuário</translation>
 <translation id="4869603341164509842">Os padrões dessa lista serão comparados com a origem de segurança do URL solicitante.  Se uma correspondência for encontrada, o acesso aos dispositivos de captura de vídeo será concedido sem solicitação.
 
-      Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).
+      Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.
 
       OBSERVAÇÃO: até a versão 45, esta política só era compatível com o modo quiosque.</translation>
 <translation id="487460824085252184">Migrar automaticamente, sem autorização do usuário.</translation>
@@ -2703,7 +2703,7 @@
 
           Se esta política não for definida, o conteúdo misto ativo será bloqueado e o conteúdo misto passivo ganhará um upgrade, mas o usuário poderá definir exceções para dar permissão a sites específicos.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="510196893779239086">Esta política controla se o Chrome será totalmente fechado quando a última guia for alternada para outro navegador.
 
       Quando esta política não estiver definida ou estiver definida como verdadeira, o Chrome manterá pelo menos uma guia aberta depois de alternar para um navegador alternativo.
@@ -2905,7 +2905,7 @@
 
       Se a política for definida como "Ativar login no navegador", o usuário poderá fazer login no navegador e será automaticamente conectado a ele quando tiver feito login em serviços da Web do Google, como o Gmail. Estar conectado significa que as informações da conta do usuário serão mantidas pelo navegador. Entretanto, isso não significa que a "Sincronização do Chrome" será ativada por padrão. O usuário precisará ativar esse recurso separadamente. A ativação desta política impedirá que o usuário desative a configuração que permite o login no navegador. Para controlar a disponibilidade da "Sincronização do Chrome", use a política SyncDisabled.
 
-      Se ela estiver definida como "Forçar o login no navegador", o usuário verá uma caixa de diálogo de seleção de contas e precisará escolher uma e fazer login para usar o navegador. Isso garante que, para as contas gerenciadas, as políticas associadas à conta sejam aplicadas. Por padrão, isso ativa a "Sincronização do Chrome" na conta, exceto para o caso em que a sincronização tenha sido desativada pelo administrador do domínio ou pela política SyncDisabled. O valor padrão da política BrowserGuestModeEnabled será definido como "falso". Observe que perfis existentes não conectados serão bloqueados e ficarão inacessíveis após a ativação dessa política. Para mais informações, consulte o artigo de Central de Ajuda: https://support.google.com/chrome/a/answer/7572556. Essa opção não está disponível para Linux e Android e substituirá "Ativar o login no navegador", caso seja usada.
+      Se ela estiver definida como "Forçar o login no navegador", o usuário verá uma caixa de diálogo de seleção de contas. Ele precisará escolher uma e fazer login para usar o navegador. Isso garante que, para as contas gerenciadas, as políticas associadas à conta sejam aplicadas. Por padrão, isso ativa a "Sincronização do Chrome" na conta, exceto quando esse recurso é desativado pelo administrador do domínio ou pela política SyncDisabled. O valor padrão da política BrowserGuestModeEnabled será definido como "falso". Observe que perfis existentes não conectados serão bloqueados e ficarão inacessíveis após a ativação dessa política. Para mais informações, consulte o artigo de Central de Ajuda: https://support.google.com/chrome/a/answer/7572556. Essa opção não está disponível para Linux e Android e substituirá "Ativar o login no navegador", caso seja usada.
 
       Se esta política não estiver definida, o usuário poderá decidir se quer ativar a opção de login no navegador e usá-la quando achar melhor.</translation>
 <translation id="532848608876725157">Ativar DNS sobre HTTPS com substituto inseguro</translation>
@@ -3306,7 +3306,7 @@
 
       Se o <ph name="PRODUCT_NAME" /> estiver aberto e esta política for modificada, ela só terá validade para as novas guias abertas. Portanto, é possível que algumas guias ainda apresentem o comportamento anterior.
 
-      Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+      Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="5855010364142818361">Esta política controla os parâmetros de linha de comando para o Chrome no Internet Explorer.
 
       Se o suplemento "Suporte a navegadores legados" do Internet Explorer não estiver instalado, esta política não terá efeito.
@@ -3573,7 +3573,7 @@
 
           Se a política RestoreOnStartup estiver definida para restaurar URLs de sessões anteriores, esta política não será respeitada e os cookies serão armazenados permanentemente para esses sites.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="6352543686437322588">Uma conta local do dispositivo para o login automático após um período de espera.
 
       Se esta política for definida, o login na sessão especificada ocorrerá automaticamente após haver transcorrido um período sem interação do usuário na tela de login. É necessário que a conta local do dispositivo já esteja configurada (consulte |DeviceLocalAccounts|).
@@ -3600,11 +3600,11 @@
 <translation id="6394350458541421998">Esta política teve o uso suspenso a partir da versão 29 do <ph name="PRODUCT_OS_NAME" />. Em vez dela, use a política PresentationScreenDimDelayScale.</translation>
 <translation id="6394657112569857636">Permite definir uma lista com padrões de URL que especificam quais sites não têm permissão para definir cookies.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultCookiesSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultCookiesSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
           Veja também as políticas CookiesAllowedForUrls e CookiesSessionOnlyForUrls. Observe que não pode haver padrões de URL conflitantes entre essas três políticas, já que não foi especificado qual delas tem prioridade.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="6399242659768117666">Esta política controla a permissão de fornecimento de informações sobre extensões e plug-ins.
 
       Quando esta política não for configurada ou for definida como verdadeira, os dados de extensões e plug-ins serão coletados.
@@ -3707,11 +3707,11 @@
       O canal selecionado pelo usuário será substituído pela política ChromeOsReleaseChannel, mas se o canal da política for mais estável que aquele instalado no dispositivo, o canal só vai mudar depois que a versão do canal mais estável atingir um número de versão superior à que está instalada no dispositivo.</translation>
 <translation id="6548795012081567926">Permite definir uma lista com padrões de URL que especificam quais sites podem definir cookies.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultCookiesSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultCookiesSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
           Veja também as políticas CookiesBlockedForUrls e CookiesSessionOnlyForUrls. Observe que não pode haver padrões de URL conflitantes entre essas três políticas, já que não foi especificado qual delas tem prioridade.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="6553143066970470539">Porcentagem de brilho da tela</translation>
 <translation id="6559057113164934677">Não permitir que nenhum site acesse minha câmera e meu microfone</translation>
 <translation id="6561396069801924653">Mostrar opções de acessibilidade no menu da bandeja do sistema</translation>
@@ -3813,9 +3813,9 @@
       Esta configuração controla a apresentação das páginas de boas-vindas que ajudam os usuários a fazer login no <ph name="PRODUCT_NAME" />, a escolhê-lo como navegador padrão ou informam sobre os recursos do produto.</translation>
 <translation id="6764421313777250384">Permite definir uma lista com padrões de URL que especificam quais sites não têm permissão para exibir notificações.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultNotificationsSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultNotificationsSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="6766216162565713893">Permitir que os sites peçam ao usuário para conceder acesso a um dispositivo Bluetooth próximo</translation>
 <translation id="6770454900105963262">Denunciar informações sobre sessões de quiosque ativas</translation>
 <translation id="6786747875388722282">Extensões</translation>
@@ -4253,9 +4253,9 @@
           No momento, esse recurso está desativado para servidores.</translation>
 <translation id="7490270439948288519">Permite definir uma lista com padrões de URL que especificam quais sites podem abrir pop-ups.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultPopupsSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultPopupsSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="749556411189861380">Informa a versão do sistema operacional e do firmware dos dispositivos inscritos.
 
       Se essa configuração não for definida ou for definida como "True", os dispositivos inscritos informarão a versão do sistema operacional e do firmware periodicamente. Se essa configuração for definida como "False", as informações de versão não serão informadas.</translation>
@@ -4296,9 +4296,9 @@
       Se esta política é definida como "false", o uso do protocolo QUIC não é permitido.</translation>
 <translation id="7515572751689937649">Permite definir uma lista com padrões de URL que especificam quais sites não têm permissão para executar o JavaScript.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultJavaScriptSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultJavaScriptSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="7517845714620372896">Especifica a porcentagem de brilho da tela.
           Quando esta política estiver definida, o brilho da tela inicial será ajustado para o valor da política, mas o usuário poderá alterá-lo posteriormente. Os recursos de brilho automático estarão desativados.
           Quando esta política não estiver definida, os controles de tela do usuário e os recursos de brilho automático não serão afetados.
@@ -4786,11 +4786,11 @@
 <translation id="8331479227794770304">Ativar tecla aderente</translation>
 <translation id="8339420913453596618">Segundo fator desativado</translation>
 <translation id="8344454543174932833">Importar favoritos do navegador padrão na primeira execução</translation>
-<translation id="8351446723835838047">Permite definir uma lista de padrões de URL que especificam sites sem permissão para usar a geração de chaves. Se um padrão de URL estiver em KeygenBlockedForUrls, isso modificará essas exceções.
+<translation id="8351446723835838047">Permite definir uma lista de padrões de URL que especificam sites com permissão para usar a geração de chaves. Se um padrão de URL estiver em KeygenBlockedForUrls, isso modificará essas exceções.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultKeygenSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultKeygenSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="8357681633047935212">Limitar a duração de uma sessão de usuário</translation>
 <translation id="8359734107661430198">Ativar a API ExampleDeprecatedFeature até 02/09/2008</translation>
 <translation id="8367209241899435947">Ativa o recurso "Varredura do Chrome" no Windows</translation>
@@ -5008,11 +5008,11 @@
 <translation id="8656110680728938054">Ativa o Selecionar para ouvir</translation>
 <translation id="8659729040032759711">Permite definir uma lista de padrões de URL que especificam quais sites têm permissão para pedir que o usuário conceda acesso ao dispositivo USB.
 
-          Se esta política não for definida, o valor padrão global será usado para todos os sites da política DefaultWebUsbGuardSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
+          Se esta política não for definida, o valor padrão global será usado para todos os sites. Esse valor será o mesmo da política DefaultWebUsbGuardSetting, caso ela esteja definida, ou da configuração pessoal do usuário.
 
           Os padrões de URL desta política não podem entrar em conflito com os configurados por meio de WebUsbBlockedForUrls. Não foi especificado qual das duas políticas terá prioridade se um URL aparecer em ambas.
 
-          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).</translation>
+          Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="8661297125441579970">Bloquear migração de dados e ARC.</translation>
 <translation id="8665314828727504286">Nível de proteção do "Navegação segura"</translation>
 <translation id="8672321184841719703">Versão de atualização automática de destino</translation>
@@ -5152,7 +5152,7 @@
 <translation id="8876188741456358123">Modifica o modo duplex de impressão padrão. Se o modo não estiver disponível, esta política será ignorada.</translation>
 <translation id="8878850056189891727">Os padrões dessa lista serão comparados com a origem de segurança do URL solicitante.  Se uma correspondência for encontrada, o acesso aos dispositivos de captura de áudio será concedido sem solicitação.
 
-      Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns (em inglês).
+      Para informações detalhadas sobre padrões de URL válidos, consulte https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.
 
       OBSERVAÇÃO: até a versão 45, esta política só era compatível com o modo quiosque.</translation>
 <translation id="8882006618241293596">Bloquear o plug-in <ph name="FLASH_PLUGIN_NAME" /> nestes sites</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index bf788f5..c9504da 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -1167,6 +1167,7 @@
 <translation id="2592162121850992309">Если правило не настроено или для него задано значение True, аппаратное ускорение будет включено при условии, что соответствующая функция графического процессора не находится в черном списке.
 
       Если указано значение False, аппаратное ускорение будет отключено.</translation>
+<translation id="2593762551209145088">Безопасный просмотр всегда отключен</translation>
 <translation id="2596260130957832043">Определяет, включена ли аутентификация NTLMv2.
 
           Все последние версии серверов Samba и Windows поддерживают аутентификацию NTLMv2. Из соображений безопасности она должна быть включена всегда (но только не для обратной совместимости).
@@ -1238,6 +1239,7 @@
 
       Дополнительную информацию о Безопасном просмотре можно найти на странице https://developers.google.com/safe-browsing.</translation>
 <translation id="2706708761587205154">Разрешить печать только с вводом PIN-кода</translation>
+<translation id="2707873794476722903">Безопасный просмотр включен в режиме стандартной защиты</translation>
 <translation id="2710534340210290498">Если указано значение False, пользователи не смогут блокировать экран (доступен только выход из сеанса). Если задано значение True или правило не настроено, блокировать экран смогут только пользователи, которые прошли аутентификацию с помощью пароля.</translation>
 <translation id="2731627323327011390">Запретить приложениям ARC использовать сертификаты <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="2742843273354638707">Удаляет приложение из Интернет-магазина Chrome и ссылку на него со страницы быстрого доступа и с панели запуска приложений <ph name="PRODUCT_OS_NAME" />.
@@ -2325,6 +2327,19 @@
 <translation id="437791893267799639">Правило не настроено, запретить перенос данных и ARC</translation>
 <translation id="4389073105055031853">Разрешить пользователям управлять всеми сертификатами</translation>
 <translation id="4389091865841123886">Настройка удаленного подтверждения данных с помощью механизма доверенного платформенного модуля.</translation>
+<translation id="4401496838830169080">Позволяет управлять настройками Безопасного просмотра в <ph name="PRODUCT_NAME" />, а также выбирать режим защиты.
+
+      Если выбран параметр NoProtection (значение "0"), Безопасный просмотр будет всегда отключен.
+
+      Если выбран параметр StandardProtection (значение "1", которое используется по умолчанию), Безопасный просмотр будет всегда включен в режиме стандартной защиты.
+
+      Если выбран параметр EnhancedProtection (значение "2"), Безопасный просмотр будет всегда включен в режиме улучшенной защиты, но при этом в Google будет передаваться больше данных о работе в браузере.
+
+      Если правило настроено как обязательное, пользователи не смогут менять или переопределять настройки Безопасного просмотра в <ph name="PRODUCT_NAME" />.
+
+      Если правило не настроено, Безопасный просмотр будет работать в режиме стандартной защиты, но пользователи смогут изменить этот параметр.
+
+      Подробные сведения о Безопасном просмотре доступны на странице https://developers.google.com/safe-browsing.</translation>
 <translation id="4408428864159735559">Список предварительно настроенных общих файлов сети</translation>
 <translation id="4410236409016356088">Разрешить регулировать пропускную способность сети</translation>
 <translation id="441217499641439905">Отключить Google Диск в приложении "Файлы" <ph name="PRODUCT_OS_NAME" /> при передаче данных по мобильной сети</translation>
@@ -3446,6 +3461,7 @@
 <translation id="6111936128861357925">Разрешает игру с динозавром</translation>
 <translation id="6114416803310251055">устарело</translation>
 <translation id="6133088669883929098">Разрешить всем сайтам создавать ключи</translation>
+<translation id="6135398260575578389">Безопасный просмотр включен в режиме улучшенной защиты (в Google отправляется больше данных о работе в браузере)</translation>
 <translation id="6136537398661737682">Это правило позволяет установить первоначальную настройку геолокации Google.
 
       Если правило не настроено или установлено значение <ph name="GLS_DISABLED" />, геолокация Google изначально отключена.
@@ -4424,6 +4440,23 @@
 <translation id="7687943045976362719">Если правило настроено, указанные типы контента обрабатываются <ph name="PRODUCT_FRAME_NAME" />.
 
           Если правило не настроено, для всех сайтов используется средство обработки по умолчанию. Средство обработки по умолчанию может быть указано с помощью правила <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" />.</translation>
+<translation id="7691028179743802462">Не поддерживается в M83. Используйте правило SafeBrowsingProtectionLevel.
+
+      Включает Безопасный просмотр в <ph name="PRODUCT_NAME" /> и запрещает пользователям менять эту настройку.
+
+      Если правило включено, Безопасный просмотр будет всегда активен.
+
+      Если правило отключено, Безопасный просмотр будет всегда неактивен.
+
+      Когда правило настроено, пользователи не могут изменить или переопределить параметр "Включить защиту от фишинга и вредоносного ПО" в <ph name="PRODUCT_NAME" />.
+
+      Если правило не настроено, Безопасный просмотр будет включен, но пользователи смогут изменить этот параметр.
+
+      Подробные сведения о Безопасном просмотре доступны на странице https://developers.google.com/safe-browsing.
+
+      Правило можно установить только на устройствах Windows, входящих в домен <ph name="MS_AD_NAME" />, а также на устройствах Windows 10 Pro или Enterprise, зарегистрированных в консоли администратора.
+
+      Если правило SafeBrowsingProtectionLevel настроено, значение правила SafeBrowsingEnabled будет игнорироваться.</translation>
 <translation id="7694245791806617022">Определяет, включена ли функция "Запомнить пароль" в диалоговом окне аутентификации с помощью Kerberos. Пароли хранятся в зашифрованном виде на диске, и доступ к ним есть только у системного демона Kerberos во время сеанса пользователя.
 
           Если правило включено или не настроено, пользователи могут сами решать, нужно ли сохранять пароли Kerberos, чтобы их не приходилось вводить повторно. Билеты Kerberos выдаются автоматически. Исключение составляют случаи, когда требуется дополнительная (двухэтапная) аутентификация.
@@ -5019,6 +5052,7 @@
 
           О допустимых шаблонах URL рассказано на странице https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="8661297125441579970">Запретить перенос данных и ARC</translation>
+<translation id="8665314828727504286">Уровень защиты Безопасного просмотра</translation>
 <translation id="8672321184841719703">Выбор версии автообновления</translation>
 <translation id="867410340948518937">U2F (Universal Second Factor)</translation>
 <translation id="8685024486845674965">Предупреждение от защиты паролем срабатывает при повторном использовании пароля</translation>
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index dbad088..e83e495 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -2326,7 +2326,7 @@
 
       หากตั้งค่านโยบายนี้เป็น "StandardProtection" (ค่า 1 ซึ่งเป็นค่าเริ่มต้น) Google Safe Browsing จะทำงานในโหมดมาตรฐานเสมอ
 
-      หากตั้งค่านโยบายนี้เป็น "EnhancedProtection" (ค่า 2) Google Safe Browsing จะทำงานในโหมดที่ปรับปรุงแล้วเสมอ ซึ่งรักษาความปลอดภัยได้ดีขึ้นแต่ต้องมีการแชร์ข้อมูลการท่องเว็บกับ Google มากขึ้น
+      หากตั้งค่านโยบายนี้เป็น "EnhancedProtection" (ค่า 2) Google Safe Browsing จะทำงานในโหมดเพิ่มประสิทธิภาพเสมอ ซึ่งรักษาความปลอดภัยได้ดีขึ้นแต่ต้องมีการแชร์ข้อมูลการท่องเว็บกับ Google มากขึ้น
 
       หากตั้งค่านโยบายนี้เป็นแบบบังคับ ผู้ใช้จะเปลี่ยนหรือลบล้างการตั้งค่า Google Safe Browsing ใน <ph name="PRODUCT_NAME" /> ไม่ได้
 
@@ -3437,7 +3437,7 @@
 <translation id="6111936128861357925">อนุญาตให้เล่นเกมไดโนเสาร์ที่ซ่อนไว้ได้</translation>
 <translation id="6114416803310251055">ถูกกำหนดให้เลิกใช้</translation>
 <translation id="6133088669883929098">อนุญาตให้เว็บไซต์ทั้งหมดใช้การสร้างคีย์</translation>
-<translation id="6135398260575578389">Google Safe Browsing ทำงานในโหมดที่ปรับปรุงแล้ว โหมดนี้รักษาความปลอดภัยได้ดีขึ้นแต่ต้องมีการแชร์ข้อมูลการท่องเว็บกับ Google มากขึ้น</translation>
+<translation id="6135398260575578389">Google Safe Browsing ทำงานในโหมดเพิ่มประสิทธิภาพ โหมดนี้รักษาความปลอดภัยได้ดีขึ้นแต่ต้องมีการแชร์ข้อมูลการท่องเว็บกับ Google มากขึ้น</translation>
 <translation id="6136537398661737682">นโยบายนี้ควบคุมสถานะเริ่มต้นของบริการตำแหน่งของ Google
 
       เมื่อไม่ได้กำหนดค่านโยบายนี้หรือตั้งค่าเป็น <ph name="GLS_DISABLED" /> บริการตำแหน่งของ Google จะปิดใช้ตั้งแต่เริ่มต้น
@@ -4436,7 +4436,7 @@
 
       ดูข้อมูลเพิ่มเติมเกี่ยวกับ Google Safe Browsing ได้ที่ https://developers.google.com/safe-browsing
 
-      นโยบายนี้ใช้ได้เฉพาะในอินสแตนซ์ Windows ซึ่งเข้าร่วมโดเมน <ph name="MS_AD_NAME" /> หรืออินสแตนซ์ Windows 10 Pro หรือ Enterprise ที่เข้าร่วมการจัดการอุปกรณ์
+      นโยบายนี้ใช้ได้เฉพาะในอินสแตนซ์ Windows ที่เข้าร่วมโดเมน <ph name="MS_AD_NAME" /> หรืออินสแตนซ์ Windows 10 Pro หรือ Enterprise ที่เข้าร่วมการจัดการอุปกรณ์
 
       หากตั้งค่านโยบาย SafeBrowsingProtectionLevel ระบบจะไม่สนใจค่าของนโยบาย SafeBrowsingEnabled</translation>
 <translation id="7694245791806617022">ควบคุมว่าจะเปิดใช้ฟีเจอร์ "จำรหัสผ่าน" ในกล่องโต้ตอบการตรวจสอบสิทธิ์ Kerberos หรือไม่ จะมีการเข้ารหัสและจัดเก็บรหัสผ่านในดิสก์ ซึ่งจะเข้าถึงได้โดย Daemon ของระบบ Kerberos และระหว่างเซสชันของผู้ใช้เท่านั้น
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index a0e2674..ff5b550 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -490,7 +490,7 @@
 
           Bu politika ayarlanmadan bırakılırsa genel varsayılan değer, tüm siteler için, ayarlanması halinde "DefaultImagesSetting" politikasından, aksi halde kullanıcının kişisel yapılandırmasından kullanılır.
 
-          Bu politikanın önceden Android'de hatalı bir şekilde etkinleştirildiğini, ancak bu işlevin hiçbir zaman Android'de tam olarak desteklenmediğini unutmayın.
+          Bu politikanın önceden Android'de hatalı bir şekilde etkinleştirildiğini, ancak bu işlevin Android'de hiçbir zaman tam olarak desteklenmediğini unutmayın.
 
           Geçerli URL kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz.</translation>
 <translation id="1767673020408652620">Arama Kutusunun Sıfır Durumunda Uygulama Önerileri Politikasını Etkinleştir</translation>
@@ -926,7 +926,7 @@
 
           Bu politika ayarlanmadan bırakılırsa genel varsayılan değer, tüm siteler için, ayarlanması halinde "DefaultImagesSetting" politikasından, aksi halde kullanıcının kişisel yapılandırmasından kullanılır.
 
-          Bu politikanın önceden Android'de hatalı bir şekilde etkinleştirildiğini, ancak bu işlevin hiçbir zaman Android'de tam olarak desteklenmediğini unutmayın.
+          Bu politikanın önceden Android'de hatalı bir şekilde etkinleştirildiğini, ancak bu işlevin Android'de hiçbir zaman tam olarak desteklenmediğini unutmayın.
 
           Geçerli URL kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz.</translation>
 <translation id="2411817661175306360">Şifre koruma uyarısı kapalı</translation>
@@ -1179,6 +1179,7 @@
 <translation id="2592162121850992309">Bu politika true (doğru) değerine ayarlanırsa veya ayarlanmadan bırakılırsa, belirli bir GPU özelliği kara listeye alınmadığı sürece donanım hızlandırma özelliği etkinleştirilir.
 
       Bu politika false (yanlış) değerine ayarlanırsa donanım hızlandırma özelliği devre dışı bırakılır.</translation>
+<translation id="2593762551209145088">Güvenli Tarama hiçbir zaman etkin değil.</translation>
 <translation id="2596260130957832043">NTLMv2'nin etkin olup olmadığını kontrol eder.
 
           Son Samba ve Windows sunucularının tamamı NTLMv2'yi desteklemektedir. Bu politika yalnızca geriye dönük uyumluluk için devre dışı bırakılmalıdır ve kimlik doğrulaması güvenliğini azaltmaktadır.
@@ -1256,6 +1257,7 @@
 
       Güvenli Tarama ile ilgili daha fazla bilgi edinmek için https://developers.google.com/safe-browsing sayfasına bakın.</translation>
 <translation id="2706708761587205154">Yalnızca PIN ile yazdırmaya izin ver</translation>
+<translation id="2707873794476722903">Güvenli Tarama standart modda etkin.</translation>
 <translation id="2710534340210290498">Bu politika false (yanlış) değerine ayarlanırsa kullanıcılar ekranı kilitleyemez (sadece kullanıcı oturumunu kapatmaları mümkün olur). Bu politika true (doğru) değerine ayarlanır veya ayarlanmadan bırakılırsa, şifreyle kimlik doğrulaması yapan kullanıcılar ekranı kilitleyebilir.</translation>
 <translation id="2731627323327011390">ARC uygulamalarına ilişkin <ph name="PRODUCT_OS_NAME" /> sertifikalarının kullanımını devre dışı bırak</translation>
 <translation id="2742843273354638707">Chrome Web Mağazası uygulamasını ve alt bilgi bağlantısını Yeni Sekme Sayfası'nda ve <ph name="PRODUCT_OS_NAME" /> uygulama başlatıcısında gizle.
@@ -2362,6 +2364,19 @@
 <translation id="437791893267799639">Politika ayarlanmadı, veri taşıma ve ARC'ye izin verme</translation>
 <translation id="4389073105055031853">Kullanıcıların tüm sertifikaları yönetmelerine izin ver</translation>
 <translation id="4389091865841123886">TPM mekanizmasıyla uzaktan doğrulamayı yapılandırın.</translation>
+<translation id="4401496838830169080"><ph name="PRODUCT_NAME" /> Güvenli Tarama özelliğinin etkin olup olmadığını ve hangi modda çalıştığını kontrol etmenize olanak tanır.
+
+      Bu politika "NoProtection" (0 değeri) olarak ayarlanırsa Güvenli Tarama hiçbir zaman etkin olmaz.
+
+      Bu politika "StandardProtection" (varsayılan değer olan 1 değeri) olarak ayarlanırsa Güvenli Tarama standart modda her zaman etkin olur.
+
+      Bu politika "EnhancedProtection" (2 değeri) olarak ayarlanırsa Güvenli Tarama gelişmiş modda her zaman etkin olur. Bu mod daha yüksek güvenlik sağlar, ancak Google ile daha fazla tarama bilgisi paylaşmayı gerektirir.
+
+      Bu politikayı zorunlu olarak ayarlarsanız kullanıcılar <ph name="PRODUCT_NAME" /> içindeki Güvenli Tarama ayarını değiştiremez veya geçersiz kılamaz.
+
+      Bu politika ayarlanmadan bırakılırsa Güvenli Tarama, Standart Koruma modunda çalışır, ancak kullanıcılar bu ayarı değiştirebilir.
+
+      Güvenli Tarama ile ilgili daha fazla bilgi edinmek için https://developers.google.com/safe-browsing sayfasına bakın.</translation>
 <translation id="4408428864159735559">Önceden yapılandırılmış ağ dosyası paylaşımlarının listesi.</translation>
 <translation id="4410236409016356088">Ağ bant genişliğini daraltmayı etkinleştir</translation>
 <translation id="441217499641439905"><ph name="PRODUCT_OS_NAME" />, Dosyalar uygulamasında hücresel bağlantılar üzerinden Google Drive erişimini devre dışı bırak</translation>
@@ -3500,6 +3515,7 @@
 <translation id="6111936128861357925">Dinozor Paskalya Yumurtası Oyununa İzin Verme</translation>
 <translation id="6114416803310251055">onaylanmadı</translation>
 <translation id="6133088669883929098">Tüm sitelerin anahtar oluşturma işlevini kullanmasına izin ver</translation>
+<translation id="6135398260575578389">Güvenli Tarama gelişmiş modda etkin. Bu mod daha yüksek güvenlik sağlar, ancak Google ile daha fazla tarama bilgisi paylaşmayı gerektirir.</translation>
 <translation id="6136537398661737682">Bu politika, Google konum hizmetlerinin ilk durumunu denetler.
 
       Bu politika yapılandırılmaz veya <ph name="GLS_DISABLED" /> seçeneğine ayarlanırsa, Google konum hizmetleri ilk başta devre dışı bırakılır.
@@ -4486,6 +4502,23 @@
 <translation id="7687943045976362719">Bu politika ayarlanırsa, belirtilen içerik türleri <ph name="PRODUCT_FRAME_NAME" /> tarafından işlenir.
 
           Bu politika ayarlanmazsa, tüm siteler için varsayılan oluşturucu kullanılır. (<ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> politikası, varsayılan oluşturucuyu yapılandırmak için kullanılabilir.)</translation>
+<translation id="7691028179743802462">Bu politika M83 sürümüyle birlikte kullanımdan kaldırıldı. Bunun yerine lütfen SafeBrowsingProtectionLevel politikasını kullanın.
+
+      <ph name="PRODUCT_NAME" /> ürününün Güvenli Tarama özelliğini etkinleştirip kullanıcıların bu ayarı değiştirmelerini önler.
+
+      Bu ayarı etkinleştirirseniz Güvenli Tarama her zaman etkin olur.
+
+      Bu ayarı devre dışı bırakırsanız Güvenli Tarama hiçbir zaman etkin olmaz.
+
+      Bu ayarı etkinleştirir veya devre dışı bırakırsanız kullanıcılar <ph name="PRODUCT_NAME" /> içindeki "Kimlik avı ve kötü amaçlı yazılımlara karşı korumayı etkinleştir" ayarını değiştiremez veya geçersiz kılamaz.
+
+      Bu politika ayarlanmadan bırakılırsa etkinleştirilir, ancak kullanıcı ayarda değişiklik yapabilir.
+
+      Güvenli Tarama ile ilgili daha fazla bilgi edinmek için https://developers.google.com/safe-browsing sayfasına bakın.
+
+      Bu politika yalnızca bir <ph name="MS_AD_NAME" /> alan adına katılmış Windows örneklerinde veya cihaz yönetimine kaydolmuş Windows 10 Pro ya da Enterprise örneklerinde kullanılabilir.
+
+      SafeBrowsingProtectionLevel politikası ayarlanırsa SafeBrowsingEnabled politikasının değeri yoksayılır.</translation>
 <translation id="7694245791806617022">Kerberos kimlik doğrulama iletişim kutusunda "Şifreyi hatırla" özelliğinin etkinleştirilip etkinleştirilmediğini kontrol eder. Şifreler diskte şifrelenmiş olarak saklanır ve yalnızca Kerberos sistemi hayalet programı tarafından ve bir kullanıcı oturumu sırasında erişilebilir.
 
           Bu politika etkinleştirilir veya ayarlanırsa kullanıcılar, tekrar girmeleri gerekmesin diye Kerberos şifrelerinin hatırlanıp hatırlanmayacağına karar verebilirler. Ek bir kimlik doğrulama işlemi (iki faktörlü kimlik doğrulama) gerekmedikçe Kerberos biletleri otomatik olarak getirilir.
@@ -5071,6 +5104,7 @@
 
           Geçerli URL kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz.</translation>
 <translation id="8661297125441579970">Veri taşıma ve ARC'ye izin verme.</translation>
+<translation id="8665314828727504286">Güvenli Tarama Koruma Seviyesi</translation>
 <translation id="8672321184841719703">Hedef Otomatik Güncelleme Sürümü</translation>
 <translation id="867410340948518937">U2F (Evrensel İkinci Faktör)</translation>
 <translation id="8685024486845674965">Şifre koruma uyarısı, şifre yeniden kullanımıyla tetiklendi</translation>
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index dac1ad8..5c034e07c 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -517,7 +517,7 @@
 <translation id="1802205074307397126">Trì hoãn tải tệp lên cho đến khi biết kết quả quét</translation>
 <translation id="1803646570632580723">Danh sách các ứng dụng được ghim sẽ hiển thị trong trình chạy</translation>
 <translation id="1808715480127969042">Chặn cookie trên các trang web này</translation>
-<translation id="1810261428246410396">Cho phép sử dụng tính năng Chia sẻ kết nối tức thì.</translation>
+<translation id="1810261428246410396">Cho phép sử dụng tính năng Chia sẻ Internet tức thì.</translation>
 <translation id="1817685358399181673">Chính sách này chỉ định hình ảnh <ph name="PLUGIN_VM_NAME" /> cho người dùng. Bạn có thể đặt chính sách này bằng cách chỉ định URL mà từ đó thiết bị có thể tải hình ảnh xuống và một hàm băm SHA-256 dùng để xác minh tính toàn vẹn của nội dung tải xuống.
 
       Chính sách này phải được chỉ định dưới dạng một chuỗi biểu thị URL và hàm băm ở định dạng JSON.</translation>
@@ -1184,6 +1184,7 @@
 <translation id="2592162121850992309">Nếu bạn không đặt chính sách này hoặc đặt thành true, tính năng tăng tốc phần cứng sẽ được bật trừ khi bạn đưa một tính năng GPU (Đơn vị xử lý đồ họa) nhất định vào danh sách cấm.
 
       Nếu bạn đặt chính sách này thành false, tính năng tăng tốc phần cứng sẽ bị tắt.</translation>
+<translation id="2593762551209145088">Tính năng Duyệt web an toàn sẽ không bao giờ hoạt động.</translation>
 <translation id="2596260130957832043">Kiểm soát xem NTLMv2 có được bật hay không.
 
           Tất cả phiên bản gần đây của máy chủ Samba và Windows đều hỗ trợ NTLMv2. Chỉ nên tắt cài đặt này trong trường hợp muốn có khả năng tương thích ngược và giảm tính bảo mật của quá trình xác thực.
@@ -1261,6 +1262,7 @@
 
       Để biết thêm thông tin về dịch vụ Duyệt web an toàn, vui lòng truy cập vào https://developers.google.com/safe-browsing.</translation>
 <translation id="2706708761587205154">Chỉ cho phép in khi có mã PIN</translation>
+<translation id="2707873794476722903">Tính năng Duyệt web an toàn đang hoạt động ở chế độ chuẩn.</translation>
 <translation id="2710534340210290498">Nếu bạn đặt chính sách này thành false, người dùng sẽ không thể khóa màn hình (chỉ có thể đăng xuất khỏi phiên người dùng). Nếu bạn không đặt tùy chọn cài đặt này hoặc đặt thành true, người dùng đã xác thực bằng mật khẩu có thể khóa màn hình.</translation>
 <translation id="2731627323327011390">Tắt sử dụng chứng chỉ <ph name="PRODUCT_OS_NAME" /> đối với ứng dụng ARC</translation>
 <translation id="2742843273354638707">Ẩn ứng dụng Cửa hàng Chrome trực tuyến và liên kết chân trang khỏi Trang tab mới và trình chạy ứng dụng <ph name="PRODUCT_OS_NAME" />.
@@ -2371,6 +2373,19 @@
 <translation id="437791893267799639">Chưa đặt chính sách, không cho phép di chuyển dữ liệu và ARC</translation>
 <translation id="4389073105055031853">Cho phép người dùng quản lý tất cả chứng chỉ</translation>
 <translation id="4389091865841123886">Định cấu hình chứng thực từ xa với cơ chế TPM.</translation>
+<translation id="4401496838830169080">Cho phép bạn kiểm soát xem có bật tính năng Duyệt web an toàn của <ph name="PRODUCT_NAME" /> không và tính năng này sẽ hoạt động ở chế độ nào.
+
+      Nếu bạn đặt chính sách này thành "NoProtection" (giá trị là 0), thì tính năng Duyệt web an toàn sẽ không bao giờ hoạt động.
+
+      Nếu bạn đặt chính sách này thành "StandardProtection" (giá trị mặc định là 1), thì tính năng Duyệt web an toàn sẽ luôn hoạt động ở chế độ chuẩn.
+
+      Nếu bạn đặt chính sách này thành "EnhancedProtection" (giá trị là 2), thì tính năng Duyệt web an toàn sẽ luôn hoạt động ở chế độ nâng cao. Chế độ này bảo mật tốt hơn nhưng bạn sẽ phải chia sẻ thêm thông tin duyệt web với Google.
+
+      Nếu bạn đặt chính sách này thành bắt buộc, thì người dùng sẽ không thể thay đổi hoặc ghi đè tùy chọn cài đặt Duyệt web an toàn trong <ph name="PRODUCT_NAME" />.
+
+      Nếu bạn không đặt chính sách này, thì tính năng Duyệt web an toàn sẽ hoạt động ở chế độ Bảo vệ thông thường nhưng người dùng có thể thay đổi tùy chọn cài đặt này.
+
+      Để biết thêm thông tin về tính năng Duyệt web an toàn, vui lòng truy cập vào https://developers.google.com/safe-browsing.</translation>
 <translation id="4408428864159735559">Danh sách các mục chia sẻ tệp trong mạng đã định cấu hình sẵn.</translation>
 <translation id="4410236409016356088">Cho phép điều chỉnh băng thông mạng</translation>
 <translation id="441217499641439905">Tắt Google Drive qua các kết nối di động trong ứng dụng Tệp dành cho <ph name="PRODUCT_OS_NAME" /></translation>
@@ -3219,9 +3234,9 @@
         Nếu bạn đặt chính sách này thành false, thì người dùng không thể gửi ý kiến phản hồi cho Google.
 
         Nếu bạn không đặt chính sách này hoặc đặt chính sách thành true, thì người dùng có thể gửi ý kiến phản hồi cho Google qua Menu-&gt;Trợ giúp-&gt;Báo cáo vấn đề hoặc tổ hợp phím.</translation>
-<translation id="5583806683960333345">Nếu bạn bật tùy chọn cài đặt này, người dùng sẽ được phép sử dụng tính năng Chia sẻ kết nối tức thì, điều này cho phép họ chia sẻ dữ liệu di động từ điện thoại Google với thiết bị của họ.
+<translation id="5583806683960333345">Nếu bạn bật tùy chọn cài đặt này, người dùng sẽ được phép sử dụng tính năng Chia sẻ Internet tức thì, điều này cho phép họ chia sẻ dữ liệu di động từ điện thoại Google với thiết bị của họ.
 
-      Nếu bạn tắt tùy chọn cài đặt này, người dùng sẽ không được phép sử dụng tính năng Chia sẻ kết nối tức thì.
+      Nếu bạn tắt tùy chọn cài đặt này, người dùng sẽ không được phép sử dụng tính năng Chia sẻ Internet tức thì.
 
       Nếu bạn không đặt chính sách này, tùy chọn cài đặt mặc định sẽ là không được phép đối với người dùng do doanh nghiệp quản lý và được phép đối với người dùng không được quản lý.</translation>
 <translation id="5584132346604748282">Kiểm soát các dịch vụ vị trí của Google trên thiết bị Android</translation>
@@ -3518,6 +3533,7 @@
 <translation id="6111936128861357925">Cho phép trò chơi trứng khủng long Phục sinh</translation>
 <translation id="6114416803310251055">không được chấp thuận</translation>
 <translation id="6133088669883929098">Cho phép tất cả các trang web sử dụng tạo khóa</translation>
+<translation id="6135398260575578389">Tính năng Duyệt web an toàn đang hoạt động ở chế độ nâng cao. Chế độ này bảo mật tốt hơn nhưng bạn sẽ phải chia sẻ thêm thông tin duyệt web với Google.</translation>
 <translation id="6136537398661737682">Chính sách này kiểm soát trạng thái ban đầu của Dịch vụ vị trí của Google.
 
       Khi bạn không định cấu hình chính sách này hoặc đặt chính sách thành <ph name="GLS_DISABLED" />, Dịch vụ vị trí của Google sẽ tắt ngay từ đầu.
@@ -4516,6 +4532,23 @@
 <translation id="7687943045976362719">Nếu bạn đặt chính sách này, <ph name="PRODUCT_FRAME_NAME" /> sẽ xử lý các loại nội dung được chỉ định.
 
           Nếu bạn không đặt chính sách này, trình kết xuất mặc định sẽ được sử dụng cho tất cả các trang web. (Chính sách <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> có thể dùng để định cấu hình trình kết xuất mặc định).</translation>
+<translation id="7691028179743802462">Chính sách này không còn dùng trong M83, vui lòng sử dụng SafeBrowsingProtectionLevel.
+
+      Bật tính năng Duyệt web an toàn của <ph name="PRODUCT_NAME" /> và ngăn người dùng thay đổi tùy chọn cài đặt này.
+
+      Nếu bạn bật tùy chọn cài đặt này, thì tính năng Duyệt web an toàn sẽ luôn hoạt động.
+
+      Nếu bạn tắt tùy chọn cài đặt này, thì tính năng Duyệt web an toàn sẽ không bao giờ hoạt động.
+
+      Nếu bạn bật hoặc tắt tùy chọn cài đặt này, thì người dùng không thể thay đổi hoặc ghi đè tùy chọn cài đặt "Bảo vệ khỏi lừa đảo và phần mềm độc hại" trong <ph name="PRODUCT_NAME" />.
+
+      Nếu bạn không đặt chính sách này, thì tính năng Duyệt web an toàn sẽ bật nhưng người dùng có thể tắt tính năng này.
+
+      Để biết thêm thông tin về tính năng Duyệt web an toàn, vui lòng truy cập vào https://developers.google.com/safe-browsing.
+
+      Chính sách này chỉ có trên các phiên bản Windows liên kết với miền <ph name="MS_AD_NAME" /> hoặc phiên bản Windows 10 Pro hay Enterprise đã đăng ký tính năng quản lý thiết bị.
+
+      Nếu bạn đặt chính sách SafeBrowsingProtectionLevel, thì giá trị của chính sách SafeBrowsingEnabled sẽ bị bỏ qua.</translation>
 <translation id="7694245791806617022">Kiểm soát việc có bật tính năng 'Nhớ mật khẩu' trong hộp thoại xác thực Kerberos hay không. Các mật khẩu được lưu trữ dưới dạng mã hóa trên ổ đĩa. Chỉ có daemon hệ thống Kerberos mới có thể truy cập vào những mật khẩu này trong phiên người dùng.
 
           Nếu bạn bật hoặc không đặt chính sách này, thì người dùng có thể quyết định xem có ghi nhớ các mật khẩu Kerberos để không phải nhập lại hay không. Hệ thống sẽ tự động tìm nạp các phiếu Kerberos trừ khi cần có bước xác thực bổ sung (xác thực hai yếu tố).
@@ -5110,6 +5143,7 @@
 
           Để biết thông tin chi tiết về mẫu URL hợp lệ, vui lòng xem tại https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
 <translation id="8661297125441579970">Không cho phép di chuyển dữ liệu và App Runtime for Chrome (ARC).</translation>
+<translation id="8665314828727504286">Mức độ bảo vệ của tính năng Duyệt web an toàn</translation>
 <translation id="8672321184841719703">Phiên bản cập nhật tự động đích</translation>
 <translation id="867410340948518937">U2F (Hai yếu tố chung)</translation>
 <translation id="8685024486845674965">Cảnh báo bảo vệ mật khẩu được kích hoạt bằng cách sử dụng lại mật khẩu</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 5760a6c..8f303bb 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -131,6 +131,11 @@
           如果您未设置此政策,系统会在首次显示登录屏幕时停用语音反馈。用户可随时启用或停用语音反馈,语音反馈在登录屏幕上的状态对各用户均有效。
 
           注意:<ph name="DEVICE_LOGIN_SCREEN_SPOKEN_FEEDBACK_ENABLED_POLICY_NAME" />(若已指定)会覆盖此政策。</translation>
+<translation id="1128717055763152639">让您能够设置一系列网址格式,从而指定允许哪些网站显示可屏蔽的(即主动型)混合内容(即 HTTPS 网站上的 HTTP 内容),以及要为哪些网站上可选的可屏蔽(即被动型)混合内容停用升级功能。
+
+          如果未设置此政策,可屏蔽的混合内容将被屏蔽,同时可选的可屏蔽混合内容将被升级,而且用户将能设置例外情况以允许在特定网站上显示此类内容。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="1128903365609589950">配置 <ph name="PRODUCT_NAME" /> 在磁盘中存储缓存文件时所使用的目录。
 
       如果您设置了此政策,那么无论用户是否已指定“--disk-cache-dir”标记,<ph name="PRODUCT_NAME" /> 都将使用本政策提供的目录。请勿将此政策设置为某个卷的根目录或用于其他用途的目录(因为 <ph name="PRODUCT_NAME" /> 会管理相关内容),以免丢失数据或发生其他意外错误。
@@ -251,6 +256,11 @@
       如果此政策处于停用状态,Google 助理将无法访问屏幕上的上下文内容。
       如果此政策未设置,用户可以决定是否允许 Google 助理访问屏幕上的上下文内容</translation>
 <translation id="1376119291123231789">启用高级电池充电模式</translation>
+<translation id="1376298389964661475">让您能够设置一系列网址格式,从而指定允许哪些网站显示通知。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultNotificationsSetting”政策中的全局默认值(倘若已设置“DefaultNotificationsSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultNotificationsSetting”政策)。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="1377134027840513298">请注意,此政策已被弃用,并将在 <ph name="PRODUCT_OS_NAME" />版本 82 中移除。请改用 <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />。
 
           此政策可为更具体的 <ph name="IDLE_ACTION_AC_POLICY_NAME" /> 和 <ph name="IDLE_ACTION_BATTERY_POLICY_NAME" /> 政策提供后备值。如果设置了此政策,但未分别设置更具体的政策,系统就会使用此值。
@@ -306,6 +316,11 @@
 <translation id="1474273443907024088">停用 TLS False Start</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
 <translation id="1486021504508098388">报告背光信息</translation>
+<translation id="1497640071678474358">让您能够设置一系列网址格式,从而指定不允许哪些网站打开弹出式窗口。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultPopupsSetting”政策中的全局默认值(倘若已设置“DefaultPopupsSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultPopupsSetting”政策)。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="1502843533062797703">禁止插入第三方软件</translation>
 <translation id="1507382822467487898">
           配置当基座连接到设备时使用哪个 MAC(媒体访问控制)地址。
@@ -454,7 +469,19 @@
 
       该政策的值应设置为供 <ph name="PRODUCT_OS_NAME" />下载服务条款的网址。该服务条款必须是纯文本,以 MIME 纯文本形式提供,不允许进行任何标记。</translation>
 <translation id="1750315445671978749">拦截所有下载内容</translation>
+<translation id="1757544636315644531">让您能够设置一系列网址格式,从而指定允许哪些网站显示图片。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultImagesSetting”政策中的全局默认值(倘若已设置“DefaultImagesSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultImagesSetting”政策)。
+
+          请注意,先前我们误在 Android 设备上启用了这项政策,但我们从未在 Android 设备上为这项功能提供完整支持。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="1767673020408652620">在处于零状态的搜索框内启用应用推荐</translation>
+<translation id="1777842213242723063">让您能够设置一系列网址格式,从而指定不允许哪些网站运行 <ph name="FLASH_PLUGIN_NAME" /> 插件。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultPluginsSetting”政策中的全局默认值(倘若已设置“DefaultPluginsSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultPluginsSetting”政策)。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="1781356041596378058">此政策亦用于控制对 Android 开发者选项的访问。如果此政策设为 true,用户将无法访问开发者选项。如果此政策设为 false 或未设置,用户只需在 Android 的“设置”应用中连续点按 7 次版本号即可访问开发者选项。</translation>
 <translation id="1793346220873697538">默认停用 PIN 码打印</translation>
 <translation id="1797233582739332495">显示要求用户重新启动浏览器的周期性提示</translation>
@@ -848,6 +875,13 @@
       如果此政策设为 True,当系统显示外部协议确认提示时,用户可选择“始终打开”该协议,以使系统不再显示此类提示。
 
       如果此政策设为 False 或未设置,系统将不会显示“始终打开”复选框,并且在每次调用外部协议时都会提示用户。</translation>
+<translation id="2406820201690307634">让您能够设置一系列网址格式,从而指定不允许哪些网站显示图片。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultImagesSetting”政策中的全局默认值(倘若已设置“DefaultImagesSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultImagesSetting”政策)。
+
+          请注意,先前我们误在 Android 设备上启用了这项政策,但我们从未在 Android 设备上为这项功能提供完整支持。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="2411817661175306360">密码保护服务警告功能处于关闭状态</translation>
 <translation id="2411919772666155530">阻止在这些网站上显示通知</translation>
 <translation id="2413022450179356125">启用/停用“隐私保护屏”功能。
@@ -972,6 +1006,11 @@
       如果未配置此政策或将其设为“不滤除提供成人内容的网站”,系统不会滤除这类网站。
 
       如果将此政策设为“滤除提供成人内容的顶级网站”,系统会滤除被归类为色情内容的网站。</translation>
+<translation id="2484356232170636726">让您能够设置一系列网址格式,从而指定允许哪些网站运行 JavaScript。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultJavaScriptSetting”政策中的全局默认值(倘若已设置“DefaultJavaScriptSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultJavaScriptSetting”政策)。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="2486371469462493753">不强制规定列出的网址必须满足证书透明度要求。
 
       如果此政策处于启用状态,指定网址中的主机名的证书可以不通过证书透明度政策进行披露。这样一来,原本不受信任的证书(因为相应证书并未适当地公开披露)将可以继续使用,但会导致更难以检测到针对这些主机误颁发的证书。
@@ -1088,6 +1127,7 @@
 <translation id="2592162121850992309">如果不设置此政策或将其设为 true,系统将启用硬件加速模式,除非特定 GPU 功能已被列入黑名单。
 
       如果此政策设为 false,系统将停用硬件加速模式。</translation>
+<translation id="2593762551209145088">“安全浏览”功能会一直处于关闭状态。</translation>
 <translation id="2596260130957832043">控制是否启用 NTLMv2。
 
           近期推出的所有 Samba 和 Windows 服务器版本都支持 NTLMv2。除非是为了实现向后兼容,否则请勿停用 NTLMv2(因为这样做会降低身份验证的安全性)。
@@ -1159,6 +1199,7 @@
 
       要详细了解安全浏览功能,请访问 https://developers.google.com/safe-browsing。</translation>
 <translation id="2706708761587205154">仅允许在有 PIN 码的情况下打印</translation>
+<translation id="2707873794476722903">“安全浏览”功能会处于开启状态且会在标准模式下运行。</translation>
 <translation id="2710534340210290498">如果将此政策设为 false,用户将无法锁定屏幕(只能退出用户会话)。如果不设置此政策或将其设为 true,则使用密码通过身份验证的用户可以锁定屏幕。</translation>
 <translation id="2731627323327011390">禁止 ARC 应用使用 <ph name="PRODUCT_OS_NAME" /> 证书</translation>
 <translation id="2742843273354638707">在“打开新的标签页”页面和 <ph name="PRODUCT_OS_NAME" />应用启动器中不显示“Chrome 网上应用店”应用和页脚链接。
@@ -1318,6 +1359,15 @@
 <translation id="2959898425599642200">代理绕过规则</translation>
 <translation id="2960128438010718932">分阶段应用新更新的时间表</translation>
 <translation id="2960691910306063964">针对远程访问主机启用或停用无 PIN 码身份验证</translation>
+<translation id="2969797921412053304">此政策用于配置哪些网址有权在登录屏幕上的 SAML 流程中对设备身份执行远程认证。
+
+      具体而言,如果某个网址与通过此政策提供的格式之一匹配,该网址就能接收 HTTP 标头(包含对远程认证质询的响应),以认证设备身份和设备状态。
+
+      如果此政策未设置,或设为一个空列表,则不允许任何网址在登录屏幕上使用远程认证。
+
+      网址必须采用 HTTPS 架构,例如:“https://example.com”。
+
+      要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="2987155890997901449">启用 ARC</translation>
 <translation id="2987227569419001736">控制对 Web Bluetooth API 的使用</translation>
 <translation id="3016255526521614822">允许在 <ph name="PRODUCT_OS_NAME" />锁定屏幕启用加入白名单的备注应用</translation>
@@ -1489,6 +1539,11 @@
       但是,除非 SAML 身份提供商在 SAML 登录流程中将密码到期信息发送给设备,否则系统不会显示此类通知。
 
       如果设置了此政策,用户将无法更改或覆盖它。</translation>
+<translation id="3312835062252480209">让您能够设置一系列网址格式,从而指定不允许哪些网站使用密钥生成功能。如果此政策中的某个网址格式亦包含在“KeygenAllowedForUrls”中,系统将会应用“KeygenAllowedForUrls”政策而忽略此政策。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultKeygenSetting”政策中的全局默认值(倘若已设置“DefaultKeygenSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultKeygenSetting”政策)。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="3327195598110816609">不延迟任何交付</translation>
 <translation id="332771718998993005">将广告中宣传的名称确定为 <ph name="PRODUCT_NAME" /> 目标名称。
 
@@ -1714,6 +1769,18 @@
 
         此政策由在桌面设备上进行的机器范围云政策注册使用,并可由 Windows 上的注册表/GPO、Mac 上的 plist 以及 Linux 上的 JSON 政策文件设置。</translation>
 <translation id="3660562134618097814">在用户登录期间转移 SAML IdP Cookie</translation>
+<translation id="3684866411224031107">让您能够设置一系列网址格式,从而指定允许哪些网站运行 <ph name="FLASH_PLUGIN_NAME" /> 插件。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultPluginsSetting”政策中的全局默认值(倘若已设置“DefaultPluginsSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultPluginsSetting”政策)。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
+<translation id="3688225008199664446">让您能够设置一系列网址格式,从而指定禁止哪些网站请求用户授权其访问 USB 设备。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultWebUsbGuardSetting”政策中的全局默认值(倘若已设置“DefaultWebUsbGuardSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultWebUsbGuardSetting”政策)。
+
+          此政策中的网址格式不应与通过 WebUsbAskForUrls 配置的网址格式冲突。如果某个网址与这两项政策都相符,系统将无法判断应以哪项政策为准。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="3701121231485832347">控制由 <ph name="MS_AD_NAME" /> 管理的 <ph name="PRODUCT_OS_NAME" />设备的专用设置。</translation>
 <translation id="3702518095257671450">远程证明</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" />(我们已弃用并将于日后移除单行字段。请开始使用下面的多行文本框。)</translation>
@@ -2219,6 +2286,19 @@
 <translation id="437791893267799639">政策未设置,禁止数据迁移和 ARC</translation>
 <translation id="4389073105055031853">允许用户管理所有证书</translation>
 <translation id="4389091865841123886">通过 TPM 机制配置远程认证。</translation>
+<translation id="4401496838830169080">允许您控制是否开启 <ph name="PRODUCT_NAME" /> 的“安全浏览”功能以及要在哪种模式下运行此功能。
+
+      如果此政策设为“NoProtection”(值为 0),“安全浏览”功能会一直处于关闭状态。
+
+      如果此政策设为“StandardProtection”(值为 1,即默认值),“安全浏览”功能会一直处于开启状态且会在标准模式下运行。
+
+      如果此政策设为“EnhancedProtection”(值为 2),“安全浏览”功能会一直处于开启状态且会在增强模式下运行。这种模式可提供更高的安全性,但需与 Google 分享更多浏览信息。
+
+      如果您将此政策设为强制性要求,用户便无法更改或覆盖 <ph name="PRODUCT_NAME" /> 中的“安全浏览”设置。
+
+      如果未设置此政策,“安全浏览”功能将会在标准保护模式下运行,但用户将能够自行更改。
+
+      要详细了解“安全浏览”功能,请访问 https://developers.google.com/safe-browsing。</translation>
 <translation id="4408428864159735559">预先配置的网络文件共享列表。</translation>
 <translation id="4410236409016356088">启用网络带宽限制功能</translation>
 <translation id="441217499641439905">在 <ph name="PRODUCT_OS_NAME" />的“文件”应用中,不允许通过移动网络连接到 Google 云端硬盘</translation>
@@ -2332,6 +2412,13 @@
       如果选择“强制”,则只能以无痕模式打开网页。请注意,“强制”不适用于 Chrome 上的 Android 应用</translation>
 <translation id="4600786265870346112">启用大号光标</translation>
 <translation id="4604931264910482931">配置本地消息传递主机黑名单</translation>
+<translation id="4614701085541180174">让您能够指定一系列网址格式,从而指定要在 SAML 流程托管框架的登录屏幕上自动为哪些网站选择客户端证书(如果相应网站要求提供证书)。例如,配置一个要向 SAML IdP 出示的设备级证书。
+
+      此值必须是一个字符串化的 JSON 字典数组。每个字典都必须采用 <ph name="DEVICE_LOGIN_SCREEN_AUTO_SELECT_CERTIFICATE_FOR_URLS_EXAMPLE" /> 格式,其中 <ph name="URL_PATTERN_PLACEHOLDER" /> 是内容设置格式。<ph name="FILTER_PLACEHOLDER" /> 会限制浏览器可自动从哪些客户端证书中进行选择。无论是否设置了过滤器,系统都只会选择与服务器的证书请求相匹配的证书。如果 <ph name="FILTER_PLACEHOLDER" /> 采用 <ph name="JSON_DICTIONARY_EXAMPLE" /> 格式,系统便只会选择由 CommonName 为 <ph name="ISSUER_CN_PLACEHOLDER" /> 的证书颁发机构颁发的客户端证书。如果 <ph name="FILTER_PLACEHOLDER" /> 是空字典 {},那么系统在选择客户端证书时便不会受到额外限制。
+
+      如果未设置此政策,系统将不会为任何网站自动选择证书。
+
+      要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="4617338332148204752">跳过“<ph name="PRODUCT_FRAME_NAME" />”中的元标记检查</translation>
 <translation id="4625915093043961294">配置扩展程序安装白名单</translation>
 <translation id="4632343302005518762">允许 <ph name="PRODUCT_FRAME_NAME" />处理列出的内容类型</translation>
@@ -2454,6 +2541,11 @@
       如果此政策设为 false 或未设置,系统将不会报告操作系统更新信息。如果此政策设为 true,系统将会报告操作系统更新信息。</translation>
 <translation id="4858735034935305895">允许全屏模式</translation>
 <translation id="4861767323695239729">配置可在用户会话中使用的输入法</translation>
+<translation id="4869603341164509842">系统会将此列表中的网址格式与请求网址的安全来源进行比对。如果找到了匹配项,系统将允许相应网址使用视频捕获设备,并且不会给予提示。
+
+      要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。
+
+      注意:在 45 版之前,只有在自助服务终端模式下此政策才受支持。</translation>
 <translation id="487460824085252184">自动迁移,不询问用户是否同意。</translation>
 <translation id="4874982543810021567">禁止这些网站使用 WebUSB</translation>
 <translation id="4876805738539874299">启用最高 SSL 版本</translation>
@@ -2571,6 +2663,11 @@
       如果此政策设为 0,客户端则无法更改设备帐号密码。
 
       请注意,如果客户端在较长时间内一直处于离线状态,那么即使指定的天数已过,密码也可能不会更改。</translation>
+<translation id="5101600510268095939">让您能够设置一系列网址格式,从而指定不允许哪些网站显示可屏蔽的(即主动型)混合内容(即 HTTPS 网站上的 HTTP 内容),以及要为哪些网站升级可选的可屏蔽(即被动型)混合内容。
+
+          如果未设置此政策,可屏蔽的混合内容将被屏蔽,同时可选的可屏蔽混合内容将被升级,但用户将能设置例外情况以允许在特定网站上显示此类内容。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="510196893779239086">此政策用于控制当从 Chrome 中仅剩的那个标签页切换到其他浏览器时是否彻底关闭 Chrome。
 
       如果此政策设为 true 或未设置,那么当切换到备用浏览器后,Chrome 会使至少 1 个标签页保持打开状态。
@@ -2767,6 +2864,15 @@
 
           如果此政策设为 False,用户将无法向其设备投射内容。如果此政策设为 True,用户将能够投射内容。如果此政策未设置,用户将被禁止向已注册的 Chrome 操作系统设备投射内容,但可将内容投射到未注册的设备。</translation>
 <translation id="5323200200131319468">在登录屏幕上启用语音反馈</translation>
+<translation id="532668836479219203">此政策旨在控制浏览器的登录行为。它允许您指定用户是否可使用其帐号登录 <ph name="PRODUCT_NAME" /> 并使用帐号相关服务(如 Chrome 同步)。
+
+      如果此政策设为“禁止登录浏览器”,用户便无法登录浏览器并使用帐号相关服务。在这种情况下,用户无法使用也无法访问浏览器级功能(如 Chrome 同步)。如果在用户已登录的情况下将此政策设为“停用”,则用户将在下次运行 Chrome 时退出登录,但他们的本地个人资料数据(如书签、密码等)会被予以保留。用户仍能够登录并使用 Google 网络服务(如 Gmail)。
+
+      如果此政策设为“允许登录浏览器”,用户将可以登录浏览器,并且会在登录 Google 网络服务(如 Gmail)时自动登录浏览器。登录浏览器意味着浏览器将保存用户的帐号信息,但并不意味着 Chrome 同步功能将默认开启;用户必须另行选择启用此功能。启用此政策会阻止用户关闭允许登录浏览器的设置。要控制 Chrome 同步功能的可用性,请使用“SyncDisabled”政策。
+
+      如果此政策设为“强制登录浏览器”,系统将向用户显示帐号选择对话框,并且用户必须选择并登录某个帐号才能使用浏览器。这样可确保针对受管理的帐号应用并强制执行与相应帐号关联的政策。默认情况下,此设置会为帐号开启 Chrome 同步功能,但同步功能已被网域管理员停用或已通过“SyncDisabled”政策停用的情况除外。BrowserGuestModeEnabled 的默认值将设为 false。请注意,启用此政策后,现有的未登录个人资料将处于锁定且不可访问的状态。有关详情,请参阅这篇帮助中心文章:https://support.google.com/chrome/a/answer/7572556。此选项不支持 Linux 和 Android,如果您想在 Linux 和 Android 上使用此选项,系统将改用“允许登录浏览器”。
+
+      如果此政策未设置,用户可以决定是否要启用浏览器登录选项并随意使用该选项。</translation>
 <translation id="532848608876725157">启用 DNS-over-HTTPS,且允许改用不安全的查询</translation>
 <translation id="5329007337159326804">警告:大概从 75 版(将于 2019 年 6 月左右推出)开始,<ph name="PRODUCT_NAME" /> 中将会彻底移除用于指定最高 TLS 版本的政策。
 
@@ -3155,6 +3261,17 @@
 
       网址(如 https://example.com/some/path)将仅匹配为 U2F appID。网域(如 example.com)将仅匹配为 webauthn RP ID。因此,要同时涵盖指定网址的 U2F 和 webauthn API,必须同时列出 appID 网址和网域。</translation>
 <translation id="5836064773277134605">限制远程访问主机使用的UDP端口范围</translation>
+<translation id="5844300486330234296">此政策旨在控制要始终启用自动播放功能的网址格式白名单。
+
+      如果自动播放功能处于启用状态,则 <ph name="PRODUCT_NAME" /> 中的视频可与音频内容一起自动播放(无需经过用户同意)。
+
+      如果 AutoplayAllowed 政策设为 True,此政策将不会产生任何效力。
+
+      如果 AutoplayAllowed 政策设为 False,则此政策中设置的任何网址格式仍可以播放。
+
+      请注意,如果此政策在 <ph name="PRODUCT_NAME" /> 运行期间发生了更改,则更改将仅应用于新打开的标签页。因此,部分标签页可能仍会沿用先前的设置。
+
+      要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="5855010364142818361">此政策旨在控制用于从 Internet Explorer 切换至 Chrome 的命令行参数。
 
       如果未安装适用于 Internet Explorer 的“旧版浏览器支持”插件,则此政策不会生效。
@@ -3276,6 +3393,7 @@
 <translation id="6111936128861357925">允许用户玩恐龙复活节彩蛋游戏</translation>
 <translation id="6114416803310251055">已弃用</translation>
 <translation id="6133088669883929098">允许所有网站使用密钥生成功能</translation>
+<translation id="6135398260575578389">“安全浏览”功能会处于开启状态且会在增强模式下运行。此模式可提供更高的安全性,但需与 Google 分享更多浏览信息。</translation>
 <translation id="6136537398661737682">此政策用于控制 Google 位置信息服务的初始状态。
 
       如果此政策设为 <ph name="GLS_DISABLED" /> 或未配置,则 Google 位置信息服务的初始状态为已停用。
@@ -3396,6 +3514,17 @@
       如果将此政策设为 false,用户将无法通过点击任何警告页面继续操作。</translation>
 <translation id="6319198883324703402">设置首次用户重新启动通知的时间</translation>
 <translation id="6342187235303612558">禁止用户上传或下载目前不支持数据泄露防护或恶意软件扫描的文件。</translation>
+<translation id="6348718801326095108">由符合这些网址格式的网页所设置的 Cookie 仅在当前会话中有效,也就是说,系统会在用户退出浏览器时删除这些 Cookie。
+
+          对于与此处所列格式不匹配的网址以及未设置此政策时的所有网址:倘若已设置“DefaultCookiesSetting”政策,系统便会采用该政策中的全局默认值;否则,就会采用用户个人配置中的全局默认值。
+
+          请注意,如果 <ph name="PRODUCT_NAME" /> 是以“后台模式”运行,那么在最后一个浏览器窗口关闭时,会话可能不会关闭,而是会继续保持使用中的状态,直到用户退出浏览器为止。要详细了解如何配置此行为,请参阅“BackgroundModeEnabled”政策。
+
+          另请参阅“CookiesAllowedForUrls”和“CookiesBlockedForUrls”政策。请注意,这三项政策中的网址格式不得互相冲突,因为如果存在冲突,系统将无法判断应以哪项政策为准。
+
+          如果“RestoreOnStartup”政策设为恢复先前会话中的网址,系统将忽略此政策,并且将永久存储这些网站的 Cookie。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="6352543686437322588">要在延迟过后自动登录的设备本地帐号。
 
       如果设置了此政策,则只要用户未与登录屏幕互动的持续时间达到了指定的时长,系统就会自动登录指定的自助服务终端。必须已配置设备本地帐号(请参阅 |DeviceLocalAccounts|)。
@@ -3420,6 +3549,13 @@
       如果此政策设为False,则不报告这些用户。</translation>
 <translation id="638668187106406971">检查上传内容是否违反敏感数据保护规则</translation>
 <translation id="6394350458541421998">此政策从 <ph name="PRODUCT_OS_NAME" />版本 29 起开始弃用。请改用 PresentationScreenDimDelayScale 政策。</translation>
+<translation id="6394657112569857636">让您能够设置一系列网址格式,从而指定不允许哪些网站设置 Cookie。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultCookiesSetting”政策中的全局默认值(倘若已设置“DefaultCookiesSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultCookiesSetting”政策)。
+
+          另请参阅“CookiesAllowedForUrls”和“CookiesSessionOnlyForUrls”政策。请注意,这三项政策中的网址格式不得互相冲突,因为如果存在冲突,系统将无法判断应以哪项政策为准。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="6399242659768117666">此政策旨在控制是否报告扩展程序和插件信息。
 
       如果此政策设为 True 或未设置,系统会收集扩展程序和插件数据。
@@ -3520,6 +3656,13 @@
 <translation id="6544897973797372144">如果该策略设置为 True,且未指定 ChromeOsReleaseChannel 策略,那么注册域的用户将可以更改设备的发布版。如果该策略设置为 False,那么设备就会锁定最后设置的任何版本。
 
      ChromeOsReleaseChannel 策略将会覆盖用户选择的版本,但是,如果该策略版本比设备上已安装的版本更稳定,那么仅当较稳定版本的版本值高于设备上已安装版本时,系统才会切换版本。</translation>
+<translation id="6548795012081567926">让您能够设置一系列网址格式,从而指定允许哪些网站设置 Cookie。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultCookiesSetting”政策中的全局默认值(倘若已设置“DefaultCookiesSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultCookiesSetting”政策)。
+
+          另请参阅“CookiesBlockedForUrls”和“CookiesSessionOnlyForUrls”政策。请注意,这三项政策中的网址格式不得互相冲突,因为如果存在冲突,系统将无法判断应以哪项政策为准。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="6553143066970470539">屏幕亮度百分比</translation>
 <translation id="6559057113164934677">不允许任何网站使用摄像头和麦克风</translation>
 <translation id="6561396069801924653">在系统任务栏菜单中显示无障碍选项</translation>
@@ -3620,6 +3763,11 @@
       如果已停用(设为 false),<ph name="PRODUCT_NAME" /> 则不会使用整个标签页向用户提供产品信息。
 
       此设置旨在控制是否允许系统显示具有下列功用的欢迎页面:帮助用户登录 <ph name="PRODUCT_NAME" />、将它选为用户的默认浏览器,或以其方式将产品功能告知用户。</translation>
+<translation id="6764421313777250384">让您能够设置一系列网址格式,从而指定不允许哪些网站显示通知。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultNotificationsSetting”政策中的全局默认值(倘若已设置“DefaultNotificationsSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultNotificationsSetting”政策)。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="6766216162565713893">允许网站请求用户授予对附近蓝牙设备的访问权限</translation>
 <translation id="6770454900105963262">报告自助服务终端的相关信息</translation>
 <translation id="6786747875388722282">扩展程序</translation>
@@ -4053,6 +4201,11 @@
 <translation id="7485730741952775732">如果此政策已设置,远程访问主机将使用此网址验证来自远程访问客户端的身份验证令牌,以便确定是否允许建立连接。此政策必须与 RemoteAccessHostTokenUrl 结合使用。
 
           该功能目前在服务器端已停用。</translation>
+<translation id="7490270439948288519">让您能够设置一系列网址格式,从而指定允许哪些网站打开弹出式窗口。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultPopupsSetting”政策中的全局默认值(倘若已设置“DefaultPopupsSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultPopupsSetting”政策)。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="749556411189861380">报告已注册的设备使用的操作系统和固件版本。
 
       如果此政策未设置或设为True,已注册的设备将定期报告操作系统和固件版本。如果此政策设为False,则不报告版本信息。</translation>
@@ -4091,6 +4244,11 @@
           此政策仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的 Windows 实例,或者已注册设备管理服务的 Windows 10 专业版或企业版实例。</translation>
 <translation id="7511361072385293666">如果此政策设为 true 或未设置,则允许在 <ph name="PRODUCT_NAME" /> 中使用 QUIC 协议。
       如果此政策设为 false,则禁止使用 QUIC 协议。</translation>
+<translation id="7515572751689937649">让您能够设置一系列网址格式,从而指定不允许哪些网站运行 JavaScript。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultJavaScriptSetting”政策中的全局默认值(倘若已设置“DefaultJavaScriptSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultJavaScriptSetting”政策)。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="7517845714620372896">指定屏幕亮度百分比。
           如果设置了此政策,系统会根据政策值调整初始屏幕亮度,但用户稍后可以更改亮度。自动调节亮度功能在这种情况下会停用。
           如果未设置此政策,用户屏幕控制和自动调节亮度功能不受影响。
@@ -4198,6 +4356,23 @@
 <translation id="7687943045976362719">如果设置了此政策,则指定的内容类型由 <ph name="PRODUCT_FRAME_NAME" />处理。
 
           如果未设置此政策,系统将对所有网站使用默认渲染程序。(<ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> 政策可用于配置默认渲染程序。)</translation>
+<translation id="7691028179743802462">此政策在 M83 中已弃用,请改用 SafeBrowsingProtectionLevel。
+
+      开启 <ph name="PRODUCT_NAME" /> 的“安全浏览”功能,并禁止用户更改此设置。
+
+      如果您启用了此设置,“安全浏览”功能会一直处于开启状态。
+
+      如果您停用了此设置,“安全浏览”功能会一直处于关闭状态。
+
+      如果您启用或停用了此设置,用户将无法更改或覆盖 <ph name="PRODUCT_NAME" /> 中的“启用针对网上诱骗和恶意软件的防护功能”设置。
+
+      如果未设置此政策,“安全浏览”功能将会处于开启状态,但用户将能够自行更改。
+
+      要详细了解“安全浏览”功能,请访问 https://developers.google.com/safe-browsing。
+
+      此政策仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的 Windows 实例,或者已注册设备管理服务的 Windows 10 专业版或企业版实例。
+
+      如果已设置 SafeBrowsingProtectionLevel 政策,系统会忽略 SafeBrowsingEnabled 政策的值。</translation>
 <translation id="7694245791806617022">控制“记住密码”功能在 Kerberos 身份验证对话框中是否处于启用状态。密码会以加密方式存储在磁盘上,只可在用户会话期间由 Kerberos 系统守护进程访问。
 
           如果启用了或未设置此政策,则用户可以决定是否记住 Kerberos 密码,记住密码后就不需要重新输入密码。除非需要进行额外的身份验证(双重身份验证),否则系统会自动获取 Kerberos 凭据。
@@ -4564,6 +4739,11 @@
 <translation id="8331479227794770304">启用粘滞键</translation>
 <translation id="8339420913453596618">已停用第二重因素</translation>
 <translation id="8344454543174932833">首次运行时,从默认浏览器导入书签</translation>
+<translation id="8351446723835838047">让您能够设置一系列网址格式,从而指定允许哪些网站使用密钥生成功能。如果此政策中的某个网址格式亦包含在“KeygenBlockedForUrls”中,系统将会应用“KeygenBlockedForUrls”政策而忽略此政策。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultKeygenSetting”政策中的全局默认值(倘若已设置“DefaultKeygenSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultKeygenSetting”政策)。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="8357681633047935212">限制用户会话的长度</translation>
 <translation id="8359734107661430198">从 2008 年 9 月 2 日开始启用 ExampleDeprecatedFeature API</translation>
 <translation id="8367209241899435947">在 Windows 系统上启用 Chrome 清理功能</translation>
@@ -4763,7 +4943,15 @@
 
           如果此政策未设置,<ph name="PRODUCT_NAME" /> 将会尝试检测某个服务器是否在内网上,只有当该服务器在内网上时,该浏览器才会回应 IWA 请求。如果检测到某个服务器在互联网上,<ph name="PRODUCT_NAME" /> 将忽略来自它的 IWA 请求。</translation>
 <translation id="8656110680728938054">启用“随选朗读”</translation>
+<translation id="8659729040032759711">让您能够设置一系列网址格式,从而指定允许哪些网站请求用户授权其访问 USB 设备。
+
+          如果未设置此政策,系统将会对所有网站使用“DefaultWebUsbGuardSetting”政策中的全局默认值(倘若已设置“DefaultWebUsbGuardSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultWebUsbGuardSetting”政策)。
+
+          此政策中的网址格式不应与通过 WebUsbBlockedForUrls 配置的网址格式冲突。如果某个网址与这两项政策都相符,系统将无法判断应以哪项政策为准。
+
+          要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="8661297125441579970">禁止数据迁移和 ARC。</translation>
+<translation id="8665314828727504286">“安全浏览”功能的保护级别</translation>
 <translation id="8672321184841719703">目标自动更新版本</translation>
 <translation id="867410340948518937">U2F(通用第二重因素)</translation>
 <translation id="8685024486845674965">重复使用密码可触发密码保护服务警告功能</translation>
@@ -4897,6 +5085,11 @@
 
           如果您未设置此政策,“自动点击”在登录屏幕上最初会处于停用状态,但用户可随时启用它。</translation>
 <translation id="8876188741456358123">替换默认双面打印模式。如果这种模式不适用,则忽略此政策。</translation>
+<translation id="8878850056189891727">系统会将此列表中的网址格式与请求网址的安全来源进行比对。如果找到了匹配项,系统将允许相应网址使用音频捕获设备,并且不会给予提示。
+
+      要详细了解有效网址格式,请访问 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。
+
+      注意:在 45 版之前,只有在自助服务终端模式下此政策才受支持。</translation>
 <translation id="8882006618241293596">禁止这些网站运行 <ph name="FLASH_PLUGIN_NAME" /> 插件</translation>
 <translation id="8906768759089290519">启用访客模式</translation>
 <translation id="8908294717014659003">允许您设置是否允许网站访问媒体捕获设备。系统默认为允许访问媒体捕获设备,否则,每次有网站要访问媒体捕获设备时都要征询用户同意。
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index 2f7c64a..13f671a 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -1158,6 +1158,7 @@
 <translation id="2592162121850992309">如果將這項政策設為 True 或不設定,系統會啟用硬體加速功能 (惟特定 GPU 功能遭禁用時除外)。
 
       如果將這項政策設為 False,系統會停用硬體加速功能。</translation>
+<translation id="2593762551209145088">一律不啟用安全瀏覽功能。</translation>
 <translation id="2596260130957832043">控制是否啟用 NTLMv2。
 
           近期的所有 Samba 和 Windows 伺服器版本均支援 NTLMv2。除非是為了回溯相容性的緣故,否則請勿停用這項功能 (驗證功能的安全性會因此下降)。
@@ -1229,6 +1230,7 @@
 
       如要進一步瞭解安全瀏覽功能,請前往 https://developers.google.com/safe-browsing。</translation>
 <translation id="2706708761587205154">只在 PIN 碼啟用時允許列印</translation>
+<translation id="2707873794476722903">已啟用標準模式中的安全瀏覽功能。</translation>
 <translation id="2710534340210290498">如果將這項政策設為 False,使用者將無法鎖定螢幕,只能登出使用者工作階段。
 
       如果將這項設定設為 True 或不設定,則則使用密碼通過驗證的使用者可以鎖定螢幕。</translation>
@@ -2306,6 +2308,19 @@
 <translation id="437791893267799639">未設定政策,不允許資料遷移和 ARC</translation>
 <translation id="4389073105055031853">允許使用者管理所有憑證</translation>
 <translation id="4389091865841123886">使用 TPM 機制設定遠端證明。</translation>
+<translation id="4401496838830169080">可讓你控管是否要啟用 <ph name="PRODUCT_NAME" /> 的安全瀏覽功能,以及這項功能要在哪種模式下運作。
+
+      如果將這項政策設為「NoProtection」(值為 0),系統一律不會啟用安全瀏覽功能。
+
+      如果將這項政策設為「StandardProtection」(值為 1,系統預設值),系統一律會啟用標準模式中的安全瀏覽功能。
+
+      如果將這項政策設為「EnhancedProtection」(值為 2),系統一律會啟用強化模式中的安全瀏覽功能,這個模式可提供更完善的安全防護機制,但使用者必須提供更多瀏覽資訊給 Google。
+
+      如果將這項政策設為強制套用,使用者即無法變更或覆寫 <ph name="PRODUCT_NAME" /> 中的安全瀏覽功能設定。
+
+      如果不設定這項政策,安全瀏覽功能會在標準防護模式中運作,但使用者可以變更這項設定。
+
+      如要進一步瞭解安全瀏覽功能,請前往 https://developers.google.com/safe-browsing。</translation>
 <translation id="4408428864159735559">預先設定的網路檔案共用清單。</translation>
 <translation id="4410236409016356088">允許節流網路頻寬</translation>
 <translation id="441217499641439905">連上行動網路時,禁止在 <ph name="PRODUCT_OS_NAME" />的「檔案」應用程式中使用 Google 雲端硬碟</translation>
@@ -3410,6 +3425,7 @@
 <translation id="6111936128861357925">允許 Dinosaur Easter Egg Game (恐龍復活節彩蛋遊戲)</translation>
 <translation id="6114416803310251055">淘汰的</translation>
 <translation id="6133088669883929098">允許所有網站使用金鑰產生功能</translation>
+<translation id="6135398260575578389">已啟用強化模式中的安全瀏覽功能。這個模式可提供更完善的安全防護機制,但使用者必須提供更多瀏覽資訊給 Google。</translation>
 <translation id="6136537398661737682">這項政策可控管 Google 定位服務的初始狀態。
 
       如果未設定這項政策或設為 <ph name="GLS_DISABLED" />,Google 定位服務的初始狀態為停用。
@@ -4364,6 +4380,23 @@
 <translation id="7687943045976362719">如果設定這項政策,指定的內容類型會由 <ph name="PRODUCT_FRAME_NAME" />處理。
 
           如果不設定這項政策,所有網站都會使用預設轉譯器。(你可透過 <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> 政策設定預設轉譯器)。</translation>
+<translation id="7691028179743802462">自 M83 版起,我們已淘汰這項政策,請改用 SafeBrowsingProtectionLevel。
+
+      啟用 <ph name="PRODUCT_NAME" /> 的安全瀏覽功能,並禁止使用者變更這項設定。
+
+      如果啟用這項設定,系統一律會啟用安全瀏覽功能。
+
+      如果停用這項設定,系統一律不會啟用安全瀏覽功能。
+
+      這項設定一經啟用或停用,使用者即無法變更或覆寫 <ph name="PRODUCT_NAME" /> 中的「啟用網路詐騙和惡意軟體防護功能」設定。
+
+      如果不設定這項政策,系統會啟用這項設定,但使用者可以自行變更。
+
+      如要進一步瞭解安全瀏覽功能,請前往 https://developers.google.com/safe-browsing。
+
+      這項政策僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的 Windows 執行個體,或是已註冊裝置管理服務的 Windows 10 專業版或企業版執行個體。
+
+      如果設定 SafeBrowsingProtectionLevel 政策,系統會忽略 SafeBrowsingEnabled 政策的值。</translation>
 <translation id="7694245791806617022">控管是否在 Kerberos 驗證對話方塊中啟用「記住密碼」功能。密碼會加密儲存在磁碟上,且只能在使用者工作階段中透過 Kerberos 系統精靈存取。
 
           如果啟用或不設定這項政策,使用者可以決定系統是否要記住 Kerberos 密碼,這樣日後就不必再輸入密碼。除非使用者需要進行其他驗證 (雙重驗證),否則系統會自動擷取 Kerberos 票證。
@@ -4949,6 +4982,7 @@
 
           如果想進一步瞭解有效的網址模式,請參閱 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation>
 <translation id="8661297125441579970">不允許資料遷移功能和 ARC。</translation>
+<translation id="8665314828727504286">安全瀏覽功能防護等級</translation>
 <translation id="8672321184841719703">指定目標的自動更新版本</translation>
 <translation id="867410340948518937">U2F (通用雙重驗證)</translation>
 <translation id="8685024486845674965">密碼遭到重複使用時,會觸發密碼保護警告</translation>
diff --git a/components/security_state/content/android/BUILD.gn b/components/security_state/content/android/BUILD.gn
index 9695c0b..2012058 100644
--- a/components/security_state/content/android/BUILD.gn
+++ b/components/security_state/content/android/BUILD.gn
@@ -6,6 +6,8 @@
 
 static_library("android") {
   sources = [
+    "security_state_client.cc",
+    "security_state_client.h",
     "security_state_model_android.cc",
     "security_state_model_delegate.h",
   ]
@@ -21,7 +23,6 @@
 android_library("java") {
   sources = [
     "java/src/org/chromium/components/security_state/SecurityStateModel.java",
-    "java/src/org/chromium/components/security_state/SecurityStateModelDelegate.java",
   ]
   deps = [
     "//base:base_java",
@@ -36,6 +37,5 @@
 generate_jni("jni_headers") {
   sources = [
     "java/src/org/chromium/components/security_state/SecurityStateModel.java",
-    "java/src/org/chromium/components/security_state/SecurityStateModelDelegate.java",
   ]
 }
diff --git a/components/security_state/content/android/java/src/org/chromium/components/security_state/SecurityStateModel.java b/components/security_state/content/android/java/src/org/chromium/components/security_state/SecurityStateModel.java
index 0d7f972..93e67b29 100644
--- a/components/security_state/content/android/java/src/org/chromium/components/security_state/SecurityStateModel.java
+++ b/components/security_state/content/android/java/src/org/chromium/components/security_state/SecurityStateModel.java
@@ -21,17 +21,13 @@
      *
      * @see ConnectionSecurityLevel
      */
-    public static int getSecurityLevelForWebContents(
-            WebContents webContents, SecurityStateModelDelegate delegate) {
+    public static int getSecurityLevelForWebContents(WebContents webContents) {
         if (webContents == null) return ConnectionSecurityLevel.NONE;
-        return SecurityStateModelJni.get().getSecurityLevelForWebContents(
-                webContents, delegate.getNativePtr());
+        return SecurityStateModelJni.get().getSecurityLevelForWebContents(webContents);
     }
 
-    public static boolean isContentDangerous(
-            WebContents webContents, SecurityStateModelDelegate delegate) {
-        return getSecurityLevelForWebContents(webContents, delegate)
-                == ConnectionSecurityLevel.DANGEROUS;
+    public static boolean isContentDangerous(WebContents webContents) {
+        return getSecurityLevelForWebContents(webContents) == ConnectionSecurityLevel.DANGEROUS;
     }
 
     /**
@@ -50,7 +46,7 @@
     @NativeMethods
     @VisibleForTesting
     public interface Natives {
-        int getSecurityLevelForWebContents(WebContents webContents, long delegate);
+        int getSecurityLevelForWebContents(WebContents webContents);
         boolean shouldShowDangerTriangleForWarningLevel();
     }
 }
diff --git a/components/security_state/content/android/java/src/org/chromium/components/security_state/SecurityStateModelDelegate.java b/components/security_state/content/android/java/src/org/chromium/components/security_state/SecurityStateModelDelegate.java
deleted file mode 100644
index a578e1c..0000000
--- a/components/security_state/content/android/java/src/org/chromium/components/security_state/SecurityStateModelDelegate.java
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.components.security_state;
-
-import org.chromium.base.annotations.CalledByNative;
-
-/**
- * Dumb wrapper around the pointer to the C++ class SecurityStateModelDelegate.
- */
-public class SecurityStateModelDelegate {
-    private long mNativePtr;
-
-    public SecurityStateModelDelegate(long nativePtr) {
-        this.mNativePtr = nativePtr;
-    }
-
-    @CalledByNative
-    protected long getNativePtr() {
-        return mNativePtr;
-    }
-}
diff --git a/components/security_state/content/android/security_state_client.cc b/components/security_state/content/android/security_state_client.cc
new file mode 100644
index 0000000..5ad8397
--- /dev/null
+++ b/components/security_state/content/android/security_state_client.cc
@@ -0,0 +1,24 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/security_state/content/android/security_state_client.h"
+
+namespace security_state {
+
+static SecurityStateClient* g_client;
+
+void SetSecurityStateClient(SecurityStateClient* client) {
+  g_client = client;
+}
+
+SecurityStateClient* GetSecurityStateClient() {
+  return g_client;
+}
+
+std::unique_ptr<SecurityStateModelDelegate>
+SecurityStateClient::MaybeCreateSecurityStateModelDelegate() {
+  return nullptr;
+}
+
+}  // namespace security_state
diff --git a/components/security_state/content/android/security_state_client.h b/components/security_state/content/android/security_state_client.h
new file mode 100644
index 0000000..961358e
--- /dev/null
+++ b/components/security_state/content/android/security_state_client.h
@@ -0,0 +1,28 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_SECURITY_STATE_CONTENT_ANDROID_SECURITY_STATE_CLIENT_H_
+#define COMPONENTS_SECURITY_STATE_CONTENT_ANDROID_SECURITY_STATE_CLIENT_H_
+
+#include <memory>
+#include "components/security_state/content/android/security_state_model_delegate.h"
+
+namespace security_state {
+class SecurityStateClient;
+
+void SetSecurityStateClient(SecurityStateClient* security_state_client);
+SecurityStateClient* GetSecurityStateClient();
+
+class SecurityStateClient {
+ public:
+  SecurityStateClient() = default;
+  ~SecurityStateClient() = default;
+
+  // Create a SecurityStateModelDelegate. This can return a nullptr.
+  virtual std::unique_ptr<SecurityStateModelDelegate>
+  MaybeCreateSecurityStateModelDelegate();
+};
+}  // namespace security_state
+
+#endif  // COMPONENTS_SECURITY_STATE_CONTENT_ANDROID_SECURITY_STATE_CLIENT_H_
diff --git a/components/security_state/content/android/security_state_model_android.cc b/components/security_state/content/android/security_state_model_android.cc
index 2ffbf265..97f89a2 100644
--- a/components/security_state/content/android/security_state_model_android.cc
+++ b/components/security_state/content/android/security_state_model_android.cc
@@ -5,6 +5,7 @@
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
 #include "components/security_state/content/android/jni_headers/SecurityStateModel_jni.h"
+#include "components/security_state/content/android/security_state_client.h"
 #include "components/security_state/content/android/security_state_model_delegate.h"
 #include "components/security_state/content/content_utils.h"
 #include "components/security_state/core/security_state.h"
@@ -16,14 +17,17 @@
 // static
 jint JNI_SecurityStateModel_GetSecurityLevelForWebContents(
     JNIEnv* env,
-    const base::android::JavaParamRef<jobject>& jweb_contents,
-    jlong jdelegate) {
+    const base::android::JavaParamRef<jobject>& jweb_contents) {
   content::WebContents* web_contents =
       content::WebContents::FromJavaWebContents(jweb_contents);
   DCHECK(web_contents);
 
-  SecurityStateModelDelegate* security_state_model_delegate =
-      reinterpret_cast<SecurityStateModelDelegate*>(jdelegate);
+  security_state::SecurityStateClient* security_state_client =
+      security_state::GetSecurityStateClient();
+  DCHECK(security_state_client);
+
+  std::unique_ptr<SecurityStateModelDelegate> security_state_model_delegate =
+      security_state_client->MaybeCreateSecurityStateModelDelegate();
 
   if (security_state_model_delegate)
     return security_state_model_delegate->GetSecurityLevel(web_contents);
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 1587f44..8b950bf16 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -942,7 +942,7 @@
 <translation id="5029568752722684782">محو النسخة</translation>
 <translation id="5030338702439866405">جهة الإصدار</translation>
 <translation id="503069730517007720">يلزم شهادة جذر لـ "<ph name="SOFTWARE_NAME" />" ولكن لم يتم تثبيتها. ينبغي على مشرف تقنية المعلومات أن يلقي نظرة على تعليمات التهيئة لـ "<ph name="SOFTWARE_NAME" />" لإصلاح تلك المشكلة. <ph name="FURTHER_EXPLANATION" /></translation>
-<translation id="5031870354684148875">‏معلومات عن الترجمة من Google</translation>
+<translation id="5031870354684148875">‏لمحة عامة عن "ترجمة Google"</translation>
 <translation id="503498442187459473">يريد <ph name="HOST" /> استخدام الكاميرا والميكروفون.</translation>
 <translation id="5039804452771397117">سماح</translation>
 <translation id="5040262127954254034">الخصوصية</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index e2e0c4c..76df463 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -640,7 +640,7 @@
 <translation id="3745099705178523657">Un cop confirmada, la informació de la targeta del Compte de Google es compartirà amb aquest lloc web.</translation>
 <translation id="3748148204939282805">Els atacants del lloc web <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> et poden enganyar perquè facis alguna acció perillosa, com ara instal·lar programari o revelar informació personal (per exemple, contrasenyes, números de telèfon o targetes de crèdit). <ph name="BEGIN_LEARN_MORE_LINK" />Més informació<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="375403751935624634">S'ha produït un error en el procés de traducció a causa d'un error del servidor.</translation>
-<translation id="3754210790023674521">Surt del mode de pantalla en pantalla</translation>
+<translation id="3754210790023674521">Surt de pantalla en pantalla</translation>
 <translation id="3759461132968374835">No has informat de cap error recentment. Els errors que s'hagin produït mentre la creació d'informes d'error estava desactivada no es mostraran aquí.</translation>
 <translation id="3760561303380396507">Vols utilitzar Windows Hello en lloc del CVC?</translation>
 <translation id="3761718714832595332">Amaga l'estat</translation>
@@ -1612,7 +1612,7 @@
 <translation id="7878562273885520351">La teva contrasenya pot estar en perill</translation>
 <translation id="7882421473871500483">Marró</translation>
 <translation id="7887683347370398519">Comproveu el CVC i torneu-ho a provar</translation>
-<translation id="7887885240995164102">Entra al mode de pantalla en pantalla</translation>
+<translation id="7887885240995164102">Entra a pantalla en pantalla</translation>
 <translation id="7888575728750733395">Intent de renderització d'impressió</translation>
 <translation id="7904208859782148177">C3 (sobre)</translation>
 <translation id="7932579305932748336">Recobriment</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index 1ce9916..847c4d0 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -246,7 +246,7 @@
 <translation id="1992331125980284532">JIS B3</translation>
 <translation id="1992796205810278279">Aceder aos cookies e dados de sites.
 
-Pretende permitir que <ph name="EMBEDDED_URL" /> utilize cookies e dados de sites em <ph name="TOP_LEVEL_URL" />?
+Permitir que <ph name="EMBEDDED_URL" /> utilize cookies e dados de sites em <ph name="TOP_LEVEL_URL" />?
 
 Se não permitir, isto será bloqueado pelas suas definições de privacidade. Isto vai permitir que o conteúdo com o qual interagiu funcione corretamente, mas pode permitir que <ph name="EMBEDDED_URL" /> monitorize a sua atividade.</translation>
 <translation id="1997484222658892567"><ph name="URL" /> pretende armazenar permanentemente dados de grandes dimensões no seu computador local.</translation>
@@ -845,7 +845,7 @@
 <translation id="457875822857220463">Entrega</translation>
 <translation id="4579056131138995126">Personal (Envelope)</translation>
 <translation id="4582204425268416675">Remover cartão</translation>
-<translation id="4587425331216688090">Pretende remover o endereço do Chrome?</translation>
+<translation id="4587425331216688090">Remover o endereço do Chrome?</translation>
 <translation id="4592951414987517459">A sua ligação a <ph name="DOMAIN" /> está encriptada através de um conjunto de cifras moderno.</translation>
 <translation id="4594403342090139922">&amp;Anular eliminação</translation>
 <translation id="4597348597567598915">Tamanho 8</translation>
@@ -1228,7 +1228,7 @@
 <translation id="6180316780098470077">Intervalo entre tentativas</translation>
 <translation id="6196640612572343990">Bloquear cookies de terceiros</translation>
 <translation id="6203231073485539293">Verificar a ligação à Internet</translation>
-<translation id="6218753634732582820">Pretende remover o endereço do Chromium?</translation>
+<translation id="6218753634732582820">Remover o endereço do Chromium?</translation>
 <translation id="622039917539443112">Dobra paralela</translation>
 <translation id="6221345481584921695">A Navegação Segura do Google <ph name="BEGIN_LINK" />detetou software malicioso<ph name="END_LINK" /> recentemente em <ph name="SITE" />. Os Sites que normalmente são seguros por vezes são infetados com software malicioso. O conteúdo malicioso provém de <ph name="SUBRESOURCE_HOST" />, um distribuidor de software malicioso conhecido.</translation>
 <translation id="6234122620015464377">Cortar no fim de cada documento</translation>
@@ -1338,7 +1338,7 @@
 <translation id="6657585470893396449">Palavra-passe</translation>
 <translation id="6665553082534466207">Perfuração tripla à direita</translation>
 <translation id="6670613747977017428">Voltar para segurança.</translation>
-<translation id="6671697161687535275">Pretende remover a sugestão do formulário do Chromium?</translation>
+<translation id="6671697161687535275">Remover a sugestão do formulário do Chromium?</translation>
 <translation id="6685834062052613830">Termine sessão e conclua a configuração</translation>
 <translation id="6687335167692595844">Tamanho do tipo de letra solicitado</translation>
 <translation id="6689249931105087298">Relativa com compressão do ponto preto</translation>
@@ -1539,7 +1539,7 @@
 <translation id="7554791636758816595">Novo separador</translation>
 <translation id="7564049878696755256">Pode perder o acesso à sua conta do serviço <ph name="ORG_NAME" /> ou ser vítima de roubo de identidade. O Chrome recomenda a alteração da palavra-passe agora.</translation>
 <translation id="7567204685887185387">Este servidor não conseguiu provar que é o domínio <ph name="DOMAIN" />; o respetivo certificado de segurança poderá ter sido emitido de forma fraudulenta. Isto pode ser o resultado de uma configuração incorreta ou de um invasor a intercetar a sua ligação.</translation>
-<translation id="7569952961197462199">Pretende remover o cartão de crédito do Chrome?</translation>
+<translation id="7569952961197462199">Remover o cartão de crédito do Chrome?</translation>
 <translation id="7569983096843329377">Preto</translation>
 <translation id="7575207903026901870">Botão Remover sugestão, prima Enter para remover esta sugestão.</translation>
 <translation id="7578104083680115302">Pague rapidamente em sites e aplicações em todos os dispositivos com cartões que tenha guardado com o Google.</translation>
@@ -1555,7 +1555,7 @@
 <translation id="7619838219691048931">Folha final</translation>
 <translation id="762844065391966283">Um item de cada vez</translation>
 <translation id="7633909222644580952">Dados de desempenho e relatórios de falhas</translation>
-<translation id="7637571805876720304">Pretende remover o cartão de crédito do Chromium?</translation>
+<translation id="7637571805876720304">Remover o cartão de crédito do Chromium?</translation>
 <translation id="7638605456503525968">Portas de série</translation>
 <translation id="7639968568612851608">Cinzento-escuro</translation>
 <translation id="7647206758853451655">Qualidade de impressão</translation>
@@ -1609,7 +1609,7 @@
 <translation id="7805768142964895445">Estado</translation>
 <translation id="7806344367022510803">Alterar definições do motor de pesquisa no Chrome</translation>
 <translation id="7812922009395017822">Mir</translation>
-<translation id="7813600968533626083">Pretende remover a sugestão do formulário do Chrome?</translation>
+<translation id="7813600968533626083">Remover a sugestão do formulário do Chrome?</translation>
 <translation id="7815407501681723534">Encontrados <ph name="NUMBER_OF_RESULTS" /> <ph name="SEARCH_RESULTS" /> para "<ph name="SEARCH_STRING" />"</translation>
 <translation id="782886543891417279">A rede Wi-Fi que está a utilizar (<ph name="WIFI_NAME" />) pode exigir que visite a respetiva página de início de sessão.</translation>
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index c468eca6..5fa257f3 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -1206,7 +1206,7 @@
 <translation id="6058977677006700226">Bạn muốn sử dụng thẻ trên tất cả thiết bị?</translation>
 <translation id="6059925163896151826">Thiết bị USB</translation>
 <translation id="6060009363608157444">Chế độ DnsOverHttps không hợp lệ.</translation>
-<translation id="6064217302520318294">Khóa màn hình</translation>
+<translation id="6064217302520318294">Phương thức khóa màn hình</translation>
 <translation id="6080696365213338172">Bạn đã truy cập nội dung bằng chứng chỉ do quản trị viên cấp. Dữ liệu mà bạn cung cấp cho <ph name="DOMAIN" /> có thể bị quản trị viên của bạn chặn.</translation>
 <translation id="6094273045989040137">Chú thích</translation>
 <translation id="6104072995492677441">JIS B6</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index c37176c..83a204c 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -169,6 +169,7 @@
 <translation id="1644574205037202324">历史记录</translation>
 <translation id="1645368109819982629">协议不受支持</translation>
 <translation id="1652415888492971589">JIS B8</translation>
+<translation id="1656024727720460136">Chrome 简化了该页面,让内容更易于阅读。Chrome 通过安全的连接检索到了原始网页。</translation>
 <translation id="1656489000284462475">取货</translation>
 <translation id="1662550410081243962">保存并填写付款方式</translation>
 <translation id="1663943134801823270">信用卡选项和地址选项均来自 Chrome。您可在<ph name="BEGIN_LINK" />设置<ph name="END_LINK" />中管理这些选项。</translation>
@@ -559,6 +560,7 @@
 <translation id="342781501876943858">如果您在其他网站上重复使用了您的密码,Chromium 建议您重置该密码。</translation>
 <translation id="3428151540071562330">一个或多个 DnsOverHttpsTemplates 服务器模板 URI 无效,因此不会被使用。</translation>
 <translation id="3431636764301398940">将此卡的信息保存到该设备</translation>
+<translation id="3432601291244612633">关闭页面</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
 <translation id="3447661539832366887">此设备的所有者已关闭恐龙游戏。</translation>
 <translation id="3447884698081792621">显示证书(由<ph name="ISSUER" />签发)</translation>
@@ -862,6 +864,7 @@
 <translation id="4731967714531604179">Prc2 (Envelope)</translation>
 <translation id="4733082559415072992"><ph name="URL" /> 想使用您设备的位置信息</translation>
 <translation id="4736825316280949806">重新启动 Chromium</translation>
+<translation id="4737121147659370456">您的管理员在您的浏览器中启用了 Chrome 企业版连接器。这些连接器可以访问您的部分数据。</translation>
 <translation id="473775607612524610">更新</translation>
 <translation id="4738601419177586157"><ph name="TEXT" />搜索建议</translation>
 <translation id="4742407542027196863">管理密码…</translation>
@@ -1197,6 +1200,8 @@
 <translation id="610911394827799129">您的 Google 帐号在 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 上可能有其他形式的浏览记录</translation>
 <translation id="6116338172782435947">查看复制到剪贴板的文字和图片</translation>
 <translation id="6120179357481664955">要记住您的 UPI ID 吗?</translation>
+<translation id="6124432979022149706">Chrome 企业版连接器</translation>
+<translation id="6135641591018127088">使用您的 Google 帐号生成安全系数高的密码</translation>
 <translation id="6146055958333702838">请检查所有网线是否都已连好,然后重新启动您可能正在使用的任何路由器、调制解调器或其他网络设备。</translation>
 <translation id="614940544461990577">请试试以下办法:</translation>
 <translation id="6150036310511284407">三孔(左侧)</translation>
@@ -1241,6 +1246,7 @@
 <translation id="6328639280570009161">请尝试停用网络联想查询功能</translation>
 <translation id="6328784461820205019">“您的连接不是私密连接”、“&lt;span class="error-code"&gt;NET::ERR_CERT_AUTHORITY_INVALID&lt;/span&gt;”、“&lt;span class="error-code"&gt;ERR_CERT_COMMON_NAME_INVALID&lt;/span&gt;”、“&lt;span class="error-code"&gt;NET::ERR_CERT_WEAK_SIGNATURE_ALGORITHM&lt;/span&gt;”、“&lt;span class="error-code"&gt;ERR_CERT_SYMANTEC_LEGACY&lt;/span&gt;”或“SSL 证书错误”</translation>
 <translation id="6328786501058569169">此网站是欺骗性网站</translation>
+<translation id="6333334544069706521">使用存储在您的 Google 帐号中的密码</translation>
 <translation id="6337133576188860026">释放了不到 <ph name="SIZE" />。当您下次访问时,某些网站的加载速度可能会更慢。</translation>
 <translation id="6337534724793800597">按名称过滤政策</translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{无}=1{1 个密码(用于 <ph name="DOMAIN_LIST" />,已同步)}=2{2 个密码(用于 <ph name="DOMAIN_LIST" />,已同步)}other{# 个密码(用于 <ph name="DOMAIN_LIST" />,已同步)}}</translation>
@@ -1286,6 +1292,7 @@
 <translation id="6521745193039995384">无效</translation>
 <translation id="6529602333819889595">恢复删除(&amp;R)</translation>
 <translation id="6534179046333460208">实物网建议</translation>
+<translation id="6543609420755597723">与您的管理员分享 Chrome 企业版连接器所标记的安全性事件的相关数据。这些数据可能包括您所访问网页的网址、文件名或元数据,以及您在登录设备和 Chrome 时使用的用户名。</translation>
 <translation id="6545864417968258051">蓝牙扫描</translation>
 <translation id="6547208576736763147">双孔(左侧)</translation>
 <translation id="6554795675067793129">您的帐号由 <ph name="ENROLLMENT_DOMAIN" /> 管理。</translation>
@@ -1351,6 +1358,7 @@
 <translation id="6874604403660855544">恢复添加(&amp;R)</translation>
 <translation id="6884662655240309489">大小:1</translation>
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
+<translation id="6888584790432772780">Chrome 简化了该页面,让内容更易于阅读。Chrome 通过不安全的连接检索到了原始网页。</translation>
 <translation id="6891596781022320156">政策级别不受支持。</translation>
 <translation id="6895330447102777224">已确认您的信用卡</translation>
 <translation id="6897140037006041989">用户代理</translation>
@@ -1579,6 +1587,7 @@
 <translation id="777702478322588152">县</translation>
 <translation id="7791196057686275387">捆绑式装订</translation>
 <translation id="7791543448312431591">添加</translation>
+<translation id="7798389633136518089">已被忽略,因为此政策不是由云端来源设置的。</translation>
 <translation id="7800304661137206267">该连接是使用 <ph name="CIPHER" /> 进行加密的,同时使用 <ph name="MAC" /> 进行讯息身份验证并使用 <ph name="KX" /> 作为密钥交换机制。</translation>
 <translation id="7802523362929240268">网站是合规的</translation>
 <translation id="780301667611848630">不用了,谢谢</translation>
@@ -1714,6 +1723,7 @@
 <translation id="8371889962595521444">自定义的根证书</translation>
 <translation id="8380941800586852976">危险</translation>
 <translation id="8381674639488873545">这些费用可能会一次性收取,也可能会周期性收取,而且可能不易察觉。<ph name="BEGIN_LINK" />仍然显示<ph name="END_LINK" /></translation>
+<translation id="8405166164747488837"><ph name="ENROLLMENT_DOMAIN" /> 在您的浏览器中启用了 Chrome 企业版连接器。这些连接器可以访问您的部分数据。</translation>
 <translation id="8412145213513410671">崩溃次数(<ph name="CRASH_COUNT" /> 次)</translation>
 <translation id="8412392972487953978">您两次输入的密码必须相同。</translation>
 <translation id="8416694386774425977">网络配置无效,因此无法导入。
diff --git a/components/sync_sessions/favicon_cache.cc b/components/sync_sessions/favicon_cache.cc
index ccc09ed..9cd20bc 100644
--- a/components/sync_sessions/favicon_cache.cc
+++ b/components/sync_sessions/favicon_cache.cc
@@ -477,42 +477,6 @@
                    syncer::SyncChange::ACTION_ADD));
 }
 
-favicon_base::FaviconRawBitmapResult
-FaviconCache::GetSyncedFaviconForFaviconURL(const GURL& favicon_url) const {
-  if (!favicon_url.is_valid())
-    return favicon_base::FaviconRawBitmapResult();
-  auto iter = synced_favicons_.find(favicon_url);
-
-  UMA_HISTOGRAM_BOOLEAN("Sync.FaviconCacheLookupSucceeded",
-                        iter != synced_favicons_.end());
-  if (iter == synced_favicons_.end())
-    return favicon_base::FaviconRawBitmapResult();
-
-  // TODO(zea): support getting other resolutions.
-  if (!iter->second->bitmap_data[SIZE_16].bitmap_data.get())
-    return favicon_base::FaviconRawBitmapResult();
-
-  favicon_base::FaviconRawBitmapResult sync_bitmap_result;
-  // Size is at most 16x16.
-  sync_bitmap_result.pixel_size = gfx::Size(16, 16);
-  sync_bitmap_result.icon_type = favicon_base::IconType::kFavicon;
-  sync_bitmap_result.icon_url = favicon_url;
-  sync_bitmap_result.bitmap_data =
-      iter->second->bitmap_data[SIZE_16].bitmap_data;
-  return sync_bitmap_result;
-}
-
-favicon_base::FaviconRawBitmapResult FaviconCache::GetSyncedFaviconForPageURL(
-    const GURL& page_url) const {
-  if (!page_url.is_valid())
-    return favicon_base::FaviconRawBitmapResult();
-  GURL icon_url = GetIconUrlForPageUrl(page_url);
-  if (icon_url.is_empty())
-    return favicon_base::FaviconRawBitmapResult();
-
-  return GetSyncedFaviconForFaviconURL(icon_url);
-}
-
 GURL FaviconCache::GetIconUrlForPageUrl(const GURL& page_url) const {
   auto iter = page_favicon_map_.find(page_url);
   if (iter == page_favicon_map_.end())
diff --git a/components/sync_sessions/favicon_cache.h b/components/sync_sessions/favicon_cache.h
index 47fff98..0ed6ea0 100644
--- a/components/sync_sessions/favicon_cache.h
+++ b/components/sync_sessions/favicon_cache.h
@@ -80,20 +80,10 @@
       const base::Location& from_here,
       const syncer::SyncChangeList& change_list) override;
 
-  // If a valid favicon for the icon at |favicon_url| is found, returns a
-  // pointer to the png-encoded image. Otherwise, returns nullptr.
-  favicon_base::FaviconRawBitmapResult GetSyncedFaviconForFaviconURL(
-      const GURL& favicon_url) const;
-
   // Returns the value associated with |page_url| in |page_favicon_map_| if one
   // exists, otherwise returns an empty URL.
   GURL GetIconUrlForPageUrl(const GURL& page_url) const;
 
-  // If a valid favicon for the icon associated with |page_url| is found,
-  // returns a pointer to the png-encoded image. Otherwise, returns nullptr.
-  favicon_base::FaviconRawBitmapResult GetSyncedFaviconForPageURL(
-      const GURL& page_url) const;
-
   // Load the favicon for |page_url|. Will create a new sync node or update
   // an existing one as necessary, and update the last visit time with |mtime|,
   // Only those favicon types defined in SupportedFaviconTypes will be synced.
diff --git a/components/sync_sessions/favicon_cache_unittest.cc b/components/sync_sessions/favicon_cache_unittest.cc
index d0e89b1..e0a5828 100644
--- a/components/sync_sessions/favicon_cache_unittest.cc
+++ b/components/sync_sessions/favicon_cache_unittest.cc
@@ -273,9 +273,6 @@
   size_t GetFaviconCount() const;
   size_t GetTaskCount() const;
 
-  testing::AssertionResult ExpectFaviconEquals(
-        const std::string& page_url,
-        const std::string& bytes) const;
   testing::AssertionResult VerifyLocalIcons(
       const std::vector<int>& expected_icons);
   testing::AssertionResult VerifyLocalCustomIcons(
@@ -343,23 +340,6 @@
   return cache_.NumTasksForTest();
 }
 
-testing::AssertionResult SyncFaviconCacheTest::ExpectFaviconEquals(
-    const std::string& page_url,
-    const std::string& bytes) const {
-  GURL gurl(page_url);
-  favicon_base::FaviconRawBitmapResult favicon =
-      cache_.GetSyncedFaviconForPageURL(gurl);
-  if (!favicon.is_valid())
-    return testing::AssertionFailure() << "Favicon is missing.";
-  if (favicon.bitmap_data->size() != bytes.size())
-    return testing::AssertionFailure() << "Favicon sizes don't match.";
-  for (size_t i = 0; i < favicon.bitmap_data->size(); ++i) {
-    if (bytes[i] != *(favicon.bitmap_data->front() + i))
-      return testing::AssertionFailure() << "Favicon data doesn't match.";
-  }
-  return testing::AssertionSuccess();
-}
-
 testing::AssertionResult SyncFaviconCacheTest::VerifyLocalIcons(
     const std::vector<int>& expected_icons) {
   std::vector<TestFaviconData> expected_custom_icons;
@@ -511,67 +491,6 @@
   EXPECT_EQ(0U, GetFaviconCount());
 }
 
-TEST_F(SyncFaviconCacheTest, ReceiveSyncFavicon) {
-  std::string page_url = "http://www.google.com";
-  std::string fav_url = "http://www.google.com/favicon.ico";
-  std::string bytes = "bytes";
-  const base::Time visit_time = base::Time::Now();
-  EXPECT_EQ(0U, GetFaviconCount());
-  TriggerSyncFaviconReceived(GURL(page_url), GURL(fav_url), bytes, visit_time);
-  EXPECT_EQ(1U, GetFaviconCount());
-  EXPECT_TRUE(ExpectFaviconEquals(page_url, bytes));
-  EXPECT_EQ(visit_time, cache()->GetLastVisitTimeForTest(GURL(fav_url)));
-}
-
-TEST_F(SyncFaviconCacheTest, ReceiveEmptySyncFavicon) {
-  std::string page_url = "http://www.google.com";
-  std::string fav_url = "http://www.google.com/favicon.ico";
-  std::string bytes = "bytes";
-  EXPECT_EQ(0U, GetFaviconCount());
-  TriggerSyncFaviconReceived(GURL(page_url), GURL(fav_url), std::string());
-  EXPECT_EQ(0U, GetFaviconCount());
-  EXPECT_FALSE(ExpectFaviconEquals(page_url, std::string()));
-
-  // Then receive the actual favicon.
-  TriggerSyncFaviconReceived(GURL(page_url), GURL(fav_url), bytes);
-  EXPECT_EQ(1U, GetFaviconCount());
-  EXPECT_TRUE(ExpectFaviconEquals(page_url, bytes));
-}
-
-TEST_F(SyncFaviconCacheTest, ReceiveUpdatedSyncFavicon) {
-  std::string page_url = "http://www.google.com";
-  std::string fav_url = "http://www.google.com/favicon.ico";
-  std::string bytes = "bytes";
-  std::string bytes2 = "bytes2";
-  EXPECT_EQ(0U, GetFaviconCount());
-  TriggerSyncFaviconReceived(GURL(page_url), GURL(fav_url), bytes);
-  EXPECT_EQ(1U, GetFaviconCount());
-  EXPECT_TRUE(ExpectFaviconEquals(page_url, bytes));
-
-  // The cache should not update existing favicons from tab sync favicons
-  // (which can be reassociated several times).
-  TriggerSyncFaviconReceived(GURL(page_url), GURL(fav_url), bytes2);
-  EXPECT_EQ(1U, GetFaviconCount());
-  EXPECT_TRUE(ExpectFaviconEquals(page_url, bytes));
-  EXPECT_FALSE(ExpectFaviconEquals(page_url, bytes2));
-}
-
-TEST_F(SyncFaviconCacheTest, MultipleMappings) {
-  std::string page_url = "http://www.google.com";
-  std::string page2_url = "http://bla.google.com";
-  std::string fav_url = "http://www.google.com/favicon.ico";
-  std::string bytes = "bytes";
-  EXPECT_EQ(0U, GetFaviconCount());
-  TriggerSyncFaviconReceived(GURL(page_url), GURL(fav_url), bytes);
-  EXPECT_EQ(1U, GetFaviconCount());
-  EXPECT_TRUE(ExpectFaviconEquals(page_url, bytes));
-
-  // Map another page to the same favicon. They should share the same data.
-  TriggerSyncFaviconReceived(GURL(page2_url), GURL(fav_url), bytes);
-  EXPECT_EQ(1U, GetFaviconCount());
-  EXPECT_TRUE(ExpectFaviconEquals(page2_url, bytes));
-}
-
 TEST_F(SyncFaviconCacheTest, SyncEmpty) {
   syncer::SyncMergeResult merge_result =
       cache()->MergeDataAndStartSyncing(syncer::FAVICON_IMAGES,
diff --git a/components/sync_sessions/open_tabs_ui_delegate.h b/components/sync_sessions/open_tabs_ui_delegate.h
index d0309656..f60112cf 100644
--- a/components/sync_sessions/open_tabs_ui_delegate.h
+++ b/components/sync_sessions/open_tabs_ui_delegate.h
@@ -20,11 +20,6 @@
 
 class OpenTabsUIDelegate {
  public:
-  // If a valid favicon for the page at |page_url| is found, returns a pointer
-  // to the png-encoded image. Otherwise, returns nullptr.
-  virtual favicon_base::FaviconRawBitmapResult GetSyncedFaviconForPageURL(
-      const GURL& page_url) const = 0;
-
   // Builds a list of all foreign sessions, ordered from most recent to least
   // recent. Caller does NOT own SyncedSession objects.
   // Returns true if foreign sessions were found, false otherwise.
diff --git a/components/sync_sessions/open_tabs_ui_delegate_impl.cc b/components/sync_sessions/open_tabs_ui_delegate_impl.cc
index fe01092a..a02cced 100644
--- a/components/sync_sessions/open_tabs_ui_delegate_impl.cc
+++ b/components/sync_sessions/open_tabs_ui_delegate_impl.cc
@@ -41,11 +41,6 @@
 
 OpenTabsUIDelegateImpl::~OpenTabsUIDelegateImpl() {}
 
-favicon_base::FaviconRawBitmapResult
-OpenTabsUIDelegateImpl::GetSyncedFaviconForPageURL(const GURL& page_url) const {
-  return favicon_cache_->GetSyncedFaviconForPageURL(page_url);
-}
-
 bool OpenTabsUIDelegateImpl::GetAllForeignSessions(
     std::vector<const SyncedSession*>* sessions) {
   *sessions = session_tracker_->LookupAllForeignSessions(
diff --git a/components/sync_sessions/open_tabs_ui_delegate_impl.h b/components/sync_sessions/open_tabs_ui_delegate_impl.h
index 6f2b8cf..29e0ff8 100644
--- a/components/sync_sessions/open_tabs_ui_delegate_impl.h
+++ b/components/sync_sessions/open_tabs_ui_delegate_impl.h
@@ -32,8 +32,6 @@
   ~OpenTabsUIDelegateImpl() override;
 
   // OpenTabsUIDelegate implementation.
-  favicon_base::FaviconRawBitmapResult GetSyncedFaviconForPageURL(
-      const GURL& page_url) const override;
   bool GetAllForeignSessions(
       std::vector<const SyncedSession*>* sessions) override;
   bool GetForeignSession(
diff --git a/components/viz/common/BUILD.gn b/components/viz/common/BUILD.gn
index 48d0184..66b9a70 100644
--- a/components/viz/common/BUILD.gn
+++ b/components/viz/common/BUILD.gn
@@ -123,9 +123,9 @@
 
     deps = [
       "//base",
-      "//third_party/dawn:libdawn_native",
       "//third_party/dawn/src/dawn:dawncpp",
       "//third_party/dawn/src/dawn:libdawn_proc",
+      "//third_party/dawn/src/dawn_native",
     ]
   }
 }
diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn
index b8f0e29..596e298c 100644
--- a/components/viz/service/BUILD.gn
+++ b/components/viz/service/BUILD.gn
@@ -413,8 +413,9 @@
     public_deps += [ "//third_party/dawn/src/dawn:dawn_headers" ]
 
     deps += [
-      "//third_party/dawn:libdawn_native",
-      "//third_party/dawn/src/dawn:libdawn",
+      "//third_party/dawn/src/dawn:dawncpp",
+      "//third_party/dawn/src/dawn:libdawn_proc",
+      "//third_party/dawn/src/dawn_native",
     ]
   }
 }
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
index 384b4e37..ee64057 100644
--- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -2080,6 +2080,10 @@
 }
 
 IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest,
+                       AccessibilityPortalWithWidgetInside) {
+  RunHtmlTest(FILE_PATH_LITERAL("portal-with-widget-inside.html"));
+}
+IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest,
                        AccessibilityPortalNameFromVisibleText) {
   RunHtmlTest(FILE_PATH_LITERAL("portal-name-from-visible-text.html"));
 }
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index ed32810..c4fe5c00 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -2304,6 +2304,7 @@
       return net::IsolationInfo::Create(redirect_mode, top_frame_origin,
                                         frame_origin, net::SiteForCookies());
     }
+    candidate_site_for_cookies.MarkIfCrossScheme(rfh->last_committed_origin_);
   }
 
   // If |redirect_mode| is kUpdateNothing, then IsolationInfo is being computed
@@ -7026,10 +7027,6 @@
   if (!registry_ ||
       !registry_->TryBindInterface(interface_name, &interface_pipe)) {
     delegate_->OnInterfaceRequest(this, interface_name, &interface_pipe);
-    if (interface_pipe.is_valid()) {
-      GetContentClient()->browser()->BindInterfaceRequestFromFrame(
-          this, interface_name, std::move(interface_pipe));
-    }
   }
 }
 
diff --git a/content/browser/frame_host/render_frame_host_impl_browsertest.cc b/content/browser/frame_host/render_frame_host_impl_browsertest.cc
index 6f10b2b..b3a1487 100644
--- a/content/browser/frame_host/render_frame_host_impl_browsertest.cc
+++ b/content/browser/frame_host/render_frame_host_impl_browsertest.cc
@@ -3315,6 +3315,84 @@
   SetBrowserClientForTesting(old_client);
 }
 
+// Test that when ancestor iframes differ in scheme that the SiteForCookies
+// state is updated accordingly.
+IN_PROC_BROWSER_TEST_F(RenderFrameHostImplBrowserTest,
+                       ComputeSiteForCookiesSchemefulIsSameForAncestorFrames) {
+  https_server()->ServeFilesFromSourceDirectory(GetTestDataFilePath());
+  https_server()->SetSSLConfig(net::EmbeddedTestServer::CERT_TEST_NAMES);
+  ASSERT_TRUE(https_server()->Start());
+
+  GURL url = https_server()->GetURL(
+      "a.test", "/cross_site_iframe_factory.html?a.test(a.test)");
+  GURL insecure_url = embedded_test_server()->GetURL(
+      "a.test", "/cross_site_iframe_factory.html?a.test(a.test(a.test))");
+  GURL other_url = https_server()->GetURL("c.test", "/");
+  EXPECT_TRUE(NavigateToURL(shell(), insecure_url));
+  {
+    WebContentsImpl* wc =
+        static_cast<WebContentsImpl*>(shell()->web_contents());
+    RenderFrameHostImpl* main_frame = wc->GetMainFrame();
+
+    EXPECT_EQ("a.test", main_frame->GetLastCommittedURL().host());
+    EXPECT_EQ("http", main_frame->frame_tree_node()->current_origin().scheme());
+    ASSERT_EQ(1u, main_frame->child_count());
+    FrameTreeNode* child = main_frame->child_at(0);
+    EXPECT_EQ("a.test", child->current_url().host());
+    EXPECT_EQ("http", child->current_origin().scheme());
+    ASSERT_EQ(1u, child->child_count());
+    FrameTreeNode* grandchild = child->child_at(0);
+    EXPECT_EQ("a.test", grandchild->current_url().host());
+
+    // Both the frames above grandchild are the same scheme, so
+    // SiteForCookies::schemefully_same() should indicate that.
+    EXPECT_TRUE(child->current_frame_host()
+                    ->ComputeSiteForCookiesForNavigation(other_url)
+                    .schemefully_same());
+    EXPECT_EQ("a.test", child->current_frame_host()
+                            ->ComputeSiteForCookiesForNavigation(other_url)
+                            .registrable_domain());
+
+    net::SiteForCookies grandchild_same_scheme =
+        grandchild->current_frame_host()->ComputeSiteForCookies();
+    EXPECT_TRUE(grandchild_same_scheme.schemefully_same());
+    EXPECT_EQ("a.test", grandchild_same_scheme.registrable_domain());
+
+    net::SiteForCookies grandchild_same_scheme_navigation =
+        grandchild->current_frame_host()->ComputeSiteForCookiesForNavigation(
+            other_url);
+    EXPECT_TRUE(grandchild_same_scheme_navigation.schemefully_same());
+    EXPECT_EQ("a.test", grandchild_same_scheme_navigation.registrable_domain());
+
+    // Navigate the middle child frame to https.
+    NavigateFrameToURL(child, url);
+    EXPECT_EQ("a.test", child->current_url().host());
+    EXPECT_EQ("https", child->current_origin().scheme());
+    EXPECT_EQ(1u, child->child_count());
+
+    grandchild = child->child_at(0);
+
+    // Now the frames above grandchild differ only in scheme. SiteForCookies
+    // should be the same except that schemefully_same() should be false.
+    net::SiteForCookies grandchild_cross_scheme =
+        grandchild->current_frame_host()->ComputeSiteForCookies();
+    EXPECT_FALSE(grandchild_cross_scheme.schemefully_same());
+    EXPECT_EQ("a.test", grandchild_cross_scheme.registrable_domain());
+
+    net::SiteForCookies grandchild_cross_scheme_navigation =
+        grandchild->current_frame_host()->ComputeSiteForCookiesForNavigation(
+            other_url);
+    EXPECT_FALSE(grandchild_cross_scheme_navigation.schemefully_same());
+    EXPECT_EQ("a.test",
+              grandchild_cross_scheme_navigation.registrable_domain());
+
+    // IsEquivalent() doesn't check schemefully_same.
+    EXPECT_TRUE(grandchild_cross_scheme.IsEquivalent(grandchild_same_scheme));
+    EXPECT_TRUE(grandchild_cross_scheme_navigation.IsEquivalent(
+        grandchild_same_scheme_navigation));
+  }
+}
+
 IN_PROC_BROWSER_TEST_F(RenderFrameHostImplBrowserTest,
                        ComputeSiteForCookiesForNavigationSandbox) {
   // Test sandboxed subframe.
diff --git a/content/browser/gpu/browser_gpu_channel_host_factory.cc b/content/browser/gpu/browser_gpu_channel_host_factory.cc
index bb0c40e9..8b33ed78 100644
--- a/content/browser/gpu/browser_gpu_channel_host_factory.cc
+++ b/content/browser/gpu/browser_gpu_channel_host_factory.cc
@@ -410,8 +410,14 @@
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
 // Only implement timeout on Android, which does not have a software fallback.
 #if defined(OS_ANDROID)
-  if (base::CommandLine::ForCurrentProcess()->HasSwitch(
-          switches::kDisableTimeoutsForProfiling)) {
+  base::CommandLine* cl = base::CommandLine::ForCurrentProcess();
+  if (cl->HasSwitch(switches::kDisableTimeoutsForProfiling)) {
+    return;
+  }
+  // Only enable it for out of process GPU. In-process generally only has false
+  // positives.
+  if (cl->HasSwitch(switches::kSingleProcess) ||
+      cl->HasSwitch(switches::kInProcessGPU)) {
     return;
   }
 
diff --git a/content/browser/navigation_browsertest.cc b/content/browser/navigation_browsertest.cc
index 287c95a..0a8a18d 100644
--- a/content/browser/navigation_browsertest.cc
+++ b/content/browser/navigation_browsertest.cc
@@ -3490,4 +3490,86 @@
   EXPECT_FALSE(main_contents->GetMainFrame()->GetView()->IsScrollOffsetAtTop());
 }
 
+class ForceLoadAtTopBrowserTest : public NavigationBrowserTest {
+ protected:
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    NavigationBaseBrowserTest::SetUpCommandLine(command_line);
+
+    command_line->AppendSwitchASCII(switches::kEnableBlinkFeatures,
+                                    "ForceLoadAtTop");
+  }
+};
+
+// Test that scroll restoration is disabled with ForceLoadAtTop
+IN_PROC_BROWSER_TEST_F(ForceLoadAtTopBrowserTest, ScrollRestorationDisabled) {
+  GURL url(
+      embedded_test_server()->GetURL("/scrollable_page_with_content.html"));
+  WebContents* main_contents = shell()->web_contents();
+  RenderFrameSubmissionObserver frame_observer(main_contents);
+
+  EXPECT_TRUE(NavigateToURL(shell(), url));
+  EXPECT_TRUE(WaitForRenderFrameReady(main_contents->GetMainFrame()));
+
+  // Scroll down the page a bit
+  EXPECT_TRUE(ExecuteScript(main_contents, "window.scrollTo(0, 1000)"));
+  frame_observer.WaitForScrollOffsetAtTop(false);
+
+  // Navigate away
+  EXPECT_TRUE(ExecuteScript(main_contents, "window.location = 'about:blank'"));
+  EXPECT_TRUE(WaitForLoadStop(main_contents));
+  EXPECT_TRUE(WaitForRenderFrameReady(main_contents->GetMainFrame()));
+
+  // Navigate back
+  EXPECT_TRUE(ExecuteScript(main_contents, "history.back()"));
+  EXPECT_TRUE(WaitForLoadStop(main_contents));
+  EXPECT_TRUE(WaitForRenderFrameReady(main_contents->GetMainFrame()));
+
+  // Wait a short amount of time to ensure the page does not scroll.
+  base::RunLoop run_loop;
+  base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
+      FROM_HERE, run_loop.QuitClosure(), TestTimeouts::tiny_timeout());
+  run_loop.Run();
+  RunUntilInputProcessed(RenderWidgetHostImpl::From(
+      main_contents->GetRenderViewHost()->GetWidget()));
+  EXPECT_TRUE(main_contents->GetMainFrame()->GetView()->IsScrollOffsetAtTop());
+}
+
+// Test that element fragment anchor scrolling is disabled with ForceLoadAtTop
+IN_PROC_BROWSER_TEST_F(ForceLoadAtTopBrowserTest, FragmentAnchorDisabled) {
+  GURL url(embedded_test_server()->GetURL(
+      "/scrollable_page_with_content.html#text"));
+  WebContents* main_contents = shell()->web_contents();
+
+  EXPECT_TRUE(NavigateToURL(shell(), url));
+  EXPECT_TRUE(WaitForRenderFrameReady(main_contents->GetMainFrame()));
+
+  // Wait a short amount of time to ensure the page does not scroll.
+  base::RunLoop run_loop;
+  base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
+      FROM_HERE, run_loop.QuitClosure(), TestTimeouts::tiny_timeout());
+  run_loop.Run();
+  RunUntilInputProcessed(RenderWidgetHostImpl::From(
+      main_contents->GetRenderViewHost()->GetWidget()));
+  EXPECT_TRUE(main_contents->GetMainFrame()->GetView()->IsScrollOffsetAtTop());
+}
+
+IN_PROC_BROWSER_TEST_F(ForceLoadAtTopBrowserTest, TextFragmentAnchorDisabled) {
+  GURL url(embedded_test_server()->GetURL(
+      "/scrollable_page_with_content.html#:~:text=text"));
+  WebContents* main_contents = shell()->web_contents();
+  RenderFrameSubmissionObserver frame_observer(main_contents);
+
+  EXPECT_TRUE(NavigateToURL(shell(), url));
+  EXPECT_TRUE(WaitForRenderFrameReady(main_contents->GetMainFrame()));
+
+  // Wait a short amount of time to ensure the page does not scroll.
+  base::RunLoop run_loop;
+  base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
+      FROM_HERE, run_loop.QuitClosure(), TestTimeouts::tiny_timeout());
+  run_loop.Run();
+  RunUntilInputProcessed(RenderWidgetHostImpl::From(
+      main_contents->GetRenderViewHost()->GetWidget()));
+  EXPECT_TRUE(main_contents->GetMainFrame()->GetView()->IsScrollOffsetAtTop());
+}
+
 }  // namespace content
diff --git a/content/browser/pointer_lock_browsertest.cc b/content/browser/pointer_lock_browsertest.cc
index 6e028534..2f8b69e 100644
--- a/content/browser/pointer_lock_browsertest.cc
+++ b/content/browser/pointer_lock_browsertest.cc
@@ -237,8 +237,8 @@
                    EXECUTE_SCRIPT_NO_USER_GESTURE));
 }
 
-// Flaky on Windows.  https://crbug.com/992529
-#if defined(OS_WIN)
+// TODO(https://crbug.com/992529): Fix test flakiness on Windows and Linux.
+#if defined(OS_WIN) || defined(OS_LINUX)
 #define MAYBE_PointerLockEventRouting DISABLED_PointerLockEventRouting
 #else
 #define MAYBE_PointerLockEventRouting PointerLockEventRouting
diff --git a/content/browser/renderer_host/input/input_router_client.h b/content/browser/renderer_host/input/input_router_client.h
index ce5a1d7..5d9c6cd 100644
--- a/content/browser/renderer_host/input/input_router_client.h
+++ b/content/browser/renderer_host/input/input_router_client.h
@@ -90,12 +90,6 @@
 
   virtual void UnlockMouse() = 0;
 
-  virtual void FallbackCursorModeLockCursor(bool left,
-                                            bool right,
-                                            bool up,
-                                            bool down) = 0;
-  virtual void FallbackCursorModeSetCursorVisibility(bool visible) = 0;
-
   // Returns the size of visible viewport in screen space, in DIPs.
   virtual gfx::Size GetRootWidgetViewportSize() = 0;
 };
diff --git a/content/browser/renderer_host/input/input_router_impl.cc b/content/browser/renderer_host/input/input_router_impl.cc
index 866862be..e77bb3b1 100644
--- a/content/browser/renderer_host/input/input_router_impl.cc
+++ b/content/browser/renderer_host/input/input_router_impl.cc
@@ -277,19 +277,6 @@
   }
 }
 
-#if defined(OS_ANDROID)
-void InputRouterImpl::FallbackCursorModeLockCursor(bool left,
-                                                   bool right,
-                                                   bool up,
-                                                   bool down) {
-  client_->FallbackCursorModeLockCursor(left, right, up, down);
-}
-
-void InputRouterImpl::FallbackCursorModeSetCursorVisibility(bool visible) {
-  client_->FallbackCursorModeSetCursorVisibility(visible);
-}
-#endif
-
 void InputRouterImpl::SetTouchActionFromMain(cc::TouchAction touch_action) {
   TRACE_EVENT1("input", "InputRouterImpl::SetTouchActionFromMain",
                "touch_action", TouchActionToString(touch_action));
diff --git a/content/browser/renderer_host/input/input_router_impl.h b/content/browser/renderer_host/input/input_router_impl.h
index 53349f64..b45a34e 100644
--- a/content/browser/renderer_host/input/input_router_impl.h
+++ b/content/browser/renderer_host/input/input_router_impl.h
@@ -14,7 +14,6 @@
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
 #include "base/time/time.h"
-#include "build/build_config.h"
 #include "cc/input/touch_action.h"
 #include "content/browser/renderer_host/input/fling_scheduler.h"
 #include "content/browser/renderer_host/input/gesture_event_queue.h"
@@ -92,13 +91,6 @@
   void ForceSetTouchActionAuto() override;
 
   // InputHandlerHost impl
-#if defined(OS_ANDROID)
-  void FallbackCursorModeLockCursor(bool left,
-                                    bool right,
-                                    bool up,
-                                    bool down) override;
-  void FallbackCursorModeSetCursorVisibility(bool visible) override;
-#endif
   void SetTouchActionFromMain(cc::TouchAction touch_action) override;
   void DidOverscroll(const ui::DidOverscrollParams& params) override;
   void ImeCancelComposition() override;
diff --git a/content/browser/renderer_host/input/input_router_impl_unittest.cc b/content/browser/renderer_host/input/input_router_impl_unittest.cc
index c1b6a25f..fd463ce 100644
--- a/content/browser/renderer_host/input/input_router_impl_unittest.cc
+++ b/content/browser/renderer_host/input/input_router_impl_unittest.cc
@@ -124,13 +124,6 @@
 
   void UnlockMouse() override {}
 
-  void FallbackCursorModeLockCursor(bool left,
-                                    bool right,
-                                    bool up,
-                                    bool down) override {}
-
-  void FallbackCursorModeSetCursorVisibility(bool visible) override {}
-
   gfx::Size GetRootWidgetViewportSize() override {
     return gfx::Size(1920, 1080);
   }
diff --git a/content/browser/renderer_host/input/mock_input_router_client.h b/content/browser/renderer_host/input/mock_input_router_client.h
index 2bdb4fb..e1574430 100644
--- a/content/browser/renderer_host/input/mock_input_router_client.h
+++ b/content/browser/renderer_host/input/mock_input_router_client.h
@@ -52,11 +52,6 @@
       mojom::WidgetInputHandlerHost::RequestMouseLockCallback response)
       override {}
   void UnlockMouse() override {}
-  void FallbackCursorModeLockCursor(bool left,
-                                    bool right,
-                                    bool up,
-                                    bool down) override {}
-  void FallbackCursorModeSetCursorVisibility(bool visible) override {}
   gfx::Size GetRootWidgetViewportSize() override;
 
   bool GetAndResetFilterEventCalled();
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index 55e1970..3ba4cce 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -257,9 +257,6 @@
   void CursorVisibilityChanged(bool visible) override {
     DLOG(WARNING) << "Input request on unbound interface";
   }
-  void FallbackCursorModeToggled(bool is_on) override {
-    DLOG(WARNING) << "Input request on unbound interface";
-  }
   void ImeSetComposition(const base::string16& text,
                          const std::vector<ui::ImeTextSpan>& ime_text_spans,
                          const gfx::Range& range,
@@ -1607,10 +1604,6 @@
   GetWidgetInputHandler()->CursorVisibilityChanged(is_visible);
 }
 
-void RenderWidgetHostImpl::OnFallbackCursorModeToggled(bool is_on) {
-  GetWidgetInputHandler()->FallbackCursorModeToggled(is_on);
-}
-
 // static
 void RenderWidgetHostImpl::DisableResizeAckCheckForTesting() {
   g_check_for_pending_visual_properties_ack = false;
@@ -2209,11 +2202,6 @@
 
   bool processed = (INPUT_EVENT_ACK_STATE_CONSUMED == ack_result);
 
-  // The view may be destroyed by the time we get this ack, as is the case with
-  // portal activations.
-  if (!processed && GetView())
-    processed = GetView()->OnUnconsumedKeyboardEventAck(event);
-
   // We only send unprocessed key event upwards if we are not hidden,
   // because the user has moved away from us and no longer expect any effect
   // of this key event.
@@ -2595,17 +2583,6 @@
     is_last_unlocked_by_target_ = true;
 }
 
-void RenderWidgetHostImpl::FallbackCursorModeLockCursor(bool left,
-                                                        bool right,
-                                                        bool up,
-                                                        bool down) {
-  GetView()->FallbackCursorModeLockCursor(left, right, up, down);
-}
-
-void RenderWidgetHostImpl::FallbackCursorModeSetCursorVisibility(bool visible) {
-  GetView()->FallbackCursorModeSetCursorVisibility(visible);
-}
-
 void RenderWidgetHostImpl::OnInvalidFrameToken(uint32_t frame_token) {
   bad_message::ReceivedBadMessage(GetProcess(),
                                   bad_message::RWH_INVALID_FRAME_TOKEN);
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h
index 013b2165..57865bc 100644
--- a/content/browser/renderer_host/render_widget_host_impl.h
+++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -399,9 +399,6 @@
   // Notifies the RenderWidget of the current mouse cursor visibility state.
   void OnCursorVisibilityStateChanged(bool is_visible);
 
-  // Notifies the RenderWidget when toggle fallback cursor mode on/off.
-  void OnFallbackCursorModeToggled(bool is_on);
-
   // Notifies the RenderWidgetHost that the View was destroyed.
   void ViewDestroyed();
 
@@ -717,11 +714,6 @@
       bool unadjusted_movement,
       InputRouterImpl::RequestMouseLockCallback response) override;
   void UnlockMouse() override;
-  void FallbackCursorModeLockCursor(bool left,
-                                    bool right,
-                                    bool up,
-                                    bool down) override;
-  void FallbackCursorModeSetCursorVisibility(bool visible) override;
   gfx::Size GetRootWidgetViewportSize() override;
 
   // FrameTokenMessageQueue::Client:
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
index 019633c..263ed5d 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -230,8 +230,6 @@
       using_viz_for_webview_(features::IsUsingVizForWebView()),
       synchronous_compositor_client_(nullptr),
       observing_root_window_(false),
-      fallback_cursor_mode_enabled_(
-          base::FeatureList::IsEnabled(features::kFallbackCursorMode)),
       prev_top_shown_pix_(0.f),
       prev_top_controls_translate_(0.f),
       prev_bottom_shown_pix_(0.f),
@@ -1589,27 +1587,6 @@
     gesture_listener_manager_->GestureEventAck(event, ack_result);
 }
 
-bool RenderWidgetHostViewAndroid::OnUnconsumedKeyboardEventAck(
-    const NativeWebKeyboardEventWithLatencyInfo& event) {
-  return fallback_cursor_mode_enabled_ &&
-         event.event.GetType() == blink::WebInputEvent::kKeyDown &&
-         view_.OnUnconsumedKeyboardEventAck(event.event.native_key_code);
-}
-
-void RenderWidgetHostViewAndroid::FallbackCursorModeLockCursor(bool left,
-                                                               bool right,
-                                                               bool up,
-                                                               bool down) {
-  DCHECK(fallback_cursor_mode_enabled_);
-  view_.FallbackCursorModeLockCursor(left, right, up, down);
-}
-
-void RenderWidgetHostViewAndroid::FallbackCursorModeSetCursorVisibility(
-    bool visible) {
-  DCHECK(fallback_cursor_mode_enabled_);
-  view_.FallbackCursorModeSetCursorVisibility(visible);
-}
-
 InputEventAckState RenderWidgetHostViewAndroid::FilterInputEvent(
     const blink::WebInputEvent& input_event) {
   if (overscroll_controller_ &&
@@ -2137,24 +2114,6 @@
   ShowInternal();
 }
 
-void RenderWidgetHostViewAndroid::OnCursorVisibilityChanged(bool visible) {
-  DCHECK(observing_root_window_);
-  // The fallback_cursor_mode check should really happen higher up in the
-  // stack. We do it here because the call comes from Java ui/touchless which
-  // can't access the value of the blink Feature.
-  if (host() && fallback_cursor_mode_enabled_)
-    host()->OnCursorVisibilityStateChanged(visible);
-}
-
-void RenderWidgetHostViewAndroid::OnFallbackCursorModeToggled(bool is_on) {
-  DCHECK(observing_root_window_);
-  // The fallback_cursor_mode check should really happen higher up in the
-  // stack. We do it here because the call comes from Java ui/touchless which
-  // can't access the value of the blink Feature.
-  if (host() && fallback_cursor_mode_enabled_)
-    host()->OnFallbackCursorModeToggled(is_on);
-}
-
 void RenderWidgetHostViewAndroid::OnLostResources() {
   EvictDelegatedFrame();
 }
diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h
index 886fd54a..882235c2 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.h
+++ b/content/browser/renderer_host/render_widget_host_view_android.h
@@ -137,13 +137,6 @@
                        InputEventAckState ack_result) override;
   void ChildDidAckGestureEvent(const blink::WebGestureEvent& event,
                                InputEventAckState ack_result) override;
-  bool OnUnconsumedKeyboardEventAck(
-      const NativeWebKeyboardEventWithLatencyInfo& event) override;
-  void FallbackCursorModeLockCursor(bool left,
-                                    bool right,
-                                    bool up,
-                                    bool down) override;
-  void FallbackCursorModeSetCursorVisibility(bool visible) override;
   BrowserAccessibilityManager* CreateBrowserAccessibilityManager(
       BrowserAccessibilityDelegate* delegate,
       bool for_root_frame) override;
@@ -210,8 +203,6 @@
   void OnAnimate(base::TimeTicks begin_frame_time) override;
   void OnActivityStopped() override;
   void OnActivityStarted() override;
-  void OnCursorVisibilityChanged(bool visible) override;
-  void OnFallbackCursorModeToggled(bool is_on) override;
 
   // StylusTextSelectorClient implementation.
   void OnStylusSelectBegin(float x0, float y0, float x1, float y1) override;
@@ -519,8 +510,6 @@
 
   bool controls_initialized_ = false;
 
-  bool fallback_cursor_mode_enabled_;
-
   float prev_top_shown_pix_;
   float prev_top_controls_translate_;
   float prev_top_controls_min_height_offset_pix_;
diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc
index 19c6b2e..f432ed3 100644
--- a/content/browser/renderer_host/render_widget_host_view_base.cc
+++ b/content/browser/renderer_host/render_widget_host_view_base.cc
@@ -373,19 +373,6 @@
     const blink::WebGestureEvent& event,
     InputEventAckState ack_result) {}
 
-bool RenderWidgetHostViewBase::OnUnconsumedKeyboardEventAck(
-    const NativeWebKeyboardEventWithLatencyInfo& event) {
-  return false;
-}
-
-void RenderWidgetHostViewBase::FallbackCursorModeLockCursor(bool left,
-                                                            bool right,
-                                                            bool up,
-                                                            bool down) {}
-
-void RenderWidgetHostViewBase::FallbackCursorModeSetCursorVisibility(
-    bool visible) {}
-
 void RenderWidgetHostViewBase::ForwardTouchpadZoomEventIfNecessary(
     const blink::WebGestureEvent& event,
     InputEventAckState ack_result) {
diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h
index 27133fd..c27df0f 100644
--- a/content/browser/renderer_host/render_widget_host_view_base.h
+++ b/content/browser/renderer_host/render_widget_host_view_base.h
@@ -237,17 +237,6 @@
   virtual void ChildDidAckGestureEvent(const blink::WebGestureEvent& event,
                                        InputEventAckState ack_result);
 
-  // When key event is not uncosumed in render, browser may want to consume it.
-  virtual bool OnUnconsumedKeyboardEventAck(
-      const NativeWebKeyboardEventWithLatencyInfo& event);
-
-  // Call platform APIs for Fallback Cursor Mode.
-  virtual void FallbackCursorModeLockCursor(bool left,
-                                            bool right,
-                                            bool up,
-                                            bool down);
-  virtual void FallbackCursorModeSetCursorVisibility(bool visible);
-
   // Create a platform specific SyntheticGestureTarget implementation that will
   // be used to inject synthetic input events.
   virtual std::unique_ptr<SyntheticGestureTarget>
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
index 61279ef..e13ae96e 100644
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -281,8 +281,6 @@
      kUseFeatureState},
     {wf::EnableGetDisplayMedia, blink::features::kRTCGetDisplayMedia,
      kUseFeatureState},
-    {wf::EnableFallbackCursorMode, features::kFallbackCursorMode,
-     kUseFeatureState},
     {wf::EnableSignedExchangePrefetchCacheForNavigations,
      features::kSignedExchangePrefetchCacheForNavigations, kUseFeatureState},
     {wf::EnableSignedExchangeSubresourcePrefetch,
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn
index fb98b18..f9782ed 100644
--- a/content/common/BUILD.gn
+++ b/content/common/BUILD.gn
@@ -344,6 +344,17 @@
     libs += [ "android" ]
   }
 
+  if (is_chromeos) {
+    sources += [
+      "//chromeos/system/core_scheduling.cc",
+      "//chromeos/system/core_scheduling.h",
+    ]
+    deps += [
+      "//chromeos:chromeos_export",
+      "//chromeos/system",
+    ]
+  }
+
   if (is_debug && !is_component_build && enable_plugins) {
     # Content depends on the PPAPI message logging stuff; if this isn't here,
     # some unit test binaries won't compile. This only worked in release mode
diff --git a/content/common/input/input_handler.mojom b/content/common/input/input_handler.mojom
index f9ab479..92b4acbf 100644
--- a/content/common/input/input_handler.mojom
+++ b/content/common/input/input_handler.mojom
@@ -167,12 +167,6 @@
 
 // Interface exposed by the browser to the renderer.
 interface WidgetInputHandlerHost {
-  // Call platform Fallback Cursor Mode APIs.
-  [EnableIf=is_android]
-  FallbackCursorModeLockCursor(bool left, bool right, bool up, bool down);
-  [EnableIf=is_android]
-  FallbackCursorModeSetCursorVisibility(bool visible);
-
   // When the renderer's main thread computes the touch action, send this to the
   // browser.
   SetTouchActionFromMain(cc.mojom.TouchAction touch_action);
@@ -262,9 +256,6 @@
   // Sends the cursor visibility state to the render widget.
   CursorVisibilityChanged(bool visible);
 
-  // Notifies the RenderWidget when toggle fallback cursor mode on/off.
-  FallbackCursorModeToggled(bool is_on);
-
   // This message sends a string being composed with an input method.
   ImeSetComposition(mojo_base.mojom.String16 text,
                     array<ui.mojom.ImeTextSpan> ime_text_spans,
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/ImeUtils.java b/content/public/android/java/src/org/chromium/content/browser/input/ImeUtils.java
index 7bd2b805..9d715c20 100644
--- a/content/public/android/java/src/org/chromium/content/browser/input/ImeUtils.java
+++ b/content/public/android/java/src/org/chromium/content/browser/input/ImeUtils.java
@@ -75,7 +75,6 @@
             } else if (inputType == TextInputType.NUMBER) {
                 // Number
                 outAttrs.inputType = InputType.TYPE_CLASS_NUMBER
-                        | InputType.TYPE_NUMBER_VARIATION_NORMAL
                         | InputType.TYPE_NUMBER_FLAG_DECIMAL;
             }
         } else {
@@ -101,8 +100,10 @@
                             | InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS;
                     break;
                 case WebTextInputMode.NUMERIC:
-                    outAttrs.inputType =
-                            InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL;
+                    outAttrs.inputType = InputType.TYPE_CLASS_NUMBER;
+                    if (inputType == TextInputType.PASSWORD) {
+                        outAttrs.inputType |= InputType.TYPE_NUMBER_VARIATION_PASSWORD;
+                    }
                     break;
                 case WebTextInputMode.DECIMAL:
                     outAttrs.inputType =
@@ -126,7 +127,8 @@
             outAttrs.inputType |= InputType.TYPE_TEXT_FLAG_CAP_SENTENCES;
         }
 
-        if ((inputFlags & WebTextInputFlags.HAS_BEEN_PASSWORD_FIELD) != 0) {
+        if ((inputFlags & WebTextInputFlags.HAS_BEEN_PASSWORD_FIELD) != 0
+                && (outAttrs.inputType & InputType.TYPE_NUMBER_VARIATION_PASSWORD) == 0) {
             outAttrs.inputType =
                     InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD;
         }
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeInputModeTest.java b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeInputModeTest.java
index 18492eb..ce68c7d 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeInputModeTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeInputModeTest.java
@@ -5,6 +5,7 @@
 package org.chromium.content.browser.input;
 
 import android.support.test.filters.SmallTest;
+import android.text.InputType;
 import android.view.inputmethod.EditorInfo;
 
 import org.junit.Assert;
@@ -34,6 +35,22 @@
     @Test
     @SmallTest
     @Feature({"TextInput"})
+    public void testNumericPassword() throws Exception {
+        mRule.focusElement("input_numeric_password", true /* shouldShowKeyboard */);
+
+        mRule.waitForKeyboardStates(1, 0, 1, new Integer[] {TextInputType.PASSWORD},
+                new Integer[] {WebTextInputMode.NUMERIC});
+        Assert.assertNotNull(mRule.getInputMethodManagerWrapper().getInputConnection());
+
+        Assert.assertTrue(
+                (mRule.getConnectionFactory().getOutAttrs().inputType
+                        & (InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD))
+                != 0);
+    }
+
+    @Test
+    @SmallTest
+    @Feature({"TextInput"})
     public void testShowAndHideInputMode() throws Exception {
         mRule.focusElement("contenteditable_none", false);
 
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 26cd6d1a..163872d8 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -1000,13 +1000,6 @@
       RenderFrameHost* render_frame_host,
       service_manager::BinderMapWithContext<RenderFrameHost*>* map) {}
 
-  // Content was unable to bind a request for this interface, so the embedder
-  // should try.
-  virtual void BindInterfaceRequestFromFrame(
-      RenderFrameHost* render_frame_host,
-      const std::string& interface_name,
-      mojo::ScopedMessagePipeHandle interface_pipe) {}
-
   // Content was unable to bind a CredentialManager pending receiver, so the
   // embedder should try.
   virtual void BindCredentialManagerReceiver(
diff --git a/content/public/renderer/render_view.h b/content/public/renderer/render_view.h
index ada13ce..fbd64f3 100644
--- a/content/public/renderer/render_view.h
+++ b/content/public/renderer/render_view.h
@@ -82,14 +82,6 @@
   // false, but set to true by some tests.
   virtual bool GetContentStateImmediately() = 0;
 
-  // Inject edit commands to be used for the next keyboard event.
-  // TODO(alexmos): Currently, these are used only by BlinkTestRunner.  They
-  // should be removed from RenderView and instead be plumbed through the
-  // target frame and WebFrameTestProxy.
-  virtual void SetEditCommandForNextKeyEvent(const std::string& name,
-                                             const std::string& value) = 0;
-  virtual void ClearEditCommands() = 0;
-
   // Returns |renderer_preferences_.accept_languages| value.
   virtual const std::string& GetAcceptLanguages() = 0;
 
diff --git a/content/public/renderer/render_view_observer.h b/content/public/renderer/render_view_observer.h
index 0b8c1b0..4fcd049 100644
--- a/content/public/renderer/render_view_observer.h
+++ b/content/public/renderer/render_view_observer.h
@@ -12,12 +12,7 @@
 #include "ipc/ipc_listener.h"
 #include "ipc/ipc_sender.h"
 
-namespace blink {
-class WebLocalFrame;
-}
-
 namespace content {
-
 class RenderView;
 class RenderViewImpl;
 
@@ -32,7 +27,6 @@
   virtual void OnDestruct() = 0;
 
   // These match the WebKit API notifications
-  virtual void DidClearWindowObject(blink::WebLocalFrame* frame) {}
   virtual void DidCommitCompositorFrame() {}
   virtual void DidUpdateMainFrameLayout() {}
 
diff --git a/content/public/test/web_test_support_renderer.h b/content/public/test/web_test_support_renderer.h
index ded8d376..9b5c2fd 100644
--- a/content/public/test/web_test_support_renderer.h
+++ b/content/public/test/web_test_support_renderer.h
@@ -66,21 +66,10 @@
     WebWidgetTestProxy* web_widget_test_proxy,
     const blink::WebInputEvent& event);
 
-// Get the color space for a given name string. This is not in the ColorSpace
-// class to avoid bloating the shipping build.
-gfx::ColorSpace GetTestingColorSpace(const std::string& name);
-
 // Set the device color space.
 void SetDeviceColorSpace(RenderView* render_view,
                          const gfx::ColorSpace& color_space);
 
-// Enables or disables synchronous resize mode. When enabled, all window-sizing
-// machinery is short-circuited inside the renderer. This mode is necessary for
-// some tests that were written before browsers had multi-process architecture
-// and rely on window resizes to happen synchronously.
-// See http://crbug.com/309760 for details.
-void UseSynchronousResizeMode(RenderView* render_view, bool enable);
-
 // Control auto resize mode.
 void EnableAutoResizeMode(RenderView* render_view,
                           const blink::WebSize& min_size,
diff --git a/content/renderer/DEPS b/content/renderer/DEPS
index 9d9a9a0..80956e9 100644
--- a/content/renderer/DEPS
+++ b/content/renderer/DEPS
@@ -16,6 +16,7 @@
   # If adding a new component dependency, email content/OWNERS first.
   # ****************************************************************************
 
+  "+chromeos/system/core_scheduling.h",
   "+content/public/child",
   "+content/public/renderer",
   "+content/child",
diff --git a/content/renderer/input/widget_input_handler_impl.cc b/content/renderer/input/widget_input_handler_impl.cc
index d4c6e39f..42520e237 100644
--- a/content/renderer/input/widget_input_handler_impl.cc
+++ b/content/renderer/input/widget_input_handler_impl.cc
@@ -102,11 +102,6 @@
                                  render_widget_, visible));
 }
 
-void WidgetInputHandlerImpl::FallbackCursorModeToggled(bool is_on) {
-  RunOnMainThread(base::BindOnce(&RenderWidget::OnFallbackCursorModeToggled,
-                                 render_widget_, is_on));
-}
-
 void WidgetInputHandlerImpl::ImeSetComposition(
     const base::string16& text,
     const std::vector<ui::ImeTextSpan>& ime_text_spans,
diff --git a/content/renderer/input/widget_input_handler_impl.h b/content/renderer/input/widget_input_handler_impl.h
index dd982798..3750eb3 100644
--- a/content/renderer/input/widget_input_handler_impl.h
+++ b/content/renderer/input/widget_input_handler_impl.h
@@ -41,7 +41,6 @@
   void SetEditCommandsForNextKeyEvent(
       const std::vector<EditCommand>& commands) override;
   void CursorVisibilityChanged(bool visible) override;
-  void FallbackCursorModeToggled(bool is_on) override;
   void ImeSetComposition(const base::string16& text,
                          const std::vector<ui::ImeTextSpan>& ime_text_spans,
                          const gfx::Range& range,
diff --git a/content/renderer/input/widget_input_handler_manager.cc b/content/renderer/input/widget_input_handler_manager.cc
index ea1253b..2afdf62 100644
--- a/content/renderer/input/widget_input_handler_manager.cc
+++ b/content/renderer/input/widget_input_handler_manager.cc
@@ -476,24 +476,6 @@
       base::BindOnce(&WaitForInputProcessedFromMain, render_widget_));
 }
 
-void WidgetInputHandlerManager::FallbackCursorModeLockCursor(bool left,
-                                                             bool right,
-                                                             bool up,
-                                                             bool down) {
-#if defined(OS_ANDROID)
-  if (mojom::WidgetInputHandlerHost* host = GetWidgetInputHandlerHost())
-    host->FallbackCursorModeLockCursor(left, right, up, down);
-#endif
-}
-
-void WidgetInputHandlerManager::FallbackCursorModeSetCursorVisibility(
-    bool visible) {
-#if defined(OS_ANDROID)
-  if (mojom::WidgetInputHandlerHost* host = GetWidgetInputHandlerHost())
-    host->FallbackCursorModeSetCursorVisibility(visible);
-#endif
-}
-
 void WidgetInputHandlerManager::DidNavigate() {
   renderer_deferral_state_ = 0;
   have_emitted_uma_ = false;
diff --git a/content/renderer/input/widget_input_handler_manager.h b/content/renderer/input/widget_input_handler_manager.h
index dc109d9..7f913af 100644
--- a/content/renderer/input/widget_input_handler_manager.h
+++ b/content/renderer/input/widget_input_handler_manager.h
@@ -122,9 +122,6 @@
   void InputWasProcessed(const gfx::PresentationFeedback& feedback);
   void WaitForInputProcessed(base::OnceClosure callback);
 
-  void FallbackCursorModeLockCursor(bool left, bool right, bool up, bool down);
-  void FallbackCursorModeSetCursorVisibility(bool visible);
-
   // Called when the RenderWidget is notified of a navigation. Resets
   // the renderer pipeline deferral status, and resets the UMA recorder for
   // time of first input.
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 91444f942..f2bc6569 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -4430,8 +4430,6 @@
   if (command_line.HasSwitch(switches::kEnableSkiaBenchmarking))
     SkiaBenchmarking::Install(frame_);
 
-  for (auto& observer : render_view_->observers())
-    observer.DidClearWindowObject(frame_);
   for (auto& observer : observers_)
     observer.DidClearWindowObject();
 }
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index c0f5ce15..67918380 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -1621,25 +1621,6 @@
   return true;
 }
 
-void RenderViewImpl::SetEditCommandForNextKeyEvent(const std::string& name,
-                                                   const std::string& value) {
-  // This is test-only code. Only propagate the command if there is a main
-  // render frame.
-  if (main_render_frame_) {
-    RenderWidget* widget = main_render_frame_->GetLocalRootRenderWidget();
-    widget->SetEditCommandForNextKeyEvent(name, value);
-  }
-}
-
-void RenderViewImpl::ClearEditCommands() {
-  // This is test-only code. Only propagate the command if there is a main
-  // render frame.
-  if (main_render_frame_) {
-    RenderWidget* widget = main_render_frame_->GetLocalRootRenderWidget();
-    widget->ClearEditCommands();
-  }
-}
-
 const std::string& RenderViewImpl::GetAcceptLanguages() {
   return renderer_preferences_.accept_languages;
 }
diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h
index 75becca2..fea22125 100644
--- a/content/renderer/render_view_impl.h
+++ b/content/renderer/render_view_impl.h
@@ -255,13 +255,6 @@
   void SetWebkitPreferences(const WebPreferences& preferences) override;
   blink::WebView* GetWebView() override;
   bool GetContentStateImmediately() override;
-
-  // Only used for testing.
-  void SetEditCommandForNextKeyEvent(const std::string& name,
-                                     const std::string& value) override;
-  // Only used for testing.
-  void ClearEditCommands() override;
-
   const std::string& GetAcceptLanguages() override;
 
   // Please do not add your stuff randomly to the end here. If there is an
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index fb0a29d8..754621e 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -1088,10 +1088,6 @@
   GetWebWidget()->SetCursorVisibilityState(is_visible);
 }
 
-void RenderWidget::OnFallbackCursorModeToggled(bool is_on) {
-  GetWebWidget()->OnFallbackCursorModeToggled(is_on);
-}
-
 void RenderWidget::OnMouseCaptureLost() {
   GetWebWidget()->MouseCaptureLost();
 }
@@ -3170,18 +3166,6 @@
                                                          rect_to_zoom));
 }
 
-void RenderWidget::FallbackCursorModeLockCursor(bool left,
-                                                bool right,
-                                                bool up,
-                                                bool down) {
-  widget_input_handler_manager_->FallbackCursorModeLockCursor(left, right, up,
-                                                              down);
-}
-
-void RenderWidget::FallbackCursorModeSetCursorVisibility(bool visible) {
-  widget_input_handler_manager_->FallbackCursorModeSetCursorVisibility(visible);
-}
-
 void RenderWidget::SetPageScaleStateAndLimits(float page_scale_factor,
                                               bool is_pinch_gesture_active,
                                               float minimum,
diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h
index b48c2e66..f359128c 100644
--- a/content/renderer/render_widget.h
+++ b/content/renderer/render_widget.h
@@ -414,11 +414,6 @@
                                        const blink::WebRect& bounds) override;
   void ZoomToFindInPageRectInMainFrame(
       const blink::WebRect& rect_to_zoom) override;
-  void FallbackCursorModeLockCursor(bool left,
-                                    bool right,
-                                    bool up,
-                                    bool down) override;
-  void FallbackCursorModeSetCursorVisibility(bool visible) override;
   void SetPageScaleStateAndLimits(float page_scale_factor,
                                   bool is_pinch_gesture_active,
                                   float minimum,
@@ -557,7 +552,6 @@
   void OnSetFocus(bool enable);
   void OnMouseCaptureLost();
   void OnCursorVisibilityChange(bool is_visible);
-  void OnFallbackCursorModeToggled(bool is_on);
   void OnSetEditCommandsForNextKeyEvent(const EditCommands& edit_commands);
   void OnImeSetComposition(
       const base::string16& text,
diff --git a/content/renderer/render_widget_unittest.cc b/content/renderer/render_widget_unittest.cc
index 59b4ff7..400733d9 100644
--- a/content/renderer/render_widget_unittest.cc
+++ b/content/renderer/render_widget_unittest.cc
@@ -95,12 +95,6 @@
 class MockWidgetInputHandlerHost : public mojom::WidgetInputHandlerHost {
  public:
   MockWidgetInputHandlerHost() {}
-#if defined(OS_ANDROID)
-  MOCK_METHOD4(FallbackCursorModeLockCursor, void(bool, bool, bool, bool));
-
-  MOCK_METHOD1(FallbackCursorModeSetCursorVisibility, void(bool));
-#endif
-
   MOCK_METHOD1(SetTouchActionFromMain, void(cc::TouchAction));
 
   MOCK_METHOD3(SetWhiteListedTouchAction,
diff --git a/content/renderer/renderer_main.cc b/content/renderer/renderer_main.cc
index 222cc58..b473bca4 100644
--- a/content/renderer/renderer_main.cc
+++ b/content/renderer/renderer_main.cc
@@ -57,6 +57,10 @@
 #include "third_party/blink/public/web/web_view.h"
 #endif  // OS_MACOSX
 
+#if defined(OS_CHROMEOS)
+#include "chromeos/system/core_scheduling.h"
+#endif  // OS_CHROMEOS
+
 #if BUILDFLAG(ENABLE_PLUGINS)
 #include "content/renderer/pepper/pepper_plugin_registry.h"
 #endif
@@ -121,6 +125,10 @@
         command_line.GetSwitchValueASCII(switches::kLang);
     base::i18n::SetICUDefaultLocale(locale);
   }
+
+  // When we start the renderer on ChromeOS if the system has core scheduling
+  // available we want to turn it on.
+  chromeos::system::EnableCoreSchedulingIfAvailable();
 #endif
 
   InitializeSkia();
diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
index 6c364d7..6a872eff 100644
--- a/content/shell/BUILD.gn
+++ b/content/shell/BUILD.gn
@@ -194,6 +194,7 @@
     "//ui/events:events_base",
     "//ui/events/blink",
     "//ui/gfx",
+    "//ui/gfx:test_support",
     "//ui/gfx/geometry",
     "//v8",
   ]
@@ -367,8 +368,8 @@
     "gpu/shell_content_gpu_client.h",
     "renderer/shell_content_renderer_client.cc",
     "renderer/shell_content_renderer_client.h",
-    "renderer/shell_render_view_observer.cc",
-    "renderer/shell_render_view_observer.h",
+    "renderer/shell_render_frame_observer.cc",
+    "renderer/shell_render_frame_observer.h",
     "utility/shell_content_utility_client.cc",
     "utility/shell_content_utility_client.h",
   ]
diff --git a/content/shell/renderer/shell_content_renderer_client.cc b/content/shell/renderer/shell_content_renderer_client.cc
index 7b51969..70040cf3 100644
--- a/content/shell/renderer/shell_content_renderer_client.cc
+++ b/content/shell/renderer/shell_content_renderer_client.cc
@@ -16,7 +16,7 @@
 #include "content/public/test/test_service.mojom.h"
 #include "content/shell/common/power_monitor_test_impl.h"
 #include "content/shell/common/shell_switches.h"
-#include "content/shell/renderer/shell_render_view_observer.h"
+#include "content/shell/renderer/shell_render_frame_observer.h"
 #include "mojo/public/cpp/bindings/binder_map.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/receiver.h"
@@ -137,8 +137,8 @@
                base::ThreadTaskRunnerHandle::Get());
 }
 
-void ShellContentRendererClient::RenderViewCreated(RenderView* render_view) {
-  new ShellRenderViewObserver(render_view);
+void ShellContentRendererClient::RenderFrameCreated(RenderFrame* render_frame) {
+  new ShellRenderFrameObserver(render_frame);
 }
 
 bool ShellContentRendererClient::HasErrorPage(int http_status_code) {
diff --git a/content/shell/renderer/shell_content_renderer_client.h b/content/shell/renderer/shell_content_renderer_client.h
index b94f97b..1bdacda 100644
--- a/content/shell/renderer/shell_content_renderer_client.h
+++ b/content/shell/renderer/shell_content_renderer_client.h
@@ -27,7 +27,7 @@
   // ContentRendererClient implementation.
   void RenderThreadStarted() override;
   void ExposeInterfacesToBrowser(mojo::BinderMap* binders) override;
-  void RenderViewCreated(RenderView* render_view) override;
+  void RenderFrameCreated(RenderFrame* render_frame) override;
   bool HasErrorPage(int http_status_code) override;
   void PrepareErrorPage(RenderFrame* render_frame,
                         const blink::WebURLError& error,
diff --git a/content/shell/renderer/shell_render_frame_observer.cc b/content/shell/renderer/shell_render_frame_observer.cc
new file mode 100644
index 0000000..ed6134a6
--- /dev/null
+++ b/content/shell/renderer/shell_render_frame_observer.cc
@@ -0,0 +1,32 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/shell/renderer/shell_render_frame_observer.h"
+
+#include "base/command_line.h"
+#include "content/public/renderer/render_frame.h"
+#include "content/public/renderer/render_frame_observer.h"
+#include "content/shell/common/shell_switches.h"
+#include "third_party/blink/public/web/web_testing_support.h"
+
+namespace content {
+
+ShellRenderFrameObserver::ShellRenderFrameObserver(RenderFrame* render_frame)
+    : RenderFrameObserver(render_frame) {}
+
+ShellRenderFrameObserver::~ShellRenderFrameObserver() = default;
+
+void ShellRenderFrameObserver::DidClearWindowObject() {
+  auto& cmd = *base::CommandLine::ForCurrentProcess();
+  if (cmd.HasSwitch(switches::kExposeInternalsForTesting)) {
+    blink::WebTestingSupport::InjectInternalsObject(
+        render_frame()->GetWebFrame());
+  }
+}
+
+void ShellRenderFrameObserver::OnDestruct() {
+  delete this;
+}
+
+}  // namespace content
diff --git a/content/shell/renderer/shell_render_frame_observer.h b/content/shell/renderer/shell_render_frame_observer.h
new file mode 100644
index 0000000..2f40722
--- /dev/null
+++ b/content/shell/renderer/shell_render_frame_observer.h
@@ -0,0 +1,28 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_SHELL_RENDERER_SHELL_RENDER_FRAME_OBSERVER_H_
+#define CONTENT_SHELL_RENDERER_SHELL_RENDER_FRAME_OBSERVER_H_
+
+#include "content/public/renderer/render_frame_observer.h"
+
+namespace content {
+
+class ShellRenderFrameObserver : public RenderFrameObserver {
+ public:
+  explicit ShellRenderFrameObserver(RenderFrame* frame);
+  ~ShellRenderFrameObserver() override;
+
+  ShellRenderFrameObserver(const ShellRenderFrameObserver&) = delete;
+  ShellRenderFrameObserver& operator=(const ShellRenderFrameObserver&) = delete;
+
+ private:
+  // RenderFrameObserver implementation.
+  void DidClearWindowObject() override;
+  void OnDestruct() override;
+};
+
+}  // namespace content
+
+#endif  // CONTENT_SHELL_RENDERER_SHELL_RENDER_FRAME_OBSERVER_H_
diff --git a/content/shell/renderer/shell_render_view_observer.cc b/content/shell/renderer/shell_render_view_observer.cc
deleted file mode 100644
index b35110b..0000000
--- a/content/shell/renderer/shell_render_view_observer.cc
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/shell/renderer/shell_render_view_observer.h"
-
-#include "base/command_line.h"
-#include "content/public/renderer/render_view.h"
-#include "content/public/renderer/render_view_observer.h"
-#include "content/shell/common/shell_switches.h"
-#include "third_party/blink/public/web/web_testing_support.h"
-#include "third_party/blink/public/web/web_view.h"
-
-namespace content {
-
-ShellRenderViewObserver::ShellRenderViewObserver(RenderView* render_view)
-    : RenderViewObserver(render_view) {
-}
-
-ShellRenderViewObserver::~ShellRenderViewObserver() {
-}
-
-void ShellRenderViewObserver::DidClearWindowObject(
-    blink::WebLocalFrame* frame) {
-  if (base::CommandLine::ForCurrentProcess()->HasSwitch(
-          switches::kExposeInternalsForTesting)) {
-    blink::WebTestingSupport::InjectInternalsObject(frame);
-  }
-}
-
-void ShellRenderViewObserver::OnDestruct() {
-  delete this;
-}
-
-}  // namespace content
diff --git a/content/shell/renderer/shell_render_view_observer.h b/content/shell/renderer/shell_render_view_observer.h
deleted file mode 100644
index 8d653da..0000000
--- a/content/shell/renderer/shell_render_view_observer.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_SHELL_RENDERER_SHELL_RENDER_VIEW_OBSERVER_H_
-#define CONTENT_SHELL_RENDERER_SHELL_RENDER_VIEW_OBSERVER_H_
-
-#include "base/macros.h"
-#include "content/public/renderer/render_view_observer.h"
-
-namespace blink {
-class WebLocalFrame;
-}
-
-namespace content {
-
-class RenderView;
-
-
-class ShellRenderViewObserver : public RenderViewObserver {
- public:
-  explicit ShellRenderViewObserver(RenderView* render_view);
-  ~ShellRenderViewObserver() override;
-
- private:
-  // RenderViewObserver implementation.
-  void DidClearWindowObject(blink::WebLocalFrame* frame) override;
-  void OnDestruct() override;
-
-  DISALLOW_COPY_AND_ASSIGN(ShellRenderViewObserver);
-};
-
-}  // namespace content
-
-#endif  // CONTENT_SHELL_RENDERER_SHELL_RENDER_VIEW_OBSERVER_H_
diff --git a/content/shell/renderer/web_test/blink_test_helpers.cc b/content/shell/renderer/web_test/blink_test_helpers.cc
index 288125c..0f45f7d 100644
--- a/content/shell/renderer/web_test/blink_test_helpers.cc
+++ b/content/shell/renderer/web_test/blink_test_helpers.cc
@@ -17,6 +17,9 @@
 #include "content/shell/common/web_test/web_test_switches.h"
 #include "content/shell/test_runner/test_preferences.h"
 #include "net/base/filename_util.h"
+#include "ui/display/display.h"
+#include "ui/gfx/color_space.h"
+#include "ui/gfx/test/icc_profiles.h"
 
 #if defined(OS_MACOSX)
 #include "base/mac/bundle_locations.h"
@@ -141,4 +144,19 @@
   return WebURL(GURL(new_url));
 }
 
+gfx::ColorSpace GetWebTestColorSpace(const std::string& name) {
+  if (name == "genericRGB") {
+    return gfx::ICCProfileForTestingGenericRGB().GetColorSpace();
+  } else if (name == "sRGB") {
+    return gfx::ColorSpace::CreateSRGB();
+  } else if (name == "test" || name == "colorSpin") {
+    return gfx::ICCProfileForTestingColorSpin().GetColorSpace();
+  } else if (name == "adobeRGB") {
+    return gfx::ICCProfileForTestingAdobeRGB().GetColorSpace();
+  } else if (name == "reset") {
+    return display::Display::GetForcedDisplayColorProfile();
+  }
+  return gfx::ColorSpace();
+}
+
 }  // namespace content
diff --git a/content/shell/renderer/web_test/blink_test_helpers.h b/content/shell/renderer/web_test/blink_test_helpers.h
index 18a0dd7..3464720 100644
--- a/content/shell/renderer/web_test/blink_test_helpers.h
+++ b/content/shell/renderer/web_test/blink_test_helpers.h
@@ -7,6 +7,12 @@
 
 #include "third_party/blink/public/platform/web_url.h"
 
+#include <string>
+
+namespace gfx {
+class ColorSpace;
+}
+
 namespace content {
 struct TestPreferences;
 struct WebPreferences;
@@ -22,6 +28,10 @@
 // path links in web-platform-tests.
 blink::WebURL RewriteWebTestsURL(const std::string& utf8_url, bool is_wpt_mode);
 
+// Get the color space for a given name string. This is not in the ColorSpace
+// class to avoid bloating the shipping build.
+gfx::ColorSpace GetWebTestColorSpace(const std::string& name);
+
 }  // namespace content
 
 #endif  // CONTENT_SHELL_RENDERER_WEB_TEST_BLINK_TEST_HELPERS_H_
diff --git a/content/shell/renderer/web_test/blink_test_runner.cc b/content/shell/renderer/web_test/blink_test_runner.cc
index af3db20..da74509 100644
--- a/content/shell/renderer/web_test/blink_test_runner.cc
+++ b/content/shell/renderer/web_test/blink_test_runner.cc
@@ -39,7 +39,6 @@
 #include "content/public/renderer/render_frame.h"
 #include "content/public/renderer/render_thread.h"
 #include "content/public/renderer/render_view.h"
-#include "content/public/renderer/render_view_visitor.h"
 #include "content/public/test/web_test_support_renderer.h"
 #include "content/shell/common/shell_switches.h"
 #include "content/shell/renderer/web_test/blink_test_helpers.h"
@@ -84,7 +83,6 @@
 #include "third_party/blink/public/web/web_local_frame.h"
 #include "third_party/blink/public/web/web_navigation_params.h"
 #include "third_party/blink/public/web/web_script_source.h"
-#include "third_party/blink/public/web/web_testing_support.h"
 #include "third_party/blink/public/web/web_view.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/icc_profile.h"
@@ -99,7 +97,6 @@
 using blink::WebScriptSource;
 using blink::WebSize;
 using blink::WebString;
-using blink::WebTestingSupport;
 using blink::WebURL;
 using blink::WebURLError;
 using blink::WebURLRequest;
@@ -110,20 +107,6 @@
 
 namespace {
 
-class UseSynchronousResizeModeVisitor : public RenderViewVisitor {
- public:
-  explicit UseSynchronousResizeModeVisitor(bool enable) : enable_(enable) {}
-  ~UseSynchronousResizeModeVisitor() override {}
-
-  bool Visit(RenderView* render_view) override {
-    UseSynchronousResizeMode(render_view, enable_);
-    return true;
-  }
-
- private:
-  bool enable_;
-};
-
 class MockVideoCapturerSource : public media::VideoCapturerSource {
  public:
   MockVideoCapturerSource() = default;
@@ -173,15 +156,6 @@
 
 // WebTestDelegate  -----------------------------------------------------------
 
-void BlinkTestRunner::ClearEditCommand() {
-  render_view()->ClearEditCommands();
-}
-
-void BlinkTestRunner::SetEditCommand(const std::string& name,
-                                     const std::string& value) {
-  render_view()->SetEditCommandForNextKeyEvent(name, value);
-}
-
 void BlinkTestRunner::PrintMessageToStderr(const std::string& message) {
   GetBlinkTestClientRemote()->PrintMessageToStderr(message);
 }
@@ -248,11 +222,6 @@
   GetBlinkTestClientRemote()->SetPopupBlockingEnabled(block_popups);
 }
 
-void BlinkTestRunner::UseUnfortunateSynchronousResizeMode(bool enable) {
-  UseSynchronousResizeModeVisitor visitor(enable);
-  RenderView::ForEach(&visitor);
-}
-
 void BlinkTestRunner::EnableAutoResizeMode(const WebSize& min_size,
                                            const WebSize& max_size) {
   content::EnableAutoResizeMode(render_view(), min_size, max_size);
@@ -327,7 +296,7 @@
 }
 
 void BlinkTestRunner::SetDeviceColorSpace(const std::string& name) {
-  content::SetDeviceColorSpace(render_view(), GetTestingColorSpace(name));
+  content::SetDeviceColorSpace(render_view(), GetWebTestColorSpace(name));
 }
 
 void BlinkTestRunner::SetBluetoothFakeAdapter(const std::string& adapter_name,
@@ -658,32 +627,8 @@
   GetBlinkTestClientRemote()->SetScreenOrientationChanged();
 }
 
-// RenderViewObserver  --------------------------------------------------------
-
-void BlinkTestRunner::DidClearWindowObject(WebLocalFrame* frame) {
-  WebTestingSupport::InjectInternalsObject(frame);
-}
-
 // Public methods - -----------------------------------------------------------
 
-void BlinkTestRunner::Reset(bool for_new_test) {
-  prefs_.Reset();
-  waiting_for_reset_ = false;
-
-  // TODO(danakj): Does any of this need to happen when for_new_test = false?
-  // If not, move to WebViewTestProxy::Reset() and WebFrameTestProxy::Reset().
-
-  render_view()->ClearEditCommands();
-
-  // Resetting the internals object also overrides the WebPreferences, so we
-  // have to sync them to WebKit again.
-  WebFrame* main_frame = render_view()->GetWebView()->MainFrame();
-  if (main_frame->IsWebLocalFrame()) {
-    WebTestingSupport::ResetInternalsObject(main_frame->ToWebLocalFrame());
-    render_view()->SetWebkitPreferences(render_view()->GetWebkitPreferences());
-  }
-}
-
 void BlinkTestRunner::CaptureDump(
     mojom::BlinkTestControl::CaptureDumpCallback callback) {
   // TODO(vmpstr): This is only called on the main frame. One suggestion is to
@@ -806,12 +751,11 @@
 
 void BlinkTestRunner::OnReset() {
   // BlinkTestMsg_Reset should always be sent to the *current* view.
-  DCHECK(render_view()->GetWebView()->MainFrame()->IsWebLocalFrame());
-  WebLocalFrame* main_frame =
-      render_view()->GetWebView()->MainFrame()->ToWebLocalFrame();
+  DCHECK(render_view()->GetMainRenderFrame());
 
+  prefs_.Reset();
   WebTestRenderThreadObserver::GetInstance()->test_interfaces()->ResetAll();
-  Reset(true /* for_new_test */);
+
   // Navigating to about:blank will make sure that no new loads are initiated
   // by the renderer.
   waiting_for_reset_ = true;
@@ -821,7 +765,7 @@
   request.SetRedirectMode(network::mojom::RedirectMode::kManual);
   request.SetRequestContext(blink::mojom::RequestContextType::INTERNAL);
   request.SetRequestorOrigin(blink::WebSecurityOrigin::CreateUniqueOpaque());
-  main_frame->StartNavigation(request);
+  render_view()->GetMainRenderFrame()->GetWebFrame()->StartNavigation(request);
 }
 
 void BlinkTestRunner::OnTestFinishedInSecondaryRenderer() {
diff --git a/content/shell/renderer/web_test/blink_test_runner.h b/content/shell/renderer/web_test/blink_test_runner.h
index 2d206a6..192c329 100644
--- a/content/shell/renderer/web_test/blink_test_runner.h
+++ b/content/shell/renderer/web_test/blink_test_runner.h
@@ -42,6 +42,9 @@
 // This is the renderer side of the webkit test runner.
 // TODO(lukasza): Rename to WebTestRenderViewObserver for consistency with
 // WebTestRenderFrameObserver.
+// TODO(danakj): Remove RenderViewObserver, but we use the fact it's a
+// RenderViewObserver to access a keyed global map of RenderViews to
+// BlinkTestRunners.
 class BlinkTestRunner : public RenderViewObserver,
                         public RenderViewObserverTracker<BlinkTestRunner>,
                         public WebTestDelegate {
@@ -49,13 +52,7 @@
   explicit BlinkTestRunner(RenderView* render_view);
   ~BlinkTestRunner() override;
 
-  // RenderViewObserver implementation.
-  void DidClearWindowObject(blink::WebLocalFrame* frame) override;
-
   // WebTestDelegate implementation.
-  void ClearEditCommand() override;
-  void SetEditCommand(const std::string& name,
-                      const std::string& value) override;
   void PrintMessageToStderr(const std::string& message) override;
   void PrintMessage(const std::string& message) override;
   void PostTask(base::OnceClosure task) override;
@@ -70,7 +67,6 @@
   TestPreferences* Preferences() override;
   void ApplyPreferences() override;
   void SetPopupBlockingEnabled(bool block_popups) override;
-  void UseUnfortunateSynchronousResizeMode(bool enable) override;
   void EnableAutoResizeMode(const blink::WebSize& min_size,
                             const blink::WebSize& max_size) override;
   void DisableAutoResizeMode(const blink::WebSize& new_size) override;
@@ -137,13 +133,6 @@
   void ForceTextInputStateUpdate(blink::WebLocalFrame* frame) override;
   void SetScreenOrientationChanged() override;
 
-  // Resets a RenderView to a known state for web tests. It is used both when
-  // a RenderView is created and when reusing an existing RenderView for the
-  // next test case.
-  // When reusing an existing RenderView, |for_new_test| should be true, which
-  // also resets additional state, like the main frame's name and opener.
-  void Reset(bool for_new_test);
-
   // Message handlers forwarded by WebTestRenderFrameObserver.
   void OnSetTestConfiguration(mojom::ShellTestConfigurationPtr params);
   void OnReplicateTestConfiguration(mojom::ShellTestConfigurationPtr params);
diff --git a/content/shell/renderer/web_test/web_test_content_renderer_client.cc b/content/shell/renderer/web_test/web_test_content_renderer_client.cc
index 7ea0008..3002582 100644
--- a/content/shell/renderer/web_test/web_test_content_renderer_client.cc
+++ b/content/shell/renderer/web_test/web_test_content_renderer_client.cc
@@ -20,7 +20,7 @@
 #include "content/public/test/web_test_support_renderer.h"
 #include "content/shell/common/shell_switches.h"
 #include "content/shell/common/web_test/web_test_switches.h"
-#include "content/shell/renderer/shell_render_view_observer.h"
+#include "content/shell/renderer/shell_render_frame_observer.h"
 #include "content/shell/renderer/web_test/blink_test_helpers.h"
 #include "content/shell/renderer/web_test/blink_test_runner.h"
 #include "content/shell/renderer/web_test/test_websocket_handshake_throttle_provider.h"
@@ -91,16 +91,11 @@
 
 void WebTestContentRendererClient::RenderFrameCreated(
     RenderFrame* render_frame) {
+  // Intentionally doesn't call the base class, as we only use web test
+  // observers.
   new WebTestRenderFrameObserver(render_frame);
 }
 
-void WebTestContentRendererClient::RenderViewCreated(RenderView* render_view) {
-  new ShellRenderViewObserver(render_view);
-
-  BlinkTestRunner* test_runner = BlinkTestRunner::Get(render_view);
-  test_runner->Reset(false /* for_new_test */);
-}
-
 std::unique_ptr<content::WebSocketHandshakeThrottleProvider>
 WebTestContentRendererClient::CreateWebSocketHandshakeThrottleProvider() {
   return std::make_unique<TestWebSocketHandshakeThrottleProvider>();
diff --git a/content/shell/renderer/web_test/web_test_content_renderer_client.h b/content/shell/renderer/web_test/web_test_content_renderer_client.h
index 05b307b..b154d10 100644
--- a/content/shell/renderer/web_test/web_test_content_renderer_client.h
+++ b/content/shell/renderer/web_test/web_test_content_renderer_client.h
@@ -21,7 +21,6 @@
   // ShellContentRendererClient implementation.
   void RenderThreadStarted() override;
   void RenderFrameCreated(RenderFrame* render_frame) override;
-  void RenderViewCreated(RenderView* render_view) override;
   std::unique_ptr<content::WebSocketHandshakeThrottleProvider>
   CreateWebSocketHandshakeThrottleProvider() override;
   void DidInitializeWorkerContextOnWorkerThread(
diff --git a/content/shell/test_runner/event_sender.cc b/content/shell/test_runner/event_sender.cc
index 521ccc4e..e943e51 100644
--- a/content/shell/test_runner/event_sender.cc
+++ b/content/shell/test_runner/event_sender.cc
@@ -1716,12 +1716,11 @@
 
   // In the browser, if a keyboard event corresponds to an editor command,
   // the command will be dispatched to the renderer just before dispatching
-  // the keyboard event, and then it will be executed in the
-  // RenderView::handleCurrentKeyboardEvent() method.
-  // We just simulate the same behavior here.
+  // the keyboard event, and stored in RenderWidget. We just simulate the same
+  // behavior here.
   std::string edit_command;
   if (GetEditCommand(event_down, &edit_command))
-    delegate()->SetEditCommand(edit_command, "");
+    web_widget_test_proxy_->SetEditCommandForNextKeyEvent(edit_command, "");
 
   HandleInputEventOnViewOrPopup(event_down);
 
@@ -1736,7 +1735,7 @@
     FinishDragAndDrop(event, blink::kWebDragOperationNone);
   }
 
-  delegate()->ClearEditCommand();
+  web_widget_test_proxy_->ClearEditCommands();
 
   if (generate_char) {
     WebKeyboardEvent event_char = event_up;
diff --git a/content/shell/test_runner/test_interfaces.h b/content/shell/test_runner/test_interfaces.h
index d674b770b..d8e406d 100644
--- a/content/shell/test_runner/test_interfaces.h
+++ b/content/shell/test_runner/test_interfaces.h
@@ -43,6 +43,12 @@
 
   TestRunner* GetTestRunner();
   WebTestDelegate* GetDelegate();
+  // TODO(danakj): This is a list of all RenderViews not of all windows. There
+  // will be a RenderView for each frame tree fragment in the process, not just
+  // one per window. We should only return the RenderViews with a local main
+  // frame.
+  // TODO(danakj): Some clients want a list of the main frames (maybe most/all?)
+  // so can we add a GetMainFrameList() or something?
   const std::vector<WebViewTestProxy*>& GetWindowList();
 
  private:
diff --git a/content/shell/test_runner/test_runner.cc b/content/shell/test_runner/test_runner.cc
index ff84d5f..c9b2df3 100644
--- a/content/shell/test_runner/test_runner.cc
+++ b/content/shell/test_runner/test_runner.cc
@@ -31,8 +31,10 @@
 #include "content/shell/test_runner/test_interfaces.h"
 #include "content/shell/test_runner/test_preferences.h"
 #include "content/shell/test_runner/test_runner_for_specific_view.h"
+#include "content/shell/test_runner/web_frame_test_proxy.h"
 #include "content/shell/test_runner/web_test_delegate.h"
 #include "content/shell/test_runner/web_view_test_proxy.h"
+#include "content/shell/test_runner/web_widget_test_proxy.h"
 #include "gin/arguments.h"
 #include "gin/array_buffer.h"
 #include "gin/handle.h"
@@ -1551,7 +1553,6 @@
     delegate_->SetDeviceScaleFactor(GetDefaultDeviceScaleFactor());
     delegate_->SetBlockThirdPartyCookies(false);
     delegate_->SetLocale("");
-    delegate_->UseUnfortunateSynchronousResizeMode(false);
     delegate_->ResetAutoResizeMode();
     delegate_->DeleteAllCookies();
     delegate_->SetBluetoothManualChooser(false);
@@ -2128,7 +2129,22 @@
 }
 
 void TestRunner::UseUnfortunateSynchronousResizeMode() {
-  delegate_->UseUnfortunateSynchronousResizeMode(true);
+  // Sets the resize mode on the main frame of each open window.
+  for (WebViewTestProxy* window : test_interfaces_->GetWindowList()) {
+    blink::WebFrame* main_frame = window->GetWebView()->MainFrame();
+    if (main_frame->IsWebLocalFrame()) {
+      // Lots of pointers to get to the local main frame's WebWidgetTestProxy.
+      // The local frame has a paired RenderFrame, which will be a
+      // WebFrameTestProxy in web tests. Each local root frame (including the
+      // main frame) has a RenderWidget, which is the WebWidgetTestProxy in
+      // web tests.
+      blink::WebLocalFrame* local_frame = main_frame->ToWebLocalFrame();
+      RenderFrame* render_frame = RenderFrame::FromWebFrame(local_frame);
+      auto* frame_proxy = static_cast<WebFrameTestProxy*>(render_frame);
+      auto* widget_proxy = frame_proxy->GetLocalRootWebWidgetTestProxy();
+      widget_proxy->UseSynchronousResizeModeForTesting(true);
+    }
+  }
 }
 
 void TestRunner::EnableAutoResizeMode(int min_width,
diff --git a/content/shell/test_runner/web_frame_test_proxy.cc b/content/shell/test_runner/web_frame_test_proxy.cc
index cf014f0..4c0e7376 100644
--- a/content/shell/test_runner/web_frame_test_proxy.cc
+++ b/content/shell/test_runner/web_frame_test_proxy.cc
@@ -12,6 +12,7 @@
 #include "content/shell/test_runner/web_test_delegate.h"
 #include "content/shell/test_runner/web_view_test_proxy.h"
 #include "third_party/blink/public/web/web_local_frame.h"
+#include "third_party/blink/public/web/web_testing_support.h"
 
 namespace content {
 
@@ -136,6 +137,11 @@
   if (IsMainFrame()) {
     GetWebFrame()->SetName(blink::WebString());
     GetWebFrame()->ClearOpener();
+
+    blink::WebTestingSupport::ResetInternalsObject(GetWebFrame());
+    // Resetting the internals object also overrides the WebPreferences, so we
+    // have to sync them to WebKit again.
+    render_view()->SetWebkitPreferences(render_view()->GetWebkitPreferences());
   }
   if (IsLocalRoot()) {
     GetLocalRootWebWidgetTestProxy()->Reset();
@@ -260,6 +266,8 @@
 
 void WebFrameTestProxy::DidClearWindowObject() {
   test_client_->DidClearWindowObject();
+  blink::WebTestingSupport::InjectInternalsObject(GetWebFrame());
+
   RenderFrameImpl::DidClearWindowObject();
 }
 
diff --git a/content/shell/test_runner/web_test_delegate.h b/content/shell/test_runner/web_test_delegate.h
index dd3d1b6..b99ad69 100644
--- a/content/shell/test_runner/web_test_delegate.h
+++ b/content/shell/test_runner/web_test_delegate.h
@@ -44,12 +44,6 @@
  public:
   virtual ~WebTestDelegate() = default;
 
-  // Set and clear the edit command to execute on the next call to
-  // WebViewClient::handleCurrentKeyboardEvent().
-  virtual void ClearEditCommand() = 0;
-  virtual void SetEditCommand(const std::string& name,
-                              const std::string& value) = 0;
-
   // Add a message to stderr (not saved to expected output files, for debugging
   // only).
   virtual void PrintMessageToStderr(const std::string& message) = 0;
@@ -84,18 +78,6 @@
   virtual void ApplyPreferences() = 0;
   virtual void SetPopupBlockingEnabled(bool block_popups) = 0;
 
-  // Enables or disables synchronous resize mode. When enabled, all
-  // window-sizing machinery is
-  // short-circuited inside the renderer. This mode is necessary for some tests
-  // that were written
-  // before browsers had multi-process architecture and rely on window resizes
-  // to happen synchronously.
-  // The function has "unfortunate" it its name because we must strive to remove
-  // all tests
-  // that rely on this... well, unfortunate behavior. See
-  // http://crbug.com/309760 for the plan.
-  virtual void UseUnfortunateSynchronousResizeMode(bool enable) = 0;
-
   // Controls auto resize mode.
   virtual void EnableAutoResizeMode(const blink::WebSize& min_size,
                                     const blink::WebSize& max_size) = 0;
diff --git a/content/shell/test_runner/web_widget_test_proxy.cc b/content/shell/test_runner/web_widget_test_proxy.cc
index a0d970eb..ae702188 100644
--- a/content/shell/test_runner/web_widget_test_proxy.cc
+++ b/content/shell/test_runner/web_widget_test_proxy.cc
@@ -160,6 +160,8 @@
 
 void WebWidgetTestProxy::Reset() {
   event_sender_.Reset();
+  ClearEditCommands();
+  UseSynchronousResizeModeForTesting(false);
 }
 
 void WebWidgetTestProxy::BindTo(blink::WebLocalFrame* frame) {
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index e9f692c..fa325550 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -785,7 +785,6 @@
     "//content/public/renderer",
     "//content/renderer:for_content_tests",
     "//ui/events/blink",
-    "//ui/gfx:test_support",
     "//ui/gfx/geometry",
 
     # This is required to ensure
diff --git a/content/test/data/accessibility/html/portal-with-widget-inside-expected-blink.txt b/content/test/data/accessibility/html/portal-with-widget-inside-expected-blink.txt
new file mode 100644
index 0000000..c9a8f741
--- /dev/null
+++ b/content/test/data/accessibility/html/portal-with-widget-inside-expected-blink.txt
@@ -0,0 +1,15 @@
+rootWebArea focusable
+++genericContainer ignored
+++++genericContainer ignored
+++++++paragraph
+++++++++staticText name='Before portal'
+++++++++++inlineTextBox name='Before portal'
+++++++portal focusable name='portal'
+++++++++rootWebArea name='Ordinary Button'
+++++++++++genericContainer ignored
+++++++++++++genericContainer ignored
+++++++++++++++genericContainer ignored
+++++++++++++++++button ignored name='Ordinary Button'
+++++++paragraph
+++++++++staticText name='After portal'
+++++++++++inlineTextBox name='After portal'
diff --git a/content/test/data/accessibility/html/portal-with-widget-inside.html b/content/test/data/accessibility/html/portal-with-widget-inside.html
new file mode 100644
index 0000000..690aa86
--- /dev/null
+++ b/content/test/data/accessibility/html/portal-with-widget-inside.html
@@ -0,0 +1,11 @@
+<!--
+@BLINK-ALLOW:focusable
+-->
+<!DOCTYPE html>
+<html>
+<body>
+  <p>Before portal</p>
+  <portal aria-label="portal" src="frame/button.html"></portal>
+  <p>After portal</p>
+</body>
+</html>
diff --git a/content/test/data/android/input/input_mode.html b/content/test/data/android/input/input_mode.html
index deb0a61..c6b5e6f 100644
--- a/content/test/data/android/input/input_mode.html
+++ b/content/test/data/android/input/input_mode.html
@@ -19,6 +19,8 @@
     <div id="contenteditable_numeric" contenteditable inputMode="numeric"></div>
     <div id="contenteditable_decimal" contenteditable inputMode="decimal"></div>
     <div id="contenteditable_search" contenteditable inputMode="search"></div>
+
+    <input type="password" inputMode="numeric" id="input_numeric_password" />
   </body>
 
     <script>
diff --git a/content/test/data/scrollable_page_with_content.html b/content/test/data/scrollable_page_with_content.html
index 7d783cd..c37d095 100644
--- a/content/test/data/scrollable_page_with_content.html
+++ b/content/test/data/scrollable_page_with_content.html
@@ -10,6 +10,6 @@
     </style>
   </head>
   <body>
-    <p>Some text</p>
+    <p id="text">Some text</p>
   </body>
 </html>
diff --git a/content/test/gpu/run_gpu_integration_test_fuchsia.py b/content/test/gpu/run_gpu_integration_test_fuchsia.py
index 432c2701..a8b64ff7 100755
--- a/content/test/gpu/run_gpu_integration_test_fuchsia.py
+++ b/content/test/gpu/run_gpu_integration_test_fuchsia.py
@@ -42,13 +42,15 @@
     web_engine_dir = os.path.join(args.output_directory, 'gen',
         'fuchsia', 'engine')
 
-    # Install necessary packages on the device.
-    target.InstallPackage([
-        os.path.join(web_engine_dir, 'web_engine', 'web_engine.far'),
-        os.path.join(web_engine_dir, 'web_engine_shell',
-            'web_engine_shell.far')
-    ])
-    return subprocess.call(gpu_script)
+    # Keep the Amber repository live while the test runs.
+    with target.GetAmberRepo():
+      # Install necessary packages on the device.
+      target.InstallPackage([
+          os.path.join(web_engine_dir, 'web_engine', 'web_engine.far'),
+          os.path.join(web_engine_dir, 'web_engine_shell',
+                       'web_engine_shell.far')
+      ])
+      return subprocess.call(gpu_script)
 
 if __name__ == '__main__':
   sys.exit(main())
diff --git a/content/test/mock_widget_input_handler.cc b/content/test/mock_widget_input_handler.cc
index 738b2a7..ae06bb9 100644
--- a/content/test/mock_widget_input_handler.cc
+++ b/content/test/mock_widget_input_handler.cc
@@ -57,11 +57,6 @@
       std::make_unique<DispatchedMessage>("CursorVisibilityChanged"));
 }
 
-void MockWidgetInputHandler::FallbackCursorModeToggled(bool is_on) {
-  dispatched_messages_.emplace_back(
-      std::make_unique<DispatchedMessage>("FallbackCursorModeToggled"));
-}
-
 void MockWidgetInputHandler::ImeSetComposition(
     const base::string16& text,
     const std::vector<ui::ImeTextSpan>& ime_text_spans,
diff --git a/content/test/mock_widget_input_handler.h b/content/test/mock_widget_input_handler.h
index 415d051..4ab65c7 100644
--- a/content/test/mock_widget_input_handler.h
+++ b/content/test/mock_widget_input_handler.h
@@ -200,7 +200,6 @@
   void SetEditCommandsForNextKeyEvent(
       const std::vector<content::EditCommand>& commands) override;
   void CursorVisibilityChanged(bool visible) override;
-  void FallbackCursorModeToggled(bool is_on) override;
   void ImeSetComposition(const base::string16& text,
                          const std::vector<ui::ImeTextSpan>& ime_text_spans,
                          const gfx::Range& range,
diff --git a/content/test/web_test_support_renderer.cc b/content/test/web_test_support_renderer.cc
index 80040b6..694c6193 100644
--- a/content/test/web_test_support_renderer.cc
+++ b/content/test/web_test_support_renderer.cc
@@ -35,7 +35,6 @@
 #include "ui/events/blink/blink_event_util.h"
 #include "ui/gfx/geometry/vector2d.h"
 #include "ui/gfx/icc_profile.h"
-#include "ui/gfx/test/icc_profiles.h"
 
 namespace content {
 
@@ -172,21 +171,6 @@
   return ui::TranslateAndScaleWebInputEvent(event, delta, scale);
 }
 
-gfx::ColorSpace GetTestingColorSpace(const std::string& name) {
-  if (name == "genericRGB") {
-    return gfx::ICCProfileForTestingGenericRGB().GetColorSpace();
-  } else if (name == "sRGB") {
-    return gfx::ColorSpace::CreateSRGB();
-  } else if (name == "test" || name == "colorSpin") {
-    return gfx::ICCProfileForTestingColorSpin().GetColorSpace();
-  } else if (name == "adobeRGB") {
-    return gfx::ICCProfileForTestingAdobeRGB().GetColorSpace();
-  } else if (name == "reset") {
-    return display::Display::GetForcedDisplayColorProfile();
-  }
-  return gfx::ColorSpace();
-}
-
 void SetDeviceColorSpace(RenderView* render_view,
                          const gfx::ColorSpace& color_space) {
   RenderViewImpl* render_view_impl = static_cast<RenderViewImpl*>(render_view);
@@ -197,15 +181,6 @@
   render_widget->SetDeviceColorSpaceForTesting(color_space);
 }
 
-void UseSynchronousResizeMode(RenderView* render_view, bool enable) {
-  RenderViewImpl* render_view_impl = static_cast<RenderViewImpl*>(render_view);
-  RenderFrameImpl* main_frame = render_view_impl->GetMainRenderFrame();
-  if (!main_frame)
-    return;
-  RenderWidget* render_widget = main_frame->GetLocalRootRenderWidget();
-  render_widget->UseSynchronousResizeModeForTesting(enable);
-}
-
 void EnableAutoResizeMode(RenderView* render_view,
                           const blink::WebSize& min_size,
                           const blink::WebSize& max_size) {
diff --git a/device/vr/public/mojom/vr_service.mojom b/device/vr/public/mojom/vr_service.mojom
index c02550e..b39d9091 100644
--- a/device/vr/public/mojom/vr_service.mojom
+++ b/device/vr/public/mojom/vr_service.mojom
@@ -18,7 +18,7 @@
 //
 
 // Note on terminology: unless otherwise noted, all poses passed across mojo are
-// expressed in device space, aka mojo space.
+// expressed in device space, aka mojo space, aka world space.
 
 // TODO(https://crbug.com/966099): Use EnableIf to only define values on
 // platforms that have implementations.
@@ -376,7 +376,9 @@
   // Pose of the plane's center. Defines new coordinate space.
   // Y axis of the coordinate space describes plane's normal, the rotation of
   // X and Z around the Y axis is arbitrary.
-  Pose pose;
+  // Null if the device does not know where the plane is located in the world
+  // space (tracking loss), but the tracking can still be recovered.
+  Pose? mojo_from_plane;
 
   // Vertices of 2D convex polygon approximating the plane.
   array<XRPlanePointData> polygon;
@@ -405,8 +407,10 @@
   // Unique (within a session) identifier of the anchor.
   uint64 id;
 
-  // Pose of the anchor.
-  Pose pose;
+  // Pose of the anchor. Null if the device does not know where the anchor is
+  // located in the world space (tracking loss), but the tracking can still be
+  // recovered.
+  Pose? mojo_from_anchor;
 };
 
 // Struct containing information about all tracked & updated anchors in a given
diff --git a/extensions/browser/OWNERS b/extensions/browser/OWNERS
index 881388a..4d854f8 100644
--- a/extensions/browser/OWNERS
+++ b/extensions/browser/OWNERS
@@ -9,7 +9,8 @@
 per-file extension_function_histogram_value.h=file://extensions/common/api/API_OWNERS
 
 # DeviceLocalAccount reviewers.
-per-file device_local_account_util*=isandrk@chromium.org
+per-file device_local_account_util*=anqing@chromium.org
+per-file device_local_account_util*=apotapchuk@chromium.org
 
 # For security review.
 per-file extensions_browser_interface_binders.*=set noparent
diff --git a/extensions/browser/device_local_account_util.cc b/extensions/browser/device_local_account_util.cc
index 6a71df0..2a0207b 100644
--- a/extensions/browser/device_local_account_util.cc
+++ b/extensions/browser/device_local_account_util.cc
@@ -14,6 +14,7 @@
 const char* const kPublicSessionWhitelist[] = {
     // Public sessions in general:
     "cbkkbcmdlboombapidmoeolnmdacpkch",  // Chrome RDP
+    "inomeogfingihgjfjlpeplalcfajhgai",  // Chrome Remote Desktop
     "djflhoibgkdhkhhcedjiklpkjnoahfmg",  // User Agent Switcher
     "iabmpiboiopbgfabjmgeedhcmjenhbla",  // VNC Viewer
     "haiffjcadagjlijoggckpgfnoeiflnem",  // Citrix Receiver
diff --git a/fuchsia/base/context_provider_test_connector.cc b/fuchsia/base/context_provider_test_connector.cc
index a438b1de..28d6d2ee 100644
--- a/fuchsia/base/context_provider_test_connector.cc
+++ b/fuchsia/base/context_provider_test_connector.cc
@@ -20,7 +20,7 @@
 
 namespace cr_fuchsia {
 
-fuchsia::web::ContextProviderPtr ConnectContextProvider(
+fidl::InterfaceHandle<fuchsia::io::Directory> StartWebEngineForTests(
     fidl::InterfaceRequest<fuchsia::sys::ComponentController>
         component_controller_request,
     const base::CommandLine& command_line) {
@@ -49,12 +49,16 @@
   launcher->CreateComponent(std::move(launch_info),
                             std::move(component_controller_request));
 
-  sys::ServiceDirectory web_engine_service_dir(
-      std::move(web_engine_services_dir));
+  return web_engine_services_dir;
+}
 
-  fuchsia::web::ContextProviderPtr context_provider;
-  web_engine_service_dir.Connect(context_provider.NewRequest());
-  return context_provider;
+fuchsia::web::ContextProviderPtr ConnectContextProvider(
+    fidl::InterfaceRequest<fuchsia::sys::ComponentController>
+        component_controller_request,
+    const base::CommandLine& command_line) {
+  sys::ServiceDirectory web_engine_service_dir(StartWebEngineForTests(
+      std::move(component_controller_request), command_line));
+  return web_engine_service_dir.Connect<fuchsia::web::ContextProvider>();
 }
 
 }  // namespace cr_fuchsia
diff --git a/fuchsia/base/context_provider_test_connector.h b/fuchsia/base/context_provider_test_connector.h
index 632c6f9..0d5ca1fd 100644
--- a/fuchsia/base/context_provider_test_connector.h
+++ b/fuchsia/base/context_provider_test_connector.h
@@ -8,11 +8,18 @@
 #include <fuchsia/sys/cpp/fidl.h>
 #include <fuchsia/web/cpp/fidl.h>
 #include <lib/fidl/cpp/interface_request.h>
+#include <lib/sys/cpp/service_directory.h>
 
 #include "base/command_line.h"
 
 namespace cr_fuchsia {
 
+fidl::InterfaceHandle<fuchsia::io::Directory> StartWebEngineForTests(
+    fidl::InterfaceRequest<fuchsia::sys::ComponentController>
+        component_controller_request,
+    const base::CommandLine& command_line =
+        base::CommandLine(base::CommandLine::NO_PROGRAM));
+
 // TODO(crbug.com/1046615): Use test manifests for package specification.
 fuchsia::web::ContextProviderPtr ConnectContextProvider(
     fidl::InterfaceRequest<fuchsia::sys::ComponentController>
diff --git a/fuchsia/runners/cast/cast_component.cc b/fuchsia/runners/cast/cast_component.cc
index 95fa1a2..69b5c49 100644
--- a/fuchsia/runners/cast/cast_component.cc
+++ b/fuchsia/runners/cast/cast_component.cc
@@ -156,7 +156,4 @@
   DCHECK(runner()->is_headless());
 
   frame()->DisableHeadlessRendering();
-
-  if (on_headless_disconnect_cb_)
-    std::move(on_headless_disconnect_cb_).Run();
 }
diff --git a/fuchsia/runners/cast/cast_component.h b/fuchsia/runners/cast/cast_component.h
index 071970b..d6494b6 100644
--- a/fuchsia/runners/cast/cast_component.h
+++ b/fuchsia/runners/cast/cast_component.h
@@ -11,7 +11,6 @@
 #include <vector>
 
 #include "base/fuchsia/startup_context.h"
-#include "base/gtest_prod_util.h"
 #include "base/message_loop/message_pump_for_io.h"
 #include "base/message_loop/message_pump_fuchsia.h"
 #include "base/optional.h"
@@ -58,13 +57,6 @@
   // WebComponent overrides.
   void StartComponent() final;
 
-  // Sets a callback that will be invoked when the handle controlling the
-  // lifetime of a headless "view" is dropped.
-  void set_on_headless_disconnect_for_test(
-      base::OnceClosure on_headless_disconnect_cb) {
-    on_headless_disconnect_cb_ = std::move(on_headless_disconnect_cb);
-  }
-
   const chromium::cast::ApplicationConfig& application_config() {
     return application_config_;
   }
@@ -74,8 +66,6 @@
   CastRunner* runner() const;
 
  private:
-  FRIEND_TEST_ALL_PREFIXES(HeadlessCastRunnerIntegrationTest, Headless);
-
   void OnRewriteRulesReceived(
       std::vector<fuchsia::web::UrlRequestRewriteRule> rewrite_rules);
 
@@ -113,8 +103,6 @@
   zx::eventpair headless_view_token_;
   base::MessagePumpForIO::ZxHandleWatchController headless_disconnect_watch_;
 
-  base::OnceClosure on_headless_disconnect_cb_;
-
   fidl::Binding<fuchsia::web::NavigationEventListener>
       navigation_listener_binding_;
 
diff --git a/fuchsia/runners/cast/cast_runner.cc b/fuchsia/runners/cast/cast_runner.cc
index baa6cd1b..4c4a274e 100644
--- a/fuchsia/runners/cast/cast_runner.cc
+++ b/fuchsia/runners/cast/cast_runner.cc
@@ -117,24 +117,13 @@
 
 CastRunner::CastRunner(
     WebContentRunner::GetContextParamsCallback get_context_params_callback,
-    bool is_headless,
-    sys::OutgoingDirectory* outgoing_directory)
+    bool is_headless)
     : WebContentRunner(base::BindRepeating(&CastRunner::GetMainContextParams,
-                                           base::Unretained(this)),
-                       outgoing_directory),
+                                           base::Unretained(this))),
       get_context_params_callback_(std::move(get_context_params_callback)),
       is_headless_(is_headless),
-      common_create_context_params_(BuildCreateContextParamsForIsolatedRunners(
-          get_context_params_callback_.Run())),
       service_directory_(CreateServiceDirectory()) {}
 
-CastRunner::CastRunner(OnDestructionCallback on_destruction_callback,
-                       fuchsia::web::ContextPtr context,
-                       bool is_headless)
-    : WebContentRunner(std::move(context)),
-      is_headless_(is_headless),
-      on_destruction_callback_(std::move(on_destruction_callback)) {}
-
 CastRunner::~CastRunner() = default;
 
 void CastRunner::StartComponent(
@@ -212,10 +201,6 @@
   pending_components_.emplace(std::move(pending_component_params));
 }
 
-size_t CastRunner::GetChildCastRunnerCountForTest() {
-  return isolated_runners_.size();
-}
-
 void CastRunner::DestroyComponent(WebComponent* component) {
   WebContentRunner::DestroyComponent(component);
 
@@ -370,16 +355,12 @@
 
 CastRunner* CastRunner::CreateChildRunnerForIsolatedComponent(
     CastComponent::CastComponentParams* component_params) {
-  // Construct the CreateContextParams in order to create a new Context.
-  // Some common parameters must be inherited from
-  // |common_create_context_params_|.
-  fuchsia::web::CreateContextParams isolated_context_params;
-  zx_status_t status =
-      common_create_context_params_.Clone(&isolated_context_params);
-  if (status != ZX_OK) {
-    ZX_LOG(ERROR, status) << "clone";
-    return nullptr;
-  }
+  // Construct the CreateContextParams in order to create a new Context.  Some
+  // common parameters must be inherited from default params returned from
+  // |get_context_params_callback_|.
+  fuchsia::web::CreateContextParams isolated_context_params =
+      BuildCreateContextParamsForIsolatedRunners(
+          get_context_params_callback_.Run());
 
   // Service redirection is not necessary for isolated context. Pass default
   // /svc as is, without overriding any services.
@@ -391,17 +372,16 @@
       std::move(*component_params->app_config
                      .mutable_content_directories_for_isolated_application()));
 
-  std::unique_ptr<CastRunner> cast_runner(new CastRunner(
-      base::BindOnce(&CastRunner::OnChildRunnerDestroyed,
-                     base::Unretained(this)),
-      CreateWebContext(std::move(isolated_context_params)), is_headless()));
+  auto create_context_params_callback = base::BindRepeating(
+      [](fuchsia::web::CreateContextParams isolated_context_params) {
+        return isolated_context_params;
+      },
+      base::Passed(std::move(isolated_context_params)));
 
-  // If test code is listening for Component creation events, then wire up the
-  // isolated CastRunner to signal component creation events.
-  if (web_component_created_callback_for_test()) {
-    cast_runner->SetWebComponentCreatedCallbackForTest(
-        web_component_created_callback_for_test());
-  }
+  auto cast_runner = std::make_unique<CastRunner>(
+      std::move(create_context_params_callback), is_headless());
+  cast_runner->on_destruction_callback_ = base::BindOnce(
+      &CastRunner::OnChildRunnerDestroyed, base::Unretained(this));
 
   CastRunner* cast_runner_ptr = cast_runner.get();
   isolated_runners_.insert(std::move(cast_runner));
diff --git a/fuchsia/runners/cast/cast_runner.h b/fuchsia/runners/cast/cast_runner.h
index 34e244c9..e9e5637 100644
--- a/fuchsia/runners/cast/cast_runner.h
+++ b/fuchsia/runners/cast/cast_runner.h
@@ -29,16 +29,17 @@
 // sys::Runner which instantiates Cast activities specified via cast/casts URIs.
 class CastRunner : public WebContentRunner {
  public:
+  using OnDestructionCallback = base::OnceCallback<void(CastRunner*)>;
+
+  static constexpr uint16_t kRemoteDebuggingPort = 9222;
+
   // Creates a Runner for Cast components and publishes it into the specified
   // OutgoingDirectory.
   // |get_context_params_callback|: Returns the context parameters to use.
   // |is_headless|: True if |get_context_params_callback| sets the HEADLESS
   //     feature flag.
-  // |outgoing_directory|: The directory that this CastRunner will publish
-  //     itself to.
   CastRunner(GetContextParamsCallback get_context_params_callback,
-             bool is_headless,
-             sys::OutgoingDirectory* outgoing_directory);
+             bool is_headless);
   ~CastRunner() override;
 
   CastRunner(const CastRunner&) = delete;
@@ -59,20 +60,7 @@
   // Returns true if this Runner is configured not to use Scenic.
   bool is_headless() const { return is_headless_; }
 
-  // Returns the number of active CastRunner instances.
-  size_t GetChildCastRunnerCountForTest();
-
  private:
-  using OnDestructionCallback = base::OnceCallback<void(CastRunner*)>;
-
-  // Constructor used for creating CastRunners that run apps in dedicated
-  // Contexts. Child CastRunners may only spawn one Component and will be
-  // destroyed by their parents when their singleton Components are destroyed.
-  // |on_destruction_callback| is invoked when the child component is destroyed.
-  CastRunner(OnDestructionCallback on_destruction_callback,
-             fuchsia::web::ContextPtr context,
-             bool is_headless);
-
   // Creates and returns the service directory that is passed to the main web
   // context.
   std::unique_ptr<base::fuchsia::FilteredServiceDirectory>
@@ -116,9 +104,6 @@
                  base::UniquePtrComparator>
       pending_components_;
 
-  // Used as a template for creating the ContextPtrs of isolated Runners.
-  fuchsia::web::CreateContextParams common_create_context_params_;
-
   // Invoked upon destruction of "isolated" runners, used to signal termination
   // to parents.
   OnDestructionCallback on_destruction_callback_;
diff --git a/fuchsia/runners/cast/cast_runner_integration_test.cc b/fuchsia/runners/cast/cast_runner_integration_test.cc
index 69b1dda..c6bb614 100644
--- a/fuchsia/runners/cast/cast_runner_integration_test.cc
+++ b/fuchsia/runners/cast/cast_runner_integration_test.cc
@@ -8,13 +8,17 @@
 #include <lib/sys/cpp/component_context.h>
 #include <lib/ui/scenic/cpp/view_token_pair.h>
 #include <lib/zx/channel.h>
+#include <zircon/processargs.h>
 
 #include "base/base_paths_fuchsia.h"
 #include "base/callback_helpers.h"
 #include "base/fuchsia/file_utils.h"
+#include "base/fuchsia/filtered_service_directory.h"
 #include "base/fuchsia/fuchsia_logging.h"
 #include "base/fuchsia/scoped_service_binding.h"
+#include "base/fuchsia/test_component_context_for_process.h"
 #include "base/path_service.h"
+#include "base/strings/strcat.h"
 #include "base/strings/stringprintf.h"
 #include "base/test/bind_test_util.h"
 #include "base/test/task_environment.h"
@@ -26,6 +30,7 @@
 #include "fuchsia/base/frame_test_util.h"
 #include "fuchsia/base/fuchsia_dir_scheme.h"
 #include "fuchsia/base/mem_buffer_util.h"
+#include "fuchsia/base/release_channel.h"
 #include "fuchsia/base/result_receiver.h"
 #include "fuchsia/base/string_util.h"
 #include "fuchsia/base/test_devtools_list_fetcher.h"
@@ -34,11 +39,8 @@
 #include "fuchsia/runners/cast/cast_runner.h"
 #include "fuchsia/runners/cast/fake_application_config_manager.h"
 #include "fuchsia/runners/cast/test_api_bindings.h"
-#include "fuchsia/runners/common/web_component.h"
-#include "fuchsia/runners/common/web_content_runner.h"
 #include "net/test/embedded_test_server/default_handlers.h"
 #include "net/test/embedded_test_server/http_request.h"
-#include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace {
@@ -47,7 +49,6 @@
 
 constexpr char kBlankAppUrl[] = "/defaultresponse";
 constexpr char kEchoHeaderPath[] = "/echoheader?Test";
-constexpr char kEchoAppPath[] = "/echo.html";
 
 constexpr char kTestServerRoot[] =
     FILE_PATH_LITERAL("fuchsia/runners/cast/testdata");
@@ -55,10 +56,6 @@
 constexpr char kDummyAgentUrl[] =
     "fuchsia-pkg://fuchsia.com/dummy_agent#meta/dummy_agent.cmx";
 
-void ComponentErrorHandler(zx_status_t status) {
-  ZX_LOG(ERROR, status) << "Component launch failed";
-  ADD_FAILURE();
-}
 
 // Helper used to ensure that cr_fuchsia::RegisterFuchsiaDirScheme() is called
 // once per process to register fuchsia-dir scheme. In cast_runner this function
@@ -94,7 +91,8 @@
     rules_sent_ = true;
 
     std::vector<fuchsia::web::UrlRequestRewrite> rewrites;
-    rewrites.push_back(cr_fuchsia::CreateRewriteAddHeaders("Test", "Value"));
+    rewrites.push_back(
+        cr_fuchsia::CreateRewriteAddHeaders("Test", "TestHeaderValue"));
     fuchsia::web::UrlRequestRewriteRule rule;
     rule.set_rewrites(std::move(rewrites));
     std::vector<fuchsia::web::UrlRequestRewriteRule> rules;
@@ -197,31 +195,37 @@
       context_binding_;
   base::OnceClosure on_delete_;
 };
-
 }  // namespace
 
 class CastRunnerIntegrationTest : public testing::Test {
  public:
-  CastRunnerIntegrationTest()
-      : CastRunnerIntegrationTest(fuchsia::web::ContextFeatureFlags::NETWORK) {}
+  CastRunnerIntegrationTest() : CastRunnerIntegrationTest(/*headless=*/false) {}
   CastRunnerIntegrationTest(const CastRunnerIntegrationTest&) = delete;
   CastRunnerIntegrationTest& operator=(const CastRunnerIntegrationTest&) =
       delete;
 
   void TearDown() override {
+    if (component_controller_)
+      ShutdownComponent();
+
     // Disconnect the CastRunner & let things tear-down.
     cast_runner_ptr_.Unbind();
     base::RunLoop().RunUntilIdle();
   }
 
  protected:
-  explicit CastRunnerIntegrationTest(
-      fuchsia::web::ContextFeatureFlags feature_flags)
+  explicit CastRunnerIntegrationTest(bool headless)
       : app_config_manager_binding_(&component_services_,
                                     &app_config_manager_) {
     EnsureFuchsiaDirSchemeInitialized();
 
     // Create the CastRunner, published into |outgoing_directory_|.
+    fuchsia::web::ContextFeatureFlags feature_flags =
+        fuchsia::web::ContextFeatureFlags::NETWORK;
+    if (headless) {
+      feature_flags =
+          feature_flags | fuchsia::web::ContextFeatureFlags::HEADLESS;
+    }
     WebContentRunner::GetContextParamsCallback get_context_params =
         base::BindLambdaForTesting([feature_flags]() {
           fuchsia::web::CreateContextParams create_context_params;
@@ -231,19 +235,15 @@
                   base::FilePath(base::fuchsia::kServiceDirectoryPath)));
           CHECK(create_context_params.service_directory());
 
-          const uint16_t kRemoteDebuggingAnyPort = 0;
           create_context_params.set_remote_debugging_port(
-              kRemoteDebuggingAnyPort);
+              CastRunner::kRemoteDebuggingPort);
           return create_context_params;
         });
-    cast_runner_ = std::make_unique<CastRunner>(
-        std::move(get_context_params),
-        (feature_flags & fuchsia::web::ContextFeatureFlags::HEADLESS) ==
-            fuchsia::web::ContextFeatureFlags::HEADLESS,
-        &outgoing_directory_);
+    cast_runner_ =
+        std::make_unique<CastRunner>(std::move(get_context_params), headless);
+    cast_runner_->PublishRunnerService(&outgoing_directory_);
 
-    cast_runner_->SetContextProviderForTest(cr_fuchsia::ConnectContextProvider(
-        context_provider_controller_.NewRequest()));
+    StartAndPublishWebEngine();
 
     // Connect to the CastRunner's fuchsia.sys.Runner interface.
     fidl::InterfaceHandle<fuchsia::io::Directory> directory;
@@ -260,6 +260,24 @@
     test_server_.ServeFilesFromSourceDirectory(kTestServerRoot);
     net::test_server::RegisterDefaultHandlers(&test_server_);
     EXPECT_TRUE(test_server_.Start());
+
+    // Inject ApiBinding that used by ExecuteJavaScript().
+    std::vector<chromium::cast::ApiBinding> binding_list;
+    chromium::cast::ApiBinding eval_js_binding;
+    eval_js_binding.set_before_load_script(cr_fuchsia::MemBufferFromString(
+        "window.addEventListener('DOMContentLoaded', (event) => {"
+        "  var port = cast.__platform__.PortConnector.bind('testport');"
+        "  port.onmessage = (e) => {"
+        "    var result = eval(e.data);"
+        "    if (typeof(result) == \"undefined\") {"
+        "      result = \"undefined\";"
+        "    }"
+        "    port.postMessage(result);"
+        "  };"
+        "});",
+        "test"));
+    binding_list.emplace_back(std::move(eval_js_binding));
+    api_bindings_.set_bindings(std::move(binding_list));
   }
 
   std::unique_ptr<cr_fuchsia::AgentImpl::ComponentStateBase> OnComponentConnect(
@@ -269,12 +287,31 @@
         url_request_rewrite_rules_provider_.get());
     component_state_ = component_state.get();
 
-    if (init_component_state_callback_)
-      std::move(init_component_state_callback_).Run(component_state_);
+    if (component_state_created_callback_)
+      std::move(component_state_created_callback_).Run();
 
     return component_state;
   }
 
+  void StartAndPublishWebEngine() {
+    fidl::InterfaceHandle<fuchsia::io::Directory> web_engine_outgoing_dir =
+        cr_fuchsia::StartWebEngineForTests(web_engine_controller_.NewRequest());
+    sys::ServiceDirectory web_engine_outgoing_services(
+        std::move(web_engine_outgoing_dir));
+
+    test_component_context_.additional_services()
+        ->RemovePublicService<fuchsia::web::ContextProvider>();
+    test_component_context_.additional_services()->AddPublicService(
+        std::make_unique<vfs::Service>(
+            [web_engine_outgoing_services =
+                 std::move(web_engine_outgoing_services)](
+                zx::channel channel, async_dispatcher_t* dispatcher) {
+              web_engine_outgoing_services.Connect(
+                  fuchsia::web::ContextProvider::Name_, std::move(channel));
+            }),
+        fuchsia::web::ContextProvider::Name_);
+  }
+
   void RegisterAppWithTestData(GURL url) {
     fuchsia::web::ContentDirectoryProvider provider;
     provider.set_name("testdata");
@@ -296,7 +333,8 @@
     auto component_url = base::StringPrintf("cast:%s", kTestAppId);
     CreateComponentContext(component_url);
     StartCastComponent(component_url);
-    WaitComponentCreated();
+    WaitComponentState();
+    WaitTestPort();
   }
 
   void CreateComponentContext(const base::StringPiece& component_url) {
@@ -322,7 +360,7 @@
     startup_info.launch_info.directory_request =
         outgoing_directory.NewRequest().TakeChannel();
 
-    fidl::InterfaceHandle<::fuchsia::io::Directory> svc_directory;
+    fidl::InterfaceHandle<fuchsia::io::Directory> svc_directory;
     CHECK_EQ(fdio_service_connect_at(
                  outgoing_directory.channel().get(), "svc",
                  svc_directory.NewRequest().TakeChannel().release()),
@@ -340,40 +378,67 @@
     fuchsia::sys::Package package;
     package.resolved_url = component_url.as_string();
 
-    cast_runner_ptr_->StartComponent(std::move(package),
-                                     std::move(startup_info),
-                                     component_controller_.NewRequest());
-    component_controller_.set_error_handler(&ComponentErrorHandler);
+    cast_runner_->StartComponent(std::move(package), std::move(startup_info),
+                                 component_controller_.NewRequest());
+    component_controller_.set_error_handler([](zx_status_t status) {
+      ZX_LOG(ERROR, status) << "Component launch failed";
+      ADD_FAILURE();
+    });
   }
 
-  void WaitComponentCreated() {
-    ASSERT_FALSE(cast_component_);
+  // Executes |code| in the context of the test application and the returns
+  // serialized as string.
+  std::string ExecuteJavaScript(const std::string& code) {
+    fuchsia::web::WebMessage message;
+    message.set_data(cr_fuchsia::MemBufferFromString(code, "test-msg"));
+    test_port_->PostMessage(
+        std::move(message),
+        [](fuchsia::web::MessagePort_PostMessage_Result result) {
+          EXPECT_TRUE(result.is_response());
+        });
 
+    base::RunLoop response_loop;
+    cr_fuchsia::ResultReceiver<fuchsia::web::WebMessage> response(
+        response_loop.QuitClosure());
+    test_port_->ReceiveMessage(
+        cr_fuchsia::CallbackToFitFunction(response.GetReceiveCallback()));
+    response_loop.Run();
+
+    std::string response_string;
+    EXPECT_TRUE(
+        cr_fuchsia::StringFromMemBuffer(response->data(), &response_string));
+
+    return response_string;
+  }
+
+  void WaitComponentState() {
     base::RunLoop run_loop;
-    cr_fuchsia::ResultReceiver<WebComponent*> component_receiver(
-        run_loop.QuitClosure());
-    cast_runner_->SetWebComponentCreatedCallbackForTest(
-        base::AdaptCallbackForRepeating(
-            component_receiver.GetReceiveCallback()));
+    component_state_created_callback_ = run_loop.QuitClosure();
     run_loop.Run();
-    ASSERT_NE(*component_receiver, nullptr);
-    cast_component_ = reinterpret_cast<CastComponent*>(*component_receiver);
   }
 
-  void WaitUrlAndTitle(const GURL& url, const std::string& title) {
+  void WaitTestPort() {
+    CHECK(!test_port_);
+    test_port_ = api_bindings_.RunUntilMessagePortReceived("testport").Bind();
+  }
+
+  void CheckAppUrl(const GURL& app_url) {
+    EXPECT_EQ(ExecuteJavaScript("window.location.href"), app_url.spec());
+  }
+
+  void ShutdownComponent() {
+    DCHECK(component_controller_);
+
     base::RunLoop run_loop;
-    cr_fuchsia::TestNavigationListener listener;
-    fidl::Binding<fuchsia::web::NavigationEventListener> listener_binding(
-        &listener);
-    cast_component_->frame()->SetNavigationEventListener(
-        listener_binding.NewBinding());
-    listener.RunUntilUrlAndTitleEquals(url, title);
+    component_state_->set_on_delete(run_loop.QuitClosure());
+    component_controller_.Unbind();
+    run_loop.Run();
+
+    component_controller_ = nullptr;
   }
 
   void WaitForComponentDestroyed() {
-    ASSERT_TRUE(cast_component_);
     ASSERT_TRUE(component_state_);
-
     base::RunLoop state_loop;
     component_state_->set_on_delete(state_loop.QuitClosure());
 
@@ -392,13 +457,14 @@
     component_context_ = nullptr;
     component_services_client_ = nullptr;
     component_state_ = nullptr;
-    cast_component_ = nullptr;
   }
 
   base::test::SingleThreadTaskEnvironment task_environment_{
       base::test::SingleThreadTaskEnvironment::MainThreadType::IO};
   net::EmbeddedTestServer test_server_;
 
+  fuchsia::sys::ComponentControllerPtr web_engine_controller_;
+
   FakeApplicationConfigManager app_config_manager_;
   TestApiBindings api_bindings_;
   std::unique_ptr<FakeUrlRequestRewriteRulesProvider>
@@ -412,16 +478,17 @@
   fuchsia::sys::ComponentControllerPtr component_controller_;
   std::unique_ptr<sys::ServiceDirectory> component_services_client_;
   FakeComponentState* component_state_ = nullptr;
-  CastComponent* cast_component_ = nullptr;
+  fuchsia::web::MessagePortPtr test_port_;
 
-  base::OnceCallback<void(FakeComponentState*)> init_component_state_callback_;
+  base::OnceClosure component_state_created_callback_;
 
   // ServiceDirectory into which the CastRunner will publish itself.
   sys::OutgoingDirectory outgoing_directory_;
 
   std::unique_ptr<CastRunner> cast_runner_;
   fuchsia::sys::RunnerPtr cast_runner_ptr_;
-  fuchsia::sys::ComponentControllerPtr context_provider_controller_;
+  base::TestComponentContextForProcess test_component_context_{
+      base::TestComponentContextForProcess::InitialState::kCloneAll};
 };
 
 // A basic integration test ensuring a basic cast request launches the right
@@ -431,28 +498,8 @@
   app_config_manager_.AddApp(kTestAppId, app_url);
 
   CreateComponentContextAndStartComponent();
-  fuchsia::web::NavigationControllerPtr nav_controller;
-  cast_component_->frame()->GetNavigationController(
-      nav_controller.NewRequest());
 
-  // Ensure the NavigationState has the expected URL.
-  {
-    base::RunLoop run_loop;
-    cr_fuchsia::ResultReceiver<fuchsia::web::NavigationState> nav_entry(
-        run_loop.QuitClosure());
-    nav_controller->GetVisibleEntry(
-        cr_fuchsia::CallbackToFitFunction(nav_entry.GetReceiveCallback()));
-    run_loop.Run();
-    ASSERT_TRUE(nav_entry->has_url());
-    EXPECT_EQ(nav_entry->url(), app_url.spec());
-  }
-
-  EXPECT_FALSE(cast_runner_->is_headless());
-
-  // Verify that the component is torn down when |component_controller| is
-  // unbound.
-  component_controller_.Unbind();
-  WaitForComponentDestroyed();
+  CheckAppUrl(app_url);
 }
 
 // Verify that the Runner can continue to be used even after its Context has
@@ -462,67 +509,46 @@
   // Execute two iterations of launching the component and verifying that it
   // reaches the expected URL.
   for (int i = 0; i < 2; ++i) {
+    SCOPED_TRACE(testing::Message() << "Test iteration " << i);
+
     const GURL app_url = test_server_.GetURL(kBlankAppUrl);
     app_config_manager_.AddApp(kTestAppId, app_url);
 
     CreateComponentContextAndStartComponent();
 
-    fuchsia::web::NavigationControllerPtr nav_controller;
-    cast_component_->frame()->GetNavigationController(
-        nav_controller.NewRequest());
+    CheckAppUrl(app_url);
 
-    base::RunLoop run_loop;
-    cr_fuchsia::ResultReceiver<fuchsia::web::NavigationState> nav_entry(
-        run_loop.QuitClosure());
-    nav_controller->GetVisibleEntry(
-        cr_fuchsia::CallbackToFitFunction(nav_entry.GetReceiveCallback()));
-    run_loop.Run();
+    base::RunLoop kill_loop;
+    web_engine_controller_.events().OnTerminated =
+        [&kill_loop](int64_t return_code,
+                     fuchsia::sys::TerminationReason termination_reason) {
+          kill_loop.Quit();
+        };
+    web_engine_controller_->Kill();
 
-    ASSERT_TRUE(nav_entry->has_url());
-    EXPECT_EQ(nav_entry->url(), app_url.spec());
-
-    // Fake teardown of the Context, forcing the next StartComponent to create
-    // a new one.
-    cast_runner_->DisconnectContextForTest();
     WaitForComponentDestroyed();
+
+    // Wait for WebEngine to be terminated completely.
+    kill_loop.Run();
+
+    // Run the message loop to ensure the runner has a chance to handle context
+    // destruction.
+    base::RunLoop().RunUntilIdle();
+
+    // Start a new WebEngine instance for the next iteration.
+    if (i < 1)
+      StartAndPublishWebEngine();
   }
 }
 
 TEST_F(CastRunnerIntegrationTest, ApiBindings) {
-  app_config_manager_.AddApp(kTestAppId, test_server_.GetURL(kEchoAppPath));
-
-  std::vector<chromium::cast::ApiBinding> binding_list;
-  chromium::cast::ApiBinding echo_binding;
-  echo_binding.set_before_load_script(cr_fuchsia::MemBufferFromString(
-      "window.echo = cast.__platform__.PortConnector.bind('echoService');",
-      "test"));
-  binding_list.emplace_back(std::move(echo_binding));
-  api_bindings_.set_bindings(std::move(binding_list));
+  app_config_manager_.AddApp(kTestAppId, test_server_.GetURL(kBlankAppUrl));
 
   CreateComponentContextAndStartComponent();
 
-  fuchsia::web::MessagePortPtr port =
-      api_bindings_.RunUntilMessagePortReceived("echoService").Bind();
-
-  fuchsia::web::WebMessage message;
-  message.set_data(cr_fuchsia::MemBufferFromString("ping", "ping-msg"));
-  port->PostMessage(std::move(message),
-                    [](fuchsia::web::MessagePort_PostMessage_Result result) {
-                      EXPECT_TRUE(result.is_response());
-                    });
-
-  base::RunLoop response_loop;
-  cr_fuchsia::ResultReceiver<fuchsia::web::WebMessage> response(
-      response_loop.QuitClosure());
-  port->ReceiveMessage(
-      cr_fuchsia::CallbackToFitFunction(response.GetReceiveCallback()));
-  response_loop.Run();
-
-  std::string response_string;
-  EXPECT_TRUE(
-      cr_fuchsia::StringFromMemBuffer(response->data(), &response_string));
-  EXPECT_EQ("ack ping", response_string);
-  EXPECT_TRUE(component_state_->api_bindings_has_clients());
+  // Verify that we can communicate with the binding added in
+  // CastRunnerIntegrationTest().
+  EXPECT_EQ(ExecuteJavaScript("1+2+\"\""), "3");
 }
 
 TEST_F(CastRunnerIntegrationTest, IncorrectCastAppId) {
@@ -538,12 +564,9 @@
     EXPECT_EQ(status, ZX_ERR_PEER_CLOSED);
     run_loop.Quit();
   });
-  cr_fuchsia::ResultReceiver<WebComponent*> web_component(
-      run_loop.QuitClosure());
-  cast_runner_->SetWebComponentCreatedCallbackForTest(
-      AdaptCallbackForRepeating(web_component.GetReceiveCallback()));
   run_loop.Run();
-  EXPECT_FALSE(web_component.has_value());
+
+  EXPECT_FALSE(component_state_->api_bindings_has_clients());
 }
 
 TEST_F(CastRunnerIntegrationTest, UrlRequestRewriteRulesProvider) {
@@ -552,20 +575,9 @@
 
   CreateComponentContextAndStartComponent();
 
-  // Bind a TestNavigationListener to the Frame.
-  cr_fuchsia::TestNavigationListener navigation_listener;
-  fidl::Binding<fuchsia::web::NavigationEventListener>
-      navigation_listener_binding(&navigation_listener);
-  cast_component_->frame()->SetNavigationEventListener(
-      navigation_listener_binding.NewBinding());
-  navigation_listener.RunUntilUrlEquals(echo_app_url);
+  CheckAppUrl(echo_app_url);
 
-  // Check the header was properly set.
-  base::Optional<base::Value> result = cr_fuchsia::ExecuteJavaScript(
-      cast_component_->frame(), "document.body.innerText");
-  ASSERT_TRUE(result);
-  ASSERT_TRUE(result->is_string());
-  EXPECT_EQ(result->GetString(), "Value");
+  EXPECT_EQ(ExecuteJavaScript("document.body.innerText"), "TestHeaderValue");
 }
 
 TEST_F(CastRunnerIntegrationTest, ApplicationControllerBound) {
@@ -589,25 +601,9 @@
 
   CreateComponentContextAndStartComponent();
 
-  // Get the remote debugging port from the Context.
-  uint16_t remote_debugging_port = 0;
-  {
-    base::RunLoop run_loop;
-    cr_fuchsia::ResultReceiver<
-        fuchsia::web::Context_GetRemoteDebuggingPort_Result>
-        port_receiver(run_loop.QuitClosure());
-    cast_runner_->GetContext()->GetRemoteDebuggingPort(
-        cr_fuchsia::CallbackToFitFunction(port_receiver.GetReceiveCallback()));
-    run_loop.Run();
-
-    ASSERT_TRUE(port_receiver->is_response());
-    remote_debugging_port = port_receiver->response().port;
-    ASSERT_TRUE(remote_debugging_port != 0);
-  }
-
   // Connect to the debug service and ensure we get the proper response.
   base::Value devtools_list =
-      cr_fuchsia::GetDevToolsListFromPort(remote_debugging_port);
+      cr_fuchsia::GetDevToolsListFromPort(CastRunner::kRemoteDebuggingPort);
   ASSERT_TRUE(devtools_list.is_list());
   EXPECT_EQ(devtools_list.GetList().size(), 1u);
 
@@ -617,23 +613,11 @@
 }
 
 TEST_F(CastRunnerIntegrationTest, IsolatedContext) {
-  const GURL kContentDirectoryUrl("fuchsia-dir://testdata/echo.html");
-
-  EXPECT_EQ(cast_runner_->GetChildCastRunnerCountForTest(), 0u);
+  const GURL kContentDirectoryUrl("fuchsia-dir://testdata/empty.html");
 
   RegisterAppWithTestData(kContentDirectoryUrl);
-
   CreateComponentContextAndStartComponent();
-  EXPECT_EQ(cast_runner_->GetChildCastRunnerCountForTest(), 1u);
-
-  WaitUrlAndTitle(kContentDirectoryUrl, "echo");
-
-  // Verify that the component is torn down when |component_controller| is
-  // unbound.
-  component_controller_.Unbind();
-  WaitForComponentDestroyed();
-
-  EXPECT_EQ(cast_runner_->GetChildCastRunnerCountForTest(), 0u);
+  CheckAppUrl(kContentDirectoryUrl);
 }
 
 // Test the lack of CastAgent service does not cause a CastRunner crash.
@@ -655,9 +639,6 @@
   app_config_manager_.AddApp(kTestAppId, test_server_.GetURL(kEchoHeaderPath));
 
   CreateComponentContextAndStartComponent();
-  fuchsia::web::NavigationControllerPtr nav_controller;
-  cast_component_->frame()->GetNavigationController(
-      nav_controller.NewRequest());
 
   base::RunLoop run_loop;
   component_controller_.set_error_handler([&run_loop](zx_status_t error) {
@@ -684,7 +665,7 @@
 
   // Indicate that this app is to get bindings from a secondary agent.
   auto app_config = FakeApplicationConfigManager::CreateConfig(
-      kTestAppId, test_server_.GetURL(kEchoAppPath));
+      kTestAppId, test_server_.GetURL(kBlankAppUrl));
   app_config.set_agent_url(kDummyAgentUrl);
   app_config_manager_.AddAppConfig(std::move(app_config));
 
@@ -713,6 +694,7 @@
           }));
 
   StartCastComponent(component_url);
+  WaitComponentState();
 
   base::RunLoop().RunUntilIdle();
 
@@ -720,6 +702,9 @@
   EXPECT_FALSE(component_state_->api_bindings_has_clients());
   // Validate that the correct rewrite rules were requested.
   EXPECT_FALSE(component_state_->url_request_rules_provider_has_clients());
+
+  // Shutdown component before destroying dummy_agent_api_bindings.
+  ShutdownComponent();
 }
 
 // Test that when RewriteRules are not provided, a WebComponent is still
@@ -727,10 +712,9 @@
 // or RewriteRules.
 TEST_F(CastRunnerIntegrationTest, ApplicationConfigAgentUrlRewriteOptional) {
   TestApiBindings dummy_agent_api_bindings;
-
   // Indicate that this app is to get bindings from a secondary agent.
   auto app_config = FakeApplicationConfigManager::CreateConfig(
-      kTestAppId, test_server_.GetURL(kEchoAppPath));
+      kTestAppId, test_server_.GetURL(kBlankAppUrl));
   app_config.set_agent_url(kDummyAgentUrl);
   app_config_manager_.AddAppConfig(std::move(app_config));
 
@@ -759,7 +743,7 @@
           }));
 
   StartCastComponent(component_url);
-  WaitComponentCreated();
+  WaitComponentState();
 
   base::RunLoop().RunUntilIdle();
 
@@ -767,10 +751,13 @@
   EXPECT_FALSE(component_state_->api_bindings_has_clients());
   // Validate that the primary agent didn't provide its RewriteRules.
   EXPECT_FALSE(component_state_->url_request_rules_provider_has_clients());
+
+  // Shutdown component before destroying dummy_agent_api_bindings.
+  ShutdownComponent();
 }
 
-TEST_F(CastRunnerIntegrationTest, MicRedirect) {
-  GURL app_url = test_server_.GetURL("/mic.html");
+TEST_F(CastRunnerIntegrationTest, MicrophoneRedirect) {
+  GURL app_url = test_server_.GetURL("/microphone.html");
   auto app_config =
       FakeApplicationConfigManager::CreateConfig(kTestAppId, app_url);
 
@@ -779,82 +766,57 @@
   app_config.mutable_permissions()->push_back(std::move(mic_permission));
   app_config_manager_.AddAppConfig(std::move(app_config));
 
-  base::RunLoop run_loop;
-
-  init_component_state_callback_ = base::BindOnce(
-      [](base::OnceClosure quit_closure, FakeComponentState* component_state) {
-        component_state->outgoing_directory()->AddPublicService(
-            std::make_unique<vfs::Service>(
-                [quit_closure = std::move(quit_closure)](
-                    zx::channel channel,
-                    async_dispatcher_t* dispatcher) mutable {
-                  std::move(quit_closure).Run();
-                }),
-            fuchsia::media::Audio::Name_);
-      },
-      base::Passed(run_loop.QuitClosure()));
-
   CreateComponentContextAndStartComponent();
 
+  // Expect fuchsia.media.Audio connection to be redirected to the agent.
+  base::RunLoop run_loop;
+  component_state_->outgoing_directory()->AddPublicService(
+      std::make_unique<vfs::Service>(
+          [quit_closure = run_loop.QuitClosure()](
+              zx::channel channel, async_dispatcher_t* dispatcher) mutable {
+            std::move(quit_closure).Run();
+          }),
+      fuchsia::media::Audio::Name_);
+
+  ExecuteJavaScript("connectMicrophone();");
+
+  // Will quit once AudioCapturer is connected.
   run_loop.Run();
 }
 
 class HeadlessCastRunnerIntegrationTest : public CastRunnerIntegrationTest {
  public:
   HeadlessCastRunnerIntegrationTest()
-      : CastRunnerIntegrationTest(fuchsia::web::ContextFeatureFlags::HEADLESS |
-                                  fuchsia::web::ContextFeatureFlags::NETWORK) {}
+      : CastRunnerIntegrationTest(/*headless=*/true) {}
 };
 
 // A basic integration test ensuring a basic cast request launches the right
 // URL in the Chromium service.
 TEST_F(HeadlessCastRunnerIntegrationTest, Headless) {
-  ASSERT_TRUE(cast_runner_->is_headless());
-
   const char kAnimationPath[] = "/css_animation.html";
   const GURL animation_url = test_server_.GetURL(kAnimationPath);
   app_config_manager_.AddApp(kTestAppId, animation_url);
 
   CreateComponentContextAndStartComponent();
   auto tokens = scenic::ViewTokenPair::New();
-  cast_component_->CreateView(std::move(tokens.view_holder_token.value), {},
-                              {});
 
-  WaitUrlAndTitle(animation_url, "animation finished");
+  // Create a view.
+  auto view_provider =
+      component_services_client_->Connect<fuchsia::ui::app::ViewProvider>();
+  view_provider->CreateView(std::move(tokens.view_holder_token.value), {}, {});
 
-  // Verify that dropping the "view" EventPair is handled by the CastComponent.
-  {
-    base::RunLoop run_loop;
-    cast_component_->set_on_headless_disconnect_for_test(
-        run_loop.QuitClosure());
-    tokens.view_token.value.reset();
-    run_loop.Run();
-  }
+  api_bindings_.RunUntilMessagePortReceived("animation_finished");
 
-  component_controller_.Unbind();
-  base::RunLoop().RunUntilIdle();
+  // Verify that dropped "view" EventPair is handled properly.
+  tokens.view_token.value.reset();
+  api_bindings_.RunUntilMessagePortReceived("view_hidden");
 }
 
 // Isolated *and* headless? Doesn't sound like much fun!
 TEST_F(HeadlessCastRunnerIntegrationTest, IsolatedAndHeadless) {
-  ASSERT_TRUE(cast_runner_->is_headless());
-
-  const GURL kContentDirectoryUrl("fuchsia-dir://testdata/echo.html");
-
-  EXPECT_EQ(cast_runner_->GetChildCastRunnerCountForTest(), 0u);
+  const GURL kContentDirectoryUrl("fuchsia-dir://testdata/empty.html");
 
   RegisterAppWithTestData(kContentDirectoryUrl);
-
   CreateComponentContextAndStartComponent();
-  EXPECT_TRUE(cast_component_->runner()->is_headless());
-  EXPECT_EQ(cast_runner_->GetChildCastRunnerCountForTest(), 1u);
-
-  WaitUrlAndTitle(kContentDirectoryUrl, "echo");
-
-  // Verify that the component is torn down when |component_controller| is
-  // unbound.
-  component_controller_.Unbind();
-  WaitForComponentDestroyed();
-
-  EXPECT_EQ(cast_runner_->GetChildCastRunnerCountForTest(), 0u);
+  CheckAppUrl(kContentDirectoryUrl);
 }
diff --git a/fuchsia/runners/cast/main.cc b/fuchsia/runners/cast/main.cc
index a60f453..4e1e19a 100644
--- a/fuchsia/runners/cast/main.cc
+++ b/fuchsia/runners/cast/main.cc
@@ -63,8 +63,8 @@
   create_context_params.set_user_agent_product("CrKey");
   create_context_params.set_user_agent_version("1.43");
 
-  const uint16_t kRemoteDebuggingPort = 9222;
-  create_context_params.set_remote_debugging_port(kRemoteDebuggingPort);
+  create_context_params.set_remote_debugging_port(
+      CastRunner::kRemoteDebuggingPort);
 
   // TODO(crbug.com/1023514): Remove this switch when it is no longer
   // necessary.
@@ -90,8 +90,8 @@
   WebContentRunner::GetContextParamsCallback get_context_params_callback =
       base::BindRepeating(&CreateMainContextParams);
 
-  CastRunner runner(
-      std::move(get_context_params_callback), IsHeadless(),
+  CastRunner runner(std::move(get_context_params_callback), IsHeadless());
+  runner.PublishRunnerService(
       base::fuchsia::ComponentContextForCurrentProcess()->outgoing().get());
 
   base::fuchsia::ComponentContextForCurrentProcess()
diff --git a/fuchsia/runners/cast/test_api_bindings.cc b/fuchsia/runners/cast/test_api_bindings.cc
index ef99298..9a67165 100644
--- a/fuchsia/runners/cast/test_api_bindings.cc
+++ b/fuchsia/runners/cast/test_api_bindings.cc
@@ -4,6 +4,7 @@
 
 #include "fuchsia/runners/cast/test_api_bindings.h"
 
+#include "base/fuchsia/fuchsia_logging.h"
 #include "base/run_loop.h"
 
 TestApiBindings::TestApiBindings() = default;
@@ -25,7 +26,14 @@
 }
 
 void TestApiBindings::GetAll(GetAllCallback callback) {
-  callback(std::move(bindings_));
+  std::vector<chromium::cast::ApiBinding> bindings_clone;
+  for (auto& binding : bindings_) {
+    chromium::cast::ApiBinding binding_clone;
+    zx_status_t status = binding.Clone(&binding_clone);
+    ZX_CHECK(status == ZX_OK, status);
+    bindings_clone.push_back(std::move(binding_clone));
+  }
+  callback(std::move(bindings_clone));
 }
 
 void TestApiBindings::Connect(
diff --git a/fuchsia/runners/cast/testdata/css_animation.html b/fuchsia/runners/cast/testdata/css_animation.html
index a24e50df..53358fd 100644
--- a/fuchsia/runners/cast/testdata/css_animation.html
+++ b/fuchsia/runners/cast/testdata/css_animation.html
@@ -31,14 +31,14 @@
         isStarted = true;
       });
       animated.addEventListener('animationend', function() {
-        document.title = 'animation finished';
-      });
+        cast.__platform__.PortConnector.bind('animation_finished');
 
-      // Indicates that no animation has run within a second of document load.
-      setTimeout(function() {
-        if (!isStarted)
-          document.title = 'animation never started';
-      }, 1000);
+        document.addEventListener("visibilitychange", ()=>{
+          if (document.hidden) {
+            cast.__platform__.PortConnector.bind('view_hidden');
+          }
+        }, false);
+      });
     </script>
   </body>
 </html>
diff --git a/fuchsia/runners/cast/testdata/empty.html b/fuchsia/runners/cast/testdata/empty.html
new file mode 100644
index 0000000..18ecdcb
--- /dev/null
+++ b/fuchsia/runners/cast/testdata/empty.html
@@ -0,0 +1 @@
+<html></html>
diff --git a/fuchsia/runners/cast/testdata/mic.html b/fuchsia/runners/cast/testdata/microphone.html
similarity index 81%
rename from fuchsia/runners/cast/testdata/mic.html
rename to fuchsia/runners/cast/testdata/microphone.html
index 742b31b..0e142dc7 100644
--- a/fuchsia/runners/cast/testdata/mic.html
+++ b/fuchsia/runners/cast/testdata/microphone.html
@@ -1,4 +1,6 @@
 <script>
+function connectMicrophone() {
     navigator.mediaDevices.getUserMedia({ audio: true, video: false })
         .then((stream) => { document.title = 'done'; });
+}
 </script>
\ No newline at end of file
diff --git a/fuchsia/runners/common/web_content_runner.cc b/fuchsia/runners/common/web_content_runner.cc
index 357ddc7..b40597b 100644
--- a/fuchsia/runners/common/web_content_runner.cc
+++ b/fuchsia/runners/common/web_content_runner.cc
@@ -23,17 +23,16 @@
 #include "url/gurl.h"
 
 WebContentRunner::WebContentRunner(
-    GetContextParamsCallback get_context_params_callback,
-    sys::OutgoingDirectory* outgoing_directory)
-    : get_context_params_callback_(std::move(get_context_params_callback)) {
-  service_binding_.emplace(outgoing_directory, this);
-}
-
-WebContentRunner::WebContentRunner(fuchsia::web::ContextPtr context)
-    : context_(std::move(context)) {}
+    GetContextParamsCallback get_context_params_callback)
+    : get_context_params_callback_(std::move(get_context_params_callback)) {}
 
 WebContentRunner::~WebContentRunner() = default;
 
+void WebContentRunner::PublishRunnerService(
+    sys::OutgoingDirectory* outgoing_directory) {
+  service_binding_.emplace(outgoing_directory, this);
+}
+
 fuchsia::web::ContextPtr WebContentRunner::CreateWebContext(
     fuchsia::web::CreateContextParams context_params) {
   fuchsia::web::ContextPtr web_context;
@@ -77,34 +76,15 @@
   RegisterComponent(std::move(component));
 }
 
-void WebContentRunner::SetWebComponentCreatedCallbackForTest(
-    base::RepeatingCallback<void(WebComponent*)> callback) {
-  DCHECK(components_.empty());
-  web_component_created_callback_for_test_ = std::move(callback);
-}
-
 void WebContentRunner::DestroyComponent(WebComponent* component) {
   components_.erase(components_.find(component));
 }
 
 void WebContentRunner::RegisterComponent(
     std::unique_ptr<WebComponent> component) {
-  if (web_component_created_callback_for_test_)
-    web_component_created_callback_for_test_.Run(component.get());
-
   components_.insert(std::move(component));
 }
 
-void WebContentRunner::SetContextProviderForTest(
-    fuchsia::web::ContextProviderPtr context_provider) {
-  DCHECK(context_provider);
-  context_provider_ = std::move(context_provider);
-}
-
-void WebContentRunner::DisconnectContextForTest() {
-  context_.Unbind();
-}
-
 fuchsia::web::ContextProvider* WebContentRunner::GetContextProvider() {
   if (!context_provider_) {
     context_provider_ = base::fuchsia::ComponentContextForCurrentProcess()
diff --git a/fuchsia/runners/common/web_content_runner.h b/fuchsia/runners/common/web_content_runner.h
index 1d1d604..623db0a 100644
--- a/fuchsia/runners/common/web_content_runner.h
+++ b/fuchsia/runners/common/web_content_runner.h
@@ -29,18 +29,14 @@
   // specified OutgoingDirectory.
   // |get_context_params_callback|: Returns parameters for the Runner's
   //     web.Context.
-  // |outgoing_directory|: The directory that the Runner's services will be
-  //     published to.
-  WebContentRunner(GetContextParamsCallback get_context_params_callback,
-                   sys::OutgoingDirectory* outgoing_directory);
-
-  // Creates a Runner which launches components using the specified |context|.
-  // The caller may publish the Runner, or call StartComponent() manually to
-  // create new components with it.
-  explicit WebContentRunner(fuchsia::web::ContextPtr context);
+  explicit WebContentRunner(
+      GetContextParamsCallback get_context_params_callback);
 
   ~WebContentRunner() override;
 
+  // Publishes the fuchsia.sys.Runner service to |outgoing_directory|.
+  void PublishRunnerService(sys::OutgoingDirectory* outgoing_directory);
+
   // TODO(crbug.com/1046615): Make this static when the injected ContextProvider
   // goes away.
   fuchsia::web::ContextPtr CreateWebContext(
@@ -59,27 +55,9 @@
                       fidl::InterfaceRequest<fuchsia::sys::ComponentController>
                           controller_request) override;
 
-  // Used by tests to asynchronously access the first WebComponent.
-  void SetWebComponentCreatedCallbackForTest(
-      base::RepeatingCallback<void(WebComponent*)> callback);
-
   // Registers a WebComponent, or specialization, with this Runner.
   void RegisterComponent(std::unique_ptr<WebComponent> component);
 
-  // Overrides the environment's the ContextProvider to use.
-  // TODO(crbug.com/1046615): Use test manifests for package specification.
-  void SetContextProviderForTest(
-      fuchsia::web::ContextProviderPtr context_provider);
-
-  // Disconnects the Context used by this Runner.
-  void DisconnectContextForTest();
-
- protected:
-  base::RepeatingCallback<void(WebComponent*)>
-  web_component_created_callback_for_test() const {
-    return web_component_created_callback_for_test_;
-  }
-
  private:
   fuchsia::web::ContextProvider* GetContextProvider();
 
diff --git a/fuchsia/runners/web/main.cc b/fuchsia/runners/web/main.cc
index 9ae6248..3eaa55d 100644
--- a/fuchsia/runners/web/main.cc
+++ b/fuchsia/runners/web/main.cc
@@ -57,8 +57,8 @@
   WebContentRunner::GetContextParamsCallback get_context_params_callback =
       base::BindRepeating(&GetContextParams);
 
-  WebContentRunner runner(
-      std::move(get_context_params_callback),
+  WebContentRunner runner(std::move(get_context_params_callback));
+  runner.PublishRunnerService(
       base::fuchsia::ComponentContextForCurrentProcess()->outgoing().get());
 
   base::fuchsia::ComponentContextForCurrentProcess()
diff --git a/gpu/BUILD.gn b/gpu/BUILD.gn
index 2cc0c63f..e129019 100644
--- a/gpu/BUILD.gn
+++ b/gpu/BUILD.gn
@@ -414,9 +414,9 @@
 
   if (use_dawn) {
     deps += [
-      "//third_party/dawn:libdawn_native",
       "//third_party/dawn/src/dawn:dawncpp",
       "//third_party/dawn/src/dawn:libdawn_proc",
+      "//third_party/dawn/src/dawn_native",
     ]
   }
 
diff --git a/gpu/command_buffer/common/BUILD.gn b/gpu/command_buffer/common/BUILD.gn
index b1d05d4..155fa3f 100644
--- a/gpu/command_buffer/common/BUILD.gn
+++ b/gpu/command_buffer/common/BUILD.gn
@@ -176,7 +176,7 @@
   ]
 
   if (use_dawn) {
-    deps += [ "//third_party/dawn:libdawn_wire" ]
+    deps += [ "//third_party/dawn/src/dawn_wire" ]
   }
 
   public_deps = [
diff --git a/gpu/command_buffer/service/BUILD.gn b/gpu/command_buffer/service/BUILD.gn
index ccf4bff1..96cbd52 100644
--- a/gpu/command_buffer/service/BUILD.gn
+++ b/gpu/command_buffer/service/BUILD.gn
@@ -368,7 +368,7 @@
   }
 
   if (use_dawn) {
-    deps += [ "//third_party/dawn:libdawn_native" ]
+    deps += [ "//third_party/dawn/src/dawn_native" ]
   }
 
   if (is_mac) {
@@ -390,7 +390,8 @@
   if (skia_use_dawn) {
     deps += [
       "//components/viz/common:dawn_context_provider",
-      "//third_party/dawn/src/dawn:libdawn",
+      "//third_party/dawn/src/dawn:dawncpp",
+      "//third_party/dawn/src/dawn:libdawn_proc",
     ]
   }
 
diff --git a/infra/config/buckets/ci.star b/infra/config/buckets/ci.star
index de3e21f..0d007de 100644
--- a/infra/config/buckets/ci.star
+++ b/infra/config/buckets/ci.star
@@ -9,7 +9,9 @@
 ci.defaults.cpu.set(cpu.X86_64)
 ci.defaults.executable.set('recipe:chromium')
 ci.defaults.execution_timeout.set(3 * time.hour)
+ci.defaults.header.set('//consoles/chromium-header.textpb')
 ci.defaults.os.set(os.LINUX_DEFAULT)
+ci.defaults.repo.set('https://chromium.googlesource.com/chromium/src')
 ci.defaults.service_account.set(
     'chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com')
 ci.defaults.swarming_tags.set(['vpython:native-python-wrapper'])
@@ -25,9 +27,13 @@
 
 # *** After this point everything is trunk only ***
 ci.console_view(
+    name = 'chromium',
+    include_experimental_builds = True,
+    ordering = {},
+)
+
+ci.console_view(
     name = 'chromium.win',
-    header = '//consoles/chromium-header.textpb',
-    repo = 'https://chromium.googlesource.com/chromium/src',
     ordering = {
         None: ['release', 'debug'],
         'debug|builder': ci.ordering(short_names=['64', '32']),
@@ -295,30 +301,51 @@
 )
 
 
+
 ci.chromium_builder(
     name = 'android-archive-dbg',
     # Bump to 32 if needed.
+    console_view_entry = ci.console_view_entry(
+        category = 'android',
+        short_name = 'dbg',
+    ),
     cores = 8,
 )
 
 ci.chromium_builder(
     name = 'android-archive-rel',
+    console_view_entry = ci.console_view_entry(
+        category = 'android',
+        short_name = 'rel',
+    ),
     cores = 32,
 )
 
 ci.chromium_builder(
     name = 'linux-archive-dbg',
+    console_view_entry = ci.console_view_entry(
+        category = 'linux',
+        short_name = 'dbg',
+    ),
     # Bump to 32 if needed.
     cores = 8,
 )
 
 ci.chromium_builder(
     name = 'linux-archive-rel',
+    console_view_entry = ci.console_view_entry(
+        category = 'linux',
+        short_name = 'rel',
+    ),
     cores = 32,
 )
 
 ci.chromium_builder(
     name = 'mac-archive-dbg',
+    console_view_entry = ci.console_view_entry(
+        category = 'mac',
+        short_name = 'dbg',
+    ),
     # Bump to 8 cores if needed.
     cores = 4,
     os = os.MAC_DEFAULT,
@@ -326,29 +353,49 @@
 
 ci.chromium_builder(
     name = 'mac-archive-rel',
+    console_view_entry = ci.console_view_entry(
+        category = 'mac',
+        short_name = 'rel',
+    ),
     os = os.MAC_DEFAULT,
 )
 
 ci.chromium_builder(
     name = 'win-archive-dbg',
+    console_view_entry = ci.console_view_entry(
+        category = 'win|dbg',
+        short_name = '64',
+    ),
     cores = 32,
     os = os.WINDOWS_DEFAULT,
 )
 
 ci.chromium_builder(
     name = 'win-archive-rel',
+    console_view_entry = ci.console_view_entry(
+        category = 'win|rel',
+        short_name = '64',
+    ),
     cores = 32,
     os = os.WINDOWS_DEFAULT,
 )
 
 ci.chromium_builder(
     name = 'win32-archive-dbg',
+    console_view_entry = ci.console_view_entry(
+        category = 'win|dbg',
+        short_name = '32',
+    ),
     cores = 32,
     os = os.WINDOWS_DEFAULT,
 )
 
 ci.chromium_builder(
     name = 'win32-archive-rel',
+    console_view_entry = ci.console_view_entry(
+        category = 'win|rel',
+        short_name = '32',
+    ),
     cores = 32,
     os = os.WINDOWS_DEFAULT,
 )
diff --git a/infra/config/consoles/chromium.star b/infra/config/consoles/chromium.star
deleted file mode 100644
index 89fb2f657..0000000
--- a/infra/config/consoles/chromium.star
+++ /dev/null
@@ -1,58 +0,0 @@
-luci.console_view(
-    name = 'chromium',
-    header = '//consoles/chromium-header.textpb',
-    include_experimental_builds = True,
-    repo = 'https://chromium.googlesource.com/chromium/src',
-    entries = [
-        luci.console_view_entry(
-            builder = 'ci/android-archive-dbg',
-            category = 'android',
-            short_name = 'dbg',
-        ),
-        luci.console_view_entry(
-            builder = 'ci/android-archive-rel',
-            category = 'android',
-            short_name = 'rel',
-        ),
-        luci.console_view_entry(
-            builder = 'ci/linux-archive-dbg',
-            category = 'linux',
-            short_name = 'dbg',
-        ),
-        luci.console_view_entry(
-            builder = 'ci/linux-archive-rel',
-            category = 'linux',
-            short_name = 'rel',
-        ),
-        luci.console_view_entry(
-            builder = 'ci/mac-archive-dbg',
-            category = 'mac',
-            short_name = 'dbg',
-        ),
-        luci.console_view_entry(
-            builder = 'ci/mac-archive-rel',
-            category = 'mac',
-            short_name = 'rel',
-        ),
-        luci.console_view_entry(
-            builder = 'ci/win32-archive-rel',
-            category = 'win|rel',
-            short_name = '32',
-        ),
-        luci.console_view_entry(
-            builder = 'ci/win-archive-rel',
-            category = 'win|rel',
-            short_name = '64',
-        ),
-        luci.console_view_entry(
-            builder = 'ci/win32-archive-dbg',
-            category = 'win|dbg',
-            short_name = '32',
-        ),
-        luci.console_view_entry(
-            builder = 'ci/win-archive-dbg',
-            category = 'win|dbg',
-            short_name = '64',
-        ),
-    ],
-)
diff --git a/infra/config/generated/luci-milo.cfg b/infra/config/generated/luci-milo.cfg
index 234d6b91..d3634ca 100644
--- a/infra/config/generated/luci-milo.cfg
+++ b/infra/config/generated/luci-milo.cfg
@@ -371,16 +371,6 @@
     short_name: "rel"
   >
   builders: <
-    name: "buildbucket/luci.chromium.ci/win32-archive-rel"
-    category: "win|rel"
-    short_name: "32"
-  >
-  builders: <
-    name: "buildbucket/luci.chromium.ci/win-archive-rel"
-    category: "win|rel"
-    short_name: "64"
-  >
-  builders: <
     name: "buildbucket/luci.chromium.ci/win32-archive-dbg"
     category: "win|dbg"
     short_name: "32"
@@ -390,6 +380,16 @@
     category: "win|dbg"
     short_name: "64"
   >
+  builders: <
+    name: "buildbucket/luci.chromium.ci/win32-archive-rel"
+    category: "win|rel"
+    short_name: "32"
+  >
+  builders: <
+    name: "buildbucket/luci.chromium.ci/win-archive-rel"
+    category: "win|rel"
+    short_name: "64"
+  >
   header: <
     oncalls: <
       name: "Chromium"
@@ -10574,16 +10574,6 @@
     short_name: "rel"
   >
   builders: <
-    name: "buildbucket/luci.chromium.ci/win32-archive-rel"
-    category: "chromium|win|rel"
-    short_name: "32"
-  >
-  builders: <
-    name: "buildbucket/luci.chromium.ci/win-archive-rel"
-    category: "chromium|win|rel"
-    short_name: "64"
-  >
-  builders: <
     name: "buildbucket/luci.chromium.ci/win32-archive-dbg"
     category: "chromium|win|dbg"
     short_name: "32"
@@ -10594,6 +10584,16 @@
     short_name: "64"
   >
   builders: <
+    name: "buildbucket/luci.chromium.ci/win32-archive-rel"
+    category: "chromium|win|rel"
+    short_name: "32"
+  >
+  builders: <
+    name: "buildbucket/luci.chromium.ci/win-archive-rel"
+    category: "chromium|win|rel"
+    short_name: "64"
+  >
+  builders: <
     name: "buildbucket/luci.chromium.ci/Win x64 Builder"
     category: "chromium.win|release|builder"
     short_name: "64"
diff --git a/infra/config/lib/ci.star b/infra/config/lib/ci.star
index 0736288..5f5c980 100644
--- a/infra/config/lib/ci.star
+++ b/infra/config/lib/ci.star
@@ -19,6 +19,8 @@
     extends=builders.defaults,
     add_to_console_view = False,
     console_view = args.COMPUTE,
+    header = None,
+    repo = None,
 )
 
 
@@ -161,7 +163,12 @@
           details.
       2.  list of category components: Equivalent to a `ci.ordering`
           call that only specifies `categories` with the given list.
+    kwargs - Additional keyword arguments to forward on to
+      `luci.console_view`. The header and repo arguments support
+       module-level defaults.
   """
+  kwargs['header'] = defaults.get_value_from_kwargs('header', kwargs)
+  kwargs['repo'] = defaults.get_value_from_kwargs('repo', kwargs)
   luci.console_view(
       name = name,
       **kwargs
diff --git a/infra/config/main.star b/infra/config/main.star
index 30bff43..8480c3dc 100755
--- a/infra/config/main.star
+++ b/infra/config/main.star
@@ -104,7 +104,6 @@
 
 exec('//consoles/android.packager.star')
 exec('//consoles/angle.try.star')
-exec('//consoles/chromium.star')
 exec('//consoles/chromium.android.star')
 exec('//consoles/chromium.android.fyi.star')
 exec('//consoles/chromium.chromiumos.star')
diff --git a/infra/config/versioned/trunk/consoles/main.star b/infra/config/versioned/trunk/consoles/main.star
index 6b417270..4e5aee8 100644
--- a/infra/config/versioned/trunk/consoles/main.star
+++ b/infra/config/versioned/trunk/consoles/main.star
@@ -41,16 +41,6 @@
             short_name = 'rel',
         ),
         luci.console_view_entry(
-            builder = builder_name('win32-archive-rel'),
-            category = 'chromium|win|rel',
-            short_name = '32',
-        ),
-        luci.console_view_entry(
-            builder = builder_name('win-archive-rel'),
-            category = 'chromium|win|rel',
-            short_name = '64',
-        ),
-        luci.console_view_entry(
             builder = builder_name('win32-archive-dbg'),
             category = 'chromium|win|dbg',
             short_name = '32',
@@ -61,6 +51,16 @@
             short_name = '64',
         ),
         luci.console_view_entry(
+            builder = builder_name('win32-archive-rel'),
+            category = 'chromium|win|rel',
+            short_name = '32',
+        ),
+        luci.console_view_entry(
+            builder = builder_name('win-archive-rel'),
+            category = 'chromium|win|rel',
+            short_name = '64',
+        ),
+        luci.console_view_entry(
             builder = builder_name('Win x64 Builder'),
             category = 'chromium.win|release|builder',
             short_name = '64',
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb
index 1a8ace35..c4be0747 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb
@@ -41,7 +41,7 @@
 <translation id="7172660552945675509">‏نصيحة: <ph name="BEGIN_LINK" />نقل Chrome إلى شريط الإرساء<ph name="END_LINK" /></translation>
 <translation id="7173660919484573146">‏يستخدم Chrome تقنية "التعرُّف على الوجه" لضمان الدخول المصرَّح به إلى كلمات المرور.</translation>
 <translation id="7265369419224458312">‏يمكنك الدخول إلى علامات التبويب التي فتحتها على جهاز الكمبيوتر، مباشرةً من هنا. لن يلزمك سوى فتح Chrome على جهاز الكمبيوتر، والانتقال إلى القائمة وتحديد "تسجيل الدخول إلى Chrome…"</translation>
-<translation id="7400722733683201933">‏معلومات عن Google Chrome</translation>
+<translation id="7400722733683201933">‏لمحة عامة عن Google Chrome</translation>
 <translation id="756809126120519699">‏بيانات Chrome التي تم محوها</translation>
 <translation id="7626032353295482388">‏مرحبًا بك في Chrome‏</translation>
 <translation id="7698568245838009292">‏متصفِّح Chrome يريد الوصول إلى الكاميرا</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index e34ee6cc3..da15a6ad 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -168,6 +168,7 @@
 <translation id="3112556859945124369">ચિહ્નિત કરો…</translation>
 <translation id="3153862085237805241">કાર્ડ સાચવો</translation>
 <translation id="3157684681743766797">તમામને આ રીતે ચિહ્નિત કરો…</translation>
+<translation id="3161291298470460782">આમ કરવાથી તમને સાઇન આઉટ કરવામાં આવશે, સિંક કરવાનું બંધ થશે અને આ ડિવાઇસમાંથી બધો Chrome ડેટા સાફ કરવામાં આવશે. તમારો સિંક કરેલો ડેટા તમારા Google એકાઉન્ટમાં રહેશે.</translation>
 <translation id="3175081911749765310">વેબ સેવાઓ</translation>
 <translation id="3178650076442119961">આજે સક્રિય છે</translation>
 <translation id="3207960819495026254">બુકમાર્ક કરેલ</translation>
@@ -200,6 +201,7 @@
 <translation id="3494788280727468875">બ્રાઉઝિંગ ડેટા સાફ કરવાની પુષ્ટિ કરો</translation>
 <translation id="35083190962747987">${url} ખોલો</translation>
 <translation id="3519193562722059437">વેબ બ્રાઉઝ કરવા ટેબ ખોલો.</translation>
+<translation id="3523473570015918798">સાઇન આઉટ કરવાથી તમારા બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને અન્ય Chrome ડેટા હવેથી તમારા Google એકાઉન્ટ પર સિંક થશે નહીં.</translation>
 <translation id="3527085408025491307">ફોલ્ડર</translation>
 <translation id="3529024052484145543">સુરક્ષિત નથી</translation>
 <translation id="3533202363250687977">બધાં છૂપા ટૅબ બંધ કરો</translation>
@@ -333,6 +335,7 @@
 <translation id="54401264925851789">પૃષ્ઠ સુરક્ષા માહિતી</translation>
 <translation id="5443952882982198570">ક્રેડિટ કાર્ડ</translation>
 <translation id="5457907402803865181">પાસવર્ડ સિંક કરવામાં ભૂલ આવી.</translation>
+<translation id="5508435575041083207">સાઇન આઉટ કરો અને આ ડિવાઇસમાંથી ડેટા સાફ કરો</translation>
 <translation id="5525269841082836315">પાસફ્રેઝ બનાવો</translation>
 <translation id="5548760955356983418">હેન્ડઓફ તમને આ ડિવાઇસ પર વેબસાઇટ બ્રાઉઝ કરવાનું શરૂ કરવા અને પછી તમારા Mac પર સરળતાથી ચાલુ રાખવા દે છે. વર્તમાનમાં ખુલ્લી છે તે વેબસાઇટ તમારા Mac ના ડૉક પર દેખાશે.
 
@@ -506,6 +509,9 @@
 <translation id="766891008101699113">વેબને ખાનગી રીતે બ્રાઉઝ કરવા માટે, નવી ટૅબ ઉમેરો.</translation>
 <translation id="7671141431838911305">ઇન્સ્ટોલ કરો</translation>
 <translation id="7765158879357617694">સ્થાન</translation>
+<translation id="7771470029643830783">સાઇન આઉટ કરવાથી તમારા બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને અન્ય Chrome ડેટા હવેથી તમારા Google એકાઉન્ટ પર સિંક થશે નહીં.
+
+તમારું એકાઉન્ટ <ph name="HOSTED_DOMAIN" /> દ્વારા મેનેજ કરવામાં આવતું હોવાથી, સાઇન આઉટ કરતી વખતે તમારો Chrome ડેટા આ ડિવાઇસમાંથી સાફ કરવામાં આવશે. તમારો સિંક કરેલો ડેટા તમારા Google એકાઉન્ટમાં રહેશે.</translation>
 <translation id="7772032839648071052">પાસફ્રેઝની પુષ્ટિ કરો</translation>
 <translation id="7781011649027948662">પેજનો અનુવાદ કરીએ?</translation>
 <translation id="7781829728241885113">ગઈ કાલે</translation>
@@ -555,6 +561,7 @@
 <translation id="8490978609246021741">ફેરફારો સાચવો</translation>
 <translation id="8503813439785031346">વપરાશકર્તાનામ</translation>
 <translation id="850600235656508448">છુપામાં ખોલો</translation>
+<translation id="8510057420705599706">આમ કરવાથી તમને સાઇન આઉટ કરવામાં આવશે અને સિંક કરવાનું બંધ થશે પણ તમારા બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને અન્ય Chrome ડેટા આ ડિવાઇસમાં જ રહેશે.</translation>
 <translation id="8517375800490286174">ઓપન સોર્સ લાઇસન્સ</translation>
 <translation id="8524799873541103884"><ph name="NUMBER_OF_OPEN_TABS" /> ના  <ph name="FIRST_VISIBLE_TAB" /> થી <ph name="LAST_VISIBLE_TAB" /> સુધી <ph name="INCOGNITO" /> ટેબ્સ</translation>
 <translation id="8529767659511976195">નવી</translation>
@@ -597,6 +604,7 @@
 <translation id="9094033019050270033">પાસવર્ડ અપડેટ કરો</translation>
 <translation id="9100610230175265781">પાસફ્રેઝ આવશ્યક છે</translation>
 <translation id="9148126808321036104">ફરીથી સાઇન ઇન કરો </translation>
+<translation id="9152539721251340337">QR કોડ બનાવો</translation>
 <translation id="9157836665414082580">સંવાદો નાબૂદ કરો</translation>
 <translation id="9188680907066685419">સંચાલિત એકાઉન્ટમાંથી સાઇન આઉટ કરો</translation>
 <translation id="9203116392574189331">હેન્ડઓફ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index 7c50d5a5..12527f3de 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -168,6 +168,7 @@
 <translation id="3112556859945124369">ಗುರುತಿಸಿ...</translation>
 <translation id="3153862085237805241">ಕಾರ್ಡ್‌ ಅನ್ನು ಉಳಿಸಿ</translation>
 <translation id="3157684681743766797">ಎಲ್ಲವನ್ನೂ ಗುರುತಿಸಿ…</translation>
+<translation id="3161291298470460782">ಇದು ನಿಮ್ಮನ್ನು ಸೈನ್ ಔಟ್ ಮಾಡುತ್ತದೆ, ಸಿಂಕ್ ಅನ್ನು ಆಫ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಈ ಸಾಧನದಲ್ಲಿರುವ ಎಲ್ಲಾ Chrome ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ. ಸಿಂಕ್ ಮಾಡಿರುವ ನಿಮ್ಮ ಡೇಟಾ ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಯುತ್ತದೆ.</translation>
 <translation id="3175081911749765310">ವೆಬ್‌ ಸೇವೆಗಳು</translation>
 <translation id="3178650076442119961">ಇಂದು ಸಕ್ರಿಯ</translation>
 <translation id="3207960819495026254">ಬುಕ್‌ಮಾರ್ಕ್‌ ಮಾಡಲಾಗಿದೆ</translation>
@@ -200,6 +201,7 @@
 <translation id="3494788280727468875">ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಲು ದೃಢೀಕರಿಸಿ</translation>
 <translation id="35083190962747987">${url} ಅನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="3519193562722059437">ವೆಬ್ ಬ್ರೌಸ್ ಮಾಡಲು ಟ್ಯಾಬ್ ತೆರೆಯಿರಿ.</translation>
+<translation id="3523473570015918798">ಸೈನ್ ಔಟ್ ಮಾಡುವುದರಿಂದ ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇತರ Chrome ಡೇಟಾವನ್ನು ಇನ್ನು ಮುಂದೆ ನಿಮ್ಮ Google ಖಾತೆಗೆ ಸಿಂಕ್ ಮಾಡುವುದಿಲ್ಲ.</translation>
 <translation id="3527085408025491307">ಫೋಲ್ಡರ್</translation>
 <translation id="3529024052484145543">ಸುರಕ್ಷಿತವಾಗಿಲ್ಲ</translation>
 <translation id="3533202363250687977">ಎಲ್ಲಾ ಅದೃಶ್ಯ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಿ</translation>
@@ -333,6 +335,7 @@
 <translation id="54401264925851789">ಪುಟ ಭದ್ರತೆಯ ಮಾಹಿತಿ</translation>
 <translation id="5443952882982198570">ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್‌ಗಳು</translation>
 <translation id="5457907402803865181">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಸಿಂಕ್ ಮಾಡುವಾಗ ದೋಷ ಉಂಟಾಗಿದೆ.</translation>
+<translation id="5508435575041083207">ಸೈನ್ ಔಟ್ ಮಾಡಿ ಮತ್ತು ಈ ಸಾಧನದಲ್ಲಿರುವ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಿ</translation>
 <translation id="5525269841082836315">ಪಾಸ್‌ಫ್ರೇಸ್ ರಚಿಸಿ</translation>
 <translation id="5548760955356983418">ಹ್ಯಾಂಡ್ಆಫ್ ವೆಬ್‌ಸೈಟ್ ಈ ಸಾಧನದಲ್ಲಿ ಬ್ರೌಸ್ ಮಾಡುವುದನ್ನು ಪ್ರಾರಂಭಿಸಲು ನಂತರ ನಿಮ್ಮ Mac ನಲ್ಲಿ ಸುಲಭವಾಗಿ ಮುಂದುವರಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಪ್ರಸ್ತುತ ತೆರೆದ ವೆಬ್‌ಸೈಟ್ ನಿಮ್ಮ Mac ನಲ್ಲಿನ ಡಾಕ್‌ನಲ್ಲಿ ಗೋಚರಿಸುತ್ತದೆ.
 
@@ -506,6 +509,9 @@
 <translation id="766891008101699113">ವೆಬ್ ಅನ್ನು ಖಾಸಗಿಯಾಗಿ ಬ್ರೌಸ್ ಮಾಡಲು, ಹೊಸ ಟ್ಯಾಬ್ ಸೇರಿಸಿ.</translation>
 <translation id="7671141431838911305">ಇನ್‌ಸ್ಟಾಲ್</translation>
 <translation id="7765158879357617694">ಸರಿಸು</translation>
+<translation id="7771470029643830783">ಸೈನ್ ಔಟ್ ಮಾಡುವುದರಿಂದ ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇತರ Chrome ಡೇಟಾವನ್ನು ಇನ್ನು ಮುಂದೆ ನಿಮ್ಮ Google ಖಾತೆಗೆ ಸಿಂಕ್ ಮಾಡುವುದಿಲ್ಲ.
+
+ಏಕೆಂದರೆ, ನಿಮ್ಮ ಖಾತೆಯನ್ನು <ph name="HOSTED_DOMAIN" /> ಡೊಮೇನ್ ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ, ಸೈನ್ ಔಟ್ ಮಾಡಿದಾಗ ಈ ಸಾಧನದಲ್ಲಿರುವ ನಿಮ್ಮ Chrome ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ. ಸಿಂಕ್ ಮಾಡಿರುವ ನಿಮ್ಮ ಡೇಟಾ ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಯುತ್ತದೆ.</translation>
 <translation id="7772032839648071052">ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ದೃಢೀಕರಿಸಿ</translation>
 <translation id="7781011649027948662">ಪುಟವನ್ನು ಅನುವಾದಿಸಬೇಕೇ?</translation>
 <translation id="7781829728241885113">ನಿನ್ನೆ</translation>
@@ -555,6 +561,7 @@
 <translation id="8490978609246021741">ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಿ</translation>
 <translation id="8503813439785031346">ಬಳಕೆದಾರರಹೆಸರು</translation>
 <translation id="850600235656508448">ಅದೃಶ್ಯ ಮೋಡ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
+<translation id="8510057420705599706">ಇದು ನಿಮ್ಮನ್ನು ಸೈನ್ ಔಟ್ ಮಾಡುತ್ತದೆ, ಸಿಂಕ್ ಅನ್ನು ಆಫ್ ಮಾಡುತ್ತದೆ, ಆದರೆ ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇತರ Chrome ಡೇಟಾವನ್ನು ಈ ಸಾಧನದಲ್ಲೇ ಉಳಿಸುತ್ತದೆ.</translation>
 <translation id="8517375800490286174">ಓಪನ್ ಸೋರ್ಸ್ ಪರವಾನಗಿಗಳು</translation>
 <translation id="8524799873541103884"><ph name="NUMBER_OF_OPEN_TABS" /> ರಲ್ಲಿ <ph name="LAST_VISIBLE_TAB" /> ಮೂಲಕ <ph name="INCOGNITO" /> ಟ್ಯಾಬ್‌ಗಳು <ph name="FIRST_VISIBLE_TAB" /></translation>
 <translation id="8529767659511976195">ಹೊಸತು</translation>
@@ -597,6 +604,7 @@
 <translation id="9094033019050270033">ಪಾಸ್‌ವರ್ಡ್ ಅಪ್‌ಡೇಟ್ ಮಾಡು</translation>
 <translation id="9100610230175265781">ಪಾಸ್‌ಫ್ರೇಸ್ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="9148126808321036104">ಪುನಃ ಸೈನ್ ಇನ್  ಆಗಿ</translation>
+<translation id="9152539721251340337">QR ಕೋಡ್ ಅನ್ನು ರಚಿಸಿ</translation>
 <translation id="9157836665414082580">ಸಂವಾದಗಳನ್ನು ನಿಗ್ರಹಿಸಿ</translation>
 <translation id="9188680907066685419">ನಿರ್ವಹಿಸಲಾದ ಖಾತೆಯಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಿ</translation>
 <translation id="9203116392574189331">ಹ್ಯಾಂಡ್ಆಫ್</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index 01b086e..b9d885a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -168,6 +168,7 @@
 <translation id="3112556859945124369">അടയാളപ്പെടുത്തുക…</translation>
 <translation id="3153862085237805241">കാർഡ് സംരക്ഷിക്കുക</translation>
 <translation id="3157684681743766797">എല്ലാം അടയാളപ്പെടുത്തുക…</translation>
+<translation id="3161291298470460782">ഇത് നിങ്ങൾ സൈൻ ഔട്ട് ആകാനിടയാക്കുകയും സമന്വയിപ്പിക്കൽ ഓഫാക്കുകയും ചെയ്യും, ഒപ്പം ഉപകരണത്തിൽ നിന്ന് എല്ലാ Chrome ഡാറ്റയും മായ്ക്കും. നിങ്ങളുടെ സമന്വയിപ്പിച്ച ഡാറ്റ Google അക്കൗണ്ടിൽ നിലനിൽക്കും.</translation>
 <translation id="3175081911749765310">വെബ് സേവനങ്ങൾ</translation>
 <translation id="3178650076442119961">ഇന്ന് സജീവമായിരുന്നു</translation>
 <translation id="3207960819495026254">ബുക്ക്‌മാർക്കുചെയ്‌തു</translation>
@@ -200,6 +201,7 @@
 <translation id="3494788280727468875">ബ്രൗസിംഗ് ഡാറ്റ മായ്‌ക്കുന്നത് സ്ഥിരീകരിക്കുക</translation>
 <translation id="35083190962747987">${url} തുറക്കുക</translation>
 <translation id="3519193562722059437">വെബ് ബ്രൗസ് ചെയ്യാൻ ഒരു ടാബ് തുറക്കുക.</translation>
+<translation id="3523473570015918798">സൈൻ ഔട്ട് ചെയ്താൽ നിങ്ങളുടെ ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ, മറ്റ് Chrome ഡാറ്റ എന്നിവ ഇനി Google അക്കൗണ്ടിലേക്ക് സമന്വയിപ്പിക്കില്ല.</translation>
 <translation id="3527085408025491307">ഫോൾഡർ</translation>
 <translation id="3529024052484145543">സുരക്ഷിതമല്ല</translation>
 <translation id="3533202363250687977">എല്ലാ അദൃശ്യ ടാബുകളും അവസാനിപ്പിക്കുക</translation>
@@ -333,6 +335,7 @@
 <translation id="54401264925851789">പേജ് സുരക്ഷാ വിവരങ്ങൾ</translation>
 <translation id="5443952882982198570">ക്രെഡിറ്റ് കാർഡുകൾ</translation>
 <translation id="5457907402803865181">പാസ്‌വേഡുകൾ സമന്വയിപ്പിക്കുന്നതിൽ പിശക്.</translation>
+<translation id="5508435575041083207">ഈ ഉപകരണം സൈൻ ഔട്ട് ചെയ്ത് അതിലെ ഡാറ്റ മായ്ക്കുക</translation>
 <translation id="5525269841082836315">പാസ്‌ഫ്രെയ്‌സ് സൃഷ്‌ടിക്കുക</translation>
 <translation id="5548760955356983418">ഈ ഉപകരണത്തിൽ ഒരു വെബ്‌സൈറ്റ് ബ്രൗസ് ചെയ്യാൻ ആരംഭിച്ചതിനുശേഷം Mac-ൽ എളുപ്പത്തിൽ തുടരാൻ 'ഹാൻഡ്ഓഫ്' അനുവദിക്കുന്നു. നിലവിൽ തുറന്ന വെബ്‌സൈറ്റ് നിങ്ങളുടെ Mac-ന്റെ ഡോക്കിൽ ദൃശ്യമാകും.
 
@@ -506,6 +509,9 @@
 <translation id="766891008101699113">വെബ് സ്വകാര്യമായി ബ്രൗസ് ചെയ്യാൻ, ഒരു പുതിയ ടാബ് ചേർക്കുക.</translation>
 <translation id="7671141431838911305">ഇൻസ്റ്റാൾ ചെയ്യുക</translation>
 <translation id="7765158879357617694">നീക്കുക</translation>
+<translation id="7771470029643830783">സൈൻ ഔട്ട് ചെയ്താൽ നിങ്ങളുടെ ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ, മറ്റ് Chrome ഡാറ്റ എന്നിവ ഇനി Google അക്കൗണ്ടിലേക്ക് സമന്വയിപ്പിക്കില്ല.
+
+നിങ്ങളുടെ അക്കൗണ്ട് മാനേജ് ചെയ്യുന്നത് <ph name="HOSTED_DOMAIN" /> ആണെന്നതാണ് കാരണം, സൈൻ ഔട്ട് ചെയ്യുമ്പോൾ ഈ ഉപകരണത്തിൽ നിന്ന് നിങ്ങളുടെ Chrome ഡാറ്റ ഇല്ലാതാക്കപ്പെടും. നിങ്ങളുടെ സമന്വയിപ്പിച്ച ഡാറ്റ Google അക്കൗണ്ടിൽ നിലനിൽക്കും.</translation>
 <translation id="7772032839648071052">പാസ്ഫ്രേസ് സ്ഥിരീകരിക്കുക</translation>
 <translation id="7781011649027948662">പേജ് വിവർത്തനം ചെയ്യണോ?</translation>
 <translation id="7781829728241885113">ഇന്നലെ</translation>
@@ -555,6 +561,7 @@
 <translation id="8490978609246021741">മാറ്റങ്ങള്‍ സംരക്ഷിക്കുക</translation>
 <translation id="8503813439785031346">ഉപയോക്തൃനാമം</translation>
 <translation id="850600235656508448">ആൾമാറാട്ട മോഡിൽ തുറക്കുക</translation>
+<translation id="8510057420705599706">ഇത് നിങ്ങൾ സൈൻ ഔട്ട് ആകാനിടയാക്കുകയും സമന്വയിപ്പിക്കൽ ഓഫാക്കുകയും ചെയ്യും, എന്നാൽ നിങ്ങളുടെ ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ, മറ്റ് Chrome ഡാറ്റ എന്നിവ ഈ ഉപകരണത്തിൽ നിലനിൽക്കും.</translation>
 <translation id="8517375800490286174">ഓപ്പൺ സോഴ്‌സ് ലൈസൻസുകൾ</translation>
 <translation id="8524799873541103884"><ph name="NUMBER_OF_OPEN_TABS" />-ൽ <ph name="FIRST_VISIBLE_TAB" /> മുതൽ <ph name="LAST_VISIBLE_TAB" /> വരെയുള്ള <ph name="INCOGNITO" /> ആൾമാറാട്ട ടാബുകൾ</translation>
 <translation id="8529767659511976195">പുതിയത്</translation>
@@ -597,6 +604,7 @@
 <translation id="9094033019050270033">പാസ്‌വേഡ് അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
 <translation id="9100610230175265781">പാസ്‌ഫ്രെയ്‌സ് ആവശ്യമാണ്</translation>
 <translation id="9148126808321036104">വീണ്ടും പ്രവേശിക്കുക</translation>
+<translation id="9152539721251340337">QR കോഡ് സൃഷ്ടിക്കുക</translation>
 <translation id="9157836665414082580">ഡയലോഗുകൾ നിയന്ത്രിക്കുക</translation>
 <translation id="9188680907066685419">മാനേജ് ചെയ്‌ത അക്കൗണ്ടിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യുക</translation>
 <translation id="9203116392574189331">ഹാൻഡ്ഓഫ്</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index 0b8cb6c..779b655 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -168,6 +168,7 @@
 <translation id="3112556859945124369">चिन्हांकित करा…</translation>
 <translation id="3153862085237805241">कार्ड सेव्ह करा</translation>
 <translation id="3157684681743766797">सर्व चिन्हांकित करा…</translation>
+<translation id="3161291298470460782">हे या डिव्हाइसमधून तुम्हाला साइन आउट करेल, सिंक बंद करेल आणि सर्व Chrome डेटा साफ करेल. तुमचा सिंक केलेला डेटा तुमचे Google खाते यामध्ये राहील.</translation>
 <translation id="3175081911749765310">वेब सेवा</translation>
 <translation id="3178650076442119961">आज ॲक्टिव्ह होते</translation>
 <translation id="3207960819495026254">बुकमार्क केलेली</translation>
@@ -200,6 +201,7 @@
 <translation id="3494788280727468875">ब्राउझिंग डेटा साफ करता याची पुष्टी करा</translation>
 <translation id="35083190962747987">${url} उघडा</translation>
 <translation id="3519193562722059437">वेब ब्राउझ करण्‍यासाठी एक टॅब उघडा.</translation>
+<translation id="3523473570015918798">साइन आउट केल्याने तुमचे बुकमार्क, इतिहास, पासवर्ड आणि इतर Chrome डेटा यापुढे तुमचे Google खाते याच्याशी सिंक केला जाणार नाही.</translation>
 <translation id="3527085408025491307">फोल्डर</translation>
 <translation id="3529024052484145543">सुरक्षित नाही</translation>
 <translation id="3533202363250687977">सर्व गुप्त टॅब बंद करा</translation>
@@ -334,6 +336,7 @@
 <translation id="54401264925851789">पृष्‍ठ सुरक्षितता माहिती</translation>
 <translation id="5443952882982198570">क्रेडिट कार्ड</translation>
 <translation id="5457907402803865181">पासवर्ड सिंक करताना एरर आली.</translation>
+<translation id="5508435575041083207">या डिव्हाइसमधून साइन आउट करा आणि डेटा साफ करा</translation>
 <translation id="5525269841082836315">सांकेतिक पासफ्रेझ तयार करा</translation>
 <translation id="5548760955356983418">Handoff तुम्हाला या डिव्हाइसवर ब्राउझिंग प्रारंभ करू आणि त्यानंतर आपल्या Mac वर सहजपणे सुरू ठेऊ देते. वर्तमान उघडलेली वेबसाइट आपल्या Mac च्या डॉकवर दिसून येईल.
 
@@ -507,6 +510,9 @@
 <translation id="766891008101699113">वेब खाजगीरित्‍या ब्राउझ करण्यासाठी नवीन टॅब जोडा.</translation>
 <translation id="7671141431838911305">स्‍थापित करा</translation>
 <translation id="7765158879357617694">हलवा</translation>
+<translation id="7771470029643830783">साइन आउट केल्याने तुमचे बुकमार्क, इतिहास, पासवर्ड आणि इतर Chrome डेटा यापुढे तुमचे Google खाते याच्याशी सिंक केला जाणार नाही.
+
+तुमचे खाते <ph name="HOSTED_DOMAIN" /> द्वारे व्यवस्थापित केले जात असल्याने साइन आउट करताना या डिव्हाइसमधून तुमचा Chrome डेटा हटवला जाईल. तुमचा सिंक केलेला डेटा तुमचे Google खाते यामध्ये राहील.</translation>
 <translation id="7772032839648071052">सांकेतिक पासफ्रेझ निश्चित करा</translation>
 <translation id="7781011649027948662">पेजचे भाषांतर करायचे?</translation>
 <translation id="7781829728241885113">काल</translation>
@@ -556,6 +562,7 @@
 <translation id="8490978609246021741">बदल सेव्ह करा</translation>
 <translation id="8503813439785031346">वापरकर्तानाव</translation>
 <translation id="850600235656508448">गुप्त प्रकारात उघडा</translation>
+<translation id="8510057420705599706">हे तुम्हाला साइन आउट करेल आणि सिंक बंद करेल पण तुमचे बुकमार्क, इतिहास, पासवर्ड आणि इतर Chrome डेटा या डिव्हाइसवर राहील.</translation>
 <translation id="8517375800490286174">मुक्त स्रोत परवाने</translation>
 <translation id="8524799873541103884"><ph name="NUMBER_OF_OPEN_TABS" /> पैकी <ph name="LAST_VISIBLE_TAB" /> ते <ph name="FIRST_VISIBLE_TAB" /> <ph name="INCOGNITO" /> टॅब</translation>
 <translation id="8529767659511976195">नवीन</translation>
@@ -598,6 +605,7 @@
 <translation id="9094033019050270033">पासवर्ड अपडेट करा</translation>
 <translation id="9100610230175265781">सांकेतिक पासफ्रेझ आवश्यक</translation>
 <translation id="9148126808321036104">पुन्हा साइन इन करा </translation>
+<translation id="9152539721251340337">QR कोड तयार करा</translation>
 <translation id="9157836665414082580">संवाद दर्शवू नका</translation>
 <translation id="9188680907066685419">व्यवस्थापित केलेल्या खात्यामधून साइन आउट करा</translation>
 <translation id="9203116392574189331">Handoff</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index 99ae8b3..1d558a8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -168,7 +168,7 @@
 <translation id="3112556859945124369">Tandakan...</translation>
 <translation id="3153862085237805241">Simpan Kad</translation>
 <translation id="3157684681743766797">Tandakan Semua...</translation>
-<translation id="3161291298470460782">Tindakan ini akan mengelog anda keluar, mematikan penyegerakan dan memadamkan semua data Chrome daripada peranti ini. Data anda yang disegerakkan akan kekal disimpan dalam Akaun Google anda.</translation>
+<translation id="3161291298470460782">Tindakan ini akan membuatkan anda dilog keluar, mematikan penyegerakan dan mengosongkan semua data Chrome daripada peranti ini. Data anda yang disegerakkan akan kekal disimpan dalam Akaun Google anda.</translation>
 <translation id="3175081911749765310">Prkhdmtn Web</translation>
 <translation id="3178650076442119961">Aktif Hari Ini</translation>
 <translation id="3207960819495026254">Ditandai halaman</translation>
@@ -201,7 +201,7 @@
 <translation id="3494788280727468875">Sahkan Kosongkan Data Semakan Imbas.</translation>
 <translation id="35083190962747987">Buka ${url}</translation>
 <translation id="3519193562722059437">Buka tab untuk menyemak imbas web.</translation>
-<translation id="3523473570015918798">Dengan mengelog keluar, penanda halaman, sejarah, kata laluan dan data Chrome anda yang lain tidak akan disegerakkan ke Akaun Google anda lagi.</translation>
+<translation id="3523473570015918798">Apabila anda log keluar, penanda halaman, sejarah, kata laluan dan data Chrome anda yang lain tidak akan disegerakkan ke Akaun Google anda lagi.</translation>
 <translation id="3527085408025491307">Folder</translation>
 <translation id="3529024052484145543">Tidak selamat</translation>
 <translation id="3533202363250687977">Tutup Semua Tab Inkognito</translation>
@@ -509,7 +509,7 @@
 <translation id="766891008101699113">Untuk menyemak imbas web secara sulit, tambahkan tab baharu.</translation>
 <translation id="7671141431838911305">PASANG</translation>
 <translation id="7765158879357617694">Alih</translation>
-<translation id="7771470029643830783">Dengan mengelog keluar, penanda halaman, sejarah, kata laluan dan data Chrome anda yang lain tidak akan disegerakkan ke Akaun Google anda lagi.
+<translation id="7771470029643830783">Apabila anda log keluar, penanda halaman, sejarah, kata laluan dan data Chrome anda yang lain tidak akan disegerakkan ke Akaun Google anda lagi.
 
 Oleh sebab akaun anda diurus oleh <ph name="HOSTED_DOMAIN" />, data Chrome anda akan dipadamkan daripada peranti ini apabila anda log keluar. Data anda yang disegerakkan akan kekal disimpan dalam Akaun Google anda.</translation>
 <translation id="7772032839648071052">Sahkan frasa laluan</translation>
@@ -561,7 +561,7 @@
 <translation id="8490978609246021741">Simpan Perubahan</translation>
 <translation id="8503813439785031346">Nama pengguna</translation>
 <translation id="850600235656508448">Buka dalam Inkognito</translation>
-<translation id="8510057420705599706">Tindakan ini akan mengelog anda keluar dan mematikan penyegerakan, tetapi penanda halaman, sejarah, kata laluan dan data Chrome anda yang lain akan kekal disimpan pada peranti ini.</translation>
+<translation id="8510057420705599706">Tindakan ini akan membuatkan anda dilog keluar dan mematikan penyegerakan, tetapi penanda halaman, sejarah, kata laluan dan data Chrome anda yang lain akan kekal disimpan pada peranti ini.</translation>
 <translation id="8517375800490286174">Lesen Sumber Terbuka</translation>
 <translation id="8524799873541103884"><ph name="INCOGNITO" /> Tab <ph name="FIRST_VISIBLE_TAB" /> melalui <ph name="LAST_VISIBLE_TAB" /> daripada <ph name="NUMBER_OF_OPEN_TABS" /></translation>
 <translation id="8529767659511976195">Baharu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
index b05c82b..d365180 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -168,6 +168,7 @@
 <translation id="3112556859945124369">चिन्ह लगाउनुहोस्…</translation>
 <translation id="3153862085237805241">कार्ड सुरक्षित गर्नुहोस्</translation>
 <translation id="3157684681743766797">सबैलाई चिन्ह लगाउनुहोस्…</translation>
+<translation id="3161291298470460782">यस कार्यले तपाईंलाई साइन आउट गराउने छ, सिंक गर्ने सुविधा निष्क्रिय पार्ने छ र यो यन्त्रबाट Chrome को सबै डेटा मेटाउने छ। सिंक भएको तपाईंको डेटा तपाईंको Google खातामा रहिरहने छ।</translation>
 <translation id="3175081911749765310">वेब सेवाहरू</translation>
 <translation id="3178650076442119961">आज सक्रिय</translation>
 <translation id="3207960819495026254">बुकमार्क लगाइयो</translation>
@@ -200,6 +201,7 @@
 <translation id="3494788280727468875">ब्राउजिङको डेटा खाली गर्ने प्रक्रियाको पुष्टि गर्नुहोस्</translation>
 <translation id="35083190962747987">${url} खोल्नुहोस्</translation>
 <translation id="3519193562722059437">वेब ब्राउज गर्न एउटा ट्याब खोल्नुहोस्।</translation>
+<translation id="3523473570015918798">साइन आउट गरेपछि, तपाईंका पुस्तक चिन्ह, इतिहास, पासवर्ड र Chrome का अन्य डेटा तपाईंको Google खातासँग सिंक हुने छैनन्।</translation>
 <translation id="3527085408025491307">फोल्डर</translation>
 <translation id="3529024052484145543">सुरक्षित छैन</translation>
 <translation id="3533202363250687977">सबै इन्कोग्निटो ट्याबहरू बन्द गर्नुहोस्</translation>
@@ -333,6 +335,7 @@
 <translation id="54401264925851789">पृष्ठ सुरक्षा जानकारी</translation>
 <translation id="5443952882982198570">क्रेडिट कार्डहरू</translation>
 <translation id="5457907402803865181">पासवर्डहरू सिंक गर्ने क्रममा त्रुटि भयो।</translation>
+<translation id="5508435575041083207">साइन आउट गर्नुहोस् र यो यन्त्रमा भएका डेटा मेटाउनुहोस्</translation>
 <translation id="5525269841082836315">पासफ्रेज सिर्जना गर्नुहोस्</translation>
 <translation id="5548760955356983418">ह्यानडअफले तपाईंलाई यस यन्त्रमा ब्राउजिङ सुरु गर्न र तपाईंको Mac मा सजिलै जारी गर्न दिन्छ। हाल खोलिएको वेबसाइट तपाईंको Mac को डकमा प्रकट हुनेछ।
 
@@ -506,6 +509,9 @@
 <translation id="766891008101699113">निजी रूपमा वेब ब्राउज गर्न कुनै नयाँ ट्याब थप्नुहोस्।</translation>
 <translation id="7671141431838911305">स्थापना गर्नुहोस्</translation>
 <translation id="7765158879357617694">सार्नुहोस्</translation>
+<translation id="7771470029643830783">साइन आउट गरेपछि, तपाईंका पुस्तक चिन्ह, इतिहास, पासवर्ड र Chrome का अन्य डेटा तपाईंको Google खातासँग सिंक हुने छैनन्।
+
+तपाईंको खाता <ph name="HOSTED_DOMAIN" /> ले व्यवस्थापन गर्ने हुनाले साइन आउट गर्दा Chrome मा रहेको तपाईंको डेटा यो यन्त्रबाट मेटाइने छ। सिंक भएको तपाईंको डेटा तपाईंको Google खातामा रहिरहने छ।</translation>
 <translation id="7772032839648071052">पासफ्रेज पक्का</translation>
 <translation id="7781011649027948662">यो पृष्ठ अनुवाद गर्ने हो?</translation>
 <translation id="7781829728241885113">हिजो</translation>
@@ -555,6 +561,7 @@
 <translation id="8490978609246021741">परिवर्तनहरू सुरक्षित गर्नुहोस्</translation>
 <translation id="8503813439785031346">एक-पटके पाठ सन्देश</translation>
 <translation id="850600235656508448">इन्कोग्निटोमा खोल्नुहोस्</translation>
+<translation id="8510057420705599706">यस कार्यले तपाईंलाई साइन आउट गराउने छ र सिंक गर्ने सुविधा निष्क्रिय पार्ने छ तर तपाईंका पुस्तक चिन्ह, इतिहास, पासवर्ड र Chrome का अन्य डेटा भने यो यन्त्रमा रहिरहने छन्।</translation>
 <translation id="8517375800490286174">खुला स्रोतका इजाजतपत्रहरू</translation>
 <translation id="8524799873541103884"><ph name="INCOGNITO" /> ट्याबहरू <ph name="FIRST_VISIBLE_TAB" /> मार्फत <ph name="LAST_VISIBLE_TAB" /> को <ph name="NUMBER_OF_OPEN_TABS" /></translation>
 <translation id="8529767659511976195">नयाँ</translation>
@@ -597,6 +604,7 @@
 <translation id="9094033019050270033">पासवर्ड अद्यावधिक गर्नुहोस्</translation>
 <translation id="9100610230175265781">पासफ्रेज आवश्यक छ</translation>
 <translation id="9148126808321036104">पुन: साइन इन गर्नुहोस्</translation>
+<translation id="9152539721251340337">QR कोड सिर्जना गर्नुहोस्</translation>
 <translation id="9157836665414082580">संवादहरू रोक्नुहोस्</translation>
 <translation id="9188680907066685419">व्यवस्थापन गरिएको खाताबाट साइन आउट गर्ने</translation>
 <translation id="9203116392574189331">ह्यान्डअफ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb
index 8374ebd..0ffc4f1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_or.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -168,6 +168,7 @@
 <translation id="3112556859945124369">ଟିହ୍ନଟ କରନ୍ତୁ…</translation>
 <translation id="3153862085237805241">କାର୍ଡ ସେଭ୍ କରନ୍ତୁ</translation>
 <translation id="3157684681743766797">ସବୁ ଚିହ୍ନଟ କରନ୍ତୁ…</translation>
+<translation id="3161291298470460782">ଏହା ଆପଣଙ୍କୁ ସାଇନ୍ ଆଉଟ୍ କରିଦେବ, ସିଙ୍କକୁ ବନ୍ଦ କରିଦେବ ଏବଂ ଏହି ଡିଭାଇସରୁ ସମସ୍ତ Chrome ଡାଟା ଖାଲି କରିଦେବ। ଆପଣଙ୍କର ସିଙ୍କ୍ କରାଯାଇଥିବା ଡାଟା ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ରହିବ।</translation>
 <translation id="3175081911749765310">ୱେବ୍ ସେବାଗୁଡ଼ିକ</translation>
 <translation id="3178650076442119961">ଆଜି ସକ୍ରିୟ ଅଛି</translation>
 <translation id="3207960819495026254">ବୁକ୍‍ମାର୍କ କରାଯାଇଛି</translation>
@@ -200,6 +201,7 @@
 <translation id="3494788280727468875">ବ୍ରାଉଜିଂ ଡାଟା ଖାଲି କରିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation>
 <translation id="35083190962747987">${url} ଖୋଲନ୍ତୁ</translation>
 <translation id="3519193562722059437">ୱେବ୍‌ ବ୍ରାଉଜ୍‍ କରିବାକୁ ଏକ ଟାବ୍‌ ଖୋଲନ୍ତୁ।</translation>
+<translation id="3523473570015918798">ସାଇନ୍ ଆଉଟ୍ କରିବା ଦ୍ୱାରା, ଆପଣଙ୍କ ବୁକମାର୍କଗୁଡ଼ିକ, ଇତିହାସ, ପାସୱାର୍ଡଗୁଡ଼ିକ ଏବଂ ଅନ୍ୟ Chrome ଡାଟା ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ଆଉ ସିଙ୍କ୍ କରାଯିବ ନାହିଁ।</translation>
 <translation id="3527085408025491307">ଫୋଲ୍ଡର୍</translation>
 <translation id="3529024052484145543">ସୁରକ୍ଷିତ ନୁହେଁ</translation>
 <translation id="3533202363250687977">ସମସ୍ତ ଇନ୍‌କଗ୍‌ନିଟୋ ଟାବ୍‍ଗୁଡ଼ିକୁ ବନ୍ଦ କରନ୍ତୁ</translation>
@@ -331,6 +333,7 @@
 <translation id="54401264925851789">ପୃଷ୍ଠା ସୁରକ୍ଷା ସୂଚନା</translation>
 <translation id="5443952882982198570">କ୍ରେଡିଟ୍ କାର୍ଡ</translation>
 <translation id="5457907402803865181">ପାସ୍‌ୱାର୍ଡଗୁଡ଼ିକ ସିଙ୍କ୍ କରିବା ସମୟରେ ତ୍ରୁଟି।</translation>
+<translation id="5508435575041083207">ଏହି ଡିଭାଇସରୁ ସାଇନ୍ ଆଉଟ୍ କରି ଡାଟା ଖାଲି କରନ୍ତୁ</translation>
 <translation id="5525269841082836315">ପାସ୍‍‍ଫ୍ରେଜ୍ ତିଆରି କରନ୍ତୁ</translation>
 <translation id="5548760955356983418">Handoff, ଆପଣଙ୍କୁ ଏହି ଡିଭାଇସ୍‍‍ରେ ଗୋଟିଏ ୱେବ୍‍ସାଇଟ୍‍ ବ୍ରାଉଜ୍ କରିବା ଆରମ୍ଭ କରିବାକୁ ଦେଇଥାଏ ଏବଂ ତା’ପରେ ଏହାକୁ ଆପଣ ସହଜରେ ଆପଣଙ୍କର Macରେ ଜାରି ରଖିପାରିବେ। ବର୍ତ୍ତମାନ ଖୋଲାଯାଇଥିବା ୱେବ୍‍ସାଇଟ୍, ଆପଣଙ୍କ Macର Dockରେ ଦୃଶ୍ୟମାନ ହେବ।
 
@@ -504,6 +507,9 @@
 <translation id="766891008101699113">ୱେବ୍‌କୁ ବ୍ୟକ୍ତିଗତ ଭାବେ ବ୍ରାଉଜ୍‌ କରିବାକୁ, ଏକ ନୂଆ ଟାବ୍‌‍ ଯୋଗ କରନ୍ତୁ।</translation>
 <translation id="7671141431838911305">ଇନ୍‍ଷ୍ଟଲ୍ କରନ୍ତୁ</translation>
 <translation id="7765158879357617694">ନିଅନ୍ତୁ</translation>
+<translation id="7771470029643830783">ସାଇନ୍ ଆଉଟ୍ କରିବା ଦ୍ୱାରା, ଆପଣଙ୍କ ବୁକମାର୍କଗୁଡ଼ିକ, ଇତିହାସ, ପାସୱାର୍ଡଗୁଡ଼ିକ ଏବଂ ଅନ୍ୟ Chrome ଡାଟା ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ଆଉ ସିଙ୍କ୍ କରାଯିବ ନାହିଁ।
+
+ଆପଣଙ୍କ ଆକାଉଣ୍ଟ <ph name="HOSTED_DOMAIN" /> ଦ୍ୱାରା ପରିଚାଳିତ ହେଉଥିବା ଯୋଗୁଁ, ସାଇନ୍ ଆଉଟ୍ କରିବା ବେଳେ ଆପଣଙ୍କ Chrome ଡାଟା ଏହି ଡିଭାଇସରୁ ଡିଲିଟ୍ କରିଦିଆଯିବ। ଆପଣଙ୍କର ସିଙ୍କ୍ କରାଯାଇଥିବା ଡାଟା ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ରହିବ।</translation>
 <translation id="7772032839648071052">ପାସ୍‍‍ଫ୍ରେଜ୍ ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation>
 <translation id="7781011649027948662">ପୃଷ୍ଠାକୁ ଅନୁବାଦ କରିବେ?</translation>
 <translation id="7781829728241885113">ଗତକଲି</translation>
@@ -553,6 +559,7 @@
 <translation id="8490978609246021741">ପରିବର୍ତ୍ତନଗୁଡ଼ିକୁ ସେଭ୍ କରନ୍ତୁ</translation>
 <translation id="8503813439785031346">ଉପଯୋଗକର୍ତ୍ତାନାମ</translation>
 <translation id="850600235656508448">ଇନ୍‌କଗ୍ନିଟୋରେ ଖୋଲନ୍ତୁ</translation>
+<translation id="8510057420705599706">ଏହା ଆପଣଙ୍କୁ ସାଇନ୍ ଆଉଟ୍ କରିଦେବ, ସିଙ୍କକୁ ବନ୍ଦ କରିଦେବ, କିନ୍ତୁ ଆପଣଙ୍କର ବୁକମାର୍କଗୁଡ଼ିକ, ଇତିହାସ, ପାସୱାର୍ଡଗୁଡ଼ିକ ଏବଂ ଅନ୍ୟ Chrome ଡାଟା ଏହି ଡିଭାଇସରେ ରହିବ।</translation>
 <translation id="8517375800490286174">ମୁକ୍ତ ଉତ୍ସ ଲାଇସେନ୍ସ</translation>
 <translation id="8524799873541103884"><ph name="INCOGNITO" /> ଟାବ୍ <ph name="NUMBER_OF_OPEN_TABS" />ର <ph name="LAST_VISIBLE_TAB" /> ଜରିଆରେ <ph name="FIRST_VISIBLE_TAB" /></translation>
 <translation id="8529767659511976195">ନୂଆ</translation>
@@ -595,6 +602,7 @@
 <translation id="9094033019050270033">ପାସ୍‌ୱର୍ଡ ଅପ୍‌ଡେଟ୍ କରନ୍ତୁ</translation>
 <translation id="9100610230175265781">ପାସଫ୍ରେଜ୍ ଆବଶ୍ୟକ ଅଟେ</translation>
 <translation id="9148126808321036104">ପୁଣି ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation>
+<translation id="9152539721251340337">ଏକ QR କୋଡ୍ ତିଆରି କରନ୍ତୁ</translation>
 <translation id="9157836665414082580">ଡାୟଲଗ୍‍ ଦବେଇ ରଖନ୍ତୁ</translation>
 <translation id="9188680907066685419">ସମସ୍ତ ପରିଚାଳିତ ଆକାଉଣ୍ଟରୁ ସାଇନ୍ ଆଉଟ୍ କରନ୍ତୁ</translation>
 <translation id="9203116392574189331">ଦାଇତ୍ୱ ଦିଅନ୍ତୁ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
index 5365ce1..e314bcd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -168,6 +168,7 @@
 <translation id="3112556859945124369">ਨਿਸ਼ਾਨਦੇਹੀ ਕਰੋ…</translation>
 <translation id="3153862085237805241">ਕਾਰਡ ਰੱਖਿਅਤ ਕਰੋ</translation>
 <translation id="3157684681743766797">ਸਭ ਨਿਸ਼ਾਨਦੇਹ ਕਰੋ…</translation>
+<translation id="3161291298470460782">ਇੰਝ ਕਰਨ ਨਾਲ ਤੁਸੀਂ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਸਾਈਨ-ਆਊਟ ਹੋ ਜਾਵੋਗੇ, ਸਮਕਾਲੀਕਰਨ ਬੰਦ ਹੋ ਜਾਵੇਗਾ ਅਤੇ ਸਾਰਾ Chrome ਡਾਟਾ ਕਲੀਅਰ ਹੋ ਜਾਵੇਗਾ। ਤੁਹਾਡਾ ਸਮਕਾਲੀਕਿਰਤ ਡਾਟਾ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਬਰਕਰਾਰ ਰਹੇਗਾ।</translation>
 <translation id="3175081911749765310">ਵੈਬ ਸੇਵਾਵਾਂ</translation>
 <translation id="3178650076442119961">ਅੱਜ ਕਿਰਿਆਸ਼ੀਲ</translation>
 <translation id="3207960819495026254">ਬੁੱਕਮਾਰਕ ਕੀਤੇ</translation>
@@ -200,6 +201,7 @@
 <translation id="3494788280727468875">ਬ੍ਰਾਊਜ਼ਿੰਗ ਡਾਟੇ ਨੂੰ ਕਲੀਅਰ ਕਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
 <translation id="35083190962747987">${url} ਖੋਲ੍ਹੋ</translation>
 <translation id="3519193562722059437">ਵੈੱਬ ਬ੍ਰਾਊਜ਼ ਕਰਨ ਲਈ ਇੱਕ ਟੈਬ ਖੋਲ੍ਹੋ।</translation>
+<translation id="3523473570015918798">ਸਾਈਨ-ਆਊਟ ਕਰਨ ਨਾਲ, ਤੁਹਾਡੇ ਬੁੱਕਮਾਰਕਾਂ, ਇਤਿਹਾਸ, ਪਾਸਵਰਡਾਂ ਅਤੇ ਹੋਰ Chrome ਡਾਟੇ ਦਾ ਹੁਣ ਤੁਹਾਡੇ Google ਖਾਤੇ ਨਾਲ ਸਮਕਾਲੀਕਰਨ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ।</translation>
 <translation id="3527085408025491307">ਫੋਲਡਰ</translation>
 <translation id="3529024052484145543">ਸੁਰੱਖਿਅਤ ਨਹੀਂ</translation>
 <translation id="3533202363250687977">ਸਾਰੀਆਂ ਇਨਕੋਗਨਿਟੋ ਟੈਬਾਂ ਨੂੰ ਬੰਦ ਕਰੋ</translation>
@@ -333,6 +335,7 @@
 <translation id="54401264925851789">ਸਫ਼ਾ ਸੁਰੱਖਿਆ ਜਾਣਕਾਰੀ</translation>
 <translation id="5443952882982198570">ਕ੍ਰੈਡਿਟ ਕਾਰਡ</translation>
 <translation id="5457907402803865181">ਪਾਸਵਰਡਾਂ ਦਾ ਸਮਕਾਲੀਕਰਨ ਕਰਨ ਵੇਲੇ ਗੜਬੜ ਹੋਈ।</translation>
+<translation id="5508435575041083207">ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਸਾਈਨ-ਆਊਟ ਕਰੋ ਅਤੇ ਡਾਟਾ ਕਲੀਅਰ ਕਰੋ</translation>
 <translation id="5525269841082836315">ਪਾਸਫਰੇਜ਼ ਬਣਾਓ</translation>
 <translation id="5548760955356983418">Handoff ਤੁਹਾਨੂੰ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਵੈੱਬਸਾਈਟ ਬ੍ਰਾਊਜ਼ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰਨ ਅਤੇ ਫਿਰ ਆਸਾਨੀ ਨਾਲ ਤੁਹਾਡੇ Mac 'ਤੇ ਜਾਰੀ ਰੱਖਣ ਦਿੰਦਾ ਹੈ। ਮੌਜੂਦਾ ਖੁੱਲ੍ਹੀ ਵੈੱਬਸਾਈਟ ਤੁਹਾਡੇ Mac ਦੇ 'ਡੌਕ' ਵਿੱਚ ਦਿਖਾਈ ਦੇਵੇਗੀ।
 
@@ -506,6 +509,9 @@
 <translation id="766891008101699113">ਨਿੱਜੀ ਤੌਰ 'ਤੇ ਵੈੱਬ ਨੂੰ ਬ੍ਰਾਊਜ਼ ਕਰਨ ਲਈ, ਇੱਕ ਨਵੀਂ ਟੈਬ ਸ਼ਾਮਲ ਕਰੋ।</translation>
 <translation id="7671141431838911305">ਸਥਾਪਤ ਕਰੋ</translation>
 <translation id="7765158879357617694">ਮੂਵ ਕਰੋ</translation>
+<translation id="7771470029643830783">ਸਾਈਨ-ਆਊਟ ਕਰਨ ਨਾਲ, ਤੁਹਾਡੇ ਬੁੱਕਮਾਰਕਾਂ, ਇਤਿਹਾਸ, ਪਾਸਵਰਡਾਂ ਅਤੇ ਹੋਰ Chrome ਡਾਟੇ ਦਾ ਹੁਣ ਤੁਹਾਡੇ Google ਖਾਤੇ ਨਾਲ ਸਮਕਾਲੀਕਰਨ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ।
+
+ਕਿਉਂਕਿ ਤੁਹਾਡੇ ਖਾਤੇ ਦਾ ਪ੍ਰਬੰਧਨ <ph name="HOSTED_DOMAIN" /> ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਸਾਈਨ-ਆਊਟ ਕਰਨ 'ਤੇ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਤੁਹਾਡਾ Chrome ਡਾਟਾ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਤੁਹਾਡਾ ਸਮਕਾਲੀਕਿਰਤ ਡਾਟਾ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਬਰਕਰਾਰ ਰਹੇਗਾ।</translation>
 <translation id="7772032839648071052">ਪਾਸਫਰੇਜ਼ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
 <translation id="7781011649027948662">ਕੀ ਪੰਨੇ ਦਾ ਅਨੁਵਾਦ ਕਰਨਾ ਹੈ?</translation>
 <translation id="7781829728241885113">ਕੱਲ੍ਹ</translation>
@@ -555,6 +561,7 @@
 <translation id="8490978609246021741">ਤਬਦੀਲੀਆਂ ਰੱਖਿਅਤ ਕਰੋ</translation>
 <translation id="8503813439785031346">ਵਰਤੋਂਕਾਰ ਨਾਮ</translation>
 <translation id="850600235656508448">ਇਨਕੋਗਨਿਟੋ ਵਿੱਚ ਖੋਲ੍ਹੋ</translation>
+<translation id="8510057420705599706">ਇੰਝ ਕਰਨ ਨਾਲ ਤੁਸੀਂ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਸਾਈਨ-ਆਊਟ ਹੋ ਜਾਵੋਗੇ, ਸਮਕਾਲੀਕਰਨ ਬੰਦ ਹੋ ਜਾਵੇਗਾ ਪਰ ਤੁਹਾਡੇ ਬੁੱਕਮਾਰਕ, ਇਤਿਹਾਸ, ਪਾਸਵਰਡ ਅਤੇ ਹੋਰ Chrome ਡਾਟਾ ਬਰਕਰਾਰ ਰਹੇਗਾ।</translation>
 <translation id="8517375800490286174">ਖੁੱਲ੍ਹਾ ਸਰੋਤ ਲਾਇਸੰਸ</translation>
 <translation id="8524799873541103884"><ph name="INCOGNITO" /> <ph name="NUMBER_OF_OPEN_TABS" /> ਵਿੱਚੋਂ <ph name="LAST_VISIBLE_TAB" /> ਰਾਹੀਂ ਟੈਬਸ <ph name="FIRST_VISIBLE_TAB" /></translation>
 <translation id="8529767659511976195">ਨਵਾਂ</translation>
@@ -597,6 +604,7 @@
 <translation id="9094033019050270033">ਪਾਸਵਰਡ ਅੱਪਡੇਟ ਕਰੋ</translation>
 <translation id="9100610230175265781">ਪਾਸਫਰੇਜ਼ ਲੋੜੀਂਦਾ</translation>
 <translation id="9148126808321036104">ਦੁਬਾਰਾ ਸਾਈਨ-ਇਨ ਕਰੋ</translation>
+<translation id="9152539721251340337">QR ਕੋਡ ਬਣਾਓ</translation>
 <translation id="9157836665414082580">ਡਾਇਲੌਗਾਂ ਨੂੰ ਰੋਕੋ</translation>
 <translation id="9188680907066685419">ਪ੍ਰਬੰਧਿਤ ਖਾਤੇ ਤੋਂ ਸਾਈਨ-ਆਊਟ ਕਰੋ</translation>
 <translation id="9203116392574189331">ਹੈਂਡਔਫ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index 87ea889a..44d328f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -168,6 +168,7 @@
 <translation id="3112556859945124369">குறி…</translation>
 <translation id="3153862085237805241">கார்டைச் சேமிக்கும்</translation>
 <translation id="3157684681743766797">அனைத்தையும் குறி…</translation>
+<translation id="3161291298470460782">இதைச் செய்தால் வெளியேற்றப்படுவீர்கள், ஒத்திசைவு முடக்கப்படும், இந்தச் சாதனத்திலிருந்து Chrome தரவு அனைத்தும் அழிக்கப்படும். ஏற்கெனவே ஒத்திசைக்கப்பட்ட தரவு தொடர்ந்து உங்கள் Google கணக்கிலேயே இருக்கும்.</translation>
 <translation id="3175081911749765310">இணைய சேவைகள்</translation>
 <translation id="3178650076442119961">இன்று பயன்படுத்தியுள்ளார்</translation>
 <translation id="3207960819495026254">புக்மார்க் செய்யப்பட்டது</translation>
@@ -200,6 +201,7 @@
 <translation id="3494788280727468875">உலாவிய தரவை அழிப்பதை உறுதிப்படுத்துக</translation>
 <translation id="35083190962747987">${url} ஐத் திற</translation>
 <translation id="3519193562722059437">வலையில் உலாவ ஒரு தாவலைத் திறக்கவும்.</translation>
+<translation id="3523473570015918798">வெளியேறினால் உங்கள் புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள், பிற Chrome தரவு ஆகியவை இனி உங்கள் Google கணக்குடன் ஒத்திசைக்கப்படாது.</translation>
 <translation id="3527085408025491307">கோப்புறை</translation>
 <translation id="3529024052484145543">பாதுகாப்பற்றது</translation>
 <translation id="3533202363250687977">எல்லா மறைநிலைத் தாவல்களையும் மூடு</translation>
@@ -333,6 +335,7 @@
 <translation id="54401264925851789">பக்க பாதுகாப்புத் தகவல்</translation>
 <translation id="5443952882982198570">கிரெடிட் கார்டுகள்</translation>
 <translation id="5457907402803865181">கடவுச்சொற்களை ஒத்திசைப்பதில் பிழை.</translation>
+<translation id="5508435575041083207">வெளியேறு &amp; இந்தச் சாதனத்திலிருந்து தரவை அழி</translation>
 <translation id="5525269841082836315">கடவுச்சொற்றொடரை உருவாக்கவும்</translation>
 <translation id="5548760955356983418">ஹேண்ட்ஆஃப் இந்தச் சாதனத்தில் ஒரு இணையதளத்தில் உலாவத் தொடங்கி, அதே தளத்தில், Macகில் தொடர்ந்து எளிதாக உலாவ அனுமதிக்கிறது. தற்போது திறந்து வைத்திருக்கும் இணையதளம், உங்கள் Macகின் ஐகான்கள் பட்டியலில் காட்டப்படும்.
 
@@ -506,6 +509,9 @@
 <translation id="766891008101699113">புதிய தாவலைச் சேர்த்து, தனிப்பட்ட முறையில் இணையத்தை உலாவலாம்.</translation>
 <translation id="7671141431838911305">நிறுவு</translation>
 <translation id="7765158879357617694">நகர்த்து</translation>
+<translation id="7771470029643830783">வெளியேறினால் உங்கள் புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள், பிற Chrome தரவு ஆகியவை இனி உங்கள் Google கணக்குடன் ஒத்திசைக்கப்படாது.
+
+உங்கள் கணக்கை <ph name="HOSTED_DOMAIN" /> நிர்வகிப்பதால், இந்தச் சாதனத்திலிருந்து வெளியேறும்போது உங்கள் Chrome தரவு நீக்கப்படும். ஏற்கெனவே ஒத்திசைக்கப்பட்ட தரவு தொடர்ந்து உங்கள் Google கணக்கிலேயே இருக்கும்.</translation>
 <translation id="7772032839648071052">கடவுச்சொற்றொடரை உறுதி செய்க</translation>
 <translation id="7781011649027948662">பக்கத்தை மொழிபெயர்க்கவா?</translation>
 <translation id="7781829728241885113">நேற்று</translation>
@@ -555,6 +561,7 @@
 <translation id="8490978609246021741">மாற்றங்களைச் சேமி</translation>
 <translation id="8503813439785031346">பயனர்பெயர்</translation>
 <translation id="850600235656508448">மறைநிலையில் திற</translation>
+<translation id="8510057420705599706">இதைச் செய்தால் வெளியேற்றப்படுவீர்கள், ஒத்திசைவு முடக்கப்படும். ஆனால் உங்கள் புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள், பிற Chrome தரவு ஆகியவை தொடர்ந்து இந்தச் சாதனத்திலேயே இருக்கும்.</translation>
 <translation id="8517375800490286174">ஓப்பன் சோர்ஸ் உரிமங்கள்</translation>
 <translation id="8524799873541103884"><ph name="INCOGNITO" /> தாவல்கள்: <ph name="NUMBER_OF_OPEN_TABS" /> இல் <ph name="FIRST_VISIBLE_TAB" /> முதல் <ph name="LAST_VISIBLE_TAB" /> வரை</translation>
 <translation id="8529767659511976195">புதிது</translation>
@@ -597,6 +604,7 @@
 <translation id="9094033019050270033">கடவுச்சொல்லைப் புதுப்பி</translation>
 <translation id="9100610230175265781">கடவுச்சொற்றொடர் தேவை</translation>
 <translation id="9148126808321036104">மீண்டும் உள்நுழைக</translation>
+<translation id="9152539721251340337">QR குறியீட்டை உருவாக்கு</translation>
 <translation id="9157836665414082580">உரையாடல்களை மறை</translation>
 <translation id="9188680907066685419">நிர்வகிக்கப்படும் கணக்கிலிருந்து வெளியேறு</translation>
 <translation id="9203116392574189331">ஹேண்ட்ஆஃப்</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index 7722cf37..7a9c49a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -168,6 +168,7 @@
 <translation id="3112556859945124369">గుర్తు పెట్టు…</translation>
 <translation id="3153862085237805241">కార్డ్‌ను సేవ్ చేయండి</translation>
 <translation id="3157684681743766797">అన్నీ గుర్తు పెట్టు…</translation>
+<translation id="3161291298470460782">ఇది మిమ్మల్ని సైన్ అవుట్ చేస్తుంది, సింక్‌ను ఆఫ్ చేస్తుంది, ఈ పరికరం నుండి మొత్తం Chrome డేటాను క్లియర్ చేస్తుంది. మీ సింక్ చేయబడిన డేటా మీ Google ఖాతాలోనే ఉండిపోతుంది.</translation>
 <translation id="3175081911749765310">వెబ్ సేవలు</translation>
 <translation id="3178650076442119961">ఈ రోజు యాక్టివ్‌గా ఉంది</translation>
 <translation id="3207960819495026254">బుక్‌మార్క్ చేయబడింది</translation>
@@ -200,6 +201,7 @@
 <translation id="3494788280727468875">బ్రౌజింగ్ డేటాను తీసివేయడాన్ని నిర్ధారించు</translation>
 <translation id="35083190962747987">${url}ని తెరవండి</translation>
 <translation id="3519193562722059437">వెబ్‌ను బ్రౌజ్ చేయడానికి ట్యాబ్‌ను తెరవండి.</translation>
+<translation id="3523473570015918798">సైన్ అవుట్ చేయడం ద్వారా, మీ బుక్‌మార్క్‌లు, చరిత్ర, పాస్‌వర్డ్‌లు, ఇతర Chrome డేటా ఇకపై మీ Google ఖాతాలో సింక్ చేయబడదు.</translation>
 <translation id="3527085408025491307">ఫోల్డర్</translation>
 <translation id="3529024052484145543">సురక్షితం కాదు</translation>
 <translation id="3533202363250687977">అజ్ఞాత ట్యాబ్‌లన్నీ మూసివేయి</translation>
@@ -333,6 +335,7 @@
 <translation id="54401264925851789">పేజీ భద్రతా సమాచారం</translation>
 <translation id="5443952882982198570">క్రెడిట్ కార్డ్‌లు</translation>
 <translation id="5457907402803865181">పాస్‌వర్డ్‌లను సింక్ చేయడంలో ఎర్రర్ ఏర్పడింది.</translation>
+<translation id="5508435575041083207">సైన్ అవుట్ చేసి, ఈ పరికరం నుండి డేటాను క్లియర్ చేయండి</translation>
 <translation id="5525269841082836315">రహస్య పదబంధాన్ని సృష్టించండి</translation>
 <translation id="5548760955356983418">ఈ పరికరంలో వెబ్‌సైట్‌ను బ్రౌజ్ చేయడాన్ని ప్రారంభించి, ఆ తర్వాత దాన్ని మీ Macలో సులభంగా కొనసాగించడానికి హ్యాండ్‌ఆఫ్ మిమ్మల్ని అనుమతిస్తుంది. ప్రస్తుతం తెరిచిన వెబ్‌సైట్ మీ Mac డాక్‌లో కనిపిస్తుంది.
 
@@ -506,6 +509,9 @@
 <translation id="766891008101699113">వెబ్‌ను ప్రైవేట్‌గా బ్రౌజ్ చేయడానికి, కొత్త ట్యాబ్‌ను జోడించండి.</translation>
 <translation id="7671141431838911305">ఇన్‌స్టాల్ చేయి</translation>
 <translation id="7765158879357617694">తరలించు</translation>
+<translation id="7771470029643830783">సైన్ అవుట్ చేయడం ద్వారా, మీ బుక్‌మార్క్‌లు, చరిత్ర, పాస్‌వర్డ్‌లు, ఇతర Chrome డేటా ఇకపై మీ Google ఖాతాలో సింక్ చేయబడదు.
+
+మీ ఖాతా <ph name="HOSTED_DOMAIN" /> ద్వారా మేనేజ్ చేయబడుతోంది కాబట్టి, సైన్ అవుట్ చేసినప్పుడు, ఈ పరికరం నుండి మీ Chrome డేటా తొలగించబడుతుంది. మీ సింక్ చేయబడిన డేటా మీ Google ఖాతాలోనే ఉండిపోతుంది.</translation>
 <translation id="7772032839648071052">రహస్య పదబంధాన్ని నిర్ధారించండి</translation>
 <translation id="7781011649027948662">పేజీని అనువాదం చేయాలా?</translation>
 <translation id="7781829728241885113">నిన్న</translation>
@@ -555,6 +561,7 @@
 <translation id="8490978609246021741">మార్పులను సేవ్ చేయి</translation>
 <translation id="8503813439785031346">యూజర్‌పేరు</translation>
 <translation id="850600235656508448">అజ్ఞాతంలో తెరువు</translation>
+<translation id="8510057420705599706">ఇది మిమ్మల్ని సైన్ అవుట్ చేస్తుంది, సింక్‌ను ఆఫ్ చేస్తుంది, కానీ మీ బుక్‌మార్క్‌లు, చరిత్ర, పాస్‌వర్డ్‌లు, ఇతర Chrome డేటా ఈ పరికరంలోనే ఉండిపోతాయి.</translation>
 <translation id="8517375800490286174">ఓపెన్ సోర్స్ లైసెన్స్‌లు</translation>
 <translation id="8524799873541103884"><ph name="NUMBER_OF_OPEN_TABS" />లో <ph name="FIRST_VISIBLE_TAB" /> నుండి <ph name="LAST_VISIBLE_TAB" /> వరకు <ph name="INCOGNITO" /> ట్యాబ్‌లు</translation>
 <translation id="8529767659511976195">కొత్తది</translation>
@@ -597,6 +604,7 @@
 <translation id="9094033019050270033">పాస్‌వర్డ్‌ను అప్‌డేట్ చేయి</translation>
 <translation id="9100610230175265781">రహస్య పదబంధం అవసరం</translation>
 <translation id="9148126808321036104">మళ్ళీ సైన్ ఇన్ చేయండి</translation>
+<translation id="9152539721251340337">ఒక QR కోడ్‌ను సృష్టించండి</translation>
 <translation id="9157836665414082580">డైలాగ్‌లను కుదించు</translation>
 <translation id="9188680907066685419">నిర్వహిత ఖాతా నుండి సైన్ అవుట్ చేయండి</translation>
 <translation id="9203116392574189331">హ్యాండ్ఆఫ్</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index 4693052..47fb189 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -83,7 +83,7 @@
 <translation id="1952172573699511566">เมื่อเป็นไปได้ เว็บไซต์จะแสดงในภาษาที่คุณต้องการ</translation>
 <translation id="1952728750904661634">ลงชื่อเข้าใช้ด้วยบัญชีที่มีการจัดการ</translation>
 <translation id="1974060860693918893">ขั้นสูง</translation>
-<translation id="1989112275319619282">เล่นเน็ต</translation>
+<translation id="1989112275319619282">เปิดดู</translation>
 <translation id="2015722694326466240">หากต้องการดูรหัสผ่าน คุณต้องตั้งพาสโค้ดในอุปกรณ์ก่อน</translation>
 <translation id="2073572773299281212">ใช้งานเมื่อ <ph name="DAYS" /> วันที่ผ่านมา</translation>
 <translation id="2074131957428911366">คุณเลือกสิ่งที่ต้องการซิงค์ได้เสมอใน<ph name="BEGIN_LINK" />การตั้งค่า<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/browser/crash_report/crash_report_helper.mm b/ios/chrome/browser/crash_report/crash_report_helper.mm
index 2c99d59..db7102f 100644
--- a/ios/chrome/browser/crash_report/crash_report_helper.mm
+++ b/ios/chrome/browser/crash_report/crash_report_helper.mm
@@ -41,7 +41,7 @@
 namespace breakpad {
 // IMPORTANT: be careful if ever increasing this value, Breakpad reports have an
 // overall size limit
-const int kBreadcrumbsKeyCount = 6;
+const int kBreadcrumbsKeyCount = 1;
 }
 
 // WebStateListObserver that allows loaded urls to be sent to the crash server.
diff --git a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.h b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.h
index e213d1310..c1b5ed0c 100644
--- a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.h
+++ b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.h
@@ -27,6 +27,9 @@
 // Number of product data keys to use for breadcrumbs.
 @property(nonatomic) NSUInteger breadcrumbsKeyCount;
 
+// Maximum allowed length for a single product data value.
+@property(nonatomic) NSUInteger maxProductDataLength;
+
 // Starts collecting breadcrumb events logged to |breadcrumbManager|.
 - (void)observeBreadcrumbManager:(BreadcrumbManager*)breadcrumbManager;
 
diff --git a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.mm b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.mm
index 333fbbaf5b..edec978 100644
--- a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.mm
+++ b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer.mm
@@ -12,8 +12,6 @@
 #error "This file requires ARC support."
 #endif
 
-const int kMaxProductDataLength = 255;
-
 @interface CrashReporterBreadcrumbObserver () {
   // Map associating the observed BreadcrumbManager with the corresponding
   // observer bridge instances.
@@ -44,6 +42,7 @@
 - (instancetype)init {
   if ((self = [super init])) {
     _breadcrumbs = [[NSMutableString alloc] init];
+    _maxProductDataLength = 1530U;  // 6 keys * 255 bytes/key
   }
   return self;
 }
@@ -82,7 +81,7 @@
   [_breadcrumbs insertString:eventWithSeperator atIndex:0];
 
   NSUInteger maxBreadcrumbsLength =
-      self.breadcrumbsKeyCount * kMaxProductDataLength;
+      self.breadcrumbsKeyCount * self.maxProductDataLength;
   if (_breadcrumbs.length > maxBreadcrumbsLength) {
     NSRange trimRange = NSMakeRange(maxBreadcrumbsLength,
                                     _breadcrumbs.length - maxBreadcrumbsLength);
@@ -93,11 +92,11 @@
   NSMutableArray* breadcrumbs =
       [[NSMutableArray alloc] initWithCapacity:self.breadcrumbsKeyCount];
   for (NSUInteger i = 0; i < self.breadcrumbsKeyCount &&
-                         (i * kMaxProductDataLength) < _breadcrumbs.length;
+                         (i * self.maxProductDataLength) < _breadcrumbs.length;
        i++) {
-    NSUInteger location = i * kMaxProductDataLength;
-    NSRange range = NSMakeRange(
-        location, MIN(kMaxProductDataLength, _breadcrumbs.length - location));
+    NSUInteger location = i * self.maxProductDataLength;
+    NSRange range = NSMakeRange(location, MIN(self.maxProductDataLength,
+                                              _breadcrumbs.length - location));
     [breadcrumbs addObject:[_breadcrumbs substringWithRange:range]];
   }
   breakpad_helper::SetBreadcrumbEvents(breadcrumbs);
diff --git a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer_unittest.mm b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer_unittest.mm
index cd539563..f6f7510 100644
--- a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer_unittest.mm
+++ b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer_unittest.mm
@@ -137,14 +137,17 @@
           chrome_browser_state_.get());
   CrashReporterBreadcrumbObserver* crash_reporter_breadcrumb_observer =
       [[CrashReporterBreadcrumbObserver alloc] init];
-  crash_reporter_breadcrumb_observer.breadcrumbsKeyCount =
-      breakpad::kBreadcrumbsKeyCount;
+  crash_reporter_breadcrumb_observer.breadcrumbsKeyCount = 2;
+
+  const int max_product_data_length = 255;
+  crash_reporter_breadcrumb_observer.maxProductDataLength =
+      max_product_data_length;
   [crash_reporter_breadcrumb_observer
       observeBreadcrumbManagerService:breadcrumb_service];
 
   int time_size = strlen("00:00 ");
   int linebreak_size = strlen("\n");
-  int breadcrumb_size = kMaxProductDataLength - time_size - linebreak_size;
+  int breadcrumb_size = max_product_data_length - time_size - linebreak_size;
   std::string value1 = base::StringPrintf("%0*d", breadcrumb_size, 1);
   id validation_block1 = [OCMArg checkWithBlock:^(id value) {
     EXPECT_NSEQ(
@@ -186,12 +189,16 @@
       [[CrashReporterBreadcrumbObserver alloc] init];
   // Testing with 2 keys requires less code and complexity.
   crash_reporter_breadcrumb_observer.breadcrumbsKeyCount = 2;
+
+  const int max_product_data_length = 255;
+  crash_reporter_breadcrumb_observer.maxProductDataLength =
+      max_product_data_length;
   [crash_reporter_breadcrumb_observer
       observeBreadcrumbManagerService:breadcrumb_service];
 
   int time_size = strlen("00:00 ");
   int linebreak_size = strlen("\n");
-  int breadcrumb_size = kMaxProductDataLength - time_size - linebreak_size;
+  int breadcrumb_size = max_product_data_length - time_size - linebreak_size;
   std::string value1 = base::StringPrintf("%0*d", breadcrumb_size, 1);
   id validation_block1 = [OCMArg checkWithBlock:^(id value) {
     EXPECT_NSEQ(
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index e61fd66..3fdf4b6f 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -590,6 +590,12 @@
     {"qr-code-generation", flag_descriptions::kQRCodeGenerationName,
      flag_descriptions::kQRCodeGenerationDescription, flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(kQRCodeGeneration)},
+    {"autofill-enable-surfacing-server-card-nickname",
+     flag_descriptions::kAutofillEnableSurfacingServerCardNicknameName,
+     flag_descriptions::kAutofillEnableSurfacingServerCardNicknameDescription,
+     flags_ui::kOsIos,
+     FEATURE_VALUE_TYPE(
+         autofill::features::kAutofillEnableSurfacingServerCardNickname)},
 };
 
 // Add all switches from experimental flags to |command_line|.
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
index 24347d7..5dd8541 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -28,6 +28,12 @@
 const char kAutofillEnableCompanyNameDescription[] =
     "When enabled, Company Name fields will be auto filled";
 
+const char kAutofillEnableSurfacingServerCardNicknameName[] =
+    "Enable surfacing masked server card nicknames";
+const char kAutofillEnableSurfacingServerCardNicknameDescription[] =
+    "When enabled, if Google Payments cards were given nicknames in a Google "
+    "Pay app, Autofill will surface these nicknames in suggestions.";
+
 const char kAutofillEnforceMinRequiredFieldsForHeuristicsName[] =
     "Autofill Enforce Min Required Fields For Heuristics";
 const char kAutofillEnforceMinRequiredFieldsForHeuristicsDescription[] =
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
index 9cdcf64..286fa510 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -21,6 +21,10 @@
 extern const char kAutofillEnableCompanyNameName[];
 extern const char kAutofillEnableCompanyNameDescription[];
 
+// Title and description for the flag to control surfacing server card nickname.
+extern const char kAutofillEnableSurfacingServerCardNicknameName[];
+extern const char kAutofillEnableSurfacingServerCardNicknameDescription[];
+
 // Enforcing restrictions to enable/disable autofill small form support.
 extern const char kAutofillEnforceMinRequiredFieldsForHeuristicsName[];
 extern const char kAutofillEnforceMinRequiredFieldsForHeuristicsDescription[];
diff --git a/ios/chrome/browser/overlays/overlay_presenter_impl.mm b/ios/chrome/browser/overlays/overlay_presenter_impl.mm
index 941a082..c430d7f 100644
--- a/ios/chrome/browser/overlays/overlay_presenter_impl.mm
+++ b/ios/chrome/browser/overlays/overlay_presenter_impl.mm
@@ -331,6 +331,7 @@
   }
   web_state_list_->RemoveObserver(this);
   web_state_list_ = nullptr;
+  removed_request_awaiting_dismissal_ = nullptr;
   browser->RemoveObserver(this);
 }
 
@@ -399,7 +400,7 @@
   // Hide the presented overlay UI if the presentation context is transitioning
   // to a state where that UI is not supported.
   OverlayRequest* request = GetActiveRequest();
-  if (presenting_ &&
+  if (request && presenting_ &&
       !presentation_context->CanShowUIForRequest(request, capabilities)) {
     presentation_context_->HideOverlayUI(GetActiveRequest());
   }
diff --git a/ios/chrome/browser/policy/BUILD.gn b/ios/chrome/browser/policy/BUILD.gn
index 0791319..ca4f7bd 100644
--- a/ios/chrome/browser/policy/BUILD.gn
+++ b/ios/chrome/browser/policy/BUILD.gn
@@ -106,6 +106,7 @@
 
   deps = [
     "//base",
+    "//components/password_manager/core/common",
     "//components/policy:generated",
     "//components/policy/core/common:common_constants",
     "//components/strings",
diff --git a/ios/chrome/browser/policy/policy_egtest.mm b/ios/chrome/browser/policy/policy_egtest.mm
index 1b34cec..7bbc59a 100644
--- a/ios/chrome/browser/policy/policy_egtest.mm
+++ b/ios/chrome/browser/policy/policy_egtest.mm
@@ -8,6 +8,7 @@
 
 #include "base/json/json_string_value_serializer.h"
 #include "base/strings/sys_string_conversions.h"
+#include "components/password_manager/core/common/password_manager_pref_names.h"
 #include "components/policy/policy_constants.h"
 #include "components/strings/grit/components_strings.h"
 #include "ios/chrome/browser/chrome_switches.h"
@@ -65,6 +66,25 @@
 //    - Deleting a policy value
 //    - Setting multiple policies at once
 
+// Verifies that a bool type policy sets the pref properly.
+void VerifyBoolPolicy(const std::string& policy_key,
+                      const std::string& pref_name) {
+  // Loading chrome://policy isn't necessary for the test to succeed, but it
+  // provides some visual feedback as the test runs.
+  [ChromeEarlGrey loadURL:GURL("chrome://policy")];
+  [ChromeEarlGrey waitForWebStateContainingText:l10n_util::GetStringUTF8(
+                                                    IDS_POLICY_SHOW_UNSET)];
+  // Force the preference off via policy.
+  SetPolicy(false, policy_key);
+  GREYAssertFalse([ChromeEarlGrey userBooleanPref:pref_name],
+                  @"Preference was unexpectedly true");
+
+  // Force the preference on via policy.
+  SetPolicy(true, policy_key);
+  GREYAssertTrue([ChromeEarlGrey userBooleanPref:pref_name],
+                 @"Preference was unexpectedly false");
+}
+
 }  // namespace
 
 // Test case to verify that enterprise policies are set and respected.
@@ -93,25 +113,14 @@
 
 // Tests for the SearchSuggestEnabled policy.
 - (void)testSearchSuggestEnabled {
-  // Loading chrome://policy isn't necessary for the test to succeed, but it
-  // provides some visual feedback as the test runs.
-  [ChromeEarlGrey loadURL:GURL("chrome://policy")];
-  [ChromeEarlGrey waitForWebStateContainingText:l10n_util::GetStringUTF8(
-                                                    IDS_POLICY_SHOW_UNSET)];
+  VerifyBoolPolicy(policy::key::kSearchSuggestEnabled,
+                   prefs::kSearchSuggestEnabled);
+}
 
-  // Verify that the unmanaged pref's default value is true.
-  GREYAssertTrue([ChromeEarlGrey userBooleanPref:prefs::kSearchSuggestEnabled],
-                 @"Unexpected default value");
-
-  // Force the preference off via policy.
-  SetPolicy(false, policy::key::kSearchSuggestEnabled);
-  GREYAssertFalse([ChromeEarlGrey userBooleanPref:prefs::kSearchSuggestEnabled],
-                  @"Search suggest preference was unexpectedly true");
-
-  // Force the preference on via policy.
-  SetPolicy(true, policy::key::kSearchSuggestEnabled);
-  GREYAssertTrue([ChromeEarlGrey userBooleanPref:prefs::kSearchSuggestEnabled],
-                 @"Search suggest preference was unexpectedly false");
+// Tests for the PasswordManagerEnabled policy.
+- (void)testPasswordManagerEnabled {
+  VerifyBoolPolicy(policy::key::kPasswordManagerEnabled,
+                   password_manager::prefs::kCredentialsEnableService);
 }
 
 @end
diff --git a/ios/chrome/browser/ui/recent_tabs/recent_tabs_coordinator_unittest.mm b/ios/chrome/browser/ui/recent_tabs/recent_tabs_coordinator_unittest.mm
index 32f44bd..76f58d89 100644
--- a/ios/chrome/browser/ui/recent_tabs/recent_tabs_coordinator_unittest.mm
+++ b/ios/chrome/browser/ui/recent_tabs/recent_tabs_coordinator_unittest.mm
@@ -91,9 +91,6 @@
 
   MOCK_METHOD1(GetIconUrlForPageUrl, GURL(const GURL& page_url));
 
-  MOCK_CONST_METHOD1(
-      GetSyncedFaviconForPageURL,
-      favicon_base::FaviconRawBitmapResult(const GURL& page_url));
   MOCK_METHOD1(
       GetAllForeignSessions,
       bool(std::vector<const sync_sessions::SyncedSession*>* sessions));
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_gu.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_gu.xtb
index 798d0f9..4431deab 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_gu.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_gu.xtb
@@ -7,11 +7,14 @@
 <translation id="3378542047369517508">તમે Chromeમાં સાચવો તે બધા પાસવર્ડનો ઍક્સેસ મેળવો. કોઈપણ ઍપમાં. કોઈપણ સમયે.</translation>
 <translation id="3660601625129812825">Chromeના પાસવર્ડ ઑટોમૅટિક રીતે ભરાય</translation>
 <translation id="4695654165345019650">ઍક્સેસ માટેના પાસવર્ડ...</translation>
+<translation id="5178539339249989017">કોઈ શોધ પરિણામ મળ્યું નથી</translation>
 <translation id="5313485577007399362">ઑટોમૅટિક રીતે ભરાવાનું ચાલુ કરો…</translation>
 <translation id="6494101196118320406">Chromeમાં કોઈ પાસવર્ડ નથી</translation>
 <translation id="6846906712230932330">પાસવર્ડનો ઉપયોગ કરવા માટે, તમારે પહેલાં તમારા ડિવાઇસ પર પાસકોડ સેટ કરવો આવશ્યક છે.</translation>
 <translation id="6965382102122355670">બરાબર, સમજાઇ ગયું</translation>
 <translation id="7870350829250847712">Chromeમાં કોઈ પાસવર્ડ નથી</translation>
+<translation id="8208791657167738630">બધા પાસવર્ડ</translation>
 <translation id="8602573493531049509">જાણો કેવી રીતે</translation>
+<translation id="8982444110803529242">સૂચવેલા પાસવર્ડ</translation>
 <translation id="9087836967653912639">રદ કરો</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_kn.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_kn.xtb
index c39f605..01888204 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_kn.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_kn.xtb
@@ -7,11 +7,14 @@
 <translation id="3378542047369517508">Chrome ನಲ್ಲಿ ನೀವು ಉಳಿಸುವ ಎಲ್ಲಾ ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆದುಕೊಳ್ಳಿ. ಯಾವುದೇ ಆ್ಯಪ್‌ನಲ್ಲಿ, ಯಾವಾಗ ಬೇಕಾದರೂ.</translation>
 <translation id="3660601625129812825">ಸ್ವಯಂ ಭರ್ತಿ Chrome ಪಾಸ್‌ವರ್ಡ್‌ಗಳು</translation>
 <translation id="4695654165345019650">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ...</translation>
+<translation id="5178539339249989017">ಯಾವುದೇ ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳು ಕಂಡುಬಂದಿಲ್ಲ</translation>
 <translation id="5313485577007399362">ಸ್ವಯಂ ಭರ್ತಿ ಸಕ್ರಿಯಗೊಳಿಸಿ...</translation>
 <translation id="6494101196118320406">ಯಾವುದೇ Chrome ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಲ್ಲ</translation>
 <translation id="6846906712230932330">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಬಳಸಲು, ನೀವು ಮೊದಲು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಪಾಸ್‌ಕೋಡ್ ಅನ್ನು ಹೊಂದಿಸಬೇಕು.</translation>
 <translation id="6965382102122355670">ಸರಿ</translation>
 <translation id="7870350829250847712">ಯಾವುದೇ Chrome ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಲ್ಲ</translation>
+<translation id="8208791657167738630">ಎಲ್ಲಾ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು</translation>
 <translation id="8602573493531049509">ಹೇಗೆ ಎಂಬುದನ್ನು ತಿಳಿದುಕೊಳ್ಳಿ</translation>
+<translation id="8982444110803529242">ಸೂಚಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು</translation>
 <translation id="9087836967653912639">ರದ್ದುಗೊಳಿಸಿ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ml.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ml.xtb
index b062915c..f15dd323 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ml.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ml.xtb
@@ -7,11 +7,14 @@
 <translation id="3378542047369517508">നിങ്ങൾ Chrome-ൽ സംരക്ഷിക്കുന്ന എല്ലാ പാസ്‌വേഡുകളിലേക്കും ആക്‌സസ് നേടുക. ഏത് ആപ്പിലും. ഏതുസമയത്തും.</translation>
 <translation id="3660601625129812825">Chrome പാസ്‌വേഡുകൾ സ്വയമേവ പൂരിപ്പിക്കൽ</translation>
 <translation id="4695654165345019650">പാസ്‌വേഡുകൾ ആക്‌സസ് ചെയ്യുക...</translation>
+<translation id="5178539339249989017">തിരയൽ ഫലങ്ങളൊന്നും കണ്ടെത്തിയില്ല</translation>
 <translation id="5313485577007399362">സ്വയമേവ പൂരിപ്പിക്കൽ പ്രവർത്തനക്ഷമമാക്കുക...</translation>
 <translation id="6494101196118320406">Chrome പാസ്‌വേഡുകളൊന്നുമില്ല</translation>
 <translation id="6846906712230932330">പാസ്‍വേഡുകൾ ഉപയോഗിക്കാൻ, ആദ്യം നിങ്ങളുടെ ഉപകരണത്തിൽ പാസ്‌കോഡ് സജ്ജീകരിക്കുക.</translation>
 <translation id="6965382102122355670">ശരി</translation>
 <translation id="7870350829250847712">Chrome പാസ്‌വേഡുകളൊന്നുമില്ല</translation>
+<translation id="8208791657167738630">എല്ലാ പാസ്‌വേഡുകളും</translation>
 <translation id="8602573493531049509">എങ്ങനെയെന്നറിയുക</translation>
+<translation id="8982444110803529242">നിർദ്ദേശിച്ചിരിക്കുന്ന പാസ്‌വേഡുകൾ</translation>
 <translation id="9087836967653912639">റദ്ദാക്കുക</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_mr.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_mr.xtb
index 2f47b7d..083b51b 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_mr.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_mr.xtb
@@ -7,11 +7,14 @@
 <translation id="3378542047369517508">तुम्ही Chrome मध्ये सेव्ह करत असलेल्या पासवर्डचा अ‍ॅक्सेस मिळवा. कोणत्याही अ‍ॅपमध्ये. कोणत्याही वेळी.</translation>
 <translation id="3660601625129812825">ऑटोफिल Chrome पासवर्ड</translation>
 <translation id="4695654165345019650">पासवर्ड अ‍ॅक्सेस करा...</translation>
+<translation id="5178539339249989017">कोणतेही शोध परिणाम आढळले नाहीत</translation>
 <translation id="5313485577007399362">ऑटोफिल सुरू करा...</translation>
 <translation id="6494101196118320406">Chrome पासवर्ड नाहीत</translation>
 <translation id="6846906712230932330">पासवर्ड वापरण्यासाठी, तुम्ही आधी तुमच्या डिव्हाइसवर पासकोड सेट करणे आवश्यक आहे.</translation>
 <translation id="6965382102122355670">ठीक आहे</translation>
 <translation id="7870350829250847712">Chrome पासवर्ड नाहीत</translation>
+<translation id="8208791657167738630">सर्व पासवर्ड</translation>
 <translation id="8602573493531049509">कसे ते जाणून घ्या</translation>
+<translation id="8982444110803529242">सुचवलेले पासवर्ड</translation>
 <translation id="9087836967653912639">रद्द करा</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ne.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ne.xtb
index e69b3ec5..1c78844 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ne.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ne.xtb
@@ -7,11 +7,14 @@
 <translation id="3378542047369517508">तपाईंले Chrome मा सुरक्षित गर्ने सबै पासवर्डहरूमाथि पहुँच राख्नुहोस्। जुनसुकै अनुप्रयोगमा। जुनसुकै बेला।</translation>
 <translation id="3660601625129812825">Chrome का पासवर्डहरू स्वतः भर्नुहोस्</translation>
 <translation id="4695654165345019650">पासवर्डहरू प्रयोग गर्नुहोस्...</translation>
+<translation id="5178539339249989017">कुनै खोज परिणाम फेला परेन</translation>
 <translation id="5313485577007399362">स्वतः भरण सुविधा सक्षम पार्नुहोस्...</translation>
 <translation id="6494101196118320406">Chrome मा कुनै पनि पासवर्ड छैन</translation>
 <translation id="6846906712230932330">पासवर्डहरू प्रयोग गर्न सर्वप्रथम तपाईंले आफ्नो यन्त्रमा अनिवार्य रूपमा कुनै पासकोड सेट गर्नु पर्छ।</translation>
 <translation id="6965382102122355670">ठिक छ</translation>
 <translation id="7870350829250847712">Chrome मा कुनै पनि पासवर्ड छैन</translation>
+<translation id="8208791657167738630">सबै पासवर्डहरू</translation>
 <translation id="8602573493531049509">यसो गर्ने तरिका सिक्नुहोस्</translation>
+<translation id="8982444110803529242">सिफारिस गरिएका पासवर्डहरू</translation>
 <translation id="9087836967653912639">रद्द गर्नुहोस्</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_or.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_or.xtb
index da6bc1f..758e74dc 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_or.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_or.xtb
@@ -7,11 +7,14 @@
 <translation id="3378542047369517508">ଆପଣ Chromeରେ ସେଭ୍ କରିଥିବା ସମସ୍ତ ପାସୱାର୍ଡକୁ ଆକ୍ସେସ୍ ପାଆନ୍ତୁ। ଯେ କୌଣସି ଆପରେ। ଯେ କୌଣସି ସମୟରେ।</translation>
 <translation id="3660601625129812825">AutoFill Chrome ପାସୱାର୍ଡ</translation>
 <translation id="4695654165345019650">ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ କରନ୍ତୁ…</translation>
+<translation id="5178539339249989017">କୌଣସି ସନ୍ଧାନ ଫଳାଫଳ ମିଳିଲା ନାହିଁ</translation>
 <translation id="5313485577007399362">AutoFill ସକ୍ଷମ କରନ୍ତୁ...</translation>
 <translation id="6494101196118320406">କୌଣସି Chrome ପାସୱାର୍ଡ ନାହିଁ</translation>
 <translation id="6846906712230932330">ପାସୱାର୍ଡଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିବାକୁ ଆପଣଙ୍କ ଡିଭାଇସରେ ଆପଣ ନିଶ୍ଚିତ ରୂପେ ପ୍ରଥମେ ଏକ ପାସକୋଡ୍ ସେଟ୍ କରିବା ଆବଶ୍ୟକ।</translation>
 <translation id="6965382102122355670">ଓକେ ବଟନ୍</translation>
 <translation id="7870350829250847712">କୌଣସି Chrome ପାସୱାର୍ଡ ନାହିଁ</translation>
+<translation id="8208791657167738630">ସମସ୍ତ ପାସୱାର୍ଡ</translation>
 <translation id="8602573493531049509">କିପରି କରିବେ ଜାଣନ୍ତୁ</translation>
+<translation id="8982444110803529242">ପ୍ରସ୍ତାବିତ ପାସୱାର୍ଡଗୁଡ଼ିକ</translation>
 <translation id="9087836967653912639">ବାତିଲ୍ କରନ୍ତୁ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_pa.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_pa.xtb
index a63adeb3..ce3b1e9 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_pa.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_pa.xtb
@@ -7,11 +7,14 @@
 <translation id="3378542047369517508">Chrome ਵਿੱਚ ਆਪਣੇ ਰੱਖਿਅਤ ਕੀਤੇ ਸਾਰੇ ਪਾਸਵਰਡਾਂ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰੋ। ਕਿਸੇ ਵੀ ਐਪ ਵਿੱਚ। ਕਿਸੇ ਵੀ ਵੇਲੇ।</translation>
 <translation id="3660601625129812825">ਆਟੋਫਿਲ Chrome ਪਾਸਵਰਡ</translation>
 <translation id="4695654165345019650">ਪਾਸਵਰਡਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰੋ...</translation>
+<translation id="5178539339249989017">ਕੋਈ ਖੋਜ ਨਤੀਜਾ ਨਹੀਂ ਮਿਲਿਆ</translation>
 <translation id="5313485577007399362">ਆਟੋਫਿਲ ਨੂੰ ਚਾਲੂ ਕਰੋ...</translation>
 <translation id="6494101196118320406">ਕੋਈ Chrome ਪਾਸਵਰਡ ਨਹੀਂ</translation>
 <translation id="6846906712230932330">ਪਾਸਵਰਡਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਆਪਣੇ ਡੀਵਾਈਸ 'ਤੇ ਪਾਸਕੋਡ ਸੈੱਟ ਕਰਨਾ ਲਾਜ਼ਮੀ ਹੈ।</translation>
 <translation id="6965382102122355670">ਠੀਕ</translation>
 <translation id="7870350829250847712">ਕੋਈ Chrome ਪਾਸਵਰਡ ਨਹੀਂ</translation>
+<translation id="8208791657167738630">ਸਾਰੇ ਪਾਸਵਰਡ</translation>
 <translation id="8602573493531049509">ਤਰੀਕਾ ਜਾਣੋ</translation>
+<translation id="8982444110803529242">ਸੁਝਾਏ ਗਏ ਪਾਸਵਰਡ</translation>
 <translation id="9087836967653912639">ਰੱਦ ਕਰੋ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ta.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ta.xtb
index 5f8d624..b7babef 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ta.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ta.xtb
@@ -7,11 +7,14 @@
 <translation id="3378542047369517508">Chromeமில் சேமிக்கப்பட்டுள்ள எல்லாக் கடவுச்சொற்களுக்கும் அணுகலைப் பெறுங்கள். எந்த ஆப்ஸிலும். எந்த நேரத்திலும்.</translation>
 <translation id="3660601625129812825">Chrome கடவுச்சொற்களைத் தன்னிரப்பு</translation>
 <translation id="4695654165345019650">கடவுச்சொற்களை அணுகுகிறது...</translation>
+<translation id="5178539339249989017">தேடல் முடிவுகள் எதுவுமில்லை</translation>
 <translation id="5313485577007399362">தன்னிரப்பியை இயக்கு...</translation>
 <translation id="6494101196118320406">Chrome கடவுச்சொற்கள் எதுவும் இல்லை</translation>
 <translation id="6846906712230932330">கடவுச்சொற்களைப் பயன்படுத்த, முதலில் உங்கள் சாதனத்தில் கடவுக்குறியீட்டை அமைக்க வேண்டும்.</translation>
 <translation id="6965382102122355670">சரி</translation>
 <translation id="7870350829250847712">Chrome கடவுச்சொற்கள் எதுவும் இல்லை</translation>
+<translation id="8208791657167738630">அனைத்துக் கடவுச்சொற்களும்</translation>
 <translation id="8602573493531049509">எப்படி என அறிக</translation>
+<translation id="8982444110803529242">பரிந்துரைக்கப்படும் கடவுச்சொற்கள்</translation>
 <translation id="9087836967653912639">ரத்துசெய்</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_te.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_te.xtb
index b4cadd6..176e5bff 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_te.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_te.xtb
@@ -7,11 +7,14 @@
 <translation id="3378542047369517508">మీరు Chromeలో సేవ్ చేసే అన్ని పాస్‌వర్డ్‌లకు యాక్సెస్ పొందండి. ఏదైనా యాప్‌లో, ఎప్పుడైనా పొందండి.</translation>
 <translation id="3660601625129812825">Chrome పాస్‌వర్డ్‌లను ఆటోఫిల్ చేయండి</translation>
 <translation id="4695654165345019650">పాస్‌వర్డ్‌లను యాక్సెస్ చేయడానికి...</translation>
+<translation id="5178539339249989017">శోధన ఫలితాలు ఏవీ కనుగొనబడలేదు</translation>
 <translation id="5313485577007399362">ఆటోఫిల్‌ను ఎనేబుల్ చేయి...</translation>
 <translation id="6494101196118320406">Chrome పాస్‌వర్డ్‌లు లేవు</translation>
 <translation id="6846906712230932330">పాస్‌వర్డ్‌లను ఉపయోగించడానికి, మీరు ముందుగా తప్పక మీ పరికరంలో పాస్‌కోడ్‌ను సెట్ చేయాలి.</translation>
 <translation id="6965382102122355670">సరే</translation>
 <translation id="7870350829250847712">Chrome పాస్‌వర్డ్‌లు లేవు</translation>
+<translation id="8208791657167738630">అన్ని పాస్‌వర్డ్‌లు</translation>
 <translation id="8602573493531049509">ఎలాగో తెలుసుకోండి</translation>
+<translation id="8982444110803529242">సూచించిన పాస్‌వర్డ్</translation>
 <translation id="9087836967653912639">రద్దు చేయి</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/public/provider/chrome/browser/voice/voice_search_provider.h b/ios/public/provider/chrome/browser/voice/voice_search_provider.h
index 21de690..d4661d2 100644
--- a/ios/public/provider/chrome/browser/voice/voice_search_provider.h
+++ b/ios/public/provider/chrome/browser/voice/voice_search_provider.h
@@ -13,6 +13,7 @@
 
 @protocol ApplicationCommands;
 class AudioSessionController;
+class Browser;
 class ChromeBrowserState;
 class VoiceSearchController;
 
@@ -33,9 +34,14 @@
   // Returns the singleton audio session controller.
   virtual AudioSessionController* GetAudioSessionController() const;
 
-  // Creates a new VoiceSearchController object.
+  // Creates a new VoiceSearchController object. TODO(crbug.com/790886): Remove
+  // the ChromeBrowserState constructor when the implementation for the Browser
+  // constructor finishes and all calls use that constructor. This is a part of
+  // the Brower-scoped migration.
   virtual scoped_refptr<VoiceSearchController> CreateVoiceSearchController(
       ChromeBrowserState* browser_state) const;
+  virtual scoped_refptr<VoiceSearchController> CreateVoiceSearchController(
+      Browser* browser) const;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(VoiceSearchProvider);
diff --git a/ios/public/provider/chrome/browser/voice/voice_search_provider.mm b/ios/public/provider/chrome/browser/voice/voice_search_provider.mm
index 9f555f43..f4241fe 100644
--- a/ios/public/provider/chrome/browser/voice/voice_search_provider.mm
+++ b/ios/public/provider/chrome/browser/voice/voice_search_provider.mm
@@ -27,3 +27,8 @@
     ChromeBrowserState* browser_state) const {
   return scoped_refptr<VoiceSearchController>(nullptr);
 }
+
+scoped_refptr<VoiceSearchController>
+VoiceSearchProvider::CreateVoiceSearchController(Browser* browser) const {
+  return scoped_refptr<VoiceSearchController>(nullptr);
+}
diff --git a/ios/web_view/BUILD.gn b/ios/web_view/BUILD.gn
index 355a6f35a..2594180 100644
--- a/ios/web_view/BUILD.gn
+++ b/ios/web_view/BUILD.gn
@@ -240,6 +240,9 @@
     "internal/web_view_web_state_policy_decider.mm",
     "internal/webdata_services/web_view_web_data_service_wrapper_factory.h",
     "internal/webdata_services/web_view_web_data_service_wrapper_factory.mm",
+    "internal/webui/web_view_web_ui_ios_controller_factory.h",
+    "internal/webui/web_view_web_ui_ios_controller_factory.mm",
+    "internal/webui/web_view_web_ui_provider.mm",
   ]
 
   public_deps = [
@@ -294,6 +297,9 @@
     "//components/webdata_services",
     "//google_apis",
     "//ios/components/io_thread",
+    "//ios/components/webui:provider",
+    "//ios/components/webui:url_constants",
+    "//ios/components/webui/sync_internals",
     "//ios/net",
     "//ios/web",
     "//ios/web/common",
@@ -304,6 +310,7 @@
     "//ios/web/public/js_messaging",
     "//ios/web/public/security",
     "//ios/web/public/web_view_only",
+    "//ios/web/public/webui",
     "//net",
     "//net:extras",
     "//services/metrics/public/cpp:metrics_cpp",
@@ -481,11 +488,15 @@
   source_patterns = [
     "${root_gen_dir}/components/strings/components_strings_",
     "${root_gen_dir}/components/strings/components_locale_settings_",
+    "${root_gen_dir}/ui/strings/app_locale_settings_",
+    "${root_gen_dir}/ui/strings/ui_strings_",
   ]
 
   deps = [
     "//components/strings:components_locale_settings",
     "//components/strings:components_strings",
+    "//ui/strings:app_locale_settings",
+    "//ui/strings:ui_strings",
   ]
   input_locales = ios_packed_locales
   output_locales = ios_packed_locales_as_mac_outputs
@@ -496,11 +507,15 @@
   visibility = [ ":web_view_resources" ]
   deps = [
     "//components/resources:components_resources",
+    "//components/sync/driver:resources",
     "//ios/web:resources",
+    "//ui/resources",
   ]
   sources = [
     "$root_gen_dir/components/components_resources.pak",
+    "$root_gen_dir/components/sync_driver_resources.pak",
     "$root_gen_dir/ios/web/ios_web_resources.pak",
+    "$root_gen_dir/ui/resources/webui_resources.pak",
   ]
   output = "$target_gen_dir/web_view_resources.pak"
   copy_data_to_bundle = true
diff --git a/ios/web_view/internal/DEPS b/ios/web_view/internal/DEPS
index 13d3c10..8f9ae5d 100644
--- a/ios/web_view/internal/DEPS
+++ b/ios/web_view/internal/DEPS
@@ -39,9 +39,11 @@
   "+components/web_resource",
   "+google_apis",
   "+ios/components/io_thread",
+  "+ios/components/webui",
   "+ios/net",
   "+ios/web/common",
   "+ios/web/public",
+  "+ios/web/webui",
   "+ios/web_view",
   "+net",
   "+services/network/network_change_manager.h",
diff --git a/ios/web_view/internal/web_view_browser_state.h b/ios/web_view/internal/web_view_browser_state.h
index 7d9a7a3..dd56d1b7 100644
--- a/ios/web_view/internal/web_view_browser_state.h
+++ b/ios/web_view/internal/web_view_browser_state.h
@@ -17,6 +17,10 @@
 class PrefRegistrySyncable;
 }
 
+namespace web {
+class WebUIIOS;
+}  // namespace web
+
 namespace ios_web_view {
 
 class WebViewURLRequestContextGetter;
@@ -47,6 +51,8 @@
   static WebViewBrowserState* FromBrowserState(
       web::BrowserState* browser_state);
 
+  static WebViewBrowserState* FromWebUIIOS(web::WebUIIOS* web_ui);
+
  private:
   // Registers the preferences for this BrowserState.
   void RegisterPrefs(user_prefs::PrefRegistrySyncable* pref_registry);
diff --git a/ios/web_view/internal/web_view_browser_state.mm b/ios/web_view/internal/web_view_browser_state.mm
index aa6d351..f561c591 100644
--- a/ios/web_view/internal/web_view_browser_state.mm
+++ b/ios/web_view/internal/web_view_browser_state.mm
@@ -30,6 +30,8 @@
 #include "components/translate/core/browser/translate_prefs.h"
 #include "ios/web/public/thread/web_task_traits.h"
 #include "ios/web/public/thread/web_thread.h"
+#import "ios/web/public/web_state.h"
+#include "ios/web/public/webui/web_ui_ios.h"
 #include "ios/web_view/internal/app/application_context.h"
 #import "ios/web_view/internal/autofill/web_view_autofill_log_router_factory.h"
 #include "ios/web_view/internal/autofill/web_view_personal_data_manager_factory.h"
@@ -49,6 +51,7 @@
 #include "ios/web_view/internal/web_view_download_manager.h"
 #include "ios/web_view/internal/web_view_url_request_context_getter.h"
 #include "ios/web_view/internal/webdata_services/web_view_web_data_service_wrapper_factory.h"
+#include "ios/web_view/internal/webui/web_view_web_ui_ios_controller_factory.h"
 #include "ui/base/l10n/l10n_util_mac.h"
 
 #if !defined(__has_feature) || !__has_feature(objc_arc)
@@ -139,6 +142,11 @@
   return static_cast<WebViewBrowserState*>(browser_state);
 }
 
+// static
+WebViewBrowserState* WebViewBrowserState::FromWebUIIOS(web::WebUIIOS* web_ui) {
+  return FromBrowserState(web_ui->GetWebState()->GetBrowserState());
+}
+
 bool WebViewBrowserState::IsOffTheRecord() const {
   return off_the_record_;
 }
@@ -169,6 +177,7 @@
   WebViewTranslateRankerFactory::GetInstance();
   WebViewUrlLanguageHistogramFactory::GetInstance();
   WebViewTranslateAcceptLanguagesFactory::GetInstance();
+  WebViewWebUIIOSControllerFactory::GetInstance();
   autofill::WebViewAutofillLogRouterFactory::GetInstance();
   WebViewPersonalDataManagerFactory::GetInstance();
   WebViewWebDataServiceWrapperFactory::GetInstance();
diff --git a/ios/web_view/internal/web_view_url_request_context_getter.h b/ios/web_view/internal/web_view_url_request_context_getter.h
index 6bdec2b..388b7c4 100644
--- a/ios/web_view/internal/web_view_url_request_context_getter.h
+++ b/ios/web_view/internal/web_view_url_request_context_getter.h
@@ -12,6 +12,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/single_thread_task_runner.h"
 #include "net/url_request/url_request_context_getter.h"
+#include "net/url_request/url_request_job_factory.h"
 
 namespace net {
 class NetLog;
@@ -67,6 +68,8 @@
   // created in constructor and cleared in GetURLRequestContext() where
   // net::URLRequestContextStorage is lazily created.
   std::unique_ptr<net::SystemCookieStore> system_cookie_store_;
+  // Protocol handler for web ui.
+  std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler> protocol_handler_;
 
   // Used to ensure GetURLRequestContext() returns nullptr during shut down.
   bool is_shutting_down_;
diff --git a/ios/web_view/internal/web_view_url_request_context_getter.mm b/ios/web_view/internal/web_view_url_request_context_getter.mm
index 5a917b1..a11f8fd 100644
--- a/ios/web_view/internal/web_view_url_request_context_getter.mm
+++ b/ios/web_view/internal/web_view_url_request_context_getter.mm
@@ -13,9 +13,11 @@
 #include "base/path_service.h"
 #include "base/task/post_task.h"
 #include "base/task/thread_pool.h"
+#include "ios/components/webui/web_ui_url_constants.h"
 #import "ios/net/cookies/cookie_store_ios.h"
 #include "ios/web/public/browsing_data/system_cookie_store_util.h"
 #import "ios/web/public/web_client.h"
+#include "ios/web/webui/url_data_manager_ios_backend.h"
 #include "net/base/cache_type.h"
 #include "net/base/network_delegate_impl.h"
 #include "net/cert/cert_verifier.h"
@@ -56,6 +58,8 @@
       proxy_config_service_(
           new net::ProxyConfigServiceIOS(NO_TRAFFIC_ANNOTATION_YET)),
       system_cookie_store_(web::CreateSystemCookieStore(browser_state)),
+      protocol_handler_(
+          web::URLDataManagerIOSBackend::CreateProtocolHandler(browser_state)),
       is_shutting_down_(false) {}
 
 WebViewURLRequestContextGetter::~WebViewURLRequestContextGetter() = default;
@@ -159,6 +163,8 @@
 
     std::unique_ptr<net::URLRequestJobFactoryImpl> job_factory(
         new net::URLRequestJobFactoryImpl());
+    job_factory->SetProtocolHandler(kChromeUIScheme,
+                                    std::move(protocol_handler_));
 
     storage_->set_job_factory(std::move(job_factory));
   }
diff --git a/ios/web_view/internal/web_view_web_client.h b/ios/web_view/internal/web_view_web_client.h
index 09ba5f0b..4178907 100644
--- a/ios/web_view/internal/web_view_web_client.h
+++ b/ios/web_view/internal/web_view_web_client.h
@@ -20,6 +20,8 @@
 
   // WebClient implementation.
   std::unique_ptr<web::WebMainParts> CreateWebMainParts() override;
+  void AddAdditionalSchemes(Schemes* schemes) const override;
+  bool IsAppSpecificURL(const GURL& url) const override;
   std::string GetUserAgent(web::UserAgentType type) const override;
   base::StringPiece GetDataResource(
       int resource_id,
diff --git a/ios/web_view/internal/web_view_web_client.mm b/ios/web_view/internal/web_view_web_client.mm
index d513ede..efac7f6 100644
--- a/ios/web_view/internal/web_view_web_client.mm
+++ b/ios/web_view/internal/web_view_web_client.mm
@@ -12,6 +12,7 @@
 #include "base/task/post_task.h"
 #include "components/ssl_errors/error_info.h"
 #include "components/strings/grit/components_strings.h"
+#include "ios/components/webui/web_ui_url_constants.h"
 #include "ios/web/common/user_agent.h"
 #include "ios/web/public/security/ssl_status.h"
 #include "ios/web/public/thread/web_task_traits.h"
@@ -61,6 +62,15 @@
   return std::make_unique<WebViewWebMainParts>();
 }
 
+void WebViewWebClient::AddAdditionalSchemes(Schemes* schemes) const {
+  schemes->standard_schemes.push_back(kChromeUIScheme);
+  schemes->secure_schemes.push_back(kChromeUIScheme);
+}
+
+bool WebViewWebClient::IsAppSpecificURL(const GURL& url) const {
+  return url.SchemeIs(kChromeUIScheme);
+}
+
 std::string WebViewWebClient::GetUserAgent(web::UserAgentType type) const {
   return web::BuildUserAgentFromProduct(
       web::UserAgentType::MOBILE,
diff --git a/ios/web_view/internal/web_view_web_main_parts.mm b/ios/web_view/internal/web_view_web_main_parts.mm
index 20a40249..8701bc2 100644
--- a/ios/web_view/internal/web_view_web_main_parts.mm
+++ b/ios/web_view/internal/web_view_web_main_parts.mm
@@ -12,10 +12,12 @@
 #include "components/autofill/core/common/autofill_features.h"
 #include "components/autofill/core/common/autofill_payments_features.h"
 #include "components/content_settings/core/common/content_settings_pattern.h"
+#include "ios/web/public/webui/web_ui_ios_controller_factory.h"
 #include "ios/web_view/internal/app/application_context.h"
 #import "ios/web_view/internal/cwv_flags_internal.h"
 #import "ios/web_view/internal/cwv_web_view_configuration_internal.h"
 #include "ios/web_view/internal/translate/web_view_translate_service.h"
+#include "ios/web_view/internal/webui/web_view_web_ui_ios_controller_factory.h"
 #include "ui/base/l10n/l10n_util_mac.h"
 #include "ui/base/resource/resource_bundle.h"
 
@@ -66,6 +68,9 @@
 
   ContentSettingsPattern::SetNonWildcardDomainNonPortSchemes(
       /*schemes=*/nullptr, 0);
+
+  web::WebUIIOSControllerFactory::RegisterFactory(
+      WebViewWebUIIOSControllerFactory::GetInstance());
 }
 
 void WebViewWebMainParts::PostMainMessageLoopRun() {
diff --git a/ios/web_view/internal/webui/web_view_web_ui_ios_controller_factory.h b/ios/web_view/internal/webui/web_view_web_ui_ios_controller_factory.h
new file mode 100644
index 0000000..337d006
--- /dev/null
+++ b/ios/web_view/internal/webui/web_view_web_ui_ios_controller_factory.h
@@ -0,0 +1,48 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_WEB_VIEW_INTERNAL_WEBUI_WEB_VIEW_WEB_UI_IOS_CONTROLLER_FACTORY_H_
+#define IOS_WEB_VIEW_INTERNAL_WEBUI_WEB_VIEW_WEB_UI_IOS_CONTROLLER_FACTORY_H_
+
+#include <memory>
+#include <vector>
+
+#include "base/macros.h"
+#include "base/no_destructor.h"
+#include "ios/web/public/webui/web_ui_ios.h"
+#include "ios/web/public/webui/web_ui_ios_controller_factory.h"
+
+class GURL;
+
+namespace ios_web_view {
+
+// Returns WebUIIOSControllers for supported WebUI URLs in //ios/web_view.
+// Unlike native UI implemented with UIKit, WebUI is UI implemented using web
+// technologies and displayed in the content area. This supports easy cross
+// platform development for interfaces that do not require native polish.
+// To support a new WebUI URL, return the appropriate web::WebUIIOSController in
+// |CreateWebUIIOSControllerForURL|.
+class WebViewWebUIIOSControllerFactory : public web::WebUIIOSControllerFactory {
+ public:
+  static WebViewWebUIIOSControllerFactory* GetInstance();
+
+ protected:
+  WebViewWebUIIOSControllerFactory();
+  ~WebViewWebUIIOSControllerFactory() override;
+
+  // web::WebUIIOSControllerFactory.
+  NSInteger GetErrorCodeForWebUIURL(const GURL& url) const override;
+  std::unique_ptr<web::WebUIIOSController> CreateWebUIIOSControllerForURL(
+      web::WebUIIOS* web_ui,
+      const GURL& url) const override;
+
+ private:
+  friend class base::NoDestructor<WebViewWebUIIOSControllerFactory>;
+
+  DISALLOW_COPY_AND_ASSIGN(WebViewWebUIIOSControllerFactory);
+};
+
+}  // namespace ios_web_view
+
+#endif  // IOS_WEB_VIEW_INTERNAL_WEBUI_WEB_VIEW_WEB_UI_IOS_CONTROLLER_FACTORY_H_
diff --git a/ios/web_view/internal/webui/web_view_web_ui_ios_controller_factory.mm b/ios/web_view/internal/webui/web_view_web_ui_ios_controller_factory.mm
new file mode 100644
index 0000000..e79d3d6
--- /dev/null
+++ b/ios/web_view/internal/webui/web_view_web_ui_ios_controller_factory.mm
@@ -0,0 +1,86 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ios/web_view/internal/webui/web_view_web_ui_ios_controller_factory.h"
+
+#import <Foundation/Foundation.h>
+
+#include "base/bind.h"
+#include "base/location.h"
+#include "ios/components/webui/sync_internals/sync_internals_ui.h"
+#include "ios/components/webui/web_ui_url_constants.h"
+#include "url/gurl.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+using web::WebUIIOS;
+using web::WebUIIOSController;
+
+namespace ios_web_view {
+
+namespace {
+
+// A function for creating a new WebUIIOS.
+using WebUIIOSFactoryFunction =
+    std::unique_ptr<WebUIIOSController> (*)(WebUIIOS* web_ui, const GURL& url);
+
+// Template for defining WebUIIOSFactoryFunction.
+template <class T>
+std::unique_ptr<WebUIIOSController> NewWebUIIOS(WebUIIOS* web_ui,
+                                                const GURL& url) {
+  return std::make_unique<T>(web_ui);
+}
+
+// Returns a function that can be used to create the right type of WebUIIOS for
+// a tab, based on its URL. Returns nullptr if the URL doesn't have WebUIIOS
+// associated with it.
+WebUIIOSFactoryFunction GetWebUIIOSFactoryFunction(const GURL& url) {
+  // This will get called a lot to check all URLs, so do a quick check of other
+  // schemes to filter out most URLs.
+  if (!url.SchemeIs(kChromeUIScheme))
+    return nullptr;
+
+  // Please keep this in alphabetical order. If #ifs or special logic is
+  // required, add it below in the appropriate section.
+  const std::string url_host = url.host();
+  if (url_host == kChromeUISyncInternalsHost)
+    return &NewWebUIIOS<SyncInternalsUI>;
+
+  return nullptr;
+}
+
+}  // namespace
+
+NSInteger WebViewWebUIIOSControllerFactory::GetErrorCodeForWebUIURL(
+    const GURL& url) const {
+  if (GetWebUIIOSFactoryFunction(url))
+    return 0;
+  return NSURLErrorUnsupportedURL;
+}
+
+std::unique_ptr<WebUIIOSController>
+WebViewWebUIIOSControllerFactory::CreateWebUIIOSControllerForURL(
+    WebUIIOS* web_ui,
+    const GURL& url) const {
+  WebUIIOSFactoryFunction function = GetWebUIIOSFactoryFunction(url);
+  if (!function)
+    return nullptr;
+
+  return (*function)(web_ui, url);
+}
+
+// static
+WebViewWebUIIOSControllerFactory*
+WebViewWebUIIOSControllerFactory::GetInstance() {
+  static base::NoDestructor<WebViewWebUIIOSControllerFactory> instance;
+  return instance.get();
+}
+
+WebViewWebUIIOSControllerFactory::WebViewWebUIIOSControllerFactory() {}
+
+WebViewWebUIIOSControllerFactory::~WebViewWebUIIOSControllerFactory() {}
+
+}  // namespace ios_web_view
diff --git a/ios/web_view/internal/webui/web_view_web_ui_provider.mm b/ios/web_view/internal/webui/web_view_web_ui_provider.mm
new file mode 100644
index 0000000..9d59fa2
--- /dev/null
+++ b/ios/web_view/internal/webui/web_view_web_ui_provider.mm
@@ -0,0 +1,30 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/components/webui/web_ui_provider.h"
+
+#include "components/version_info/channel.h"
+#include "ios/web_view/internal/sync/web_view_profile_sync_service_factory.h"
+#include "ios/web_view/internal/web_view_browser_state.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+#include "ios/components/webui/web_ui_provider.h"
+
+namespace web_ui {
+
+syncer::SyncService* GetSyncServiceForWebUI(web::WebUIIOS* web_ui) {
+  ios_web_view::WebViewBrowserState* browser_state =
+      ios_web_view::WebViewBrowserState::FromWebUIIOS(web_ui);
+  return ios_web_view::WebViewProfileSyncServiceFactory::GetForBrowserState(
+      browser_state->GetRecordingBrowserState());
+}
+
+version_info::Channel GetChannel() {
+  return version_info::Channel::STABLE;
+}
+
+}  // namespace web_ui
diff --git a/ios/web_view/shell/shell_view_controller.m b/ios/web_view/shell/shell_view_controller.m
index f1c99a3e..62cc8c0 100644
--- a/ios/web_view/shell/shell_view_controller.m
+++ b/ios/web_view/shell/shell_view_controller.m
@@ -737,16 +737,17 @@
 }
 
 - (BOOL)textFieldShouldReturn:(UITextField*)field {
-  NSString* enteredText = field.text;
-  if (![enteredText hasPrefix:@"http"]) {
+  NSURL* URL = [NSURL URLWithString:field.text];
+  if (URL.scheme.length == 0) {
+    NSString* enteredText = field.text;
     enteredText =
         [enteredText stringByAddingPercentEncodingWithAllowedCharacters:
                          [NSCharacterSet URLQueryAllowedCharacterSet]];
     enteredText = [NSString
         stringWithFormat:@"https://www.google.com/search?q=%@", enteredText];
+    URL = [NSURL URLWithString:enteredText];
   }
-  NSURLRequest* request =
-      [NSURLRequest requestWithURL:[NSURL URLWithString:enteredText]];
+  NSURLRequest* request = [NSURLRequest requestWithURL:URL];
   [_webView loadRequest:request];
   [field resignFirstResponder];
   [self updateToolbar];
diff --git a/media/base/media_log.cc b/media/base/media_log.cc
index babef2ba..f5ab11d 100644
--- a/media/base/media_log.cc
+++ b/media/base/media_log.cc
@@ -65,6 +65,13 @@
   AddLogRecord(std::move(record));
 }
 
+void MediaLog::NotifyError(Status status) {
+  DCHECK(!status.is_ok());
+  std::string output_str;
+  base::JSONWriter::Write(MediaSerialize(status), &output_str);
+  AddMessage(MediaLogMessageLevel::kERROR, output_str);
+}
+
 void MediaLog::OnWebMediaPlayerDestroyedLocked() {}
 void MediaLog::OnWebMediaPlayerDestroyed() {
   AddEvent<MediaLogEvent::kWebMediaPlayerDestroyed>();
diff --git a/media/base/media_log.h b/media/base/media_log.h
index 9571816..21a18427 100644
--- a/media/base/media_log.h
+++ b/media/base/media_log.h
@@ -81,6 +81,9 @@
   // TODO(tmathmeyer) replace with Status when that's ready.
   void NotifyError(PipelineStatus status);
 
+  // Notify a non-ok Status. This method Should _not_ be given an OK status.
+  void NotifyError(Status status);
+
   // Notify the media log that the player is destroyed. Some implementations
   // will want to change event handling based on this.
   void OnWebMediaPlayerDestroyed();
diff --git a/media/base/status_codes.h b/media/base/status_codes.h
index 3f161c20..2a08513 100644
--- a/media/base/status_codes.h
+++ b/media/base/status_codes.h
@@ -49,6 +49,9 @@
   kCantMakeContextCurrent = 0x00000301,
   kCantPostTexture = 0x00000302,
   kCantPostAcquireStream = 0x00000303,
+  kCantCreateEglStream = 0x00000304,
+  kCantCreateEglStreamConsumer = 0x00000305,
+  kCantCreateEglStreamProducer = 0x00000306,
 
   // MojoDecoder Errors: 0x04
   kMojoDecoderNoWrappedDecoder = 0x00000401,
diff --git a/media/base/video_frame.h b/media/base/video_frame.h
index 6b1a5b45..be5867b 100644
--- a/media/base/video_frame.h
+++ b/media/base/video_frame.h
@@ -27,6 +27,7 @@
 #include "build/build_config.h"
 #include "gpu/command_buffer/common/mailbox_holder.h"
 #include "gpu/ipc/common/vulkan_ycbcr_info.h"
+#include "media/base/hdr_metadata.h"
 #include "media/base/video_frame_layout.h"
 #include "media/base/video_frame_metadata.h"
 #include "media/base/video_types.h"
@@ -417,6 +418,14 @@
     color_space_ = color_space;
   }
 
+  const base::Optional<HDRMetadata>& hdr_metadata() const {
+    return hdr_metadata_;
+  }
+
+  void set_hdr_metadata(const base::Optional<HDRMetadata>& hdr_metadata) {
+    hdr_metadata_ = hdr_metadata;
+  }
+
   const VideoFrameLayout& layout() const { return layout_; }
 
   VideoPixelFormat format() const { return layout_.format(); }
@@ -686,6 +695,7 @@
   const int unique_id_;
 
   gfx::ColorSpace color_space_;
+  base::Optional<HDRMetadata> hdr_metadata_;
 
   // Sampler conversion information which is used in vulkan context for android.
   base::Optional<gpu::VulkanYCbCrInfo> ycbcr_info_;
diff --git a/media/filters/decoder_selector.cc b/media/filters/decoder_selector.cc
index 78d20de..bb06378 100644
--- a/media/filters/decoder_selector.cc
+++ b/media/filters/decoder_selector.cc
@@ -165,6 +165,14 @@
   DCHECK(task_runner_->BelongsToCurrentThread());
 
   if (!status.is_ok()) {
+    // TODO(tmathmeyer) this might be noisy in media log. Consider batching
+    // all failures as causes to a single Status object and only surfacing it if
+    // decoder selection fails entirely.
+    media_log_->NotifyError(
+        Status(StatusCode::kDecoderFailedInitialization)
+            .WithData("Decoder name", decoder_->GetDisplayName())
+            .AddCause(std::move(status)));
+
     // Try the next decoder on the list.
     decoder_.reset();
     InitializeDecoder();
diff --git a/media/gpu/windows/d3d11_copying_texture_wrapper.cc b/media/gpu/windows/d3d11_copying_texture_wrapper.cc
index c919d19..039062e 100644
--- a/media/gpu/windows/d3d11_copying_texture_wrapper.cc
+++ b/media/gpu/windows/d3d11_copying_texture_wrapper.cc
@@ -82,11 +82,14 @@
       output_texture_, 0, copy_color_space, mailbox_dest, output_color_space);
 }
 
-bool CopyingTexture2DWrapper::Init(GetCommandBufferHelperCB get_helper_cb) {
+bool CopyingTexture2DWrapper::Init(
+    scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner,
+    GetCommandBufferHelperCB get_helper_cb) {
   if (!video_processor_->Init(size_.width(), size_.height()))
     return false;
 
-  return output_texture_wrapper_->Init(std::move(get_helper_cb));
+  return output_texture_wrapper_->Init(std::move(gpu_task_runner),
+                                       std::move(get_helper_cb));
 }
 
 void CopyingTexture2DWrapper::SetStreamHDRMetadata(
diff --git a/media/gpu/windows/d3d11_copying_texture_wrapper.h b/media/gpu/windows/d3d11_copying_texture_wrapper.h
index 12f4d2f..0768f35 100644
--- a/media/gpu/windows/d3d11_copying_texture_wrapper.h
+++ b/media/gpu/windows/d3d11_copying_texture_wrapper.h
@@ -37,7 +37,8 @@
                       MailboxHolderArray* mailbox_dest,
                       gfx::ColorSpace* output_color_space) override;
 
-  bool Init(GetCommandBufferHelperCB get_helper_cb) override;
+  bool Init(scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner,
+            GetCommandBufferHelperCB get_helper_cb) override;
 
   void SetStreamHDRMetadata(const HDRMetadata& stream_metadata) override;
   void SetDisplayHDRMetadata(
diff --git a/media/gpu/windows/d3d11_copying_texture_wrapper_unittest.cc b/media/gpu/windows/d3d11_copying_texture_wrapper_unittest.cc
index 72da73f..ed36baa 100644
--- a/media/gpu/windows/d3d11_copying_texture_wrapper_unittest.cc
+++ b/media/gpu/windows/d3d11_copying_texture_wrapper_unittest.cc
@@ -7,6 +7,7 @@
 #include <utility>
 
 #include "base/bind_helpers.h"
+#include "base/test/task_environment.h"
 #include "media/gpu/windows/d3d11_copying_texture_wrapper.h"
 #include "media/gpu/windows/d3d11_texture_wrapper.h"
 #include "media/gpu/windows/d3d11_video_processor_proxy.h"
@@ -96,7 +97,9 @@
     return MockProcessTexture();
   }
 
-  bool Init(GetCommandBufferHelperCB get_helper_cb) override {
+  bool Init(scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner,
+            GetCommandBufferHelperCB get_helper_cb) override {
+    gpu_task_runner_ = std::move(gpu_task_runner);
     return MockInit();
   }
 
@@ -105,6 +108,8 @@
   MOCK_METHOD1(SetStreamHDRMetadata, void(const HDRMetadata& stream_metadata));
   MOCK_METHOD1(SetDisplayHDRMetadata,
                void(const DXGI_HDR_METADATA_HDR10& dxgi_display_metadata));
+
+  scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner_;
 };
 
 CommandBufferHelperPtr UselessHelper() {
@@ -126,6 +131,10 @@
   FIELD(bool, PassthroughColorSpace, 6)
 #undef FIELD
 
+  void SetUp() override {
+    gpu_task_runner_ = task_environment_.GetMainThreadTaskRunner();
+  }
+
   std::unique_ptr<MockVideoProcessorProxy> ExpectProcessorProxy() {
     auto result = std::make_unique<MockVideoProcessorProxy>();
     ON_CALL(*result.get(), MockInit(_, _))
@@ -143,7 +152,7 @@
     return result;
   }
 
-  std::unique_ptr<Texture2DWrapper> ExpectTextureWrapper() {
+  std::unique_ptr<MockTexture2DWrapper> ExpectTextureWrapper() {
     auto result = std::make_unique<MockTexture2DWrapper>();
 
     ON_CALL(*result.get(), MockInit())
@@ -152,7 +161,7 @@
     ON_CALL(*result.get(), MockProcessTexture())
         .WillByDefault(Return(GetProcessTexture()));
 
-    return std::move(result);
+    return result;
   }
 
   GetCommandBufferHelperCB CreateMockHelperCB() {
@@ -169,6 +178,9 @@
            SUCCEEDED(GetCreateVideoProcessorInputView()) &&
            SUCCEEDED(GetVideoProcessorBlt());
   }
+
+  base::test::TaskEnvironment task_environment_;
+  scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner_;
 };
 
 INSTANTIATE_TEST_CASE_P(CopyingTexture2DWrapperTest,
@@ -193,14 +205,22 @@
   base::Optional<gfx::ColorSpace> copy_color_space;
   if (!GetPassthroughColorSpace())
     copy_color_space = gfx::ColorSpace::CreateDisplayP3D65();
+  auto texture_wrapper = ExpectTextureWrapper();
+  MockTexture2DWrapper* texture_wrapper_raw = texture_wrapper.get();
   auto wrapper = std::make_unique<CopyingTexture2DWrapper>(
-      size, ExpectTextureWrapper(), std::move(processor), nullptr,
+      size, std::move(texture_wrapper), std::move(processor), nullptr,
       copy_color_space);
 
+  // TODO: check |gpu_task_runner_|.
+
   MailboxHolderArray mailboxes;
   gfx::ColorSpace input_color_space = gfx::ColorSpace::CreateSCRGBLinear();
   gfx::ColorSpace output_color_space;
-  EXPECT_EQ(wrapper->Init(CreateMockHelperCB()), InitSucceeds());
+  EXPECT_EQ(wrapper->Init(gpu_task_runner_, CreateMockHelperCB()),
+            InitSucceeds());
+  task_environment_.RunUntilIdle();
+  if (GetProcessorProxyInit())
+    EXPECT_EQ(texture_wrapper_raw->gpu_task_runner_, gpu_task_runner_);
   EXPECT_EQ(wrapper->ProcessTexture(nullptr, 0, input_color_space, &mailboxes,
                                     &output_color_space),
             ProcessTextureSucceeds());
diff --git a/media/gpu/windows/d3d11_picture_buffer.cc b/media/gpu/windows/d3d11_picture_buffer.cc
index ae193f7..7c0278b 100644
--- a/media/gpu/windows/d3d11_picture_buffer.cc
+++ b/media/gpu/windows/d3d11_picture_buffer.cc
@@ -22,11 +22,14 @@
 namespace media {
 
 D3D11PictureBuffer::D3D11PictureBuffer(
+    scoped_refptr<base::SequencedTaskRunner> delete_task_runner,
     ComD3D11Texture2D texture,
     std::unique_ptr<Texture2DWrapper> texture_wrapper,
     gfx::Size size,
     size_t level)
-    : texture_(std::move(texture)),
+    : RefCountedDeleteOnSequence<D3D11PictureBuffer>(
+          std::move(delete_task_runner)),
+      texture_(std::move(texture)),
       texture_wrapper_(std::move(texture_wrapper)),
       size_(size),
       level_(level) {}
@@ -34,16 +37,19 @@
 D3D11PictureBuffer::~D3D11PictureBuffer() {
 }
 
-bool D3D11PictureBuffer::Init(GetCommandBufferHelperCB get_helper_cb,
-                              ComD3D11VideoDevice video_device,
-                              const GUID& decoder_guid,
-                              std::unique_ptr<MediaLog> media_log) {
+bool D3D11PictureBuffer::Init(
+    scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner,
+    GetCommandBufferHelperCB get_helper_cb,
+    ComD3D11VideoDevice video_device,
+    const GUID& decoder_guid,
+    std::unique_ptr<MediaLog> media_log) {
   D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC view_desc = {};
   view_desc.DecodeProfile = decoder_guid;
   view_desc.ViewDimension = D3D11_VDOV_DIMENSION_TEXTURE2D;
   view_desc.Texture2D.ArraySlice = (UINT)level_;
 
-  if (!texture_wrapper_->Init(std::move(get_helper_cb))) {
+  if (!texture_wrapper_->Init(std::move(gpu_task_runner),
+                              std::move(get_helper_cb))) {
     MEDIA_LOG(ERROR, media_log) << "Failed to Initialize the wrapper";
     return false;
   }
diff --git a/media/gpu/windows/d3d11_picture_buffer.h b/media/gpu/windows/d3d11_picture_buffer.h
index fdc8f6b..d605772d 100644
--- a/media/gpu/windows/d3d11_picture_buffer.h
+++ b/media/gpu/windows/d3d11_picture_buffer.h
@@ -11,8 +11,7 @@
 #include <memory>
 #include <vector>
 
-#include "base/memory/ref_counted.h"
-
+#include "base/memory/ref_counted_delete_on_sequence.h"
 #include "gpu/command_buffer/service/mailbox_manager.h"
 #include "gpu/command_buffer/service/texture_manager.h"
 #include "gpu/ipc/service/command_buffer_stub.h"
@@ -44,17 +43,20 @@
 // GpuResources have to be retained until the mailbox is used, but we just
 // retain the whole thing.
 class MEDIA_GPU_EXPORT D3D11PictureBuffer
-    : public base::RefCountedThreadSafe<D3D11PictureBuffer> {
+    : public base::RefCountedDeleteOnSequence<D3D11PictureBuffer> {
  public:
   // |texture_wrapper| is responsible for controlling mailbox access to
   // the ID3D11Texture2D,
   // |level| is the picturebuffer index inside the Array-type ID3D11Texture2D.
-  D3D11PictureBuffer(ComD3D11Texture2D texture,
-                     std::unique_ptr<Texture2DWrapper> texture_wrapper,
-                     gfx::Size size,
-                     size_t level);
+  D3D11PictureBuffer(
+      scoped_refptr<base::SequencedTaskRunner> delete_task_runner,
+      ComD3D11Texture2D texture,
+      std::unique_ptr<Texture2DWrapper> texture_wrapper,
+      gfx::Size size,
+      size_t level);
 
-  bool Init(GetCommandBufferHelperCB get_helper_cb,
+  bool Init(scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner,
+            GetCommandBufferHelperCB get_helper_cb,
             ComD3D11VideoDevice video_device,
             const GUID& decoder_guid,
             std::unique_ptr<MediaLog> media_log);
@@ -91,7 +93,8 @@
 
  private:
   ~D3D11PictureBuffer();
-  friend class base::RefCountedThreadSafe<D3D11PictureBuffer>;
+  friend class base::RefCountedDeleteOnSequence<D3D11PictureBuffer>;
+  friend class base::DeleteHelper<D3D11PictureBuffer>;
 
   ComD3D11Texture2D texture_;
   std::unique_ptr<Texture2DWrapper> texture_wrapper_;
diff --git a/media/gpu/windows/d3d11_texture_wrapper.cc b/media/gpu/windows/d3d11_texture_wrapper.cc
index 9b5bbaaf..46be10c 100644
--- a/media/gpu/windows/d3d11_texture_wrapper.cc
+++ b/media/gpu/windows/d3d11_texture_wrapper.cc
@@ -10,6 +10,7 @@
 #include <vector>
 
 #include "gpu/command_buffer/service/mailbox_manager.h"
+#include "media/base/bind_to_current_loop.h"
 #include "media/base/win/mf_helpers.h"
 #include "ui/gl/gl_image.h"
 
@@ -67,15 +68,17 @@
     const gfx::ColorSpace& input_color_space,
     MailboxHolderArray* mailbox_dest,
     gfx::ColorSpace* output_color_space) {
-  // TODO(liberato): When |gpu_resources_| is a SB<>, it's okay to post and
-  // forget this call.  It will still be ordered properly with respect to any
-  // access on the gpu main thread.
-  // TODO(liberato): Would be nice if SB<> knew how to post and reply, so that
-  // we could get the error code back eventually, and fail later with it.
-  auto result = gpu_resources_->PushNewTexture(std::move(texture), array_slice);
-  if (!result.is_ok())
+  // If we've received an error, then return it to our caller.  This is probably
+  // from some previous operation.
+  // TODO(liberato): Return the error.
+  if (received_error_)
     return false;
 
+  // It's okay to post and forget this call, since it'll be ordered correctly
+  // with respect to any access on the gpu main thread.
+  gpu_resources_.Post(FROM_HERE, &GpuResources::PushNewTexture,
+                      std::move(texture), array_slice);
+
   // TODO(liberato): make sure that |mailbox_holders_| is zero-initialized in
   // case we don't use all the planes.
   for (size_t i = 0; i < VideoFrame::kMaxPlanes; i++)
@@ -87,10 +90,13 @@
   return true;
 }
 
-bool DefaultTexture2DWrapper::Init(GetCommandBufferHelperCB get_helper_cb) {
-  gpu_resources_ = std::make_unique<GpuResources>();
-  if (!gpu_resources_)
-    return false;
+bool DefaultTexture2DWrapper::Init(
+    scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner,
+    GetCommandBufferHelperCB get_helper_cb) {
+  gpu_resources_ = base::SequenceBound<GpuResources>(
+      std::move(gpu_task_runner),
+      BindToCurrentLoop(base::BindOnce(&DefaultTexture2DWrapper::OnError,
+                                       weak_factory_.GetWeakPtr())));
 
   // YUV textures are mapped onto two GL textures, while RGB use one.
   int textures_per_picture = 0;
@@ -107,6 +113,8 @@
   }
 
   // Generate mailboxes and holders.
+  // TODO(liberato): Verify that this is really okay off the GPU main thread.
+  // The current implementation is.
   std::vector<gpu::Mailbox> mailboxes;
   for (int texture_idx = 0; texture_idx < textures_per_picture; texture_idx++) {
     mailboxes.push_back(gpu::Mailbox::Generate());
@@ -119,12 +127,15 @@
   // device for decoding.  Sharing seems not to work very well.  Otherwise, we
   // would create the texture with KEYED_MUTEX and NTHANDLE, then send along
   // a handle that we get from |texture| as an IDXGIResource1.
-  // TODO(liberato): this should happen on the gpu thread.
-  // TODO(liberato): the out param would be handled similarly to
-  // CodecImageHolder when we add a pool.
-  return gpu_resources_->Init(std::move(get_helper_cb), std::move(mailboxes),
-                              GL_TEXTURE_EXTERNAL_OES, size_,
-                              textures_per_picture);
+  gpu_resources_.Post(FROM_HERE, &GpuResources::Init, std::move(get_helper_cb),
+                      std::move(mailboxes), GL_TEXTURE_EXTERNAL_OES, size_,
+                      textures_per_picture);
+  return true;
+}
+
+void DefaultTexture2DWrapper::OnError(Status status) {
+  if (!received_error_)
+    received_error_ = status;
 }
 
 void DefaultTexture2DWrapper::SetStreamHDRMetadata(
@@ -133,7 +144,8 @@
 void DefaultTexture2DWrapper::SetDisplayHDRMetadata(
     const DXGI_HDR_METADATA_HDR10& dxgi_display_metadata) {}
 
-DefaultTexture2DWrapper::GpuResources::GpuResources() {}
+DefaultTexture2DWrapper::GpuResources::GpuResources(OnErrorCB on_error_cb)
+    : on_error_cb_(std::move(on_error_cb)) {}
 
 DefaultTexture2DWrapper::GpuResources::~GpuResources() {
   if (helper_ && helper_->MakeContextCurrent()) {
@@ -142,7 +154,7 @@
   }
 }
 
-bool DefaultTexture2DWrapper::GpuResources::Init(
+void DefaultTexture2DWrapper::GpuResources::Init(
     GetCommandBufferHelperCB get_helper_cb,
     const std::vector<gpu::Mailbox> mailboxes,
     GLenum target,
@@ -150,8 +162,10 @@
     int textures_per_picture) {
   helper_ = get_helper_cb.Run();
 
-  if (!helper_ || !helper_->MakeContextCurrent())
-    return false;
+  if (!helper_ || !helper_->MakeContextCurrent()) {
+    NotifyError(StatusCode::kCantMakeContextCurrent);
+    return;
+  }
 
   // Create the textures and attach them to the mailboxes.
   // TODO(liberato): Should we use GL_FLOAT for an fp16 texture?  It doesn't
@@ -174,7 +188,10 @@
       // clang-format on
   };
   EGLStreamKHR stream = eglCreateStreamKHR(egl_display, stream_attributes);
-  RETURN_ON_FAILURE(!!stream, "Could not create stream", false);
+  if (!stream) {
+    NotifyError(StatusCode::kCantCreateEglStream);
+    return;
+  }
 
   // |stream| will be destroyed when the GLImage is.
   // TODO(liberato): for tests, it will be destroyed pretty much at the end of
@@ -210,7 +227,10 @@
   }
   EGLBoolean result = eglStreamConsumerGLTextureExternalAttribsNV(
       egl_display, stream, consumer_attributes.data());
-  RETURN_ON_FAILURE(result, "Could not set stream consumer", false);
+  if (!result) {
+    NotifyError(StatusCode::kCantCreateEglStreamConsumer);
+    return;
+  }
 
   EGLAttrib producer_attributes[] = {
       EGL_NONE,
@@ -218,7 +238,10 @@
 
   result = eglCreateStreamProducerD3DTextureANGLE(egl_display, stream,
                                                   producer_attributes);
-  RETURN_ON_FAILURE(result, "Could not create stream", false);
+  if (!result) {
+    NotifyError(StatusCode::kCantCreateEglStreamProducer);
+    return;
+  }
 
   // Note that this is valid as long as |gl_image_| is valid; it is
   // what deletes the stream.
@@ -230,15 +253,15 @@
     helper_->BindImage(service_ids_[texture_idx], gl_image_.get(),
                        false /* client_managed */);
   }
-
-  return true;
 }
 
-Status DefaultTexture2DWrapper::GpuResources::PushNewTexture(
+void DefaultTexture2DWrapper::GpuResources::PushNewTexture(
     ComD3D11Texture2D texture,
     size_t array_slice) {
-  if (!helper_ || !helper_->MakeContextCurrent())
-    return Status(StatusCode::kCantMakeContextCurrent);
+  if (!helper_ || !helper_->MakeContextCurrent()) {
+    NotifyError(StatusCode::kCantMakeContextCurrent);
+    return;
+  }
 
   // Notify |gl_image_| that it has a new texture.
   gl_image_->SetTexture(texture, array_slice);
@@ -254,13 +277,20 @@
   if (!eglStreamPostD3DTextureANGLE(egl_display, stream_,
                                     static_cast<void*>(texture.Get()),
                                     frame_attributes)) {
-    return Status(StatusCode::kCantPostTexture);
+    NotifyError(StatusCode::kCantPostTexture);
+    return;
   }
 
-  if (!eglStreamConsumerAcquireKHR(egl_display, stream_))
-    return Status(StatusCode::kCantPostAcquireStream);
+  if (!eglStreamConsumerAcquireKHR(egl_display, stream_)) {
+    NotifyError(StatusCode::kCantPostAcquireStream);
+    return;
+  }
+}
 
-  return OkStatus();
+void DefaultTexture2DWrapper::GpuResources::NotifyError(Status status) {
+  if (on_error_cb_)
+    std::move(on_error_cb_).Run(std::move(status));
+  // else this isn't the first error, so skip it.
 }
 
 }  // namespace media
diff --git a/media/gpu/windows/d3d11_texture_wrapper.h b/media/gpu/windows/d3d11_texture_wrapper.h
index b321b2d5..5d71e20 100644
--- a/media/gpu/windows/d3d11_texture_wrapper.h
+++ b/media/gpu/windows/d3d11_texture_wrapper.h
@@ -10,6 +10,9 @@
 #include <memory>
 #include <vector>
 
+#include "base/memory/weak_ptr.h"
+#include "base/optional.h"
+#include "base/threading/sequence_bound.h"
 #include "gpu/command_buffer/service/mailbox_manager.h"
 #include "gpu/command_buffer/service/texture_manager.h"
 #include "media/base/hdr_metadata.h"
@@ -42,7 +45,8 @@
   virtual ~Texture2DWrapper();
 
   // Initialize the wrapper.
-  virtual bool Init(GetCommandBufferHelperCB get_helper_cb) = 0;
+  virtual bool Init(scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner,
+                    GetCommandBufferHelperCB get_helper_cb) = 0;
 
   // Import |texture|, |array_slice| and return the mailbox(es) that can be
   // used to refer to it.
@@ -63,12 +67,16 @@
 // instance for each concurrently outstanding texture.
 class MEDIA_GPU_EXPORT DefaultTexture2DWrapper : public Texture2DWrapper {
  public:
+  // Error callback for GpuResource to notify us of errors.
+  using OnErrorCB = base::OnceCallback<void(Status)>;
+
   // While the specific texture instance can change on every call to
   // ProcessTexture, the dxgi format must be the same for all of them.
   DefaultTexture2DWrapper(const gfx::Size& size, DXGI_FORMAT dxgi_format);
   ~DefaultTexture2DWrapper() override;
 
-  bool Init(GetCommandBufferHelperCB get_helper_cb) override;
+  bool Init(scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner,
+            GetCommandBufferHelperCB get_helper_cb) override;
 
   bool ProcessTexture(ComD3D11Texture2D texture,
                       size_t array_slice,
@@ -87,21 +95,27 @@
   // can use the mailbox.
   class GpuResources {
    public:
-    GpuResources();
+    GpuResources(OnErrorCB on_error_cb);
     ~GpuResources();
 
-    bool Init(GetCommandBufferHelperCB get_helper_cb,
+    void Init(GetCommandBufferHelperCB get_helper_cb,
               const std::vector<gpu::Mailbox> mailboxes,
               GLenum target,
               gfx::Size size,
               int textures_per_picture);
 
     // Push a new |texture|, |array_slice| to |gl_image_|.
-    Status PushNewTexture(ComD3D11Texture2D texture, size_t array_slice);
+    void PushNewTexture(ComD3D11Texture2D texture, size_t array_slice);
 
     std::vector<uint32_t> service_ids_;
 
    private:
+    // Notify our wrapper about |status|, if we haven't before.
+    void NotifyError(Status status);
+
+    // May be empty if we've already sent an error.
+    OnErrorCB on_error_cb_;
+
     scoped_refptr<CommandBufferHelper> helper_;
     scoped_refptr<gl::GLImageDXGI> gl_image_;
     EGLStreamKHR stream_;
@@ -109,10 +123,18 @@
     DISALLOW_COPY_AND_ASSIGN(GpuResources);
   };
 
+  // Receive an error from |gpu_resources_| and store it in |received_error_|.
+  void OnError(Status status);
+
+  // The first error status that we've received from |gpu_resources_|, if any.
+  base::Optional<Status> received_error_;
+
   gfx::Size size_;
-  std::unique_ptr<GpuResources> gpu_resources_;
+  base::SequenceBound<GpuResources> gpu_resources_;
   MailboxHolderArray mailbox_holders_;
   DXGI_FORMAT dxgi_format_;
+
+  base::WeakPtrFactory<DefaultTexture2DWrapper> weak_factory_{this};
 };
 
 }  // namespace media
diff --git a/media/gpu/windows/d3d11_video_decoder.cc b/media/gpu/windows/d3d11_video_decoder.cc
index 13125176..4cb754a 100644
--- a/media/gpu/windows/d3d11_video_decoder.cc
+++ b/media/gpu/windows/d3d11_video_decoder.cc
@@ -16,6 +16,7 @@
 #include "base/memory/ref_counted_delete_on_sequence.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
+#include "base/threading/sequenced_task_runner_handle.h"
 #include "base/trace_event/trace_event.h"
 #include "media/base/bind_to_current_loop.h"
 #include "media/base/cdm_context.h"
@@ -33,7 +34,6 @@
 #include "media/gpu/windows/display_helper.h"
 #include "media/gpu/windows/supported_profile_helpers.h"
 #include "media/media_buildflags.h"
-#include "ui/gl/direct_composition_surface_win.h"
 #include "ui/gl/gl_angle_util_win.h"
 #include "ui/gl/gl_switches.h"
 
@@ -83,7 +83,8 @@
     const gpu::GpuDriverBugWorkarounds& gpu_workarounds,
     base::RepeatingCallback<gpu::CommandBufferStub*()> get_stub_cb,
     D3D11VideoDecoder::GetD3D11DeviceCB get_d3d11_device_cb,
-    SupportedConfigs supported_configs) {
+    SupportedConfigs supported_configs,
+    bool is_hdr_supported) {
   // We create |impl_| on the wrong thread, but we never use it here.
   // Note that the output callback will hop to our thread, post the video
   // frame, and along with a callback that will hop back to the impl thread
@@ -95,13 +96,12 @@
       base::BindRepeating(CreateCommandBufferHelper, std::move(get_stub_cb),
                           scoped_refptr<CommandBufferHelperHolder>(
                               new CommandBufferHelperHolder(gpu_task_runner)));
-  return base::WrapUnique<VideoDecoder>(
-      new D3D11VideoDecoder(std::move(gpu_task_runner), std::move(media_log),
-                            gpu_preferences, gpu_workarounds,
-                            std::make_unique<D3D11VideoDecoderImpl>(
-                                std::move(cloned_media_log), get_helper_cb),
-                            get_helper_cb, std::move(get_d3d11_device_cb),
-                            std::move(supported_configs)));
+  return base::WrapUnique<VideoDecoder>(new D3D11VideoDecoder(
+      gpu_task_runner, std::move(media_log), gpu_preferences, gpu_workarounds,
+      base::SequenceBound<D3D11VideoDecoderImpl>(
+          gpu_task_runner, std::move(cloned_media_log), get_helper_cb),
+      get_helper_cb, std::move(get_d3d11_device_cb),
+      std::move(supported_configs), is_hdr_supported));
 }
 
 D3D11VideoDecoder::D3D11VideoDecoder(
@@ -109,23 +109,24 @@
     std::unique_ptr<MediaLog> media_log,
     const gpu::GpuPreferences& gpu_preferences,
     const gpu::GpuDriverBugWorkarounds& gpu_workarounds,
-    std::unique_ptr<D3D11VideoDecoderImpl> impl,
+    base::SequenceBound<D3D11VideoDecoderImpl> impl,
     base::RepeatingCallback<scoped_refptr<CommandBufferHelper>()> get_helper_cb,
     GetD3D11DeviceCB get_d3d11_device_cb,
-    SupportedConfigs supported_configs)
+    SupportedConfigs supported_configs,
+    bool is_hdr_supported)
     : media_log_(std::move(media_log)),
       impl_(std::move(impl)),
-      impl_task_runner_(std::move(gpu_task_runner)),
+      gpu_task_runner_(std::move(gpu_task_runner)),
+      decoder_task_runner_(base::SequencedTaskRunnerHandle::Get()),
       already_initialized_(false),
       gpu_preferences_(gpu_preferences),
       gpu_workarounds_(gpu_workarounds),
       get_d3d11_device_cb_(std::move(get_d3d11_device_cb)),
       get_helper_cb_(std::move(get_helper_cb)),
-      supported_configs_(std::move(supported_configs)) {
+      supported_configs_(std::move(supported_configs)),
+      is_hdr_supported_(is_hdr_supported) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(media_log_);
-
-  impl_weak_ = impl_->GetWeakPtr();
 }
 
 D3D11VideoDecoder::~D3D11VideoDecoder() {
@@ -134,10 +135,7 @@
   // from |impl_| will be cancelled by |weak_factory_| when we return.
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
-  if (impl_task_runner_->RunsTasksInCurrentSequence())
-    impl_.reset();
-  else
-    impl_task_runner_->DeleteSoon(FROM_HERE, std::move(impl_));
+  impl_.Reset();
 
   // Explicitly destroy the decoder, since it can reference picture buffers.
   accelerated_video_decoder_.reset();
@@ -241,6 +239,9 @@
   // it's been specifically configured via switch to avoid d3d11.
   //
   // TODO(liberato): On re-init, we can probably re-use the device.
+  // TODO(liberato): This isn't allowed off the main thread, since the callback
+  // does who-knows-what.  Either we should be given the angle device, or we
+  // should thread-hop to get it.
   device_ = get_d3d11_device_cb_.Run();
   if (!device_) {
     // This happens if, for example, if chrome is configured to use
@@ -289,13 +290,12 @@
 
   // Use IsHDRSupported to guess whether the compositor can output HDR textures.
   // See TextureSelector for notes about why the decoder should not care.
-  texture_selector_ =
-      TextureSelector::Create(gpu_preferences_, gpu_workarounds_,
-                              decoder_configurator_->TextureFormat(),
-                              gl::DirectCompositionSurfaceWin::IsHDRSupported()
-                                  ? TextureSelector::HDRMode::kSDROrHDR
-                                  : TextureSelector::HDRMode::kSDROnly,
-                              &format_checker, media_log_.get());
+  texture_selector_ = TextureSelector::Create(
+      gpu_preferences_, gpu_workarounds_,
+      decoder_configurator_->TextureFormat(),
+      is_hdr_supported_ ? TextureSelector::HDRMode::kSDROrHDR
+                        : TextureSelector::HDRMode::kSDROnly,
+      &format_checker, media_log_.get());
   if (!texture_selector_) {
     NotifyError("D3DD11: Cannot get TextureSelector for format");
     return;
@@ -413,25 +413,14 @@
 
   AddLifetimeProgressionStage(D3D11LifetimeProgression::kInitializeSucceeded);
 
-  // Initialize the gpu side.  We wait until everything else is initialized,
-  // since we allow it to call us back re-entrantly to reduce latency.  Note
-  // that if we're not on the same thread, then we should probably post the
-  // call earlier, since re-entrancy won't be an issue.
-  if (impl_task_runner_->RunsTasksInCurrentSequence()) {
-    impl_->Initialize(std::move(impl_init_cb),
-                      std::move(get_picture_buffer_cb));
-    return;
-  }
-
+  // Initialize the gpu side.  It would be nice if we could ask SB<> to elide
+  // the post if we're already on that thread, but it can't.
   // Bind our own init / output cb that hop to this thread, so we don't call
   // the originals on some other thread.
   // Important but subtle note: base::Bind will copy |config_| since it's a
   // const ref.
-  impl_task_runner_->PostTask(
-      FROM_HERE,
-      base::BindOnce(&D3D11VideoDecoderImpl::Initialize, impl_weak_,
-                     BindToCurrentLoop(std::move(impl_init_cb)),
-                     BindToCurrentLoop(std::move(get_picture_buffer_cb))));
+  impl_.Post(FROM_HERE, &D3D11VideoDecoderImpl::Initialize,
+             BindToCurrentLoop(std::move(impl_init_cb)));
 }
 
 void D3D11VideoDecoder::AddLifetimeProgressionStage(
@@ -456,7 +445,9 @@
   DoDecode();
 }
 
-void D3D11VideoDecoder::OnGpuInitComplete(bool success) {
+void D3D11VideoDecoder::OnGpuInitComplete(
+    bool success,
+    D3D11VideoDecoderImpl::ReleaseMailboxCB release_mailbox_cb) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   TRACE_EVENT0("gpu", "D3D11VideoDecoder::OnGpuInitComplete");
 
@@ -473,6 +464,8 @@
     return;
   }
 
+  release_mailbox_cb_ = std::move(release_mailbox_cb);
+
   state_ = State::kRunning;
   std::move(init_cb_).Run(OkStatus());
 }
@@ -710,11 +703,11 @@
       return;
     }
 
-    picture_buffers_.push_back(
-        new D3D11PictureBuffer(in_texture, std::move(tex_wrapper), size, i));
-    if (!picture_buffers_[i]->Init(get_helper_cb_, video_device_,
-                                   decoder_configurator_->DecoderGuid(),
-                                   media_log_->Clone())) {
+    picture_buffers_.push_back(new D3D11PictureBuffer(
+        decoder_task_runner_, in_texture, std::move(tex_wrapper), size, i));
+    if (!picture_buffers_[i]->Init(
+            gpu_task_runner_, get_helper_cb_, video_device_,
+            decoder_configurator_->DecoderGuid(), media_log_->Clone())) {
       NotifyError("Unable to allocate PictureBuffer");
       return;
     }
@@ -788,10 +781,16 @@
     return false;
   }
 
-  // TODO(liberato): bind this to the gpu main thread.
-  frame->SetReleaseMailboxCB(media::BindToCurrentLoop(
-      base::BindOnce(&D3D11VideoDecoderImpl::OnMailboxReleased, impl_weak_,
-                     scoped_refptr<D3D11PictureBuffer>(picture_buffer))));
+  // Remember that this will likely thread-hop to the GPU main thread.  Note
+  // that |picture_buffer| will delete on sequence, so it's okay even if
+  // |wait_complete_cb| doesn't ever run.
+  auto wait_complete_cb = BindToCurrentLoop(
+      base::BindOnce(&D3D11VideoDecoder::ReceivePictureBufferFromClient,
+                     weak_factory_.GetWeakPtr(),
+                     scoped_refptr<D3D11PictureBuffer>(picture_buffer)));
+  frame->SetReleaseMailboxCB(
+      base::BindOnce(release_mailbox_cb_, std::move(wait_complete_cb)));
+
   frame->metadata()->SetBoolean(VideoFrameMetadata::POWER_EFFICIENT, true);
   // For NV12, overlay is allowed by default. If the decoder is going to support
   // non-NV12 textures, then this may have to be conditionally set. Also note
diff --git a/media/gpu/windows/d3d11_video_decoder.h b/media/gpu/windows/d3d11_video_decoder.h
index 94c609f..44af77a0e 100644
--- a/media/gpu/windows/d3d11_video_decoder.h
+++ b/media/gpu/windows/d3d11_video_decoder.h
@@ -15,6 +15,7 @@
 #include "base/sequence_checker.h"
 #include "base/sequenced_task_runner.h"
 #include "base/single_thread_task_runner.h"
+#include "base/threading/sequence_bound.h"
 #include "gpu/config/gpu_driver_bug_workarounds.h"
 #include "gpu/config/gpu_preferences.h"
 #include "media/base/callback_registry.h"
@@ -27,6 +28,7 @@
 #include "media/gpu/windows/d3d11_h264_accelerator.h"
 #include "media/gpu/windows/d3d11_texture_selector.h"
 #include "media/gpu/windows/d3d11_video_decoder_client.h"
+#include "media/gpu/windows/d3d11_video_decoder_impl.h"
 #include "media/gpu/windows/d3d11_vp9_accelerator.h"
 #include "media/video/supported_video_decoder_config.h"
 
@@ -37,7 +39,6 @@
 namespace media {
 
 class D3D11PictureBuffer;
-class D3D11VideoDecoderImpl;
 class D3D11VideoDecoderTest;
 class MediaLog;
 
@@ -63,7 +64,8 @@
       const gpu::GpuDriverBugWorkarounds& gpu_workarounds,
       base::RepeatingCallback<gpu::CommandBufferStub*()> get_stub_cb,
       GetD3D11DeviceCB get_d3d11_device_cb,
-      SupportedConfigs supported_configs);
+      SupportedConfigs supported_configs,
+      bool is_hdr_supported);
 
   // VideoDecoder implementation:
   std::string GetDisplayName() const override;
@@ -110,17 +112,20 @@
       std::unique_ptr<MediaLog> media_log,
       const gpu::GpuPreferences& gpu_preferences,
       const gpu::GpuDriverBugWorkarounds& gpu_workarounds,
-      std::unique_ptr<D3D11VideoDecoderImpl> impl,
+      base::SequenceBound<D3D11VideoDecoderImpl> impl,
       base::RepeatingCallback<scoped_refptr<CommandBufferHelper>()>
           get_helper_cb,
       GetD3D11DeviceCB get_d3d11_device_cb,
-      SupportedConfigs supported_configs);
+      SupportedConfigs supported_configs,
+      bool is_hdr_supported);
 
   // Receive |buffer|, that is now unused by the client.
   void ReceivePictureBufferFromClient(scoped_refptr<D3D11PictureBuffer> buffer);
 
   // Called when the gpu side of initialization is complete.
-  void OnGpuInitComplete(bool success);
+  void OnGpuInitComplete(
+      bool success,
+      D3D11VideoDecoderImpl::ReleaseMailboxCB release_mailbox_cb);
 
   // Run the decoder loop.
   void DoDecode();
@@ -219,15 +224,14 @@
   // pending decode as well.
   void NotifyError(const char* reason);
 
-  // The implementation, which we trampoline to the impl thread.
-  // This must be freed on the impl thread.
-  std::unique_ptr<D3D11VideoDecoderImpl> impl_;
+  // The implementation, which lives on the GPU main thread.
+  base::SequenceBound<D3D11VideoDecoderImpl> impl_;
 
-  // Weak ptr to |impl_|, which we use for callbacks.
-  base::WeakPtr<D3D11VideoDecoderImpl> impl_weak_;
+  // GPU main thread task runner.
+  scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner_;
 
-  // Task runner for |impl_|.  This must be the GPU main thread.
-  scoped_refptr<base::SequencedTaskRunner> impl_task_runner_;
+  // Task runner on which |this| lives.
+  scoped_refptr<base::SequencedTaskRunner> decoder_task_runner_;
 
   // Set in initialize, and used to determine reinitializations.
   bool already_initialized_;
@@ -241,11 +245,17 @@
   OutputCB output_cb_;
   WaitingCB waiting_cb_;
 
+  // Callback to be used as a release CB for VideoFrames.  Be sure to
+  // BindToCurrentLoop the closure that it takes.
+  D3D11VideoDecoderImpl::ReleaseMailboxCB release_mailbox_cb_;
+
   // Right now, this is used both for the video decoder and for display.  In
   // the future, this should only be for the video decoder.  We should use
   // the ANGLE device for display (plus texture sharing, if needed).
   GetD3D11DeviceCB get_d3d11_device_cb_;
 
+  // These may be accessed from |decoder_task_runner_|, since the angle device
+  // is in multi-threaded mode.  Just be sure not to set any global state.
   ComD3D11Device device_;
   ComD3D11DeviceContext device_context_;
   ComD3D11VideoDevice video_device_;
@@ -290,6 +300,9 @@
 
   SupportedConfigs supported_configs_;
 
+  // Should we assume that we're outputting to an HDR display?
+  bool is_hdr_supported_;
+
   base::WeakPtrFactory<D3D11VideoDecoder> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(D3D11VideoDecoder);
diff --git a/media/gpu/windows/d3d11_video_decoder_impl.cc b/media/gpu/windows/d3d11_video_decoder_impl.cc
index 89c88e56..719e7b5 100644
--- a/media/gpu/windows/d3d11_video_decoder_impl.cc
+++ b/media/gpu/windows/d3d11_video_decoder_impl.cc
@@ -8,6 +8,7 @@
 #include "gpu/command_buffer/common/sync_token.h"
 #include "gpu/command_buffer/service/scheduler.h"
 #include "gpu/ipc/service/gpu_channel.h"
+#include "media/base/bind_to_current_loop.h"
 #include "media/base/media_log.h"
 #include "media/gpu/windows/d3d11_picture_buffer.h"
 
@@ -25,16 +26,12 @@
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 }
 
-void D3D11VideoDecoderImpl::Initialize(
-    InitCB init_cb,
-    ReturnPictureBufferCB return_picture_buffer_cb) {
+void D3D11VideoDecoderImpl::Initialize(InitCB init_cb) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
-  return_picture_buffer_cb_ = std::move(return_picture_buffer_cb);
-
   // If have a helper, then we're as initialized as we need to be.
   if (helper_) {
-    std::move(init_cb).Run(true);
+    std::move(init_cb).Run(true, release_mailbox_cb_);
     return;
   }
   helper_ = get_helper_cb_.Run();
@@ -46,31 +43,36 @@
     if (media_log_)
       MEDIA_LOG(ERROR, media_log_) << reason;
 
-    std::move(init_cb).Run(false);
+    std::move(init_cb).Run(false, ReleaseMailboxCB());
     return;
   }
 
-  std::move(init_cb).Run(true);
+  release_mailbox_cb_ = BindToCurrentLoop(base::BindRepeating(
+      &D3D11VideoDecoderImpl::OnMailboxReleased, GetWeakPtr()));
+
+  std::move(init_cb).Run(true, release_mailbox_cb_);
 }
 
 void D3D11VideoDecoderImpl::OnMailboxReleased(
-    scoped_refptr<D3D11PictureBuffer> buffer,
+    base::OnceClosure wait_complete_cb,
     const gpu::SyncToken& sync_token) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
-  if (!helper_)
+  if (!helper_) {
+    std::move(wait_complete_cb).Run();
     return;
+  }
 
   helper_->WaitForSyncToken(
       sync_token, base::BindOnce(&D3D11VideoDecoderImpl::OnSyncTokenReleased,
-                                 GetWeakPtr(), std::move(buffer)));
+                                 GetWeakPtr(), std::move(wait_complete_cb)));
 }
 
 void D3D11VideoDecoderImpl::OnSyncTokenReleased(
-    scoped_refptr<D3D11PictureBuffer> buffer) {
+    base::OnceClosure wait_complete_cb) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
-  return_picture_buffer_cb_.Run(std::move(buffer));
+  std::move(wait_complete_cb).Run();
 }
 
 base::WeakPtr<D3D11VideoDecoderImpl> D3D11VideoDecoderImpl::GetWeakPtr() {
diff --git a/media/gpu/windows/d3d11_video_decoder_impl.h b/media/gpu/windows/d3d11_video_decoder_impl.h
index c654926..770d81c 100644
--- a/media/gpu/windows/d3d11_video_decoder_impl.h
+++ b/media/gpu/windows/d3d11_video_decoder_impl.h
@@ -34,6 +34,10 @@
 // TODO(liberato): Rename this class as a follow-on to this refactor.
 class MEDIA_GPU_EXPORT D3D11VideoDecoderImpl {
  public:
+  // Callback to us to wait for a sync token, then call a closure.
+  using ReleaseMailboxCB =
+      base::RepeatingCallback<void(base::OnceClosure, const gpu::SyncToken&)>;
+
   // May be constructed on any thread.
   explicit D3D11VideoDecoderImpl(
       std::unique_ptr<MediaLog> media_log,
@@ -41,20 +45,17 @@
           get_helper_cb);
   virtual ~D3D11VideoDecoderImpl();
 
-  using InitCB = base::OnceCallback<void(bool success)>;
+  using InitCB = base::OnceCallback<void(bool success, ReleaseMailboxCB)>;
 
   // Returns a picture buffer that's no longer in use by the client.
   using ReturnPictureBufferCB =
       base::RepeatingCallback<void(scoped_refptr<D3D11PictureBuffer>)>;
 
-  // We will call back |init_cb| with the init status.  |try_decoding_cb| should
-  // try to re-start decoding.  We'll call this when we do something that might
-  // allow decoding to make progress, such as reclaim a picture buffer.
-  virtual void Initialize(InitCB init_cb,
-                          ReturnPictureBufferCB return_picture_buffer_cb);
+  // We will call back |init_cb| with the init status.
+  virtual void Initialize(InitCB init_cb);
 
-  // Called when the VideoFrame that uses |buffer| is freed.
-  void OnMailboxReleased(scoped_refptr<D3D11PictureBuffer> buffer,
+  // Called to wait on |sync_token|, and call |wait_complete_cb| when done.
+  void OnMailboxReleased(base::OnceClosure wait_complete_cb,
                          const gpu::SyncToken& sync_token);
 
   // Return a weak ptr, since D3D11VideoDecoder constructs callbacks for us.
@@ -62,12 +63,15 @@
   base::WeakPtr<D3D11VideoDecoderImpl> GetWeakPtr();
 
  private:
-  void OnSyncTokenReleased(scoped_refptr<D3D11PictureBuffer> buffer);
+  void OnSyncTokenReleased(base::OnceClosure);
 
   std::unique_ptr<MediaLog> media_log_;
 
+  // Cached copy of the callback to OnMailboxReleased.
+  ReleaseMailboxCB release_mailbox_cb_;
+
   // Called when we get a picture buffer back from the client.
-  ReturnPictureBufferCB return_picture_buffer_cb_;
+  // ReturnPictureBufferCB return_picture_buffer_cb_;
 
   base::RepeatingCallback<scoped_refptr<CommandBufferHelper>()> get_helper_cb_;
   scoped_refptr<CommandBufferHelper> helper_;
diff --git a/media/gpu/windows/d3d11_video_decoder_unittest.cc b/media/gpu/windows/d3d11_video_decoder_unittest.cc
index 1eb5815..ccad927 100644
--- a/media/gpu/windows/d3d11_video_decoder_unittest.cc
+++ b/media/gpu/windows/d3d11_video_decoder_unittest.cc
@@ -40,16 +40,15 @@
 
 class MockD3D11VideoDecoderImpl : public D3D11VideoDecoderImpl {
  public:
-  MockD3D11VideoDecoderImpl()
+  MockD3D11VideoDecoderImpl(MockD3D11VideoDecoderImpl** thiz)
       : D3D11VideoDecoderImpl(
             nullptr,
-            base::RepeatingCallback<scoped_refptr<CommandBufferHelper>()>()) {}
-
-  void Initialize(InitCB init_cb,
-                  ReturnPictureBufferCB return_picture_buffer_cb) override {
-    MockInitialize();
+            base::RepeatingCallback<scoped_refptr<CommandBufferHelper>()>()) {
+    *thiz = this;
   }
 
+  void Initialize(InitCB init_cb) override { MockInitialize(); }
+
   MOCK_METHOD0(MockInitialize, void());
 };
 
@@ -65,6 +64,7 @@
     gpu_preferences_.enable_zero_copy_dxgi_video = true;
     gpu_preferences_.use_passthrough_cmd_decoder = false;
     gpu_workarounds_.disable_dxgi_zero_copy_video = false;
+    gpu_task_runner_ = task_environment_.GetMainThreadTaskRunner();
 
     // Create a mock D3D11 device that supports 11.0.  Note that if you change
     // this, then you probably also want VideoDevice1 and friends, below.
@@ -189,11 +189,9 @@
       supported_configs = D3D11VideoDecoder::GetSupportedVideoDecoderConfigs(
           gpu_preferences_, gpu_workarounds_, get_device_cb);
     }
-    std::unique_ptr<MockD3D11VideoDecoderImpl> impl =
-        std::make_unique<NiceMock<MockD3D11VideoDecoderImpl>>();
-    impl_ = impl.get();
-
-    gpu_task_runner_ = base::ThreadTaskRunnerHandle::Get();
+    base::SequenceBound<MockD3D11VideoDecoderImpl> impl(gpu_task_runner_,
+                                                        &impl_);
+    task_environment_.RunUntilIdle();
 
     // We store it in a std::unique_ptr<VideoDecoder> so that the default
     // deleter works.  The dtor is protected.
@@ -202,7 +200,7 @@
             gpu_task_runner_, std::make_unique<NullMediaLog>(),
             gpu_preferences_, gpu_workarounds_, std::move(impl),
             base::RepeatingCallback<scoped_refptr<CommandBufferHelper>()>(),
-            get_device_cb, *supported_configs));
+            get_device_cb, *supported_configs, is_hdr_supported_));
   }
 
   void InitializeDecoder(const VideoDecoderConfig& config,
@@ -231,7 +229,7 @@
 
   MOCK_METHOD1(MockInitCB, void(Status));
 
-  base::test::TaskEnvironment env_;
+  base::test::TaskEnvironment task_environment_;
 
   scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner_;
 
@@ -249,6 +247,9 @@
   Microsoft::WRL::ComPtr<DXGIDeviceMock> mock_dxgi_device_;
   Microsoft::WRL::ComPtr<DXGIAdapterMock> mock_dxgi_adapter_;
 
+  // Used by CreateDecoder() to tell D3D11VideoDecoder about HDR support.
+  bool is_hdr_supported_ = true;
+
   DXGI_ADAPTER_DESC mock_adapter_desc_;
 
   base::Optional<base::test::ScopedFeatureList> scoped_feature_list_;
diff --git a/media/mojo/mojom/media_types.mojom b/media/mojo/mojom/media_types.mojom
index 06f95f1..6b083bf 100644
--- a/media/mojo/mojom/media_types.mojom
+++ b/media/mojo/mojom/media_types.mojom
@@ -279,6 +279,7 @@
   mojo_base.mojom.DictionaryValue metadata;
 
   gfx.mojom.ColorSpace color_space;
+  HDRMetadata? hdr_metadata;
 };
 
 // Possible choices for storing VideoFrame data.
diff --git a/media/mojo/mojom/video_frame_mojom_traits.cc b/media/mojo/mojom/video_frame_mojom_traits.cc
index 464be5d..b2c93af 100644
--- a/media/mojo/mojom/video_frame_mojom_traits.cc
+++ b/media/mojo/mojom/video_frame_mojom_traits.cc
@@ -14,6 +14,7 @@
 #include "media/base/color_plane_layout.h"
 #include "media/base/format_utils.h"
 #include "media/mojo/common/mojo_shared_buffer_video_frame.h"
+#include "media/mojo/mojom/hdr_metadata_mojom_traits.h"
 #include "mojo/public/cpp/base/time_mojom_traits.h"
 #include "mojo/public/cpp/base/values_mojom_traits.h"
 #include "mojo/public/cpp/system/handle.h"
@@ -285,6 +286,11 @@
     return false;
   frame->set_color_space(color_space);
 
+  base::Optional<media::HDRMetadata> hdr_metadata;
+  if (!input.ReadHdrMetadata(&hdr_metadata))
+    return false;
+  frame->set_hdr_metadata(std::move(hdr_metadata));
+
   *output = std::move(frame);
   return true;
 }
diff --git a/media/mojo/mojom/video_frame_mojom_traits.h b/media/mojo/mojom/video_frame_mojom_traits.h
index 196243b..c064e76 100644
--- a/media/mojo/mojom/video_frame_mojom_traits.h
+++ b/media/mojo/mojom/video_frame_mojom_traits.h
@@ -62,6 +62,11 @@
     return input->ColorSpace();
   }
 
+  static const base::Optional<media::HDRMetadata>& hdr_metadata(
+      const scoped_refptr<media::VideoFrame>& input) {
+    return input->hdr_metadata();
+  }
+
   static const base::Optional<gpu::VulkanYCbCrInfo>& ycbcr_info(
       const scoped_refptr<media::VideoFrame>& input) {
     return input->ycbcr_info();
diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc
index 5074b435..b488e351 100644
--- a/media/mojo/services/gpu_mojo_media_client.cc
+++ b/media/mojo/services/gpu_mojo_media_client.cc
@@ -42,6 +42,7 @@
 
 #if defined(OS_WIN)
 #include "media/gpu/windows/d3d11_video_decoder.h"
+#include "ui/gl/direct_composition_surface_win.h"
 #include "ui/gl/gl_angle_util_win.h"
 #endif  // defined(OS_WIN)
 
@@ -309,7 +310,8 @@
                                 media_gpu_channel_manager_,
                                 command_buffer_id->channel_token,
                                 command_buffer_id->route_id),
-            GetD3D11DeviceCallback(), *d3d11_supported_configs_);
+            GetD3D11DeviceCallback(), *d3d11_supported_configs_,
+            gl::DirectCompositionSurfaceWin::IsHDRSupported());
       }
 #endif  // defined(OS_WIN)
   break;
diff --git a/net/cookies/site_for_cookies.cc b/net/cookies/site_for_cookies.cc
index c9c28c1..474eacdf 100644
--- a/net/cookies/site_for_cookies.cc
+++ b/net/cookies/site_for_cookies.cc
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-SiteForCookies::SiteForCookies() = default;
+SiteForCookies::SiteForCookies() : schemefully_same_(false) {}
 
 SiteForCookies::SiteForCookies(const SiteForCookies& other) = default;
 SiteForCookies::SiteForCookies(SiteForCookies&& other) = default;
@@ -35,6 +35,7 @@
 // static
 bool SiteForCookies::FromWire(const std::string& scheme,
                               const std::string& registrable_domain,
+                              bool schemefully_same,
                               SiteForCookies* out) {
   // Make sure scheme meets precondition of methods like
   // GURL::SchemeIsCryptographic.
@@ -46,6 +47,8 @@
   if (registrable_domain != candidate.registrable_domain_)
     return false;
 
+  candidate.schemefully_same_ = schemefully_same;
+
   *out = std::move(candidate);
   return true;
 }
@@ -65,8 +68,10 @@
 }
 
 std::string SiteForCookies::ToDebugString() const {
+  std::string same_scheme_string = schemefully_same_ ? "true" : "false";
   return base::StrCat({"SiteForCookies: {scheme=", scheme_,
-                       "; registrable_domain=", registrable_domain_, "}"});
+                       "; registrable_domain=", registrable_domain_,
+                       "; schemefully_same=", same_scheme_string, "}"});
 }
 
 bool SiteForCookies::IsFirstParty(const GURL& url) const {
@@ -91,6 +96,40 @@
   return registrable_domain_ == other.registrable_domain_;
 }
 
+void SiteForCookies::MarkIfCrossScheme(const url::Origin& other) {
+  // If |this| is IsNull() then |this| doesn't match anything which means that
+  // the scheme check is pointless. Also exit early if schemefully_same_ is
+  // already false.
+  if (IsNull() || !schemefully_same_)
+    return;
+
+  // Mark and return early if |other| is opaque. Opaque origins shouldn't match.
+  if (other.opaque()) {
+    schemefully_same_ = false;
+    return;
+  }
+  const std::string& other_scheme = other.scheme();
+
+  // Exact match case.
+  if (scheme_ == other_scheme)
+    return;
+
+  // ["https", "wss"] case.
+  if ((scheme_ == url::kHttpsScheme || scheme_ == url::kWssScheme) &&
+      (other_scheme == url::kHttpsScheme || other_scheme == url::kWssScheme)) {
+    return;
+  }
+
+  // ["http", "ws"] case.
+  if ((scheme_ == url::kHttpScheme || scheme_ == url::kWsScheme) &&
+      (other_scheme == url::kHttpScheme || other_scheme == url::kWsScheme)) {
+    return;
+  }
+
+  // The two are cross-scheme to each other.
+  schemefully_same_ = false;
+}
+
 GURL SiteForCookies::RepresentativeUrl() const {
   if (IsNull())
     return GURL();
@@ -101,6 +140,8 @@
 
 SiteForCookies::SiteForCookies(const std::string& scheme,
                                const std::string& host)
-    : scheme_(scheme), registrable_domain_(RegistrableDomainOrHost(host)) {}
+    : scheme_(scheme),
+      registrable_domain_(RegistrableDomainOrHost(host)),
+      schemefully_same_(!scheme.empty()) {}
 
 }  // namespace net
diff --git a/net/cookies/site_for_cookies.h b/net/cookies/site_for_cookies.h
index 680a9a1..cf3d6f4 100644
--- a/net/cookies/site_for_cookies.h
+++ b/net/cookies/site_for_cookies.h
@@ -23,12 +23,8 @@
 // 2) They both have empty hostnames and equal schemes.
 // Invalid URLs are not first party to anything.
 //
-// TODO(morlovich): It may make sense to require scheme to match in case (1)
-// too, where the notion of matching makes http/https/ws/wss equivalent, but
-// all other schemes are distinct.
-//
-// This should wait until SiteForCookies type is used everywhere relevant, so
-// any changes are consistent.
+// TODO(crbug.com/1030938): For case 1 the schemes must be "https" & "wss",
+// "http" & "ws", or they must match exactly.
 class NET_EXPORT SiteForCookies {
  public:
   // Matches nothing.
@@ -50,6 +46,7 @@
   // did not lie, merely that they are well-formed.
   static bool FromWire(const std::string& scheme,
                        const std::string& registrable_domain,
+                       bool schemefully_same,
                        SiteForCookies* out);
 
   // If the origin is opaque, returns SiteForCookies that matches nothing.
@@ -71,6 +68,13 @@
   // as |this->IsFirstParty| (potentially none).
   bool IsEquivalent(const SiteForCookies& other) const;
 
+  // Clears the schemefully_same_ flag if |other|'s scheme is cross-scheme to
+  // |this|.
+  // Two schemes are considered the same (not cross-scheme) if they exactly
+  // match, they are both in ["https", "wss"], or they are both in ["http",
+  // "ws"]. All other cases are cross-scheme.
+  void MarkIfCrossScheme(const url::Origin& other);
+
   // Returns a URL that's first party to this SiteForCookies (an empty URL if
   // none) --- that is, it has the property that
   // site_for_cookies.IsEquivalent(
@@ -87,6 +91,10 @@
 
   const std::string& registrable_domain() const { return registrable_domain_; }
 
+  // Used for serialization/deserialization. This value is irrelevant if
+  // IsNull() is true.
+  bool schemefully_same() const { return schemefully_same_; }
+
   // Returns true if this SiteForCookies matches nothing.
   bool IsNull() const { return scheme_.empty(); }
 
@@ -102,6 +110,25 @@
   // just the bare hostname or IP, or an empty string if this represents
   // something like file:///
   std::string registrable_domain_;
+
+  // Used to indicate if the SiteForCookies would be the same if computed
+  // schemefully. A schemeful computation means to take the |scheme_| as well as
+  // the |registrable_domain_| into account when determining first-partyness.
+  // See MarkIfCrossScheme() for more information on scheme comparison.
+  //
+  // True means to treat |this| as-is while false means that |this| should be
+  // treated as if it matches nothing i.e. as if IsNull() returned true.
+  //
+  // This value is important in the case where the SiteForCookies is being used
+  // to assess the first-partyness of a sub-frame in a document.
+  //
+  // For a SiteForCookies with !scheme_.empty() this value starts as true and
+  // will only go false via MarkIfCrossScheme(), otherwise this value is
+  // irrelevant.
+  //
+  // TODO(https://crbug.com/1030938): Actually use this for decisions in other
+  // functions.
+  bool schemefully_same_;
 };
 
 }  // namespace net
diff --git a/net/cookies/site_for_cookies_unittest.cc b/net/cookies/site_for_cookies_unittest.cc
index 3583f1a..aad3078 100644
--- a/net/cookies/site_for_cookies_unittest.cc
+++ b/net/cookies/site_for_cookies_unittest.cc
@@ -70,8 +70,9 @@
       SiteForCookies::FromOrigin(url::Origin())));
 
   EXPECT_EQ("", should_match_none.scheme());
-  EXPECT_EQ("SiteForCookies: {scheme=; registrable_domain=}",
-            should_match_none.ToDebugString());
+  EXPECT_EQ(
+      "SiteForCookies: {scheme=; registrable_domain=; schemefully_same=false}",
+      should_match_none.ToDebugString());
 }
 
 TEST(SiteForCookiesTest, Basic) {
@@ -134,8 +135,10 @@
 
   EXPECT_TRUE(from_blob.IsFirstParty(GURL("http://sub.example.org/resource")));
   EXPECT_EQ("https", from_blob.scheme());
-  EXPECT_EQ("SiteForCookies: {scheme=https; registrable_domain=example.org}",
-            from_blob.ToDebugString());
+  EXPECT_EQ(
+      "SiteForCookies: {scheme=https; registrable_domain=example.org; "
+      "schemefully_same=true}",
+      from_blob.ToDebugString());
   EXPECT_EQ("https://example.org/", from_blob.RepresentativeUrl().spec());
   EXPECT_TRUE(from_blob.IsEquivalent(
       SiteForCookies::FromUrl(GURL("http://www.example.org:631"))));
@@ -145,28 +148,116 @@
   SiteForCookies out;
 
   // Empty one.
-  EXPECT_TRUE(SiteForCookies::FromWire("", "", &out));
+  EXPECT_TRUE(SiteForCookies::FromWire("", "", false, &out));
+  EXPECT_TRUE(out.IsNull());
+
+  EXPECT_TRUE(SiteForCookies::FromWire("", "", true, &out));
   EXPECT_TRUE(out.IsNull());
 
   // Not a valid scheme.
-  EXPECT_FALSE(SiteForCookies::FromWire("aH", "example.com", &out));
+  EXPECT_FALSE(SiteForCookies::FromWire("aH", "example.com", false, &out));
   EXPECT_TRUE(out.IsNull());
 
   // Not a eTLD + 1 (or something hosty).
-  EXPECT_FALSE(SiteForCookies::FromWire("http", "sub.example.com", &out));
+  EXPECT_FALSE(
+      SiteForCookies::FromWire("http", "sub.example.com", false, &out));
   EXPECT_TRUE(out.IsNull());
 
   // This is fine, though.
-  EXPECT_TRUE(SiteForCookies::FromWire("https", "127.0.0.1", &out));
+  EXPECT_TRUE(SiteForCookies::FromWire("https", "127.0.0.1", true, &out));
   EXPECT_FALSE(out.IsNull());
-  EXPECT_EQ("SiteForCookies: {scheme=https; registrable_domain=127.0.0.1}",
-            out.ToDebugString());
+  EXPECT_EQ(
+      "SiteForCookies: {scheme=https; registrable_domain=127.0.0.1; "
+      "schemefully_same=true}",
+      out.ToDebugString());
+
+  EXPECT_TRUE(SiteForCookies::FromWire("https", "127.0.0.1", false, &out));
+  EXPECT_FALSE(out.IsNull());
+  EXPECT_EQ(
+      "SiteForCookies: {scheme=https; registrable_domain=127.0.0.1; "
+      "schemefully_same=false}",
+      out.ToDebugString());
 
   // As is actual eTLD+1.
-  EXPECT_TRUE(SiteForCookies::FromWire("wss", "example.com", &out));
+  EXPECT_TRUE(SiteForCookies::FromWire("wss", "example.com", true, &out));
   EXPECT_FALSE(out.IsNull());
-  EXPECT_EQ("SiteForCookies: {scheme=wss; registrable_domain=example.com}",
-            out.ToDebugString());
+  EXPECT_EQ(
+      "SiteForCookies: {scheme=wss; registrable_domain=example.com; "
+      "schemefully_same=true}",
+      out.ToDebugString());
+}
+
+TEST(SiteForCookiesTest, SameScheme) {
+  struct TestCase {
+    const char* first;
+    const char* second;
+    bool expected_value;
+  };
+
+  const TestCase kTestCases[] = {
+      {"http://a.com", "http://a.com", true},
+      {"https://a.com", "https://a.com", true},
+      {"ws://a.com", "ws://a.com", true},
+      {"wss://a.com", "wss://a.com", true},
+      {"https://a.com", "wss://a.com", true},
+      {"wss://a.com", "https://a.com", true},
+      {"http://a.com", "ws://a.com", true},
+      {"ws://a.com", "http://a.com", true},
+      {"file://a.com", "file://a.com", true},
+      {"file://folder1/folder2/file.txt", "file://folder1/folder2/file.txt",
+       true},
+      {"ftp://a.com", "ftp://a.com", true},
+      {"http://a.com", "file://a.com", false},
+      {"ws://a.com", "wss://a.com", false},
+      {"wss://a.com", "ws://a.com", false},
+      {"https://a.com", "http://a.com", false},
+      {"file://a.com", "https://a.com", false},
+      {"https://a.com", "file://a.com", false},
+      {"file://a.com", "ftp://a.com", false},
+      {"ftp://a.com", "file://a.com", false},
+  };
+
+  for (const TestCase& t : kTestCases) {
+    SiteForCookies first = SiteForCookies::FromUrl(GURL(t.first));
+    url::Origin second = url::Origin::Create(GURL(t.second));
+    EXPECT_FALSE(first.IsNull());
+    first.MarkIfCrossScheme(second);
+    EXPECT_EQ(first.schemefully_same(), t.expected_value);
+  }
+}
+
+TEST(SiteForCookiesTest, SameSchemeOpaque) {
+  url::Origin not_opaque_secure =
+      url::Origin::Create(GURL("https://site.example"));
+  url::Origin not_opaque_nonsecure =
+      url::Origin::Create(GURL("http://site.example"));
+  // Check an opaque origin made from a triple origin and one from the default
+  // constructor.
+  const url::Origin kOpaqueOrigins[] = {
+      not_opaque_secure.DeriveNewOpaqueOrigin(),
+      not_opaque_nonsecure.DeriveNewOpaqueOrigin(), url::Origin()};
+
+  for (const url::Origin& origin : kOpaqueOrigins) {
+    SiteForCookies secure_sfc = SiteForCookies::FromOrigin(not_opaque_secure);
+    EXPECT_FALSE(secure_sfc.IsNull());
+    SiteForCookies nonsecure_sfc =
+        SiteForCookies::FromOrigin(not_opaque_nonsecure);
+    EXPECT_FALSE(nonsecure_sfc.IsNull());
+
+    EXPECT_TRUE(secure_sfc.schemefully_same());
+    secure_sfc.MarkIfCrossScheme(origin);
+    EXPECT_FALSE(secure_sfc.schemefully_same());
+
+    EXPECT_TRUE(nonsecure_sfc.schemefully_same());
+    nonsecure_sfc.MarkIfCrossScheme(origin);
+    EXPECT_FALSE(nonsecure_sfc.schemefully_same());
+
+    SiteForCookies opaque_sfc = SiteForCookies::FromOrigin(origin);
+    EXPECT_TRUE(opaque_sfc.IsNull());
+    // Slightly implementation detail specific as the value isn't relevant for
+    // null SFCs.
+    EXPECT_FALSE(nonsecure_sfc.schemefully_same());
+  }
 }
 
 }  // namespace
diff --git a/remoting/host/mac/permission_utils.mm b/remoting/host/mac/permission_utils.mm
index f94ec89..3d095ba 100644
--- a/remoting/host/mac/permission_utils.mm
+++ b/remoting/host/mac/permission_utils.mm
@@ -17,6 +17,7 @@
 #include "base/single_thread_task_runner.h"
 #include "base/strings/sys_string_conversions.h"
 #include "remoting/base/string_resources.h"
+#include "ui/base/cocoa/permissions_utils.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/l10n/l10n_util_mac.h"
 
@@ -117,44 +118,8 @@
   return AXIsProcessTrusted();
 }
 
-// Heuristic to check screen capture permission. See http://crbug.com/993692
-// Screen capture is considered allowed if the name of at least one normal
-// or dock window running on another process is visible.
-// Copied from
-// chrome/browser/media/webrtc/system_media_capture_permissions_mac.mm
-// TODO(garykac) Move webrtc version where it can be shared.
 bool CanRecordScreen() {
-  if (@available(macOS 10.15, *)) {
-    base::ScopedCFTypeRef<CFArrayRef> window_list(
-        CGWindowListCopyWindowInfo(kCGWindowListOptionAll, kCGNullWindowID));
-    int current_pid = [[NSProcessInfo processInfo] processIdentifier];
-    for (NSDictionary* window in base::mac::CFToNSCast(window_list.get())) {
-      NSNumber* window_pid =
-          [window objectForKey:base::mac::CFToNSCast(kCGWindowOwnerPID)];
-      if (!window_pid || [window_pid integerValue] == current_pid)
-        continue;
-
-      NSString* window_name =
-          [window objectForKey:base::mac::CFToNSCast(kCGWindowName)];
-      if (!window_name)
-        continue;
-
-      NSNumber* layer =
-          [window objectForKey:base::mac::CFToNSCast(kCGWindowLayer)];
-      if (!layer)
-        continue;
-
-      NSInteger layer_integer = [layer integerValue];
-      if (layer_integer == CGWindowLevelForKey(kCGNormalWindowLevelKey) ||
-          layer_integer == CGWindowLevelForKey(kCGDockWindowLevelKey)) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  // Screen capture is always allowed in older macOS versions.
-  return true;
+  return ui::IsScreenCaptureAllowed();
 }
 
 // MacOs 10.14+ requires an additional runtime permission for injecting input
diff --git a/remoting/resources/remoting_strings_pt-PT.xtb b/remoting/resources/remoting_strings_pt-PT.xtb
index 03e30ee8..9d639d0 100644
--- a/remoting/resources/remoting_strings_pt-PT.xtb
+++ b/remoting/resources/remoting_strings_pt-PT.xtb
@@ -171,7 +171,7 @@
 <translation id="8513093439376855948">Anfitrião de mensagens nativo para gestão de anfitrião remota</translation>
 <translation id="8525306231823319788">Ecrã inteiro</translation>
 <translation id="858006550102277544">Comentário</translation>
-<translation id="8743328882720071828">Pretende permitir que <ph name="CLIENT_USERNAME" /> veja e controle o seu computador?</translation>
+<translation id="8743328882720071828">Permitir que <ph name="CLIENT_USERNAME" /> veja e controle o seu computador?</translation>
 <translation id="8747048596626351634">Falha da sessão ou falha ao iniciar a sessão. Se ~/.chrome-remote-desktop-session existir no computador remoto, certifique-se de que inicia um processo em primeiro plano de longa execução, como um gestor de janelas ou um ambiente de trabalho.</translation>
 <translation id="8804164990146287819">Política de Privacidade</translation>
 <translation id="9111855907838866522">Está ligado ao seu dispositivo remoto. Para abrir o menu, toque no ecrã com quatro dedos.</translation>
diff --git a/services/device/usb/BUILD.gn b/services/device/usb/BUILD.gn
index fc390a0b..d754b63 100644
--- a/services/device/usb/BUILD.gn
+++ b/services/device/usb/BUILD.gn
@@ -108,6 +108,8 @@
       "setupapi.lib",
       "winusb.lib",
     ]
+
+    deps += [ "//third_party/re2" ]
   }
 
   if (is_android || is_chromeos || is_linux) {
diff --git a/services/device/usb/DEPS b/services/device/usb/DEPS
index a69d02c..0c886be1 100644
--- a/services/device/usb/DEPS
+++ b/services/device/usb/DEPS
@@ -3,6 +3,6 @@
   "+chromeos",
   "+dbus",
   "+services/device/usb/jni_headers",
-
   "+third_party/libusb",
+  "+third_party/re2",
 ]
diff --git a/services/device/usb/README.md b/services/device/usb/README.md
index e0375b8..d747ecd 100644
--- a/services/device/usb/README.md
+++ b/services/device/usb/README.md
@@ -51,3 +51,57 @@
 unit tests all call [UsbTestGadget::Claim].
 
 [UsbTestGadget::Claim]: https://cs.chromium.org/search/?q=UsbTestGadget::Claim&type=cs
+
+
+### Manual Testing
+
+When making changes to platform-specific code the following manual test steps
+should be run to augment automated testing, which is mostly limited to
+platform-independent logic. These tests require an Android phone with USB
+debugging enabled and support for USB tethering. When USB debugging is enabled
+the device creates a vendor-specific interface for the ADB protocol. On
+Windows, with the [OEM USB drivers] installed this interface will have the
+WinUSB.sys driver loaded. When USB tethering is enabled the device creates
+an RNDIS interface for which most operating systems have a built-in driver.
+With both of these features enabled the device will have two interfaces and
+thus be a "composite" device. This is important for testing on Windows as
+composite and non-composite devices must be handled differently.
+
+[OEM USB drivers]: https://developer.android.com/studio/run/oem-usb
+
+#### Steps
+
+1.  [Enable USB debugging] and check that the **USB tethering** option is
+    disabled under **Network & Internet > Hotspot & Tethering** in the
+    phone's setting app.
+2.  Connect phone to the system under test.
+3.  Launch Chrome.
+4.  Load `chrome://usb-internals`.
+5.  Select the **Devices** tab.
+6.  Find the phone in the list. Ensure that the **Manufacturer name**,
+    **Product name** and **Serial number** columns are all populated for this
+    device.
+7.  Click the **Inspect** button next to this device.
+8.  Click the **Get Device Descriptor** button at the bottom of the page.
+9.  Click the **GET** buttons next to **Manufacturer String**,
+    **Product String** and **Serial number** fields.
+10. Check that the values which appear match the ones seen previously.
+11. Load `chrome://inspect` and ensure that the **Discover USB devices**
+    option is checked.
+12. Check that the phone appears as an available device. It may appear as
+    "Offline" until the **Allow** button is tapped on the "Allow USB debugging"
+    prompt which appears on the device. It may take some time for the device to
+    appear.
+13. Launch Chrome on the phone and ensure that the tabs open on the phone are
+    available for inspection.
+14. Enable USB tethering on the phone and repeat steps 4 through 13. This will
+    test hotplugging of a composite device as enabling USB tethering causes
+    the device to reconnect with multiple interfaces.
+15. Disable USB tethering on the phone and repeat steps 4 through 13. This will
+    test hotplugging of a non-composite device as disabling USB tethering
+    causes the device to reconnect with a single interface.
+16. Close Chrome and re-enable USB tethering on the phone.
+17. Repeat steps 3 through 13 for a final time. This will test enumeration of a
+    composite device on Chrome launch.
+
+[Enable USB debugging]: https://developer.android.com/studio/debug/dev-options#enable
\ No newline at end of file
diff --git a/services/device/usb/usb_device_handle_win.cc b/services/device/usb/usb_device_handle_win.cc
index 7ca3f84..ea340809 100644
--- a/services/device/usb/usb_device_handle_win.cc
+++ b/services/device/usb/usb_device_handle_win.cc
@@ -488,9 +488,9 @@
 UsbDeviceHandleWin::UsbDeviceHandleWin(scoped_refptr<UsbDeviceWin> device,
                                        bool composite)
     : device_(std::move(device)),
+      composite_(composite),
       task_runner_(base::SequencedTaskRunnerHandle::Get()),
       blocking_task_runner_(UsbService::CreateBlockingTaskRunner()) {
-  DCHECK(!composite);
   // Windows only supports configuration 1, which therefore must be active.
   DCHECK(device_->GetActiveConfiguration());
 
@@ -504,6 +504,13 @@
       interface_info.first_interface = interface->first_interface;
       RegisterEndpoints(
           CombinedInterfaceInfo(interface.get(), alternate.get()));
+
+      if (composite_ &&
+          interface->interface_number == interface->first_interface) {
+        auto it = device_->function_paths().find(interface->interface_number);
+        if (it != device_->function_paths().end())
+          interface_info.function_path = it->second;
+      }
     }
   }
 }
@@ -511,11 +518,12 @@
 UsbDeviceHandleWin::UsbDeviceHandleWin(scoped_refptr<UsbDeviceWin> device,
                                        base::win::ScopedHandle handle)
     : device_(std::move(device)),
+      composite_(false),
       hub_handle_(std::move(handle)),
       task_runner_(base::SequencedTaskRunnerHandle::Get()),
       blocking_task_runner_(UsbService::CreateBlockingTaskRunner()) {}
 
-UsbDeviceHandleWin::~UsbDeviceHandleWin() {}
+UsbDeviceHandleWin::~UsbDeviceHandleWin() = default;
 
 bool UsbDeviceHandleWin::OpenInterfaceHandle(Interface* interface) {
   if (interface->handle.IsValid())
@@ -524,12 +532,25 @@
   WINUSB_INTERFACE_HANDLE handle;
   if (interface->first_interface == interface->interface_number) {
     if (!function_handle_.IsValid()) {
+      const base::string16* function_path;
+      if (composite_) {
+        if (interface->function_path.empty()) {
+          USB_LOG(ERROR) << "No WinUSB interface for interface "
+                         << static_cast<int>(interface->interface_number)
+                         << ".";
+          return false;
+        }
+        function_path = &interface->function_path;
+      } else {
+        function_path = &device_->device_path();
+      }
+
       function_handle_.Set(CreateFile(
-          device_->device_path().c_str(), GENERIC_READ | GENERIC_WRITE,
-          FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING,
-          FILE_FLAG_OVERLAPPED, nullptr));
+          function_path->c_str(), GENERIC_READ | GENERIC_WRITE,
+          FILE_SHARE_READ | FILE_SHARE_WRITE, /*lpSecurityAttributes=*/nullptr,
+          OPEN_EXISTING, FILE_FLAG_OVERLAPPED, /*hTemplateFile=*/nullptr));
       if (!function_handle_.IsValid()) {
-        USB_PLOG(ERROR) << "Failed to open " << device_->device_path();
+        USB_PLOG(ERROR) << "Failed to open " << *function_path;
         return false;
       }
     }
@@ -583,6 +604,8 @@
     UsbControlTransferRecipient recipient,
     uint16_t index) {
   if (recipient == UsbControlTransferRecipient::ENDPOINT) {
+    // By convention the lower bits of the wIndex field indicate the target
+    // endpoint.
     auto endpoint_it = endpoints_.find(index & 0xff);
     if (endpoint_it == endpoints_.end())
       return INVALID_HANDLE_VALUE;
@@ -592,19 +615,32 @@
     index = endpoint_it->second.interface->interface_number;
   }
 
-  Interface* interface;
+  Interface* interface = nullptr;
   if (recipient == UsbControlTransferRecipient::INTERFACE) {
+    // By convention the lower bits of the wIndex field indicate the target
+    // interface.
     auto interface_it = interfaces_.find(index & 0xff);
     if (interface_it == interfaces_.end())
       return INVALID_HANDLE_VALUE;
 
     interface = &interface_it->second;
-  } else {
-    // TODO: To support composite devices a particular function handle must be
-    // chosen, probably arbitrarily.
-    interface = &interfaces_[0];
+  } else if (composite_) {
+    // For all other recipients any interface can be used but if the device
+    // is composite, then a function with the WinUSB driver loaded must be
+    // found.
+    for (auto& map_entry : interfaces_) {
+      if (!map_entry.second.function_path.empty())
+        interface = &map_entry.second;
+    }
+  } else if (!interfaces_.empty()) {
+    // For a non-composite device there is only a single device path to
+    // choose from so just pick the first interface.
+    interface = &interfaces_.begin()->second;
   }
 
+  if (!interface)
+    return INVALID_HANDLE_VALUE;
+
   OpenInterfaceHandle(interface);
   return interface->handle.Get();
 }
diff --git a/services/device/usb/usb_device_handle_win.h b/services/device/usb/usb_device_handle_win.h
index 9245aa8..f04c3df 100644
--- a/services/device/usb/usb_device_handle_win.h
+++ b/services/device/usb/usb_device_handle_win.h
@@ -91,7 +91,15 @@
     ~Interface();
 
     uint8_t interface_number;
+
+    // If this interface is part of a function then this will be the interface
+    // number of the first interface in that function. Otherwise it will be
+    // equal to |interface_number|.
     uint8_t first_interface;
+
+    // In a composite device each function has its own driver and path to open.
+    base::string16 function_path;
+
     ScopedWinUsbHandle handle;
     bool claimed = false;
     uint8_t alternate_setting = 0;
@@ -143,6 +151,7 @@
   SEQUENCE_CHECKER(sequence_checker_);
 
   scoped_refptr<UsbDeviceWin> device_;
+  const bool composite_;
 
   // |hub_handle_| or all the handles for claimed interfaces in |interfaces_|
   // must outlive their associated |requests_| because individual Request
diff --git a/services/device/usb/usb_device_win.cc b/services/device/usb/usb_device_win.cc
index 4023ab90..dea86aad 100644
--- a/services/device/usb/usb_device_win.cc
+++ b/services/device/usb/usb_device_win.cc
@@ -27,14 +27,14 @@
 UsbDeviceWin::UsbDeviceWin(
     const base::string16& device_path,
     const base::string16& hub_path,
-    const std::vector<base::string16>& child_device_paths,
+    const base::flat_map<int, base::string16>& function_paths,
     uint32_t bus_number,
     uint32_t port_number,
     const base::string16& driver_name)
     : UsbDevice(bus_number, port_number),
       device_path_(device_path),
       hub_path_(hub_path),
-      child_device_paths_(child_device_paths),
+      function_paths_(function_paths),
       driver_name_(driver_name) {}
 
 UsbDeviceWin::~UsbDeviceWin() {}
@@ -44,10 +44,9 @@
 
   scoped_refptr<UsbDeviceHandle> device_handle;
   if (base::EqualsCaseInsensitiveASCII(driver_name_, L"winusb"))
-    device_handle = new UsbDeviceHandleWin(this, false);
-  // TODO: Support composite devices.
-  // else if (base::EqualsCaseInsensitiveASCII(driver_name_, "usbccgp"))
-  //  device_handle = new UsbDeviceHandleWin(this, true);
+    device_handle = new UsbDeviceHandleWin(this, /*composite=*/false);
+  else if (base::EqualsCaseInsensitiveASCII(driver_name_, L"usbccgp"))
+    device_handle = new UsbDeviceHandleWin(this, /*composite=*/true);
 
   base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE, base::BindOnce(std::move(callback), device_handle));
diff --git a/services/device/usb/usb_device_win.h b/services/device/usb/usb_device_win.h
index 3122d7a4..2201f6f1 100644
--- a/services/device/usb/usb_device_win.h
+++ b/services/device/usb/usb_device_win.h
@@ -9,6 +9,7 @@
 #include <memory>
 #include <string>
 
+#include "base/containers/flat_map.h"
 #include "base/macros.h"
 #include "base/sequence_checker.h"
 #include "base/strings/string16.h"
@@ -23,7 +24,7 @@
  public:
   UsbDeviceWin(const base::string16& device_path,
                const base::string16& hub_path,
-               const std::vector<base::string16>& child_device_paths,
+               const base::flat_map<int, base::string16>& child_device_paths,
                uint32_t bus_number,
                uint32_t port_number,
                const base::string16& driver_name);
@@ -38,8 +39,8 @@
   ~UsbDeviceWin() override;
 
   const base::string16& device_path() const { return device_path_; }
-  const std::vector<base::string16>& child_device_paths() const {
-    return child_device_paths_;
+  const base::flat_map<int, base::string16>& function_paths() const {
+    return function_paths_;
   }
   const base::string16& driver_name() const { return driver_name_; }
 
@@ -76,7 +77,7 @@
 
   const base::string16 device_path_;
   const base::string16 hub_path_;
-  const std::vector<base::string16> child_device_paths_;
+  const base::flat_map<int, base::string16> function_paths_;
   const base::string16 driver_name_;
 
   DISALLOW_COPY_AND_ASSIGN(UsbDeviceWin);
diff --git a/services/device/usb/usb_service_win.cc b/services/device/usb/usb_service_win.cc
index 58339ef..ad7b8528 100644
--- a/services/device/usb/usb_service_win.cc
+++ b/services/device/usb/usb_service_win.cc
@@ -19,6 +19,7 @@
 #include "base/scoped_generic.h"
 #include "base/single_thread_task_runner.h"
 #include "base/stl_util.h"
+#include "base/strings/string_number_conversions.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/strings/sys_string_conversions.h"
@@ -30,6 +31,7 @@
 #include "services/device/usb/usb_descriptors.h"
 #include "services/device/usb/usb_device_handle.h"
 #include "services/device/usb/webusb_descriptors.h"
+#include "third_party/re2/src/re2/re2.h"
 
 namespace device {
 
@@ -188,7 +190,7 @@
     auto result = GetDeviceStringListProperty(dev_info, &dev_info_data,
                                               DEVPKEY_Device_Children);
     if (!result.has_value()) {
-      if (GetLastError() != ERROR_NOT_FOUND) {
+      if (GetLastError() == ERROR_NOT_FOUND) {
         result.emplace();
       } else {
         USB_PLOG(ERROR) << "Failed to get device children";
@@ -238,6 +240,25 @@
   return device_path;
 }
 
+int GetInterfaceNumber(const base::string16& instance_id) {
+  // According to MSDN the instance IDs for the device nodes created by the
+  // composite driver is in the form "USB\VID_vvvv&PID_dddd&MI_zz" where "zz"
+  // is the interface number.
+  //
+  // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/standard-usb-identifiers#multiple-interface-usb-devices
+  std::string instance_id_ascii = base::UTF16ToASCII(instance_id);
+  std::string interface_number_str;
+  if (!RE2::PartialMatch(instance_id_ascii, "MI_([0-9a-fA-F]{2})",
+                         &interface_number_str)) {
+    return -1;
+  }
+
+  int interface_number;
+  if (!base::HexStringToInt(interface_number_str, &interface_number))
+    return -1;
+  return interface_number;
+}
+
 base::string16 GetWinUsbDevicePath(const base::string16& instance_id) {
   ScopedDevInfo dev_info(SetupDiCreateDeviceInfoList(nullptr, nullptr));
   if (!dev_info.is_valid()) {
@@ -381,12 +402,14 @@
     // child device notes for each of the device functions. It is these device
     // paths for these children which must be opened in order to communicate
     // with the WinUSB driver.
-    std::vector<base::string16> child_device_paths;
+    std::vector<std::pair<int, base::string16>> function_paths;
     if (base::EqualsCaseInsensitiveASCII(service_name, L"usbccgp")) {
       for (const base::string16& instance_id : child_instance_ids) {
-        base::string16 child_device_path = GetWinUsbDevicePath(instance_id);
-        if (!child_device_path.empty())
-          child_device_paths.push_back(std::move(child_device_path));
+        int interface_number = GetInterfaceNumber(instance_id);
+        if (interface_number != -1) {
+          function_paths.emplace_back(interface_number,
+                                      GetWinUsbDevicePath(instance_id));
+        }
       }
     }
 
@@ -399,8 +422,9 @@
 
     service_task_runner_->PostTask(
         FROM_HERE, base::BindOnce(&UsbServiceWin::CreateDeviceObject, service_,
-                                  device_path, hub_path, child_device_paths,
-                                  bus_number, port_number, service_name));
+                                  std::move(device_path), std::move(hub_path),
+                                  std::move(function_paths), bus_number,
+                                  port_number, std::move(service_name)));
   }
 
  private:
@@ -485,7 +509,7 @@
 void UsbServiceWin::CreateDeviceObject(
     const base::string16& device_path,
     const base::string16& hub_path,
-    const std::vector<base::string16>& child_device_paths,
+    const base::flat_map<int, base::string16>& function_paths,
     uint32_t bus_number,
     uint32_t port_number,
     const base::string16& driver_name) {
@@ -495,9 +519,9 @@
   if (!enumeration_ready())
     ++first_enumeration_countdown_;
 
-  auto device = base::MakeRefCounted<UsbDeviceWin>(
-      device_path, hub_path, child_device_paths, bus_number, port_number,
-      driver_name);
+  auto device =
+      base::MakeRefCounted<UsbDeviceWin>(device_path, hub_path, function_paths,
+                                         bus_number, port_number, driver_name);
   devices_by_path_[device->device_path()] = device;
   device->ReadDescriptors(base::BindOnce(&UsbServiceWin::DeviceReady,
                                          weak_factory_.GetWeakPtr(), device));
@@ -530,9 +554,7 @@
                   << "\", product=" << device->product_id() << " \""
                   << device->product_string() << "\", serial=\""
                   << device->serial_number() << "\", driver=\""
-                  << device->driver_name() << "\", children=["
-                  << base::JoinString(device->child_device_paths(), L", ")
-                  << "], guid=" << device->guid();
+                  << device->driver_name() << "\", guid=" << device->guid();
   } else {
     devices_by_path_.erase(it);
   }
diff --git a/services/device/usb/usb_service_win.h b/services/device/usb/usb_service_win.h
index 8697b89..942e70f 100644
--- a/services/device/usb/usb_service_win.h
+++ b/services/device/usb/usb_service_win.h
@@ -10,6 +10,7 @@
 #include <list>
 #include <unordered_map>
 
+#include "base/containers/flat_map.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "base/scoped_observer.h"
@@ -40,12 +41,13 @@
 
   // Methods called by BlockingThreadHelper
   void HelperStarted();
-  void CreateDeviceObject(const base::string16& device_path,
-                          const base::string16& hub_path,
-                          const std::vector<base::string16>& child_device_paths,
-                          uint32_t bus_number,
-                          uint32_t port_number,
-                          const base::string16& driver_name);
+  void CreateDeviceObject(
+      const base::string16& device_path,
+      const base::string16& hub_path,
+      const base::flat_map<int, base::string16>& function_paths,
+      uint32_t bus_number,
+      uint32_t port_number,
+      const base::string16& driver_name);
 
   void DeviceReady(scoped_refptr<UsbDeviceWin> device, bool success);
 
diff --git a/services/network/network_context_unittest.cc b/services/network/network_context_unittest.cc
index ca6c870..0226dab1 100644
--- a/services/network/network_context_unittest.cc
+++ b/services/network/network_context_unittest.cc
@@ -47,6 +47,7 @@
 #include "components/network_session_configurator/common/network_switches.h"
 #include "components/prefs/testing_pref_service.h"
 #include "crypto/sha2.h"
+#include "mojo/core/embedder/embedder.h"
 #include "mojo/public/cpp/bindings/self_owned_receiver.h"
 #include "mojo/public/cpp/system/data_pipe_utils.h"
 #include "net/base/cache_type.h"
@@ -210,9 +211,11 @@
     const ResourceRequest& request,
     NetworkContext* network_context,
     int url_loader_options = mojom::kURLLoadOptionNone,
-    int process_id = mojom::kBrowserProcessId) {
+    int process_id = mojom::kBrowserProcessId,
+    mojom::URLLoaderFactoryParamsPtr params = nullptr) {
   mojo::Remote<mojom::URLLoaderFactory> loader_factory;
-  auto params = mojom::URLLoaderFactoryParams::New();
+  if (!params)
+    params = mojom::URLLoaderFactoryParams::New();
   params->process_id = process_id;
   params->is_corb_enabled = false;
 
@@ -6448,7 +6451,8 @@
     network_context->trust_token_store()->ExecuteOrEnqueue(
         base::BindLambdaForTesting([&](TrustTokenStore* store) {
           DCHECK(store);
-          store->AddTokens(url::Origin::Create(GURL("https://trusttoken.com/")),
+          store->AddTokens(*SuitableTrustTokenOrigin::Create(
+                               GURL("https://trusttoken.com/")),
                            std::vector<std::string>{"token"}, "issuing key");
           run_loop.Quit();
         }));
@@ -6475,8 +6479,9 @@
         base::BindLambdaForTesting(
             [&obtained_num_tokens, &run_loop](TrustTokenStore* store) {
               DCHECK(store);
-              obtained_num_tokens = store->CountTokens(
-                  url::Origin::Create(GURL("https://trusttoken.com/")));
+              obtained_num_tokens =
+                  store->CountTokens(*SuitableTrustTokenOrigin::Create(
+                      GURL("https://trusttoken.com/")));
               run_loop.Quit();
             }));
 
@@ -6503,6 +6508,110 @@
   EXPECT_FALSE(network_context->trust_token_store());
 }
 
+class NetworkContextExpectBadMessageTest : public NetworkContextTest {
+ public:
+  NetworkContextExpectBadMessageTest() {
+    mojo::core::SetDefaultProcessErrorCallback(
+        base::BindLambdaForTesting([&](const std::string&) {
+          EXPECT_FALSE(got_bad_message_);
+          got_bad_message_ = true;
+        }));
+  }
+  ~NetworkContextExpectBadMessageTest() override {
+    mojo::core::SetDefaultProcessErrorCallback(
+        mojo::core::ProcessErrorCallback());
+  }
+
+ protected:
+  void AssertBadMessage() { EXPECT_TRUE(got_bad_message_); }
+
+  bool got_bad_message_ = false;
+};
+
+TEST_F(NetworkContextExpectBadMessageTest,
+       FailsTrustTokenBearingRequestWhenTrustTokensIsDisabled) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kTrustTokens);
+
+  std::unique_ptr<NetworkContext> network_context =
+      CreateContextWithParams(mojom::NetworkContextParams::New());
+
+  // Allow the store time to initialize asynchronously.
+  task_environment_.RunUntilIdle();
+
+  EXPECT_FALSE(network_context->trust_token_store());
+
+  ResourceRequest my_request;
+  my_request.request_initiator =
+      url::Origin::Create(GURL("https://initiator.com"));
+  my_request.trust_token_params =
+      OptionalTrustTokenParams(mojom::TrustTokenParams::New());
+
+  std::unique_ptr<TestURLLoaderClient> client =
+      FetchRequest(my_request, network_context.get());
+
+  AssertBadMessage();
+}
+
+TEST_F(NetworkContextExpectBadMessageTest,
+       FailsTrustTokenBearingRequestFromInsecureContext) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeature(features::kTrustTokens);
+
+  std::unique_ptr<NetworkContext> network_context =
+      CreateContextWithParams(mojom::NetworkContextParams::New());
+
+  // Allow |network_context|'s Trust Tokens store time to initialize
+  // asynchronously, if necessary.
+  task_environment_.RunUntilIdle();
+
+  ASSERT_TRUE(network_context->trust_token_store());
+
+  ResourceRequest my_request;
+  my_request.request_initiator =
+      url::Origin::Create(GURL("http://insecure-initiator.com"));
+  my_request.trust_token_params =
+      OptionalTrustTokenParams(mojom::TrustTokenParams::New());
+
+  std::unique_ptr<TestURLLoaderClient> client =
+      FetchRequest(my_request, network_context.get());
+
+  AssertBadMessage();
+}
+
+TEST_F(NetworkContextTest,
+       FailsTrustTokenBearingRequestWhenTrustTokensIsEnabled) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeature(features::kTrustTokens);
+
+  std::unique_ptr<NetworkContext> network_context =
+      CreateContextWithParams(mojom::NetworkContextParams::New());
+
+  // Allow the store time to initialize asynchronously.
+  task_environment_.RunUntilIdle();
+
+  ResourceRequest my_request;
+  my_request.request_initiator =
+      url::Origin::Create(GURL("https://initiator.com"));
+  my_request.trust_token_params =
+      OptionalTrustTokenParams(mojom::TrustTokenParams::New());
+
+  auto factory_params = mojom::URLLoaderFactoryParams::New();
+  factory_params->top_frame_origin =
+      url::Origin::Create(GURL("https://topframe.com/"));
+
+  // Since Trust Tokens operations haven't been implemented yet, requests
+  // configured for these operations should fail even if Trust Tokens is
+  // enabled.
+  std::unique_ptr<TestURLLoaderClient> client =
+      FetchRequest(my_request, network_context.get(), mojom::kURLLoadOptionNone,
+                   mojom::kBrowserProcessId, std::move(factory_params));
+  EXPECT_EQ(client->completion_status().error_code,
+            net::ERR_TRUST_TOKEN_OPERATION_FAILED);
+  EXPECT_THAT(client->completion_status().trust_token_operation_status,
+              Optional(mojom::TrustTokenOperationStatus::kUnavailable));
+}
+
 }  // namespace
 
 }  // namespace network
diff --git a/services/network/public/cpp/net_ipc_param_traits.cc b/services/network/public/cpp/net_ipc_param_traits.cc
index 8e794695..8f6d970 100644
--- a/services/network/public/cpp/net_ipc_param_traits.cc
+++ b/services/network/public/cpp/net_ipc_param_traits.cc
@@ -567,16 +567,21 @@
                                              const param_type& p) {
   WriteParam(m, p.scheme());
   WriteParam(m, p.registrable_domain());
+  WriteParam(m, p.schemefully_same());
 }
 
 bool ParamTraits<net::SiteForCookies>::Read(const base::Pickle* m,
                                             base::PickleIterator* iter,
                                             param_type* r) {
   std::string scheme, registrable_domain;
-  if (!ReadParam(m, iter, &scheme) || !ReadParam(m, iter, &registrable_domain))
+  bool schemefully_same;
+  if (!ReadParam(m, iter, &scheme) ||
+      !ReadParam(m, iter, &registrable_domain) ||
+      !ReadParam(m, iter, &schemefully_same))
     return false;
 
-  return net::SiteForCookies::FromWire(scheme, registrable_domain, r);
+  return net::SiteForCookies::FromWire(scheme, registrable_domain,
+                                       schemefully_same, r);
 }
 
 void ParamTraits<net::SiteForCookies>::Log(const param_type& p,
@@ -585,6 +590,8 @@
   LogParam(p.scheme(), l);
   l->append(",");
   LogParam(p.registrable_domain(), l);
+  l->append(",");
+  LogParam(p.schemefully_same(), l);
   l->append(")");
 }
 
diff --git a/services/network/public/cpp/site_for_cookies_mojom_traits.cc b/services/network/public/cpp/site_for_cookies_mojom_traits.cc
index fb73288..74df0098 100644
--- a/services/network/public/cpp/site_for_cookies_mojom_traits.cc
+++ b/services/network/public/cpp/site_for_cookies_mojom_traits.cc
@@ -16,7 +16,8 @@
   if (!data.ReadRegistrableDomain(&registrable_domain))
     return false;
 
-  return net::SiteForCookies::FromWire(scheme, registrable_domain, out);
+  return net::SiteForCookies::FromWire(scheme, registrable_domain,
+                                       data.schemefully_same(), out);
 }
 
 }  // namespace mojo
diff --git a/services/network/public/cpp/site_for_cookies_mojom_traits.h b/services/network/public/cpp/site_for_cookies_mojom_traits.h
index 25c0c13..2663f74 100644
--- a/services/network/public/cpp/site_for_cookies_mojom_traits.h
+++ b/services/network/public/cpp/site_for_cookies_mojom_traits.h
@@ -25,6 +25,10 @@
     return input.registrable_domain();
   }
 
+  static bool schemefully_same(const net::SiteForCookies& input) {
+    return input.schemefully_same();
+  }
+
   static bool Read(network::mojom::SiteForCookiesDataView data,
                    net::SiteForCookies* out);
 };
diff --git a/services/network/public/cpp/site_for_cookies_mojom_traits_unittest.cc b/services/network/public/cpp/site_for_cookies_mojom_traits_unittest.cc
index a970e9b8..65603cce 100644
--- a/services/network/public/cpp/site_for_cookies_mojom_traits_unittest.cc
+++ b/services/network/public/cpp/site_for_cookies_mojom_traits_unittest.cc
@@ -24,6 +24,7 @@
         mojo::test::SerializeAndDeserialize<network::mojom::SiteForCookies>(
             &original, &copied));
     EXPECT_TRUE(original.IsEquivalent(copied));
+    EXPECT_EQ(original.schemefully_same(), copied.schemefully_same());
   }
 }
 
diff --git a/services/network/public/mojom/site_for_cookies.mojom b/services/network/public/mojom/site_for_cookies.mojom
index 1b1910c..2de2d57 100644
--- a/services/network/public/mojom/site_for_cookies.mojom
+++ b/services/network/public/mojom/site_for_cookies.mojom
@@ -10,4 +10,5 @@
   // net::SiteForCookies.
   string scheme;
   string registrable_domain;
+  bool schemefully_same;
 };
diff --git a/services/network/trust_tokens/BUILD.gn b/services/network/trust_tokens/BUILD.gn
index 6ed0dc4a..61a7b5b1 100644
--- a/services/network/trust_tokens/BUILD.gn
+++ b/services/network/trust_tokens/BUILD.gn
@@ -27,6 +27,7 @@
     "suitable_trust_token_origin.h",
     "trust_token_database_owner.cc",
     "trust_token_database_owner.h",
+    "trust_token_http_headers.cc",
     "trust_token_http_headers.h",
     "trust_token_key_commitment_controller.cc",
     "trust_token_key_commitment_controller.h",
@@ -40,6 +41,8 @@
     "trust_token_request_canonicalizer.cc",
     "trust_token_request_canonicalizer.h",
     "trust_token_request_helper.h",
+    "trust_token_request_helper_factory.cc",
+    "trust_token_request_helper_factory.h",
     "trust_token_request_issuance_helper.cc",
     "trust_token_request_issuance_helper.h",
     "trust_token_request_redemption_helper.cc",
@@ -105,6 +108,7 @@
     "trust_token_key_commitments_unittest.cc",
     "trust_token_persister_unittest.cc",
     "trust_token_request_canonicalizer_unittest.cc",
+    "trust_token_request_helper_factory_unittest.cc",
     "trust_token_request_issuance_helper_unittest.cc",
     "trust_token_request_redemption_helper_unittest.cc",
     "trust_token_request_signing_helper_unittest.cc",
diff --git a/services/network/trust_tokens/has_trust_tokens_answerer.cc b/services/network/trust_tokens/has_trust_tokens_answerer.cc
index 98825d8..42ff32c 100644
--- a/services/network/trust_tokens/has_trust_tokens_answerer.cc
+++ b/services/network/trust_tokens/has_trust_tokens_answerer.cc
@@ -46,15 +46,14 @@
     TrustTokenStore* trust_token_store) {
   DCHECK(trust_token_store);
 
-  if (!trust_token_store->SetAssociation(issuer.origin(),
-                                         top_frame_origin_.origin())) {
+  if (!trust_token_store->SetAssociation(issuer, top_frame_origin_)) {
     std::move(callback).Run(mojom::HasTrustTokensResult::New(
         mojom::TrustTokenOperationStatus::kResourceExhausted,
         /*has_trust_tokens=*/false));
     return;
   }
 
-  bool has_trust_tokens = trust_token_store->CountTokens(issuer.origin());
+  bool has_trust_tokens = trust_token_store->CountTokens(issuer);
   std::move(callback).Run(mojom::HasTrustTokensResult::New(
       mojom::TrustTokenOperationStatus::kOk, has_trust_tokens));
 }
diff --git a/services/network/trust_tokens/has_trust_tokens_answerer_unittest.cc b/services/network/trust_tokens/has_trust_tokens_answerer_unittest.cc
index f24fa79f..bf1426c 100644
--- a/services/network/trust_tokens/has_trust_tokens_answerer_unittest.cc
+++ b/services/network/trust_tokens/has_trust_tokens_answerer_unittest.cc
@@ -67,9 +67,9 @@
   // writing, 2).
   for (int i = 0; i < kTrustTokenPerToplevelMaxNumberOfAssociatedIssuers; ++i) {
     ASSERT_TRUE(store->SetAssociation(
-        url::Origin::Create(
+        *SuitableTrustTokenOrigin::Create(
             GURL(base::StringPrintf("https://issuer%d.com", i))),
-        kToplevel.origin()));
+        kToplevel));
   }
 
   PendingTrustTokenStore pending_store;
@@ -97,7 +97,8 @@
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
   TrustTokenStore* raw_store = store.get();
 
-  const url::Origin kIssuer = url::Origin::Create(GURL("https://issuer.com"));
+  const SuitableTrustTokenOrigin kIssuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
   const SuitableTrustTokenOrigin kToplevel =
       *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com"));
 
@@ -122,14 +123,15 @@
   EXPECT_FALSE(result->has_trust_tokens);
 
   // The query should have associated the issuer with the top-level origin.
-  EXPECT_TRUE(raw_store->IsAssociated(kIssuer, kToplevel.origin()));
+  EXPECT_TRUE(raw_store->IsAssociated(kIssuer, kToplevel));
 }
 
 TEST(HasTrustTokensAnswerer, SuccessWithTokens) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
   TrustTokenStore* raw_store = store.get();
 
-  const url::Origin kIssuer = url::Origin::Create(GURL("https://issuer.com"));
+  const SuitableTrustTokenOrigin kIssuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
   const SuitableTrustTokenOrigin kToplevel =
       *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com"));
 
diff --git a/services/network/trust_tokens/test/trust_token_test_util.cc b/services/network/trust_tokens/test/trust_token_test_util.cc
index 24de947..e1b922d 100644
--- a/services/network/trust_tokens/test/trust_token_test_util.cc
+++ b/services/network/trust_tokens/test/trust_token_test_util.cc
@@ -3,23 +3,27 @@
 // found in the LICENSE file.
 
 #include "services/network/trust_tokens/test/trust_token_test_util.h"
+
 #include "base/test/bind_test_util.h"
 #include "services/network/public/mojom/trust_tokens.mojom-shared.h"
 
 namespace network {
 
-TrustTokenRequestHelperTest::TrustTokenRequestHelperTest(
-    base::test::TaskEnvironment::TimeSource time_source)
-    : env_(time_source) {}
-TrustTokenRequestHelperTest::~TrustTokenRequestHelperTest() = default;
+TestURLRequestMaker::TestURLRequestMaker() = default;
+TestURLRequestMaker::~TestURLRequestMaker() = default;
 
-std::unique_ptr<net::URLRequest> TrustTokenRequestHelperTest::MakeURLRequest(
-    std::string spec) {
+std::unique_ptr<net::URLRequest> TestURLRequestMaker::MakeURLRequest(
+    base::StringPiece spec) {
   return context_.CreateRequest(GURL(spec),
                                 net::RequestPriority::DEFAULT_PRIORITY,
                                 &delegate_, TRAFFIC_ANNOTATION_FOR_TESTS);
 }
 
+TrustTokenRequestHelperTest::TrustTokenRequestHelperTest(
+    base::test::TaskEnvironment::TimeSource time_source)
+    : env_(time_source) {}
+TrustTokenRequestHelperTest::~TrustTokenRequestHelperTest() = default;
+
 mojom::TrustTokenOperationStatus
 TrustTokenRequestHelperTest::ExecuteBeginOperationAndWaitForResult(
     TrustTokenRequestHelper* helper,
diff --git a/services/network/trust_tokens/test/trust_token_test_util.h b/services/network/trust_tokens/test/trust_token_test_util.h
index 27aff62..04b0532 100644
--- a/services/network/trust_tokens/test/trust_token_test_util.h
+++ b/services/network/trust_tokens/test/trust_token_test_util.h
@@ -26,9 +26,27 @@
 
 namespace network {
 
+// TestURLRequestMaker is a mixin allowing consumers to factor out the
+// boilerplate of constructing URLRequests in tests.
+class TestURLRequestMaker {
+ public:
+  TestURLRequestMaker();
+  virtual ~TestURLRequestMaker();
+
+  TestURLRequestMaker(const TestURLRequestMaker&) = delete;
+  TestURLRequestMaker& operator=(const TestURLRequestMaker&) = delete;
+
+  // Constructs and returns a URLRequest with destination |spec|.
+  std::unique_ptr<net::URLRequest> MakeURLRequest(base::StringPiece spec);
+
+ protected:
+  net::TestDelegate delegate_;
+  net::TestURLRequestContext context_;
+};
+
 // TrustTokenRequestHelperTest is a fixture common to tests for Trust Tokens
 // issuance, redemption, and signing. It factors out the boilerplate of
-// constructing net::URLRequests.
+// waiting for asynchronous store operations' results.
 class TrustTokenRequestHelperTest : public ::testing::Test {
  public:
   explicit TrustTokenRequestHelperTest(
@@ -41,8 +59,13 @@
       delete;
 
  protected:
-  // Constructs and returns a URLRequest with destination |spec|.
-  std::unique_ptr<net::URLRequest> MakeURLRequest(std::string spec);
+  base::test::TaskEnvironment env_;
+
+  TestURLRequestMaker request_maker_;
+
+  std::unique_ptr<net::URLRequest> MakeURLRequest(base::StringPiece spec) {
+    return request_maker_.MakeURLRequest(spec);
+  }
 
   // Executes a request helper's Begin operation synchronously, removing some
   // boilerplate from waiting for the results of the (actually asynchronous)
@@ -50,10 +73,6 @@
   mojom::TrustTokenOperationStatus ExecuteBeginOperationAndWaitForResult(
       TrustTokenRequestHelper* helper,
       net::URLRequest* request);
-
-  base::test::TaskEnvironment env_;
-  net::TestDelegate delegate_;
-  net::TestURLRequestContext context_;
 };
 
 // The following helper methods unify parameterized unit/integration testing of
diff --git a/services/network/trust_tokens/trust_token_http_headers.cc b/services/network/trust_tokens/trust_token_http_headers.cc
new file mode 100644
index 0000000..2054fe327
--- /dev/null
+++ b/services/network/trust_tokens/trust_token_http_headers.cc
@@ -0,0 +1,20 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "services/network/trust_tokens/trust_token_http_headers.h"
+
+#include "base/no_destructor.h"
+#include "base/strings/string_piece.h"
+
+namespace network {
+
+const std::vector<base::StringPiece>& TrustTokensRequestHeaders() {
+  static base::NoDestructor<std::vector<base::StringPiece>> headers{
+      {kTrustTokensRequestHeaderSecSignature,
+       kTrustTokensRequestHeaderSecSignedRedemptionRecord,
+       kTrustTokensRequestHeaderSecTime, kTrustTokensSecTrustTokenHeader}};
+  return *headers;
+}
+
+}  // namespace network
diff --git a/services/network/trust_tokens/trust_token_http_headers.h b/services/network/trust_tokens/trust_token_http_headers.h
index b9123f5c..74d54967 100644
--- a/services/network/trust_tokens/trust_token_http_headers.h
+++ b/services/network/trust_tokens/trust_token_http_headers.h
@@ -5,10 +5,17 @@
 #ifndef SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_HTTP_HEADERS_H_
 #define SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_HTTP_HEADERS_H_
 
+#include <vector>
+
+#include "base/strings/string_piece_forward.h"
+
 namespace network {
 
 // These are the HTTP headers defined in the Trust Tokens draft explainer:
 // https://github.com/WICG/trust-token-api
+//
+// NOTE: If you add more request headers, please make sure to update the
+// definition of |TrustTokensRequestHeaders|.
 
 // As a request header: during issuance, sends a collection of unsigned, blinded
 // tokens; during redemption, sends a single signed, unblinded token
@@ -37,6 +44,15 @@
 // header denotes an empty list.
 constexpr char kTrustTokensRequestHeaderSignedHeaders[] = "Signed-Headers";
 
+// Returns a view of all of the Trust Tokens-internal request headers.
+// This vector contains all of the headers that clients must not provide on
+// requests bearing Trust Tokens operations, because they are added internally
+// by Trust Tokens logic.
+//
+// In particular, this does *not* contain Signed-Headers because this header's
+// value is provided by the Trust Token API's client.
+const std::vector<base::StringPiece>& TrustTokensRequestHeaders();
+
 }  // namespace network
 
 #endif  // SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_HTTP_HEADERS_H_
diff --git a/services/network/trust_tokens/trust_token_request_helper_factory.cc b/services/network/trust_tokens/trust_token_request_helper_factory.cc
new file mode 100644
index 0000000..dae94270
--- /dev/null
+++ b/services/network/trust_tokens/trust_token_request_helper_factory.cc
@@ -0,0 +1,75 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "services/network/trust_tokens/trust_token_request_helper_factory.h"
+
+#include <utility>
+
+#include "net/base/isolation_info.h"
+#include "net/url_request/url_request.h"
+#include "services/network/public/cpp/resource_request.h"
+#include "services/network/public/mojom/trust_tokens.mojom-shared.h"
+#include "services/network/trust_tokens/suitable_trust_token_origin.h"
+#include "services/network/trust_tokens/trust_token_http_headers.h"
+
+namespace network {
+
+TrustTokenRequestHelperFactory::TrustTokenRequestHelperFactory(
+    PendingTrustTokenStore* store)
+    : store_(store) {}
+
+void TrustTokenRequestHelperFactory::CreateTrustTokenHelperForRequest(
+    const net::URLRequest& request,
+    const mojom::TrustTokenParams& params,
+    base::OnceCallback<void(TrustTokenStatusOrRequestHelper)> done) {
+  for (base::StringPiece header : TrustTokensRequestHeaders()) {
+    if (request.extra_request_headers().HasHeader(header)) {
+      std::move(done).Run(mojom::TrustTokenOperationStatus::kInvalidArgument);
+      return;
+    }
+  }
+
+  base::Optional<SuitableTrustTokenOrigin> maybe_top_frame_origin;
+  if (request.isolation_info().top_frame_origin()) {
+    maybe_top_frame_origin = SuitableTrustTokenOrigin::Create(
+        *request.isolation_info().top_frame_origin());
+  }
+  if (!maybe_top_frame_origin) {
+    std::move(done).Run(mojom::TrustTokenOperationStatus::kFailedPrecondition);
+    return;
+  }
+
+  // Silence the compile warning: |store_| will be used to construct concrete
+  // TrustTokenRequestHelpers once they are implemented.
+  ignore_result(store_);
+
+  // (Currently, there's no asynchronous logic here; subsequent CLs will change
+  // this, since actually creating the helpers will require using the
+  // TrustTokenStore into which |store_| materializes asynchronously.)
+
+  std::move(done).Run(mojom::TrustTokenOperationStatus::kUnavailable);
+}
+
+TrustTokenStatusOrRequestHelper::TrustTokenStatusOrRequestHelper() = default;
+
+TrustTokenStatusOrRequestHelper::TrustTokenStatusOrRequestHelper(
+    mojom::TrustTokenOperationStatus status)
+    : status_(status) {
+  DCHECK_NE(status_, mojom::TrustTokenOperationStatus::kOk);
+}
+TrustTokenStatusOrRequestHelper::TrustTokenStatusOrRequestHelper(
+    std::unique_ptr<TrustTokenRequestHelper> helper)
+    : status_(mojom::TrustTokenOperationStatus::kOk),
+      helper_(std::move(helper)) {
+  DCHECK(helper_);
+}
+
+TrustTokenStatusOrRequestHelper::~TrustTokenStatusOrRequestHelper() = default;
+
+TrustTokenStatusOrRequestHelper::TrustTokenStatusOrRequestHelper(
+    TrustTokenStatusOrRequestHelper&&) = default;
+TrustTokenStatusOrRequestHelper& TrustTokenStatusOrRequestHelper::operator=(
+    TrustTokenStatusOrRequestHelper&&) = default;
+
+}  // namespace network
diff --git a/services/network/trust_tokens/trust_token_request_helper_factory.h b/services/network/trust_tokens/trust_token_request_helper_factory.h
new file mode 100644
index 0000000..712bec5
--- /dev/null
+++ b/services/network/trust_tokens/trust_token_request_helper_factory.h
@@ -0,0 +1,99 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_REQUEST_HELPER_FACTORY_H_
+#define SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_REQUEST_HELPER_FACTORY_H_
+
+#include <memory>
+
+#include "base/callback.h"
+#include "base/no_destructor.h"
+#include "base/optional.h"
+#include "services/network/public/cpp/features.h"
+#include "services/network/public/mojom/trust_tokens.mojom.h"
+#include "services/network/trust_tokens/pending_trust_token_store.h"
+#include "services/network/trust_tokens/trust_token_request_helper.h"
+
+namespace network {
+
+class TrustTokenStatusOrRequestHelper;
+
+// TrustTokenRequestHelperFactory dispatches a helper capable for executing a
+// Trust Tokens (https://github.com/wicg/trust-token-api) operation against a
+// single request.
+class TrustTokenRequestHelperFactory {
+ public:
+  // Created helpers will use |store| to access persistent Trust
+  // Tokens state; consequently, |store| must outlive all of the created
+  // helpers.
+  explicit TrustTokenRequestHelperFactory(PendingTrustTokenStore* store);
+
+  TrustTokenRequestHelperFactory() = default;
+  virtual ~TrustTokenRequestHelperFactory() = default;
+
+  // Attempts to create a TrustTokenRequestHelper able to help execute the Trust
+  // Tokens protocol operation given by |params| against the request |request|.
+  //
+  // If |request| contains any Trust Tokens request headers (see
+  // trust_token_http_headers.h), or if |request|'s top frame origin is missing
+  // or not both (1) potentially trustworthy and (2) either HTTP or HTTPS,
+  // returns kInvalidArgument.
+  //
+  // If the corresponding Trust Tokens operation is not yet implemented, returns
+  // kUnavailable.
+  //
+  // On success, returns kOk alongside a request helper corresponding to
+  // |request|'s Trust Tokens parameters, using |store| to access persistent
+  // state.
+  virtual void CreateTrustTokenHelperForRequest(
+      const net::URLRequest& request,
+      const mojom::TrustTokenParams& params,
+      base::OnceCallback<void(TrustTokenStatusOrRequestHelper)> done);
+
+ private:
+  PendingTrustTokenStore* store_;
+};
+
+class TrustTokenStatusOrRequestHelper {
+ public:
+  TrustTokenStatusOrRequestHelper();
+
+  // Deliberately allow implicit conversion because the object
+  // "is" the status (or the helper).
+  //
+  // |status| must not be kOk. (In case of success, construct the
+  // StatusOrRequestHelper by passing a helper.)
+  TrustTokenStatusOrRequestHelper(  // NOLINT
+      mojom::TrustTokenOperationStatus status);
+
+  // Sets the stored status to kOk and the stored helper to |helper|. |helper|
+  // must not be null.
+  TrustTokenStatusOrRequestHelper(  // NOLINT
+      std::unique_ptr<TrustTokenRequestHelper> helper);
+
+  ~TrustTokenStatusOrRequestHelper();
+
+  TrustTokenStatusOrRequestHelper(TrustTokenStatusOrRequestHelper&&);
+  TrustTokenStatusOrRequestHelper& operator=(TrustTokenStatusOrRequestHelper&&);
+
+  bool ok() const { return status_ == mojom::TrustTokenOperationStatus::kOk; }
+  operator mojom::TrustTokenOperationStatus() const {  // NOLINT
+    return status_;
+  }
+  mojom::TrustTokenOperationStatus status() const { return status_; }
+
+  std::unique_ptr<TrustTokenRequestHelper> TakeOrCrash() {
+    CHECK_EQ(status_, mojom::TrustTokenOperationStatus::kOk);
+    return std::move(helper_);
+  }
+
+ private:
+  mojom::TrustTokenOperationStatus status_ =
+      mojom::TrustTokenOperationStatus::kOk;
+  std::unique_ptr<TrustTokenRequestHelper> helper_;
+};
+
+}  // namespace network
+
+#endif  // SERVICES_NETWORK_TRUST_TOKENS_TRUST_TOKEN_REQUEST_HELPER_FACTORY_H_
diff --git a/services/network/trust_tokens/trust_token_request_helper_factory_unittest.cc b/services/network/trust_tokens/trust_token_request_helper_factory_unittest.cc
new file mode 100644
index 0000000..ab897634
--- /dev/null
+++ b/services/network/trust_tokens/trust_token_request_helper_factory_unittest.cc
@@ -0,0 +1,140 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "services/network/trust_tokens/trust_token_request_helper_factory.h"
+
+#include "base/optional.h"
+#include "base/strings/strcat.h"
+#include "base/test/bind_test_util.h"
+#include "base/test/task_environment.h"
+#include "net/base/isolation_info.h"
+#include "net/url_request/url_request.h"
+#include "services/network/public/cpp/optional_trust_token_params.h"
+#include "services/network/public/cpp/resource_request.h"
+#include "services/network/public/mojom/trust_tokens.mojom.h"
+#include "services/network/trust_tokens/pending_trust_token_store.h"
+#include "services/network/trust_tokens/test/trust_token_test_util.h"
+#include "services/network/trust_tokens/trust_token_http_headers.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/origin.h"
+
+namespace network {
+
+namespace {
+
+// These origins are not suitable for keying persistent Trust Tokens state:
+// - UnsuitableUntrustworthyOrigin is not potentially trustworthy.
+// - UnsuitableNonHttpNonHttpsOrigin is neither HTTP nor HTTPS.
+const url::Origin& UnsuitableUntrustworthyOrigin() {
+  // Default origins are opaque and, as a consequence, not potentially
+  // trustworthy.
+  static base::NoDestructor<url::Origin> origin{url::Origin()};
+  return *origin;
+}
+
+const url::Origin& UnsuitableNonHttpNonHttpsOrigin() {
+  const char kUnsuitableNonHttpNonHttpsUrl[] = "file:///";
+  static base::NoDestructor<url::Origin> origin(
+      url::Origin::Create(GURL(kUnsuitableNonHttpNonHttpsUrl)));
+  return *origin;
+}
+
+// Creates an IsolationInfo for the given top frame origin. (We co-opt
+// CreateForInternalRequest for this purpose, but define an alias because we're
+// not actually creating internal requests.)
+auto CreateIsolationInfo = &net::IsolationInfo::CreateForInternalRequest;
+
+}  // namespace
+
+class TrustTokenRequestHelperFactoryTest : public ::testing::Test {
+ public:
+  TrustTokenRequestHelperFactoryTest() {
+    suitable_request_ = CreateSuitableRequest();
+    suitable_params_ = mojom::TrustTokenParams::New();
+    suitable_params_->issuer =
+        url::Origin::Create(GURL("https://issuer.example"));
+  }
+
+ protected:
+  const net::URLRequest& suitable_request() const { return *suitable_request_; }
+  const mojom::TrustTokenParams& suitable_params() const {
+    return *suitable_params_;
+  }
+
+  std::unique_ptr<net::URLRequest> CreateSuitableRequest() {
+    auto ret = maker_.MakeURLRequest("https://destination.example");
+    ret->set_isolation_info(CreateIsolationInfo(
+        url::Origin::Create(GURL("https://toplevel.example"))));
+    return ret;
+  }
+
+  TrustTokenStatusOrRequestHelper CreateHelperAndWaitForResult(
+      const net::URLRequest& request,
+      const mojom::TrustTokenParams& params) {
+    base::RunLoop run_loop;
+    TrustTokenStatusOrRequestHelper obtained_result;
+    TrustTokenRequestHelperFactory(/*store=*/nullptr)
+        .CreateTrustTokenHelperForRequest(
+            request, params,
+            base::BindLambdaForTesting(
+                [&](TrustTokenStatusOrRequestHelper result) {
+                  obtained_result = std::move(result);
+                  run_loop.Quit();
+                }));
+
+    run_loop.Run();
+    return obtained_result;
+  }
+
+ private:
+  base::test::TaskEnvironment env_;
+  TestURLRequestMaker maker_;
+  std::unique_ptr<net::URLRequest> suitable_request_;
+  mojom::TrustTokenParamsPtr suitable_params_;
+};
+
+TEST_F(TrustTokenRequestHelperFactoryTest, MissingTopFrameOrigin) {
+  std::unique_ptr<net::URLRequest> request = CreateSuitableRequest();
+  request->set_isolation_info(net::IsolationInfo());
+
+  EXPECT_EQ(CreateHelperAndWaitForResult(*request, suitable_params()).status(),
+            mojom::TrustTokenOperationStatus::kFailedPrecondition);
+}
+
+TEST_F(TrustTokenRequestHelperFactoryTest, UnsuitableTopFrameOrigin) {
+  auto request = CreateSuitableRequest();
+  request->set_isolation_info(
+      CreateIsolationInfo(UnsuitableUntrustworthyOrigin()));
+
+  EXPECT_EQ(CreateHelperAndWaitForResult(*request, suitable_params()).status(),
+            mojom::TrustTokenOperationStatus::kFailedPrecondition);
+
+  request->set_isolation_info(
+      CreateIsolationInfo(UnsuitableNonHttpNonHttpsOrigin()));
+  EXPECT_EQ(CreateHelperAndWaitForResult(*request, suitable_params()).status(),
+            mojom::TrustTokenOperationStatus::kFailedPrecondition);
+}
+
+TEST_F(TrustTokenRequestHelperFactoryTest, ForbiddenHeaders) {
+  for (const base::StringPiece& header : TrustTokensRequestHeaders()) {
+    std::unique_ptr<net::URLRequest> my_request = CreateSuitableRequest();
+    my_request->SetExtraRequestHeaderByName(std::string(header), " ",
+                                            /*overwrite=*/true);
+
+    EXPECT_EQ(
+        CreateHelperAndWaitForResult(*my_request, suitable_params()).status(),
+        mojom::TrustTokenOperationStatus::kInvalidArgument);
+  }
+}
+
+// Since the Trust Tokens protocol operations themselves haven't been
+// implemented completely, if a request bearing Trust Tokens parameters does
+// arrive in the network service, it should get rejected with kUnavailable.
+TEST_F(TrustTokenRequestHelperFactoryTest, NotImplemented) {
+  EXPECT_EQ(CreateHelperAndWaitForResult(suitable_request(), suitable_params())
+                .status(),
+            mojom::TrustTokenOperationStatus::kUnavailable);
+}
+
+}  // namespace network
diff --git a/services/network/trust_tokens/trust_token_request_issuance_helper_unittest.cc b/services/network/trust_tokens/trust_token_request_issuance_helper_unittest.cc
index 099e9fa..d1718bf8 100644
--- a/services/network/trust_tokens/trust_token_request_issuance_helper_unittest.cc
+++ b/services/network/trust_tokens/trust_token_request_issuance_helper_unittest.cc
@@ -82,7 +82,7 @@
 TEST_F(TrustTokenRequestIssuanceHelperTest, RejectsIfTooManyIssuers) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  auto issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  auto issuer = *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
   auto toplevel =
       *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com/"));
 
@@ -91,7 +91,7 @@
   // requirements of the Trust Tokens protocol.)
   for (int i = 0; i < kTrustTokenPerToplevelMaxNumberOfAssociatedIssuers; ++i) {
     ASSERT_TRUE(store->SetAssociation(
-        url::Origin::Create(
+        *SuitableTrustTokenOrigin::Create(
             GURL(base::StringPrintf("https://issuer%d.com/", i))),
         toplevel));
   }
@@ -111,7 +111,7 @@
 TEST_F(TrustTokenRequestIssuanceHelperTest, RejectsIfAtCapacity) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  auto issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  auto issuer = *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
 
   // Fill up the store with tokens; issuance should fail the tokens for |issuer|
   // are at capacity.
@@ -134,7 +134,8 @@
 TEST_F(TrustTokenRequestIssuanceHelperTest, RejectsIfKeyCommitmentFails) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
 
   // Have the key commitment getter return nullptr, denoting that the key
   // commitment fetch failed.
@@ -144,7 +145,8 @@
       std::make_unique<MockCryptographer>());
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   EXPECT_EQ(ExecuteBeginOperationAndWaitForResult(&helper, request.get()),
             mojom::TrustTokenOperationStatus::kFailedPrecondition);
@@ -154,7 +156,8 @@
 TEST_F(TrustTokenRequestIssuanceHelperTest, RejectsIfAddingKeyFails) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
@@ -181,7 +184,8 @@
        RejectsIfGettingBlindedTokensFails) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
@@ -214,7 +218,8 @@
 TEST_F(TrustTokenRequestIssuanceHelperTest, SetsRequestHeader) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
@@ -251,7 +256,8 @@
 TEST_F(TrustTokenRequestIssuanceHelperTest, SetsLoadFlag) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
@@ -284,7 +290,8 @@
 TEST_F(TrustTokenRequestIssuanceHelperTest, RejectsIfResponseOmitsHeader) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
@@ -320,7 +327,8 @@
 TEST_F(TrustTokenRequestIssuanceHelperTest, RejectsIfResponseIsUnusable) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
@@ -367,7 +375,8 @@
 TEST_F(TrustTokenRequestIssuanceHelperTest, Success) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
@@ -413,7 +422,8 @@
 TEST_F(TrustTokenRequestIssuanceHelperTest, AssociatesIssuerWithToplevel) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
@@ -448,7 +458,8 @@
 TEST_F(TrustTokenRequestIssuanceHelperTest, StoresObtainedTokens) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(mojom::TrustTokenVerificationKey::New(
diff --git a/services/network/trust_tokens/trust_token_request_redemption_helper.h b/services/network/trust_tokens/trust_token_request_redemption_helper.h
index e500317..6a87115 100644
--- a/services/network/trust_tokens/trust_token_request_redemption_helper.h
+++ b/services/network/trust_tokens/trust_token_request_redemption_helper.h
@@ -167,7 +167,7 @@
   // but, once initialized, it will never be empty over the course of the
   // operation's execution.
   base::Optional<SuitableTrustTokenOrigin> issuer_;
-  const url::Origin top_level_origin_;
+  const SuitableTrustTokenOrigin top_level_origin_;
   const mojom::TrustTokenRefreshPolicy refresh_policy_;
 
   // |signing_key_| and |verification_key_| are generated speculatively near the
diff --git a/services/network/trust_tokens/trust_token_request_redemption_helper_unittest.cc b/services/network/trust_tokens/trust_token_request_redemption_helper_unittest.cc
index a9e527c..5e45c69 100644
--- a/services/network/trust_tokens/trust_token_request_redemption_helper_unittest.cc
+++ b/services/network/trust_tokens/trust_token_request_redemption_helper_unittest.cc
@@ -108,7 +108,7 @@
 TEST_F(TrustTokenRequestRedemptionHelperTest, RejectsIfTooManyIssuers) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
-  auto issuer = url::Origin::Create(GURL("https://issuer.com/"));
+  auto issuer = *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/"));
   auto toplevel =
       *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com/"));
 
@@ -117,7 +117,7 @@
   // requirements of the Trust Tokens protocol.)
   for (int i = 0; i < kTrustTokenPerToplevelMaxNumberOfAssociatedIssuers; ++i) {
     ASSERT_TRUE(store->SetAssociation(
-        url::Origin::Create(
+        *SuitableTrustTokenOrigin::Create(
             GURL(base::StringPrintf("https://issuer%d.com/", i))),
         toplevel));
   }
@@ -130,7 +130,8 @@
       std::make_unique<MockCryptographer>());
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
@@ -148,12 +149,14 @@
       *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com/")),
       mojom::TrustTokenRefreshPolicy::kUseCached, store.get(),
       std::make_unique<FixedKeyCommitmentGetter>(
-          url::Origin::Create(GURL("https://issuer.com/")), nullptr),
+          *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
+          nullptr),
       std::make_unique<FakeKeyPairGenerator>(),
       std::make_unique<MockCryptographer>());
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
@@ -170,7 +173,7 @@
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
 
   auto getter = std::make_unique<FixedKeyCommitmentGetter>(
-      url::Origin::Create(GURL("https://issuer.com")),
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com")),
       mojom::TrustTokenKeyCommitmentResult::New());
 
   TrustTokenRequestRedemptionHelper helper(
@@ -180,7 +183,8 @@
       std::make_unique<MockCryptographer>());
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
@@ -200,15 +204,16 @@
   // commitment's key so that it does not get evicted from storage after the key
   // commitment is updated to reflect the key commitment result).
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
-  store->AddTokens(url::Origin::Create(GURL("https://issuer.com/")),
-                   std::vector<std::string>{"a token"},
-                   /*key=*/"");
+  store->AddTokens(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
+      std::vector<std::string>{"a token"},
+      /*key=*/"");
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
       mojom::TrustTokenVerificationKey::New());
   auto getter = std::make_unique<FixedKeyCommitmentGetter>(
-      url::Origin::Create(GURL("https://issuer.com")),
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com")),
       std::move(key_commitment_result));
 
   // Configure the cryptographer to fail to encode the redemption request.
@@ -223,7 +228,8 @@
       std::move(cryptographer));
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
@@ -242,15 +248,16 @@
   // commitment's key so that it does not get evicted from storage after the key
   // commitment is updated to reflect the key commitment result).
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
-  store->AddTokens(url::Origin::Create(GURL("https://issuer.com/")),
-                   std::vector<std::string>{"a token"},
-                   /*key=*/"");
+  store->AddTokens(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
+      std::vector<std::string>{"a token"},
+      /*key=*/"");
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
       mojom::TrustTokenVerificationKey::New());
   auto getter = std::make_unique<FixedKeyCommitmentGetter>(
-      url::Origin::Create(GURL("https://issuer.com")),
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com")),
       std::move(key_commitment_result));
 
   // Provide |helper| a FailingKeyPairGenerator to ensure that key pair
@@ -262,7 +269,8 @@
       std::make_unique<MockCryptographer>());
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
@@ -286,15 +294,16 @@
     // commitment's key so that it does not get evicted from storage after the
     // key commitment is updated to reflect the key commitment result).
     std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
-    store->AddTokens(url::Origin::Create(GURL("https://issuer.com/")),
-                     std::vector<std::string>{"a token"},
-                     /*key=*/"");
+    store->AddTokens(
+        *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
+        std::vector<std::string>{"a token"},
+        /*key=*/"");
 
     auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
     key_commitment_result->keys.push_back(
         mojom::TrustTokenVerificationKey::New());
     auto getter = std::make_unique<FixedKeyCommitmentGetter>(
-        url::Origin::Create(GURL("https://issuer.com")),
+        *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com")),
         std::move(key_commitment_result));
 
     // The value obtained from the cryptographer should be the exact
@@ -311,7 +320,8 @@
         std::move(cryptographer));
 
     request_ = MakeURLRequest("https://issuer.com/");
-    request_->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+    request_->set_initiator(
+        *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
     mojom::TrustTokenOperationStatus result =
         ExecuteBeginOperationAndWaitForResult(&helper, request_.get());
@@ -350,15 +360,16 @@
   // commitment's key so that it does not get evicted from storage after the key
   // commitment is updated to reflect the key commitment result).
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
-  store->AddTokens(url::Origin::Create(GURL("https://issuer.com/")),
-                   std::vector<std::string>{"a token"},
-                   /*key=*/"");
+  store->AddTokens(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
+      std::vector<std::string>{"a token"},
+      /*key=*/"");
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
       mojom::TrustTokenVerificationKey::New());
   auto getter = std::make_unique<FixedKeyCommitmentGetter>(
-      url::Origin::Create(GURL("https://issuer.com")),
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com")),
       std::move(key_commitment_result));
 
   auto cryptographer = std::make_unique<MockCryptographer>();
@@ -373,7 +384,8 @@
       std::move(cryptographer));
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
@@ -404,15 +416,16 @@
   // commitment's key so that it does not get evicted from storage after the key
   // commitment is updated to reflect the key commitment result).
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
-  store->AddTokens(url::Origin::Create(GURL("https://issuer.com/")),
-                   std::vector<std::string>{"a token"},
-                   /*key=*/"");
+  store->AddTokens(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
+      std::vector<std::string>{"a token"},
+      /*key=*/"");
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
       mojom::TrustTokenVerificationKey::New());
   auto getter = std::make_unique<FixedKeyCommitmentGetter>(
-      url::Origin::Create(GURL("https://issuer.com")),
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com")),
       std::move(key_commitment_result));
 
   // Configure the cryptographer to reject the response header by returning
@@ -431,7 +444,8 @@
       std::move(cryptographer));
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
@@ -467,15 +481,16 @@
   // commitment's key so that it does not get evicted from storage after the key
   // commitment is updated to reflect the key commitment result).
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
-  store->AddTokens(url::Origin::Create(GURL("https://issuer.com/")),
-                   std::vector<std::string>{"a token"},
-                   /*key=*/"");
+  store->AddTokens(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
+      std::vector<std::string>{"a token"},
+      /*key=*/"");
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
       mojom::TrustTokenVerificationKey::New());
   auto getter = std::make_unique<FixedKeyCommitmentGetter>(
-      url::Origin::Create(GURL("https://issuer.com")),
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com")),
       std::move(key_commitment_result));
 
   // Configure the cryptographer to succeed on both the outbound and inbound
@@ -493,7 +508,8 @@
       std::move(cryptographer));
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
@@ -530,15 +546,16 @@
   // commitment's key so that it does not get evicted from storage after the key
   // commitment is updated to reflect the key commitment result).
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
-  store->AddTokens(url::Origin::Create(GURL("https://issuer.com/")),
-                   std::vector<std::string>{"a token"},
-                   /*key=*/"");
+  store->AddTokens(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
+      std::vector<std::string>{"a token"},
+      /*key=*/"");
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
       mojom::TrustTokenVerificationKey::New());
   auto getter = std::make_unique<FixedKeyCommitmentGetter>(
-      url::Origin::Create(GURL("https://issuer.com")),
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com")),
       std::move(key_commitment_result));
 
   // Configure the cryptographer to succeed on both the outbound and inbound
@@ -554,7 +571,8 @@
       std::move(cryptographer));
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
@@ -567,7 +585,7 @@
   // After the operation has successfully begun, the issuer and the toplevel
   // should be associated.
   EXPECT_TRUE(store->IsAssociated(
-      url::Origin::Create(GURL("https://issuer.com/")),
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
       *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com/"))));
 }
 
@@ -582,15 +600,16 @@
   // commitment's key so that it does not get evicted from storage after the key
   // commitment is updated to reflect the key commitment result).
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
-  store->AddTokens(url::Origin::Create(GURL("https://issuer.com/")),
-                   std::vector<std::string>{"a token"},
-                   /*key=*/"");
+  store->AddTokens(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
+      std::vector<std::string>{"a token"},
+      /*key=*/"");
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
       mojom::TrustTokenVerificationKey::New());
   auto getter = std::make_unique<FixedKeyCommitmentGetter>(
-      url::Origin::Create(GURL("https://issuer.com")),
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com")),
       std::move(key_commitment_result));
 
   auto cryptographer = std::make_unique<MockCryptographer>();
@@ -607,7 +626,8 @@
       std::move(cryptographer));
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
   EXPECT_EQ(result, mojom::TrustTokenOperationStatus::kOk);
@@ -624,7 +644,7 @@
   // server response should be in the store.
   EXPECT_THAT(
       store->RetrieveNonstaleRedemptionRecord(
-          url::Origin::Create(GURL("https://issuer.com/")),
+          *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
           *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com/"))),
       Optional(AllOf(Property(&SignedTrustTokenRedemptionRecord::body,
                               "a successfully-extracted SRR"),
@@ -650,7 +670,8 @@
   // kRefresh should mean that redemption fails on requests with
   // non-issuer initiators.
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://not-issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://not-issuer.com/")));
 
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
@@ -664,7 +685,7 @@
 TEST_F(TrustTokenRequestRedemptionHelperTest, RedemptionRecordCacheHit) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
   store->SetRedemptionRecord(
-      url::Origin::Create(GURL("https://issuer.com")),
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com")),
       *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com")),
       SignedTrustTokenRedemptionRecord());
 
@@ -676,7 +697,8 @@
       std::make_unique<MockCryptographer>());
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
@@ -700,18 +722,19 @@
   // commitment is updated to reflect the key commitment result).
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateInMemory();
   store->SetRedemptionRecord(
-      url::Origin::Create(GURL("https://issuer.com")),
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com")),
       *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com")),
       SignedTrustTokenRedemptionRecord());
-  store->AddTokens(url::Origin::Create(GURL("https://issuer.com/")),
-                   std::vector<std::string>{"a token"},
-                   /*key=*/"");
+  store->AddTokens(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
+      std::vector<std::string>{"a token"},
+      /*key=*/"");
 
   auto key_commitment_result = mojom::TrustTokenKeyCommitmentResult::New();
   key_commitment_result->keys.push_back(
       mojom::TrustTokenVerificationKey::New());
   auto getter = std::make_unique<FixedKeyCommitmentGetter>(
-      url::Origin::Create(GURL("https://issuer.com")),
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com")),
       std::move(key_commitment_result));
 
   auto cryptographer = std::make_unique<MockCryptographer>();
@@ -727,11 +750,13 @@
       std::move(cryptographer));
 
   auto request = MakeURLRequest("https://issuer.com/");
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   // Set the initiator in order to be able to use refresh mode
   // kRefresh.
-  request->set_initiator(url::Origin::Create(GURL("https://issuer.com/")));
+  request->set_initiator(
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")));
 
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, request.get());
@@ -749,7 +774,7 @@
   // server response should be in the store.
   EXPECT_THAT(
       store->RetrieveNonstaleRedemptionRecord(
-          url::Origin::Create(GURL("https://issuer.com/")),
+          *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com/")),
           *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com/"))),
       Optional(AllOf(Property(&SignedTrustTokenRedemptionRecord::body,
                               "a successfully-extracted SRR"),
diff --git a/services/network/trust_tokens/trust_token_store.cc b/services/network/trust_tokens/trust_token_store.cc
index 898c8d8b..df449a0 100644
--- a/services/network/trust_tokens/trust_token_store.cc
+++ b/services/network/trust_tokens/trust_token_store.cc
@@ -51,9 +51,8 @@
       std::make_unique<InMemoryTrustTokenPersister>());
 }
 
-void TrustTokenStore::RecordIssuance(const url::Origin& issuer) {
-  DCHECK(!issuer.opaque());
-  url::Origin issuer_origin = issuer;
+void TrustTokenStore::RecordIssuance(const SuitableTrustTokenOrigin& issuer) {
+  SuitableTrustTokenOrigin issuer_origin = issuer;
   std::unique_ptr<TrustTokenIssuerConfig> config =
       persister_->GetIssuerConfig(issuer);
   if (!config)
@@ -63,8 +62,7 @@
 }
 
 base::Optional<base::TimeDelta> TrustTokenStore::TimeSinceLastIssuance(
-    const url::Origin& issuer) {
-  DCHECK(!issuer.opaque());
+    const SuitableTrustTokenOrigin& issuer) {
   std::unique_ptr<TrustTokenIssuerConfig> config =
       persister_->GetIssuerConfig(issuer);
   if (!config)
@@ -83,10 +81,9 @@
   return ret;
 }
 
-void TrustTokenStore::RecordRedemption(const url::Origin& issuer,
-                                       const url::Origin& top_level) {
-  DCHECK(!issuer.opaque());
-  DCHECK(!top_level.opaque());
+void TrustTokenStore::RecordRedemption(
+    const SuitableTrustTokenOrigin& issuer,
+    const SuitableTrustTokenOrigin& top_level) {
   std::unique_ptr<TrustTokenIssuerToplevelPairConfig> config =
       persister_->GetIssuerToplevelPairConfig(issuer, top_level);
   if (!config)
@@ -96,10 +93,8 @@
 }
 
 base::Optional<base::TimeDelta> TrustTokenStore::TimeSinceLastRedemption(
-    const url::Origin& issuer,
-    const url::Origin& top_level) {
-  DCHECK(!issuer.opaque());
-  DCHECK(!top_level.opaque());
+    const SuitableTrustTokenOrigin& issuer,
+    const SuitableTrustTokenOrigin& top_level) {
   auto config = persister_->GetIssuerToplevelPairConfig(issuer, top_level);
   if (!config)
     return base::nullopt;
@@ -118,10 +113,8 @@
   return ret;
 }
 
-bool TrustTokenStore::IsAssociated(const url::Origin& issuer,
-                                   const url::Origin& top_level) {
-  DCHECK(!issuer.opaque());
-  DCHECK(!top_level.opaque());
+bool TrustTokenStore::IsAssociated(const SuitableTrustTokenOrigin& issuer,
+                                   const SuitableTrustTokenOrigin& top_level) {
   std::unique_ptr<TrustTokenToplevelConfig> config =
       persister_->GetToplevelConfig(top_level);
   if (!config)
@@ -129,10 +122,9 @@
   return base::Contains(config->associated_issuers(), issuer.Serialize());
 }
 
-bool TrustTokenStore::SetAssociation(const url::Origin& issuer,
-                                     const url::Origin& top_level) {
-  DCHECK(!issuer.opaque());
-  DCHECK(!top_level.opaque());
+bool TrustTokenStore::SetAssociation(
+    const SuitableTrustTokenOrigin& issuer,
+    const SuitableTrustTokenOrigin& top_level) {
   std::unique_ptr<TrustTokenToplevelConfig> config =
       persister_->GetToplevelConfig(top_level);
   if (!config)
@@ -154,9 +146,8 @@
 }
 
 void TrustTokenStore::PruneStaleIssuerState(
-    const url::Origin& issuer,
+    const SuitableTrustTokenOrigin& issuer,
     const std::vector<mojom::TrustTokenVerificationKeyPtr>& keys) {
-  DCHECK(!issuer.opaque());
   DCHECK([&keys]() {
     std::set<base::StringPiece> unique_keys;
     for (const auto& key : keys)
@@ -183,10 +174,9 @@
   persister_->SetIssuerConfig(issuer, std::move(config));
 }
 
-void TrustTokenStore::AddTokens(const url::Origin& issuer,
+void TrustTokenStore::AddTokens(const SuitableTrustTokenOrigin& issuer,
                                 base::span<const std::string> token_bodies,
                                 base::StringPiece issuing_key) {
-  DCHECK(!issuer.opaque());
   auto config = persister_->GetIssuerConfig(issuer);
   if (!config)
     config = std::make_unique<TrustTokenIssuerConfig>();
@@ -203,8 +193,7 @@
   persister_->SetIssuerConfig(issuer, std::move(config));
 }
 
-int TrustTokenStore::CountTokens(const url::Origin& issuer) {
-  DCHECK(!issuer.opaque());
+int TrustTokenStore::CountTokens(const SuitableTrustTokenOrigin& issuer) {
   auto config = persister_->GetIssuerConfig(issuer);
   if (!config)
     return 0;
@@ -212,9 +201,8 @@
 }
 
 std::vector<TrustToken> TrustTokenStore::RetrieveMatchingTokens(
-    const url::Origin& issuer,
+    const SuitableTrustTokenOrigin& issuer,
     base::RepeatingCallback<bool(const std::string&)> key_matcher) {
-  DCHECK(!issuer.opaque());
   auto config = persister_->GetIssuerConfig(issuer);
   std::vector<TrustToken> matching_tokens;
   if (!config)
@@ -230,9 +218,8 @@
   return matching_tokens;
 }
 
-void TrustTokenStore::DeleteToken(const url::Origin& issuer,
+void TrustTokenStore::DeleteToken(const SuitableTrustTokenOrigin& issuer,
                                   const TrustToken& to_delete) {
-  DCHECK(!issuer.opaque());
   auto config = persister_->GetIssuerConfig(issuer);
   if (!config)
     return;
@@ -249,11 +236,9 @@
 }
 
 void TrustTokenStore::SetRedemptionRecord(
-    const url::Origin& issuer,
-    const url::Origin& top_level,
+    const SuitableTrustTokenOrigin& issuer,
+    const SuitableTrustTokenOrigin& top_level,
     const SignedTrustTokenRedemptionRecord& record) {
-  DCHECK(!issuer.opaque());
-  DCHECK(!top_level.opaque());
   auto config = persister_->GetIssuerToplevelPairConfig(issuer, top_level);
   if (!config)
     config = std::make_unique<TrustTokenIssuerToplevelPairConfig>();
@@ -263,10 +248,8 @@
 
 base::Optional<SignedTrustTokenRedemptionRecord>
 TrustTokenStore::RetrieveNonstaleRedemptionRecord(
-    const url::Origin& issuer,
-    const url::Origin& top_level) {
-  DCHECK(!issuer.opaque());
-  DCHECK(!top_level.opaque());
+    const SuitableTrustTokenOrigin& issuer,
+    const SuitableTrustTokenOrigin& top_level) {
   auto config = persister_->GetIssuerToplevelPairConfig(issuer, top_level);
   if (!config)
     return base::nullopt;
diff --git a/services/network/trust_tokens/trust_token_store.h b/services/network/trust_tokens/trust_token_store.h
index 27f660a..b247092 100644
--- a/services/network/trust_tokens/trust_token_store.h
+++ b/services/network/trust_tokens/trust_token_store.h
@@ -16,9 +16,9 @@
 #include "base/time/time.h"
 #include "services/network/public/mojom/trust_tokens.mojom.h"
 #include "services/network/trust_tokens/proto/public.pb.h"
+#include "services/network/trust_tokens/suitable_trust_token_origin.h"
 #include "services/network/trust_tokens/trust_token_persister.h"
 #include "services/network/trust_tokens/types.h"
-#include "url/origin.h"
 
 namespace network {
 
@@ -80,9 +80,7 @@
   //// Methods related to ratelimits:
 
   // Updates the given issuer's last issuance time to now.
-  //
-  // |issuer| must not be opaque.
-  virtual void RecordIssuance(const url::Origin& issuer);
+  virtual void RecordIssuance(const SuitableTrustTokenOrigin& issuer);
 
   // Returns the time since the last call to RecordIssuance for
   // issuer |issuer|, or nullopt in the following two cases:
@@ -93,14 +91,12 @@
   //
   // |issuer| must not be opaque.
   WARN_UNUSED_RESULT virtual base::Optional<base::TimeDelta>
-  TimeSinceLastIssuance(const url::Origin& issuer);
+  TimeSinceLastIssuance(const SuitableTrustTokenOrigin& issuer);
 
   // Updates the given (issuer, top-level) origin pair's last redemption time
   // to now.
-  //
-  // |issuer| and |top_level| must not be opaque.
-  virtual void RecordRedemption(const url::Origin& issuer,
-                                const url::Origin& top_level);
+  virtual void RecordRedemption(const SuitableTrustTokenOrigin& issuer,
+                                const SuitableTrustTokenOrigin& top_level);
 
   // Returns the time elapsed since the last redemption recorded by
   // RecordRedemption for issuer |issuer| and top level |top_level|,
@@ -109,17 +105,14 @@
   // top-level origin) pair.
   // 2. the time since the last redepmption is negative (because
   // of, for instance, corruption or clock skew).
-  //
-  // |issuer| and |top_level| must not be opaque.
   WARN_UNUSED_RESULT virtual base::Optional<base::TimeDelta>
-  TimeSinceLastRedemption(const url::Origin& issuer,
-                          const url::Origin& top_level);
+  TimeSinceLastRedemption(const SuitableTrustTokenOrigin& issuer,
+                          const SuitableTrustTokenOrigin& top_level);
 
   // Returns whether |issuer| is associated with |top_level|.
-  //
-  // |issuer| and |top_level| must not be opaque.
-  WARN_UNUSED_RESULT virtual bool IsAssociated(const url::Origin& issuer,
-                                               const url::Origin& top_level);
+  WARN_UNUSED_RESULT virtual bool IsAssociated(
+      const SuitableTrustTokenOrigin& issuer,
+      const SuitableTrustTokenOrigin& top_level);
 
   // If associating |issuer| with |top_level| would exceed the cap on the number
   // of issuers allowed to be associated with a given top-level origin, returns
@@ -129,10 +122,9 @@
   // issuers, it'd be good to make these associations expire after some
   // reasonably long amount of time, so that top-level origins can change their
   // minds about their associated issuers.
-  //
-  // |issuer| and |top_level| must not be opaque.
-  WARN_UNUSED_RESULT virtual bool SetAssociation(const url::Origin& issuer,
-                                                 const url::Origin& top_level);
+  WARN_UNUSED_RESULT virtual bool SetAssociation(
+      const SuitableTrustTokenOrigin& issuer,
+      const SuitableTrustTokenOrigin& top_level);
 
   //// Methods related to reading and writing issuer values configured via key
   //// commitment queries, such as key commitments and batch sizes:
@@ -143,10 +135,9 @@
   // - removes all stored signed tokens for |issuer| that were signed with
   // keys not in |keys|
   //
-  // |issuer| must not be opaque, and the commitments in |keys| must have
-  // distinct keys.
+  // The commitments in |keys| must have distinct keys.
   virtual void PruneStaleIssuerState(
-      const url::Origin& issuer,
+      const SuitableTrustTokenOrigin& issuer,
       const std::vector<mojom::TrustTokenVerificationKeyPtr>& keys);
 
   //// Methods related to reading and writing signed tokens:
@@ -159,51 +150,41 @@
   // Note: This method makes no assumption about tokens matching an issuer's
   // current key commitments; it's the caller's responsibility to avoid using
   // tokens issued against non-current keys.
-  //
-  // |issuer| must not be opaque.
-  virtual void AddTokens(const url::Origin& issuer,
+  virtual void AddTokens(const SuitableTrustTokenOrigin& issuer,
                          base::span<const std::string> token_bodies,
                          base::StringPiece issuing_key);
 
   // Returns the number of tokens stored for |issuer|.
-  //
-  // |issuer| must not be opaque.
-  WARN_UNUSED_RESULT virtual int CountTokens(const url::Origin& issuer);
+  WARN_UNUSED_RESULT virtual int CountTokens(
+      const SuitableTrustTokenOrigin& issuer);
 
   // Returns all signed tokens from |issuer| signed by keys matching
   // the given predicate.
-  //
-  // |issuer| must not be opaque.
   WARN_UNUSED_RESULT virtual std::vector<TrustToken> RetrieveMatchingTokens(
-      const url::Origin& issuer,
+      const SuitableTrustTokenOrigin& issuer,
       base::RepeatingCallback<bool(const std::string&)> key_matcher);
 
   // If |to_delete| is a currently stored token issued by |issuer|, deletes the
   // token.
-  //
-  // |issuer| must not be opaque.
-  void DeleteToken(const url::Origin& issuer, const TrustToken& to_delete);
+  void DeleteToken(const SuitableTrustTokenOrigin& issuer,
+                   const TrustToken& to_delete);
 
   //// Methods concerning Signed Redemption Records (SRRs)
 
   // Sets the cached SRR corresponding to the pair (issuer, top_level)
   // to |record|. Overwrites any existing record.
-  //
-  // |issuer| and |top_level| must not be opaque.
   virtual void SetRedemptionRecord(
-      const url::Origin& issuer,
-      const url::Origin& top_level,
+      const SuitableTrustTokenOrigin& issuer,
+      const SuitableTrustTokenOrigin& top_level,
       const SignedTrustTokenRedemptionRecord& record);
 
   // Attempts to retrieve the stored SRR for the given pair of (issuer,
   // top-level) origins.
   // - If the pair has a current (i.e., non-expired) SRR, returns that SRR.
   // - Otherwise, returns nullopt.
-  //
-  // |issuer| and |top_level| must not be opaque.
   WARN_UNUSED_RESULT virtual base::Optional<SignedTrustTokenRedemptionRecord>
-  RetrieveNonstaleRedemptionRecord(const url::Origin& issuer,
-                                   const url::Origin& top_level);
+  RetrieveNonstaleRedemptionRecord(const SuitableTrustTokenOrigin& issuer,
+                                   const SuitableTrustTokenOrigin& top_level);
 
  private:
   std::unique_ptr<TrustTokenPersister> persister_;
diff --git a/services/network/trust_tokens/trust_token_store_unittest.cc b/services/network/trust_tokens/trust_token_store_unittest.cc
index 197054a3..a4b9eec 100644
--- a/services/network/trust_tokens/trust_token_store_unittest.cc
+++ b/services/network/trust_tokens/trust_token_store_unittest.cc
@@ -13,6 +13,7 @@
 #include "services/network/trust_tokens/in_memory_trust_token_persister.h"
 #include "services/network/trust_tokens/proto/public.pb.h"
 #include "services/network/trust_tokens/proto/storage.pb.h"
+#include "services/network/trust_tokens/suitable_trust_token_origin.h"
 #include "services/network/trust_tokens/trust_token_parameterization.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -41,7 +42,8 @@
   // recorded any issuances.
 
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>());
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
   base::test::TaskEnvironment env(
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
@@ -62,7 +64,8 @@
   auto* raw_persister = my_persister.get();
 
   TrustTokenStore my_store(std::move(my_persister));
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
 
   auto issuer_config_with_no_time = std::make_unique<TrustTokenIssuerConfig>();
   raw_persister->SetIssuerConfig(issuer, std::move(issuer_config_with_no_time));
@@ -86,7 +89,8 @@
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
   TrustTokenStore my_store(std::move(my_persister));
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
   base::Time later_than_now =
       base::Time::Now() + base::TimeDelta::FromSeconds(1);
 
@@ -107,8 +111,10 @@
   // recorded any redemptions.
 
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>());
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
-  url::Origin toplevel = url::Origin::Create(GURL("https://toplevel.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin toplevel =
+      *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com"));
   base::test::TaskEnvironment env(
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
@@ -130,8 +136,10 @@
   auto* raw_persister = my_persister.get();
 
   TrustTokenStore my_store(std::move(my_persister));
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
-  url::Origin toplevel = url::Origin::Create(GURL("https://toplevel.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin toplevel =
+      *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com"));
 
   auto config_with_no_time =
       std::make_unique<TrustTokenIssuerToplevelPairConfig>();
@@ -157,8 +165,10 @@
   base::test::TaskEnvironment env(
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
-  url::Origin toplevel = url::Origin::Create(GURL("https://toplevel.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin toplevel =
+      *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com"));
 
   base::Time later_than_now =
       base::Time::Now() + base::TimeDelta::FromSeconds(1);
@@ -181,8 +191,10 @@
   // any toplevels are associated with any issuers.
 
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>());
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
-  url::Origin toplevel = url::Origin::Create(GURL("https://toplevel.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin toplevel =
+      *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com"));
   EXPECT_FALSE(my_store.IsAssociated(issuer, toplevel));
 
   // After associating an issuer with a toplevel,
@@ -199,8 +211,10 @@
 TEST(TrustTokenStore, IssuerToplevelAssociationAtNumberOfAssociationsCap) {
   auto persister = std::make_unique<InMemoryTrustTokenPersister>();
 
-  url::Origin toplevel = url::Origin::Create(GURL("https://toplevel.com"));
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin toplevel =
+      *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
 
   auto config = std::make_unique<TrustTokenToplevelConfig>();
   for (int i = 0; i < kTrustTokenPerToplevelMaxNumberOfAssociatedIssuers - 1;
@@ -222,13 +236,15 @@
   // Since we're at the cap, SetAssociation for an issuer not already associated
   // with the top-level origin should fail.
   EXPECT_FALSE(my_store.SetAssociation(
-      url::Origin::Create(GURL("https://someotherissuer.com")), toplevel));
+      *SuitableTrustTokenOrigin::Create(GURL("https://someotherissuer.com")),
+      toplevel));
 }
 
 TEST(TrustTokenStore, AddingTokensRespectsCapacity) {
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>());
 
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
 
   // Attempting to add many, many tokens corresponding to that key should be
   // successful, but the operation should only add a quantity of tokens equal to
@@ -244,7 +260,8 @@
 
 TEST(TrustTokenStore, CountsTokens) {
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>());
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
 
   // A freshly initialized store should be storing zero tokens.
   EXPECT_EQ(my_store.CountTokens(issuer), 0);
@@ -265,7 +282,8 @@
   // correctly evicts all tokens except those associated with keys in the
   // provided set of commitments.
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>());
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
 
   my_store.AddTokens(issuer, std::vector<std::string>{"some token body"},
                      "quite a secure key, this");
@@ -300,7 +318,8 @@
   // any issuers have associated trust tokens.
 
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>());
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
 
   auto match_all_keys =
       base::BindRepeating([](const std::string& t) { return true; });
@@ -330,7 +349,8 @@
   // the provided predicate.
 
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>());
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
 
   const std::string kMatchingKey = "bbbbbb";
   const std::string kNonmatchingKey = "aaaaaa";
@@ -363,7 +383,8 @@
 
 TEST(TrustTokenStore, DeletesSingleToken) {
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>());
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
   auto match_all_keys =
       base::BindRepeating([](const std::string& t) { return true; });
 
@@ -395,7 +416,8 @@
 
 TEST(TrustTokenStore, DeleteTokenForMissingIssuer) {
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>());
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
 
   // Deletes for issuers not present in the store should gracefully no-op.
 
@@ -407,8 +429,10 @@
   // it has any signed redemption records.
 
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>());
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
-  url::Origin toplevel = url::Origin::Create(GURL("https://toplevel.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin toplevel =
+      *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com"));
   base::test::TaskEnvironment env(
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
@@ -434,8 +458,10 @@
   auto my_persister = std::make_unique<InMemoryTrustTokenPersister>();
   auto* raw_persister = my_persister.get();
   TrustTokenStore my_store(std::move(my_persister));
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
-  url::Origin toplevel = url::Origin::Create(GURL("https://toplevel.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin toplevel =
+      *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com"));
 
   raw_persister->SetIssuerToplevelPairConfig(
       issuer, toplevel, std::make_unique<TrustTokenIssuerToplevelPairConfig>());
@@ -448,8 +474,10 @@
   // Subsequent redemption records should overwrite ones set earlier.
 
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>());
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
-  url::Origin toplevel = url::Origin::Create(GURL("https://toplevel.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin toplevel =
+      *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com"));
   base::test::TaskEnvironment env(
       base::test::TaskEnvironment::TimeSource::MOCK_TIME);
 
@@ -483,8 +511,10 @@
   // be returned by retrieval queries.
   TrustTokenStore my_store(std::make_unique<InMemoryTrustTokenPersister>(),
                            std::make_unique<LetterAExpiringExpiryDelegate>());
-  url::Origin issuer = url::Origin::Create(GURL("https://issuer.com"));
-  url::Origin toplevel = url::Origin::Create(GURL("https://toplevel.com"));
+  SuitableTrustTokenOrigin issuer =
+      *SuitableTrustTokenOrigin::Create(GURL("https://issuer.com"));
+  SuitableTrustTokenOrigin toplevel =
+      *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com"));
 
   SignedTrustTokenRedemptionRecord my_record;
   my_record.set_body("aLook at me! I'm an expired signed redemption record!");
diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
index c69610b..c468df4 100644
--- a/services/network/url_loader.cc
+++ b/services/network/url_loader.cc
@@ -64,6 +64,7 @@
 #include "services/network/resource_scheduler/resource_scheduler_client.h"
 #include "services/network/sec_header_helpers.h"
 #include "services/network/throttling/scoped_throttling_token.h"
+#include "services/network/trust_tokens/trust_token_request_helper_factory.h"
 
 namespace network {
 
@@ -490,7 +491,7 @@
     base::WeakPtr<NetworkUsageAccumulator> network_usage_accumulator,
     mojom::TrustedURLLoaderHeaderClient* url_loader_header_client,
     mojom::OriginPolicyManager* origin_policy_manager,
-    std::unique_ptr<TrustTokenRequestHelper> trust_token_helper)
+    std::unique_ptr<TrustTokenRequestHelperFactory> trust_token_helper_factory)
     : url_request_context_(url_request_context),
       network_service_client_(network_service_client),
       network_context_client_(network_context_client),
@@ -527,7 +528,7 @@
       custom_proxy_post_cache_headers_(request.custom_proxy_post_cache_headers),
       fetch_window_id_(request.fetch_window_id),
       origin_policy_manager_(nullptr),
-      trust_token_helper_(std::move(trust_token_helper)),
+      trust_token_helper_factory_(std::move(trust_token_helper_factory)),
       isolated_world_origin_(request.isolated_world_origin) {
   DCHECK(delete_callback_);
   DCHECK(factory_params_);
@@ -661,7 +662,7 @@
     return;
   }
 
-  BeginTrustTokenOperationIfNecessaryAndThenScheduleStart();
+  BeginTrustTokenOperationIfNecessaryAndThenScheduleStart(request);
 }
 
 // This class is used to manage the queue of pending file upload operations
@@ -819,20 +820,45 @@
                             base::Unretained(this)),
         url_request_.get());
   }
-  BeginTrustTokenOperationIfNecessaryAndThenScheduleStart();
+  BeginTrustTokenOperationIfNecessaryAndThenScheduleStart(request);
 }
 
-void URLLoader::BeginTrustTokenOperationIfNecessaryAndThenScheduleStart() {
-  if (!trust_token_helper_) {
+void URLLoader::BeginTrustTokenOperationIfNecessaryAndThenScheduleStart(
+    const ResourceRequest& request) {
+  if (!request.trust_token_params) {
     ScheduleStart();
     return;
   }
 
+  // Since the request has trust token parameters, |trust_token_helper_factory_|
+  // is guaranteed to be non-null by URLLoader's constructor's contract.
+  DCHECK(trust_token_helper_factory_);
+
+  trust_token_helper_factory_->CreateTrustTokenHelperForRequest(
+      *url_request_, request.trust_token_params.value(),
+      base::BindOnce(&URLLoader::OnDoneConstructingTrustTokenHelper,
+                     weak_ptr_factory_.GetWeakPtr()));
+}
+
+void URLLoader::OnDoneConstructingTrustTokenHelper(
+    TrustTokenStatusOrRequestHelper status_or_helper) {
+  if (!status_or_helper.ok()) {
+    trust_token_status_ = status_or_helper.status();
+
+    // Defer calling NotifyCompleted to make sure the URLLoader
+    // finishes initializing before getting deleted.
+    base::SequencedTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE, base::BindOnce(&URLLoader::NotifyCompleted,
+                                  weak_ptr_factory_.GetWeakPtr(),
+                                  net::ERR_TRUST_TOKEN_OPERATION_FAILED));
+    return;
+  }
+
+  trust_token_helper_ = status_or_helper.TakeOrCrash();
   trust_token_helper_->Begin(
       url_request_.get(),
       base::BindOnce(&URLLoader::OnDoneBeginningTrustTokenOperation,
                      weak_ptr_factory_.GetWeakPtr()));
-  // |this| may have been deleted.
 }
 
 void URLLoader::OnDoneBeginningTrustTokenOperation(
diff --git a/services/network/url_loader.h b/services/network/url_loader.h
index 9098fa1..8e72113 100644
--- a/services/network/url_loader.h
+++ b/services/network/url_loader.h
@@ -37,7 +37,9 @@
 #include "services/network/public/mojom/url_loader.mojom.h"
 #include "services/network/resource_scheduler/resource_scheduler.h"
 #include "services/network/resource_scheduler/resource_scheduler_client.h"
+#include "services/network/trust_tokens/pending_trust_token_store.h"
 #include "services/network/trust_tokens/trust_token_request_helper.h"
+#include "services/network/trust_tokens/trust_token_request_helper_factory.h"
 #include "services/network/upload_progress_tracker.h"
 
 namespace net {
@@ -90,9 +92,8 @@
   // The URLLoader must be destroyed before the |url_request_context|.
   // The |origin_policy_manager| must always be provided for requests that
   // have the |obey_origin_policy| flag set.
-  // If |trust_token_helper| is non-null, it will be queried to perform trust
-  // token operation steps before each request is started, and after each
-  // response's headers arrive.
+  // |trust_token_helper_factory| must be non-null exactly when the request has
+  // Trust Tokens parameters.
   URLLoader(
       net::URLRequestContext* url_request_context,
       mojom::NetworkServiceClient* network_service_client,
@@ -112,7 +113,8 @@
       base::WeakPtr<NetworkUsageAccumulator> network_usage_accumulator,
       mojom::TrustedURLLoaderHeaderClient* url_loader_header_client,
       mojom::OriginPolicyManager* origin_policy_manager,
-      std::unique_ptr<TrustTokenRequestHelper> trust_token_helper);
+      std::unique_ptr<TrustTokenRequestHelperFactory>
+          trust_token_helper_factory);
   ~URLLoader() override;
 
   // mojom::URLLoader implementation:
@@ -241,9 +243,32 @@
   void SetUpUpload(const ResourceRequest& request,
                    int error_code,
                    const std::vector<base::File> opened_files);
-  void BeginTrustTokenOperationIfNecessaryAndThenScheduleStart();
+
+  // A request with Trust Tokens parameters will (assuming preconditions pass
+  // and operations are successful) have one TrustTokenRequestHelper::Begin
+  // executed against the request and one TrustTokenRequestHelper::Finalize
+  // executed against its response.
+  //
+  // Outbound control flow:
+  //
+  // Start in BeginTrustTokenOperationIfNecessaryAndThenScheduleStart
+  // - If there are no Trust Tokens parameters, immediately ScheduleStart.
+  // - Otherwise:
+  //   - asynchronously construct a TrustTokenRequestHelper;
+  //   - receive the helper (or an error) in OnDoneConstructingTrustTokenHelper
+  //   and, if an error, fail the request;
+  //   - execute TrustTokenRequestHelper::Begin against the helper;
+  //   - receive the result in OnDoneBeginningTrustTokenOperation;
+  //   - if successful, ScheduleStart; if there was an error, fail.
+  //
+  // (Inbound, response handling just takes a synchronous Finalize call.)
+  void BeginTrustTokenOperationIfNecessaryAndThenScheduleStart(
+      const ResourceRequest& request);
+  void OnDoneConstructingTrustTokenHelper(
+      TrustTokenStatusOrRequestHelper status_or_helper);
   void OnDoneBeginningTrustTokenOperation(
       mojom::TrustTokenOperationStatus status);
+
   void ScheduleStart();
   void ReadMore();
   void DidRead(int num_bytes, bool completed_synchronously);
@@ -433,9 +458,12 @@
   // the request with the pertinent request headers and, on receiving the
   // corresponding response, processes and strips Trust Tokens response headers.
   //
-  // |trust_token_helper_| is null for (the usual case where) the request has no
-  // associated Trust Tokens operation.
+  // For requests configured for Trust Tokens operations, |trust_token_helper_|
+  // is constructed (using |trust_token_helper_factory_|) just before the
+  // outbound (Begin) operation; for requests without associated Trust Tokens
+  // operations, the field remains null, as does |trust_token_helper_factory_|.
   std::unique_ptr<TrustTokenRequestHelper> trust_token_helper_;
+  std::unique_ptr<TrustTokenRequestHelperFactory> trust_token_helper_factory_;
 
   // The cached result of the request's Trust Tokens protocol operation, if any.
   // This can describe the result of either an outbound (request-annotating)
diff --git a/services/network/url_loader_factory.cc b/services/network/url_loader_factory.cc
index f021104..1c43785 100644
--- a/services/network/url_loader_factory.cc
+++ b/services/network/url_loader_factory.cc
@@ -12,10 +12,12 @@
 #include "base/logging.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/optional.h"
+#include "mojo/public/cpp/bindings/message.h"
 #include "services/network/cors/cors_url_loader_factory.h"
 #include "services/network/network_context.h"
 #include "services/network/network_service.h"
 #include "services/network/network_usage_accumulator.h"
+#include "services/network/public/cpp/is_potentially_trustworthy.h"
 #include "services/network/public/cpp/resource_request.h"
 #include "services/network/resource_scheduler/resource_scheduler_client.h"
 #include "services/network/url_loader.h"
@@ -200,6 +202,22 @@
     return;
   }
 
+  if (url_request.trust_token_params && !context_->trust_token_store()) {
+    mojo::ReportBadMessage(
+        "Got a request with Trust Tokens parameters with Trust tokens "
+        "disabled.");
+    return;
+  }
+
+  if (url_request.trust_token_params && url_request.request_initiator &&
+      !IsOriginPotentiallyTrustworthy(*url_request.request_initiator)) {
+    mojo::ReportBadMessage(
+        "Got a request with Trust Tokens parameters from an insecure context, "
+        "but Trust Tokens operations may only be executed from secure "
+        "contexts.");
+    return;
+  }
+
   auto loader = std::make_unique<URLLoader>(
       context_->url_request_context(), network_service_client,
       context_->client(),
@@ -212,7 +230,12 @@
       std::move(keepalive_statistics_recorder),
       std::move(network_usage_accumulator),
       header_client_.is_bound() ? header_client_.get() : nullptr,
-      context_->origin_policy_manager(), nullptr /* trust_token_helper */);
+      context_->origin_policy_manager(),
+      url_request.trust_token_params
+          ? std::make_unique<TrustTokenRequestHelperFactory>(
+                context_->trust_token_store())
+          : nullptr);
+
   cors_url_loader_factory_->OnLoaderCreated(std::move(loader));
 }
 
diff --git a/services/network/url_loader_unittest.cc b/services/network/url_loader_unittest.cc
index 92c64ff..bac755f 100644
--- a/services/network/url_loader_unittest.cc
+++ b/services/network/url_loader_unittest.cc
@@ -11,6 +11,7 @@
 #include <utility>
 #include <vector>
 
+#include "base/auto_reset.h"
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/compiler_specific.h"
@@ -24,6 +25,7 @@
 #include "base/path_service.h"
 #include "base/run_loop.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/test/bind_test_util.h"
 #include "base/test/gtest_util.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
@@ -78,6 +80,7 @@
 #include "services/network/test/test_url_loader_client.h"
 #include "services/network/test_chunked_data_pipe_getter.h"
 #include "services/network/trust_tokens/trust_token_request_helper.h"
+#include "services/network/trust_tokens/trust_token_request_helper_factory.h"
 #include "services/network/url_loader.h"
 #include "services/network/url_request_context_owner.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -4758,9 +4761,10 @@
 
 namespace {
 
+enum class SyncOrAsync { kSync, kAsync };
+
 class MockTrustTokenRequestHelper : public TrustTokenRequestHelper {
  public:
-  enum class SyncOrAsync { kSync, kAsync };
 
   // |begin_operation_synchrony| denotes whether to complete the |Begin|
   // operation synchronously. (|Finalize| is always synchronous.)
@@ -4844,12 +4848,70 @@
   bool* begin_done_flag_;
 };
 
+class MockTrustTokenRequestHelperFactory
+    : public TrustTokenRequestHelperFactory {
+ public:
+  MockTrustTokenRequestHelperFactory(
+      mojom::TrustTokenOperationStatus creation_failure_error,
+      SyncOrAsync sync_or_async)
+      : sync_or_async_(sync_or_async),
+        creation_failure_error_(creation_failure_error) {}
+
+  MockTrustTokenRequestHelperFactory(
+      base::Optional<mojom::TrustTokenOperationStatus> on_begin,
+      base::Optional<mojom::TrustTokenOperationStatus> on_finalize,
+      SyncOrAsync sync_or_async,
+      bool* begin_done_flag)
+      : sync_or_async_(sync_or_async),
+        helper_(
+            std::make_unique<MockTrustTokenRequestHelper>(on_begin,
+                                                          on_finalize,
+                                                          sync_or_async,
+                                                          begin_done_flag)) {}
+
+  void CreateTrustTokenHelperForRequest(
+      const net::URLRequest& request,
+      const mojom::TrustTokenParams& params,
+      base::OnceCallback<void(TrustTokenStatusOrRequestHelper)> done) override {
+    if (creation_failure_error_) {
+      switch (sync_or_async_) {
+        case SyncOrAsync::kSync: {
+          std::move(done).Run(std::move(*creation_failure_error_));
+          return;
+        }
+        case SyncOrAsync::kAsync:
+          base::ThreadTaskRunnerHandle::Get()->PostTask(
+              FROM_HERE, base::BindOnce(std::move(done),
+                                        std::move(*creation_failure_error_)));
+          return;
+      }
+    }
+
+    switch (sync_or_async_) {
+      case SyncOrAsync::kSync: {
+        std::move(done).Run(std::move(helper_));
+        return;
+      }
+      case SyncOrAsync::kAsync:
+        base::ThreadTaskRunnerHandle::Get()->PostTask(
+            FROM_HERE, base::BindOnce(std::move(done), std::move(helper_)));
+        return;
+    }
+
+    NOTREACHED();
+  }
+
+ private:
+  SyncOrAsync sync_or_async_;
+  base::Optional<mojom::TrustTokenOperationStatus> creation_failure_error_;
+  std::unique_ptr<TrustTokenRequestHelper> helper_;
+};
+
 }  // namespace
 
 class URLLoaderSyncOrAsyncTrustTokenOperationTest
     : public URLLoaderTest,
-      public ::testing::WithParamInterface<
-          MockTrustTokenRequestHelper::SyncOrAsync> {
+      public ::testing::WithParamInterface<SyncOrAsync> {
  public:
   void OnServerReceivedRequest(const net::test_server::HttpRequest&) override {
     EXPECT_TRUE(outbound_trust_token_operation_was_successful_);
@@ -4865,11 +4927,10 @@
   bool outbound_trust_token_operation_was_successful_ = false;
 };
 
-INSTANTIATE_TEST_SUITE_P(
-    WithSyncAndAsyncOperations,
-    URLLoaderSyncOrAsyncTrustTokenOperationTest,
-    ::testing::Values(MockTrustTokenRequestHelper::SyncOrAsync::kSync,
-                      MockTrustTokenRequestHelper::SyncOrAsync::kAsync));
+INSTANTIATE_TEST_SUITE_P(WithSyncAndAsyncOperations,
+                         URLLoaderSyncOrAsyncTrustTokenOperationTest,
+                         ::testing::Values(SyncOrAsync::kSync,
+                                           SyncOrAsync::kAsync));
 
 // An otherwise-successful request with an associated Trust Tokens operation
 // whose Begin and Finalize steps are both successful should succeed overall.
@@ -4877,6 +4938,8 @@
        HandlesTrustTokenOperationSuccess) {
   ResourceRequest request =
       CreateResourceRequest("GET", test_server()->GetURL("/simple_page.html"));
+  request.trust_token_params =
+      OptionalTrustTokenParams(mojom::TrustTokenParams::New());
 
   base::RunLoop delete_run_loop;
   mojo::PendingRemote<mojom::URLLoader> loader_remote;
@@ -4894,7 +4957,7 @@
       0 /* keepalive_request_size */, resource_scheduler_client(), nullptr,
       nullptr /* network_usage_accumulator */, nullptr /* header_client */,
       nullptr /* origin_policy_manager */,
-      std::make_unique<MockTrustTokenRequestHelper>(
+      std::make_unique<MockTrustTokenRequestHelperFactory>(
           mojom::TrustTokenOperationStatus::kOk /* on_begin */,
           mojom::TrustTokenOperationStatus::kOk /* on_finalize */, GetParam(),
           &outbound_trust_token_operation_was_successful_));
@@ -4929,6 +4992,8 @@
        HandlesTrustTokenSignedRedemptionRecordCacheHit) {
   ResourceRequest request =
       CreateResourceRequest("GET", test_server()->GetURL("/simple_page.html"));
+  request.trust_token_params =
+      OptionalTrustTokenParams(mojom::TrustTokenParams::New());
 
   base::RunLoop delete_run_loop;
   mojo::PendingRemote<mojom::URLLoader> loader_remote;
@@ -4946,7 +5011,7 @@
       0 /* keepalive_request_size */, resource_scheduler_client(), nullptr,
       nullptr /* network_usage_accumulator */, nullptr /* header_client */,
       nullptr /* origin_policy_manager */,
-      std::make_unique<MockTrustTokenRequestHelper>(
+      std::make_unique<MockTrustTokenRequestHelperFactory>(
           mojom::TrustTokenOperationStatus::kAlreadyExists /* on_begin */,
           base::nullopt /* on_finalize */, GetParam(),
           &outbound_trust_token_operation_was_successful_));
@@ -4969,6 +5034,8 @@
        HandlesTrustTokenBeginFailure) {
   ResourceRequest request =
       CreateResourceRequest("GET", test_server()->GetURL("/simple_page.html"));
+  request.trust_token_params =
+      OptionalTrustTokenParams(mojom::TrustTokenParams::New());
 
   base::RunLoop delete_run_loop;
   mojo::PendingRemote<mojom::URLLoader> loader_remote;
@@ -4986,7 +5053,7 @@
       0 /* keepalive_request_size */, resource_scheduler_client(), nullptr,
       nullptr /* network_usage_accumulator */, nullptr /* header_client */,
       nullptr /* origin_policy_manager */,
-      std::make_unique<MockTrustTokenRequestHelper>(
+      std::make_unique<MockTrustTokenRequestHelperFactory>(
           mojom::TrustTokenOperationStatus::kFailedPrecondition /* on_begin */,
           base::nullopt /* on_finalize */, GetParam(),
           &outbound_trust_token_operation_was_successful_));
@@ -5009,6 +5076,8 @@
        HandlesTrustTokenFinalizeFailure) {
   ResourceRequest request =
       CreateResourceRequest("GET", test_server()->GetURL("/simple_page.html"));
+  request.trust_token_params =
+      OptionalTrustTokenParams(mojom::TrustTokenParams::New());
 
   base::RunLoop delete_run_loop;
   mojo::PendingRemote<mojom::URLLoader> loader_remote;
@@ -5026,7 +5095,7 @@
       0 /* keepalive_request_size */, resource_scheduler_client(), nullptr,
       nullptr /* network_usage_accumulator */, nullptr /* header_client */,
       nullptr /* origin_policy_manager */,
-      std::make_unique<MockTrustTokenRequestHelper>(
+      std::make_unique<MockTrustTokenRequestHelperFactory>(
           mojom::TrustTokenOperationStatus::kOk /* on_begin */,
           mojom::TrustTokenOperationStatus::kBadResponse /* on_finalize */,
           GetParam(), &outbound_trust_token_operation_was_successful_));
@@ -5040,4 +5109,45 @@
               Optional(mojom::TrustTokenOperationStatus::kBadResponse));
 }
 
+// When URLLoader receives a  request parameterized to perform a Trust Tokens
+// operation but fails to create a trust token request helper (because a
+// universal Trust Tokens precondition is violated, for instance), the request
+// should fail entirely.
+TEST_P(URLLoaderSyncOrAsyncTrustTokenOperationTest,
+       HandlesTrustTokenRequestHelperCreationFailure) {
+  ResourceRequest request =
+      CreateResourceRequest("GET", test_server()->GetURL("/simple_page.html"));
+  request.trust_token_params =
+      OptionalTrustTokenParams(mojom::TrustTokenParams::New());
+
+  base::RunLoop delete_run_loop;
+  mojo::PendingRemote<mojom::URLLoader> loader_remote;
+  std::unique_ptr<URLLoader> url_loader;
+  mojom::URLLoaderFactoryParams params;
+  params.process_id = mojom::kBrowserProcessId;
+
+  url_loader = std::make_unique<URLLoader>(
+      context(), nullptr /* network_service_client */,
+      nullptr /* network_context_client */,
+      DeleteLoaderCallback(&delete_run_loop, &url_loader),
+      loader_remote.InitWithNewPipeAndPassReceiver(), 0, request,
+      client()->CreateRemote(), TRAFFIC_ANNOTATION_FOR_TESTS, &params,
+      /*coep_reporter=*/nullptr, 0 /* request_id */,
+      0 /* keepalive_request_size */, resource_scheduler_client(), nullptr,
+      nullptr /* network_usage_accumulator */, nullptr /* header_client */,
+      nullptr /* origin_policy_manager */,
+      std::make_unique<MockTrustTokenRequestHelperFactory>(
+          mojom::TrustTokenOperationStatus::
+              kInternalError /* helper_creation_error */,
+          GetParam()));
+
+  client()->RunUntilComplete();
+  delete_run_loop.Run();
+
+  EXPECT_EQ(client()->completion_status().error_code,
+            net::ERR_TRUST_TOKEN_OPERATION_FAILED);
+  EXPECT_THAT(client()->completion_status().trust_token_operation_status,
+              Optional(mojom::TrustTokenOperationStatus::kInternalError));
+}
+
 }  // namespace network
diff --git a/skia/BUILD.gn b/skia/BUILD.gn
index d03158a..990fd1b 100644
--- a/skia/BUILD.gn
+++ b/skia/BUILD.gn
@@ -521,8 +521,9 @@
   if (skia_use_dawn) {
     public_deps += [ "//third_party/dawn/src/dawn:dawncpp_headers" ]
     deps += [
-      "//third_party/dawn:libdawn_native",
-      "//third_party/dawn/src/dawn:libdawn",
+      "//third_party/dawn/src/dawn:dawncpp",
+      "//third_party/dawn/src/dawn:libdawn_proc",
+      "//third_party/dawn/src/dawn_native",
     ]
   }
 
diff --git a/testing/buildbot/chromium.ci.json b/testing/buildbot/chromium.ci.json
index 1124cc1..f8c7aa4 100644
--- a/testing/buildbot/chromium.ci.json
+++ b/testing/buildbot/chromium.ci.json
@@ -180,8 +180,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -207,8 +207,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -232,8 +232,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -255,8 +255,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -279,8 +279,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -302,8 +302,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -333,8 +333,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -367,8 +367,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -397,8 +397,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -429,8 +429,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -462,8 +462,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -493,8 +493,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -525,8 +525,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -557,8 +557,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -584,8 +584,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -609,8 +609,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -632,8 +632,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -656,8 +656,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -679,8 +679,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -710,8 +710,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -744,8 +744,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -774,8 +774,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -806,8 +806,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -839,8 +839,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -870,8 +870,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -902,8 +902,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -934,7 +934,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -959,7 +959,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -981,7 +981,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1003,7 +1003,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1025,7 +1025,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1044,7 +1044,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1080,7 +1080,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1111,7 +1111,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1141,7 +1141,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1172,7 +1172,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1203,7 +1203,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1230,7 +1230,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1254,7 +1254,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1278,7 +1278,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1302,7 +1302,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1323,7 +1323,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1361,7 +1361,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1394,7 +1394,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1426,7 +1426,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1459,7 +1459,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1491,7 +1491,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1518,7 +1518,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1548,7 +1548,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1572,7 +1572,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1597,7 +1597,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1621,7 +1621,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1647,7 +1647,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1672,7 +1672,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1698,7 +1698,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1729,7 +1729,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1763,7 +1763,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1795,7 +1795,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1826,7 +1826,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1857,7 +1857,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1889,7 +1889,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1920,7 +1920,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1951,7 +1951,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1975,7 +1975,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2000,7 +2000,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2024,7 +2024,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2050,7 +2050,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2075,7 +2075,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2101,7 +2101,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2132,7 +2132,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2166,7 +2166,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2197,7 +2197,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2229,7 +2229,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2262,7 +2262,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2293,7 +2293,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2324,7 +2324,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2356,7 +2356,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2387,7 +2387,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19781,8 +19781,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -19807,8 +19807,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -19832,8 +19832,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -19858,8 +19858,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -19884,8 +19884,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -19909,8 +19909,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -19934,8 +19934,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -19956,8 +19956,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -19979,8 +19979,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20009,8 +20009,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20037,8 +20037,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20063,8 +20063,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20089,8 +20089,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20114,8 +20114,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20140,8 +20140,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20166,8 +20166,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20191,8 +20191,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20216,8 +20216,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20238,8 +20238,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20261,8 +20261,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20291,8 +20291,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20319,8 +20319,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20345,8 +20345,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20371,8 +20371,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20396,8 +20396,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20422,8 +20422,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20448,8 +20448,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20473,8 +20473,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20498,8 +20498,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20528,8 +20528,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20554,8 +20554,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20580,8 +20580,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20605,8 +20605,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20631,8 +20631,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20657,8 +20657,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20682,8 +20682,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20707,8 +20707,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20737,8 +20737,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20767,7 +20767,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20794,7 +20794,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20820,7 +20820,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20847,7 +20847,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20874,7 +20874,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20900,7 +20900,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20926,7 +20926,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20949,7 +20949,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -20972,7 +20972,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -21003,7 +21003,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -21031,7 +21031,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -21057,7 +21057,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21082,7 +21082,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21106,7 +21106,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21131,7 +21131,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21156,7 +21156,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21180,7 +21180,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21204,7 +21204,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21225,7 +21225,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21246,7 +21246,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21275,7 +21275,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21301,7 +21301,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21327,7 +21327,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -21354,7 +21354,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -21380,7 +21380,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -21407,7 +21407,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -21434,7 +21434,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -21460,7 +21460,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -21486,7 +21486,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -21517,7 +21517,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -21543,7 +21543,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21568,7 +21568,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21592,7 +21592,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21617,7 +21617,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21642,7 +21642,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21666,7 +21666,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21690,7 +21690,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21719,7 +21719,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -21745,7 +21745,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21771,7 +21771,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21796,7 +21796,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21822,7 +21822,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21848,7 +21848,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21873,7 +21873,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21898,7 +21898,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21920,7 +21920,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21942,7 +21942,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21972,7 +21972,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22000,7 +22000,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22026,7 +22026,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22052,7 +22052,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22077,7 +22077,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22103,7 +22103,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22129,7 +22129,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22154,7 +22154,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22179,7 +22179,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22201,7 +22201,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22223,7 +22223,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22253,7 +22253,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22281,7 +22281,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22307,7 +22307,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22333,7 +22333,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22358,7 +22358,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22384,7 +22384,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22410,7 +22410,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22435,7 +22435,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22460,7 +22460,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22490,7 +22490,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22516,7 +22516,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22542,7 +22542,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22567,7 +22567,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22593,7 +22593,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22619,7 +22619,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22644,7 +22644,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22669,7 +22669,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22699,7 +22699,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22727,7 +22727,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22753,7 +22753,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22778,7 +22778,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22804,7 +22804,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22830,7 +22830,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22855,7 +22855,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22880,7 +22880,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22902,7 +22902,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22924,7 +22924,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22954,7 +22954,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22981,7 +22981,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23007,7 +23007,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23033,7 +23033,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23058,7 +23058,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23084,7 +23084,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23110,7 +23110,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23135,7 +23135,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23160,7 +23160,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23182,7 +23182,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23204,7 +23204,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23234,7 +23234,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23261,7 +23261,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23287,7 +23287,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23313,7 +23313,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23338,7 +23338,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23364,7 +23364,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23390,7 +23390,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23415,7 +23415,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23440,7 +23440,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23470,7 +23470,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23496,7 +23496,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23522,7 +23522,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23547,7 +23547,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23573,7 +23573,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23599,7 +23599,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23624,7 +23624,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23649,7 +23649,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23679,7 +23679,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -37451,8 +37451,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37474,8 +37474,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37498,8 +37498,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37531,8 +37531,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37561,8 +37561,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37592,8 +37592,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37622,8 +37622,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37652,8 +37652,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37686,8 +37686,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37725,8 +37725,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37764,8 +37764,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37795,8 +37795,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37825,8 +37825,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37856,8 +37856,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37886,8 +37886,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37911,8 +37911,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37934,8 +37934,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37958,8 +37958,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -37981,8 +37981,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38001,8 +38001,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38034,8 +38034,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38064,8 +38064,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38094,8 +38094,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38124,8 +38124,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38158,8 +38158,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38197,8 +38197,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38236,8 +38236,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38267,8 +38267,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38297,8 +38297,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38327,8 +38327,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38359,8 +38359,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38459,8 +38459,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38482,8 +38482,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38506,8 +38506,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38529,8 +38529,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -38549,8 +38549,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39199,8 +39199,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39226,8 +39226,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39251,8 +39251,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39274,8 +39274,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39298,8 +39298,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39321,8 +39321,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39341,8 +39341,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39374,8 +39374,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39404,8 +39404,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39434,8 +39434,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39464,8 +39464,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39498,8 +39498,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39537,8 +39537,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39576,8 +39576,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39607,8 +39607,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39637,8 +39637,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39669,8 +39669,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39702,8 +39702,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39733,8 +39733,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39765,8 +39765,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -39797,7 +39797,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -39825,7 +39825,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -39851,7 +39851,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -39875,7 +39875,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -39900,7 +39900,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -39924,7 +39924,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -39945,7 +39945,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -39979,7 +39979,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40010,7 +40010,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40041,7 +40041,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40072,7 +40072,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40107,7 +40107,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40147,7 +40147,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40187,7 +40187,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40219,7 +40219,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40250,7 +40250,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40283,7 +40283,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40317,7 +40317,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40349,7 +40349,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40382,7 +40382,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -40415,8 +40415,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40442,8 +40442,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40467,8 +40467,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40490,8 +40490,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40514,8 +40514,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40537,8 +40537,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40557,8 +40557,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40588,8 +40588,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40618,8 +40618,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40648,8 +40648,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40678,8 +40678,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40708,8 +40708,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40742,8 +40742,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40781,8 +40781,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40820,8 +40820,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40851,8 +40851,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40881,8 +40881,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40913,8 +40913,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40946,8 +40946,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -40977,8 +40977,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41009,8 +41009,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41036,8 +41036,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41060,8 +41060,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41100,8 +41100,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41128,8 +41128,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41161,8 +41161,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41191,8 +41191,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41221,8 +41221,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41251,8 +41251,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41290,8 +41290,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41321,8 +41321,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41362,8 +41362,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41401,8 +41401,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41445,8 +41445,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41484,8 +41484,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41523,8 +41523,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41551,8 +41551,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41584,8 +41584,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41614,8 +41614,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41644,8 +41644,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41674,8 +41674,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41713,8 +41713,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41744,8 +41744,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41785,8 +41785,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41824,8 +41824,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41868,8 +41868,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41907,8 +41907,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41937,8 +41937,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41969,8 +41969,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -41997,8 +41997,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -42025,8 +42025,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -42053,8 +42053,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -42081,8 +42081,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -42109,8 +42109,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -42137,8 +42137,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -42165,8 +42165,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -42193,8 +42193,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -42220,8 +42220,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -42248,8 +42248,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44527,8 +44527,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44550,8 +44550,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44574,8 +44574,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44607,8 +44607,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44637,8 +44637,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44668,8 +44668,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44698,8 +44698,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44728,8 +44728,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44762,8 +44762,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44801,8 +44801,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44840,8 +44840,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44871,8 +44871,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44901,8 +44901,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44932,8 +44932,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -58407,7 +58407,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -58429,7 +58429,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -58451,7 +58451,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -58483,7 +58483,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -58512,7 +58512,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -58541,7 +58541,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -58570,7 +58570,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -58603,7 +58603,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -58641,7 +58641,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -58679,7 +58679,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -58709,7 +58709,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -58738,7 +58738,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -58768,7 +58768,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -58798,7 +58798,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -58823,7 +58823,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -58845,7 +58845,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -58867,7 +58867,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -58889,7 +58889,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -58908,7 +58908,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -58931,7 +58931,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -58950,7 +58950,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -58982,7 +58982,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -59011,7 +59011,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -59040,7 +59040,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -59069,7 +59069,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -59102,7 +59102,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -59140,7 +59140,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -59178,7 +59178,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -59208,7 +59208,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -59237,7 +59237,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -59267,7 +59267,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60118,7 +60118,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -60143,7 +60143,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -60169,7 +60169,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -60191,7 +60191,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -60213,7 +60213,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -60235,7 +60235,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -60254,7 +60254,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -60277,7 +60277,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -60296,7 +60296,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -60328,7 +60328,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60357,7 +60357,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60386,7 +60386,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60415,7 +60415,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60448,7 +60448,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60486,7 +60486,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60524,7 +60524,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60548,7 +60548,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -60578,7 +60578,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60607,7 +60607,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60638,7 +60638,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60670,7 +60670,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60700,7 +60700,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60731,7 +60731,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -60762,7 +60762,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -60789,7 +60789,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -60813,7 +60813,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -60837,7 +60837,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -60861,7 +60861,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -60882,7 +60882,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -60907,7 +60907,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -60928,7 +60928,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -60962,7 +60962,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -60993,7 +60993,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61024,7 +61024,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61055,7 +61055,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61090,7 +61090,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61130,7 +61130,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61170,7 +61170,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61202,7 +61202,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61233,7 +61233,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61265,7 +61265,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61297,7 +61297,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61324,7 +61324,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61348,7 +61348,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61372,7 +61372,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61396,7 +61396,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61417,7 +61417,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61442,7 +61442,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61463,7 +61463,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61497,7 +61497,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61528,7 +61528,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61559,7 +61559,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61590,7 +61590,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61625,7 +61625,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61665,7 +61665,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61705,7 +61705,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61737,7 +61737,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61768,7 +61768,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61799,7 +61799,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61826,7 +61826,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61854,7 +61854,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61878,7 +61878,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61902,7 +61902,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61926,7 +61926,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61947,7 +61947,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61972,7 +61972,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -61993,7 +61993,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62027,7 +62027,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62058,7 +62058,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62089,7 +62089,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62120,7 +62120,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62155,7 +62155,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62195,7 +62195,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62235,7 +62235,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62261,7 +62261,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62293,7 +62293,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62324,7 +62324,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62357,7 +62357,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62391,7 +62391,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62423,7 +62423,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62456,7 +62456,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62488,7 +62488,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62515,7 +62515,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62543,7 +62543,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62567,7 +62567,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62591,7 +62591,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62615,7 +62615,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62636,7 +62636,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62661,7 +62661,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62682,7 +62682,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62716,7 +62716,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62747,7 +62747,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62778,7 +62778,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62809,7 +62809,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62844,7 +62844,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62884,7 +62884,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62924,7 +62924,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62956,7 +62956,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -62987,7 +62987,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -63020,7 +63020,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -63052,7 +63052,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -63085,7 +63085,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -63116,7 +63116,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -63144,7 +63144,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -63172,7 +63172,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -63203,7 +63203,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -63229,7 +63229,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -63255,7 +63255,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -63867,7 +63867,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -63893,7 +63893,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -63915,7 +63915,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -63937,7 +63937,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -63969,7 +63969,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -63998,7 +63998,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64027,7 +64027,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64056,7 +64056,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64089,7 +64089,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64127,7 +64127,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64165,7 +64165,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64189,7 +64189,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -64219,7 +64219,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64248,7 +64248,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64278,7 +64278,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64307,7 +64307,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -64334,7 +64334,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -64357,7 +64357,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -64380,7 +64380,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -64413,7 +64413,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64443,7 +64443,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64473,7 +64473,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64503,7 +64503,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64537,7 +64537,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64576,7 +64576,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64615,7 +64615,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64640,7 +64640,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -64671,7 +64671,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64701,7 +64701,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64732,7 +64732,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -64761,7 +64761,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -64785,7 +64785,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -64809,7 +64809,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -64843,7 +64843,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -64874,7 +64874,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -64905,7 +64905,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -64936,7 +64936,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -64971,7 +64971,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65011,7 +65011,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65051,7 +65051,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65083,7 +65083,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65114,7 +65114,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65146,7 +65146,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65176,7 +65176,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65204,7 +65204,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65228,7 +65228,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65252,7 +65252,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65286,7 +65286,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65317,7 +65317,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65348,7 +65348,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65379,7 +65379,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65414,7 +65414,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65454,7 +65454,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65494,7 +65494,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65520,7 +65520,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65552,7 +65552,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65583,7 +65583,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65615,7 +65615,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65646,7 +65646,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65675,7 +65675,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65700,7 +65700,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65725,7 +65725,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65760,7 +65760,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65792,7 +65792,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65824,7 +65824,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65856,7 +65856,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65892,7 +65892,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65933,7 +65933,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -65974,7 +65974,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -66001,7 +66001,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -66034,7 +66034,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -66066,7 +66066,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -66099,7 +66099,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87360,8 +87360,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87386,8 +87386,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87409,8 +87409,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87429,8 +87429,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87466,8 +87466,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87496,8 +87496,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87528,8 +87528,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87559,8 +87559,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87591,8 +87591,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87617,8 +87617,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87640,8 +87640,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87660,8 +87660,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87691,8 +87691,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87725,8 +87725,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87746,8 +87746,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87776,8 +87776,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87808,8 +87808,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87839,8 +87839,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -87871,7 +87871,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -87894,7 +87894,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -87913,7 +87913,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -87936,7 +87936,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -87955,7 +87955,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -87991,7 +87991,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -88020,7 +88020,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -88051,7 +88051,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -88081,7 +88081,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -88112,7 +88112,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88137,7 +88137,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88158,7 +88158,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88183,7 +88183,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88204,7 +88204,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88242,7 +88242,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88273,7 +88273,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88306,7 +88306,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88338,7 +88338,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88370,7 +88370,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88395,7 +88395,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88416,7 +88416,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88441,7 +88441,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88462,7 +88462,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88500,7 +88500,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88531,7 +88531,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -88560,7 +88560,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88584,7 +88584,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88608,7 +88608,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88631,7 +88631,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88656,7 +88656,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88682,7 +88682,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88702,7 +88702,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88722,7 +88722,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88746,7 +88746,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88777,7 +88777,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88811,7 +88811,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88841,7 +88841,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88871,7 +88871,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88903,7 +88903,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88934,7 +88934,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88965,7 +88965,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -88997,7 +88997,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89028,7 +89028,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89059,7 +89059,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89072,7 +89072,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89092,7 +89092,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89104,7 +89104,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89125,7 +89125,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89137,7 +89137,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89157,7 +89157,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89169,7 +89169,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89191,7 +89191,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89203,7 +89203,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89226,7 +89226,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89238,7 +89238,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89255,7 +89255,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89267,7 +89267,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89284,7 +89284,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89296,7 +89296,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89317,7 +89317,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89329,7 +89329,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89357,7 +89357,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89368,7 +89368,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89400,7 +89400,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89411,7 +89411,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89440,7 +89440,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89451,7 +89451,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89479,7 +89479,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89490,7 +89490,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89520,7 +89520,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89532,7 +89532,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89560,7 +89560,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89572,7 +89572,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89600,7 +89600,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89612,7 +89612,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89641,7 +89641,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89653,7 +89653,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -89681,7 +89681,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -89693,7 +89693,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -130296,7 +130296,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130330,7 +130330,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130360,7 +130360,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130384,7 +130384,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130409,7 +130409,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130433,7 +130433,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130456,7 +130456,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130479,7 +130479,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130502,7 +130502,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130527,7 +130527,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130553,7 +130553,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130573,7 +130573,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130593,7 +130593,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130616,7 +130616,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130640,7 +130640,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130673,7 +130673,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130703,7 +130703,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130733,7 +130733,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130763,7 +130763,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130797,7 +130797,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130836,7 +130836,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130875,7 +130875,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130906,7 +130906,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130936,7 +130936,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130966,7 +130966,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -130997,7 +130997,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -131029,7 +131029,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -131060,7 +131060,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -132774,7 +132774,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -132798,7 +132798,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -132823,7 +132823,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -132847,7 +132847,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -132874,7 +132874,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -132897,7 +132897,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -132920,7 +132920,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -132943,7 +132943,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -132968,7 +132968,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -132994,7 +132994,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133014,7 +133014,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133034,7 +133034,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133057,7 +133057,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133081,7 +133081,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133112,7 +133112,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133142,7 +133142,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133172,7 +133172,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133202,7 +133202,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133232,7 +133232,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133266,7 +133266,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133305,7 +133305,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133344,7 +133344,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133374,7 +133374,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133400,7 +133400,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133431,7 +133431,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133461,7 +133461,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133493,7 +133493,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133526,7 +133526,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133557,7 +133557,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133588,7 +133588,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133620,7 +133620,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133651,7 +133651,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133682,7 +133682,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133707,7 +133707,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133733,7 +133733,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133758,7 +133758,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133786,7 +133786,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133810,7 +133810,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133834,7 +133834,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133858,7 +133858,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133884,7 +133884,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133911,7 +133911,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133932,7 +133932,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133953,7 +133953,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -133977,7 +133977,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134002,7 +134002,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134034,7 +134034,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134065,7 +134065,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134096,7 +134096,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134127,7 +134127,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134158,7 +134158,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134193,7 +134193,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134233,7 +134233,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134273,7 +134273,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134304,7 +134304,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134331,7 +134331,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134363,7 +134363,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134394,7 +134394,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134427,7 +134427,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134461,7 +134461,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134493,7 +134493,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134525,7 +134525,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134558,7 +134558,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -134590,7 +134590,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135475,7 +135475,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135488,7 +135488,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135508,7 +135508,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135520,7 +135520,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135542,7 +135542,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135554,7 +135554,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135575,7 +135575,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135587,7 +135587,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135611,7 +135611,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135623,7 +135623,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135643,7 +135643,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135655,7 +135655,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135675,7 +135675,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135687,7 +135687,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135707,7 +135707,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135719,7 +135719,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135741,7 +135741,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135753,7 +135753,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135776,7 +135776,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135788,7 +135788,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135805,7 +135805,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135817,7 +135817,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135834,7 +135834,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135846,7 +135846,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135866,7 +135866,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135878,7 +135878,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135899,7 +135899,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135911,7 +135911,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135939,7 +135939,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135950,7 +135950,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -135978,7 +135978,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -135989,7 +135989,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136017,7 +136017,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136028,7 +136028,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136056,7 +136056,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136067,7 +136067,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136095,7 +136095,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136106,7 +136106,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136138,7 +136138,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136149,7 +136149,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136186,7 +136186,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136197,7 +136197,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136226,7 +136226,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136237,7 +136237,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136274,7 +136274,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136285,7 +136285,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136309,7 +136309,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136320,7 +136320,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136349,7 +136349,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136360,7 +136360,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136388,7 +136388,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136399,7 +136399,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136429,7 +136429,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136441,7 +136441,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136471,7 +136471,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136483,7 +136483,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136511,7 +136511,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136523,7 +136523,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136551,7 +136551,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136563,7 +136563,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136592,7 +136592,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136604,7 +136604,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136632,7 +136632,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136644,7 +136644,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -136674,7 +136674,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136697,7 +136697,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136720,7 +136720,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136749,7 +136749,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136782,7 +136782,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136812,7 +136812,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136842,7 +136842,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136872,7 +136872,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136911,7 +136911,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136950,7 +136950,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -136981,7 +136981,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137024,7 +137024,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137053,7 +137053,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137084,7 +137084,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137097,7 +137097,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137120,7 +137120,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137133,7 +137133,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137156,7 +137156,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137169,7 +137169,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137192,7 +137192,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137205,7 +137205,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137228,7 +137228,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137241,7 +137241,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137264,7 +137264,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137277,7 +137277,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137300,7 +137300,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137313,7 +137313,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137336,7 +137336,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137349,7 +137349,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137372,7 +137372,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137385,7 +137385,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137408,7 +137408,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137421,7 +137421,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137444,7 +137444,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137457,7 +137457,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137480,7 +137480,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137493,7 +137493,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137516,7 +137516,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137528,7 +137528,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137551,7 +137551,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137564,7 +137564,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137587,7 +137587,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137600,7 +137600,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137628,7 +137628,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137641,7 +137641,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137661,7 +137661,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137673,7 +137673,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137695,7 +137695,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137707,7 +137707,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137728,7 +137728,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137740,7 +137740,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137764,7 +137764,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137776,7 +137776,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137796,7 +137796,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137808,7 +137808,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137828,7 +137828,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137840,7 +137840,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137860,7 +137860,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137872,7 +137872,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137894,7 +137894,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137906,7 +137906,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137929,7 +137929,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137941,7 +137941,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137958,7 +137958,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137970,7 +137970,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -137987,7 +137987,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -137999,7 +137999,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138019,7 +138019,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138031,7 +138031,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138052,7 +138052,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138064,7 +138064,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138092,7 +138092,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138103,7 +138103,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138131,7 +138131,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138142,7 +138142,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138170,7 +138170,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138181,7 +138181,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138209,7 +138209,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138220,7 +138220,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138248,7 +138248,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138259,7 +138259,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138291,7 +138291,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138302,7 +138302,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138339,7 +138339,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138350,7 +138350,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138379,7 +138379,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138390,7 +138390,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138427,7 +138427,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138438,7 +138438,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138461,7 +138461,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138472,7 +138472,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138501,7 +138501,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138512,7 +138512,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138540,7 +138540,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138551,7 +138551,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138581,7 +138581,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138593,7 +138593,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138623,7 +138623,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138635,7 +138635,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138663,7 +138663,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138675,7 +138675,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138703,7 +138703,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138715,7 +138715,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138744,7 +138744,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138756,7 +138756,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -138784,7 +138784,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -138796,7 +138796,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -147279,7 +147279,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147306,7 +147306,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147329,7 +147329,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147352,7 +147352,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147376,7 +147376,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147409,7 +147409,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147439,7 +147439,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147470,7 +147470,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147500,7 +147500,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147530,7 +147530,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147564,7 +147564,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147603,7 +147603,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147642,7 +147642,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147673,7 +147673,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147703,7 +147703,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147734,7 +147734,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147763,7 +147763,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147775,7 +147775,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -147799,7 +147799,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147811,7 +147811,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -147831,7 +147831,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147843,7 +147843,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -147863,7 +147863,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147875,7 +147875,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -147896,7 +147896,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147908,7 +147908,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -147938,7 +147938,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147949,7 +147949,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -147977,7 +147977,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -147988,7 +147988,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148017,7 +148017,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148028,7 +148028,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148056,7 +148056,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148067,7 +148067,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148095,7 +148095,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148106,7 +148106,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148138,7 +148138,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148149,7 +148149,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148186,7 +148186,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148197,7 +148197,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148234,7 +148234,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148245,7 +148245,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148270,7 +148270,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148281,7 +148281,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148310,7 +148310,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148321,7 +148321,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148349,7 +148349,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148360,7 +148360,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148389,7 +148389,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148401,7 +148401,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148428,7 +148428,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148440,7 +148440,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148465,7 +148465,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148477,7 +148477,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148498,7 +148498,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148510,7 +148510,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148531,7 +148531,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148543,7 +148543,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148565,7 +148565,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148577,7 +148577,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148608,7 +148608,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148619,7 +148619,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148648,7 +148648,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148659,7 +148659,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148689,7 +148689,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148700,7 +148700,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148729,7 +148729,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148740,7 +148740,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148769,7 +148769,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148780,7 +148780,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148813,7 +148813,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148824,7 +148824,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148862,7 +148862,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148873,7 +148873,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148911,7 +148911,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148922,7 +148922,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148952,7 +148952,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -148963,7 +148963,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -148992,7 +148992,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -149003,7 +149003,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -149033,7 +149033,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -149045,7 +149045,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
diff --git a/testing/buildbot/chromium.dawn.json b/testing/buildbot/chromium.dawn.json
index 2cf040e6..3ac9dfd 100644
--- a/testing/buildbot/chromium.dawn.json
+++ b/testing/buildbot/chromium.dawn.json
@@ -18,8 +18,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -44,8 +44,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -69,8 +69,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -95,8 +95,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -121,8 +121,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -146,8 +146,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -171,8 +171,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -193,8 +193,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -216,8 +216,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -246,8 +246,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -274,8 +274,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -300,8 +300,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -326,8 +326,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -351,8 +351,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -377,8 +377,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -403,8 +403,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -428,8 +428,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -453,8 +453,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -475,8 +475,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -498,8 +498,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -528,8 +528,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -556,8 +556,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -582,8 +582,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -608,8 +608,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -633,8 +633,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -659,8 +659,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -685,8 +685,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -710,8 +710,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -735,8 +735,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -765,8 +765,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -791,8 +791,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -817,8 +817,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -842,8 +842,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -868,8 +868,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -894,8 +894,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -919,8 +919,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -944,8 +944,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -974,8 +974,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1004,7 +1004,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1031,7 +1031,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1057,7 +1057,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1084,7 +1084,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1111,7 +1111,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1137,7 +1137,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1163,7 +1163,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1186,7 +1186,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1209,7 +1209,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1240,7 +1240,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1268,7 +1268,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1294,7 +1294,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1319,7 +1319,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1343,7 +1343,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1368,7 +1368,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1393,7 +1393,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1417,7 +1417,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1441,7 +1441,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1462,7 +1462,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1483,7 +1483,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1512,7 +1512,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1538,7 +1538,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1564,7 +1564,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1591,7 +1591,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1617,7 +1617,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1644,7 +1644,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1671,7 +1671,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1697,7 +1697,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1723,7 +1723,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1754,7 +1754,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1780,7 +1780,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1805,7 +1805,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1829,7 +1829,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1854,7 +1854,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1879,7 +1879,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1903,7 +1903,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1927,7 +1927,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1956,7 +1956,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1982,7 +1982,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2008,7 +2008,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2033,7 +2033,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2059,7 +2059,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2085,7 +2085,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2110,7 +2110,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2135,7 +2135,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2157,7 +2157,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2179,7 +2179,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2209,7 +2209,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2237,7 +2237,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2263,7 +2263,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2289,7 +2289,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2314,7 +2314,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2340,7 +2340,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2366,7 +2366,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2391,7 +2391,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2416,7 +2416,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2438,7 +2438,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2460,7 +2460,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2490,7 +2490,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2518,7 +2518,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2544,7 +2544,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2570,7 +2570,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2595,7 +2595,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2621,7 +2621,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2647,7 +2647,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2672,7 +2672,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2697,7 +2697,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2727,7 +2727,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2753,7 +2753,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2779,7 +2779,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2804,7 +2804,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2830,7 +2830,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2856,7 +2856,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2881,7 +2881,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2906,7 +2906,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2936,7 +2936,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2964,7 +2964,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2990,7 +2990,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3015,7 +3015,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3041,7 +3041,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3067,7 +3067,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3092,7 +3092,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3117,7 +3117,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3139,7 +3139,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3161,7 +3161,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3191,7 +3191,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3218,7 +3218,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3244,7 +3244,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3270,7 +3270,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3295,7 +3295,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3321,7 +3321,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3347,7 +3347,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3372,7 +3372,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3397,7 +3397,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3419,7 +3419,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3441,7 +3441,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3471,7 +3471,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3498,7 +3498,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3524,7 +3524,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3550,7 +3550,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3575,7 +3575,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3601,7 +3601,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3627,7 +3627,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3652,7 +3652,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3677,7 +3677,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3707,7 +3707,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3733,7 +3733,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3759,7 +3759,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3784,7 +3784,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3810,7 +3810,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3836,7 +3836,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3861,7 +3861,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3886,7 +3886,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3916,7 +3916,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
diff --git a/testing/buildbot/chromium.gpu.fyi.json b/testing/buildbot/chromium.gpu.fyi.json
index 2c49b91..4c2c262 100644
--- a/testing/buildbot/chromium.gpu.fyi.json
+++ b/testing/buildbot/chromium.gpu.fyi.json
@@ -180,8 +180,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -207,8 +207,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -232,8 +232,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -255,8 +255,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -279,8 +279,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -302,8 +302,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -333,8 +333,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -367,8 +367,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -397,8 +397,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -429,8 +429,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -462,8 +462,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -493,8 +493,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -525,8 +525,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -557,8 +557,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -584,8 +584,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -609,8 +609,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -632,8 +632,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -656,8 +656,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -679,8 +679,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -710,8 +710,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -744,8 +744,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -774,8 +774,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -806,8 +806,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -839,8 +839,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -870,8 +870,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -902,8 +902,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -934,7 +934,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -959,7 +959,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -981,7 +981,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1003,7 +1003,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1025,7 +1025,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1044,7 +1044,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1080,7 +1080,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1111,7 +1111,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1141,7 +1141,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1172,7 +1172,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1203,7 +1203,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1230,7 +1230,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1254,7 +1254,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1278,7 +1278,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1302,7 +1302,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1323,7 +1323,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1361,7 +1361,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1394,7 +1394,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1426,7 +1426,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1459,7 +1459,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1491,7 +1491,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1518,7 +1518,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1548,7 +1548,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1572,7 +1572,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1597,7 +1597,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1621,7 +1621,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1647,7 +1647,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1672,7 +1672,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1698,7 +1698,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1729,7 +1729,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1763,7 +1763,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1795,7 +1795,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1826,7 +1826,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1857,7 +1857,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1889,7 +1889,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1920,7 +1920,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1951,7 +1951,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1975,7 +1975,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2000,7 +2000,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2024,7 +2024,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2050,7 +2050,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2075,7 +2075,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2101,7 +2101,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2132,7 +2132,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2166,7 +2166,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2197,7 +2197,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2229,7 +2229,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2262,7 +2262,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2293,7 +2293,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2324,7 +2324,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2356,7 +2356,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2387,7 +2387,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -7230,8 +7230,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7255,8 +7255,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7278,8 +7278,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7302,8 +7302,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7325,8 +7325,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7345,8 +7345,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7378,8 +7378,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7408,8 +7408,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7438,8 +7438,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7468,8 +7468,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7502,8 +7502,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7541,8 +7541,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7580,8 +7580,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7611,8 +7611,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7641,8 +7641,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7671,8 +7671,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7703,8 +7703,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7803,8 +7803,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7826,8 +7826,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7850,8 +7850,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7873,8 +7873,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -7893,8 +7893,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8543,8 +8543,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8570,8 +8570,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8595,8 +8595,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8618,8 +8618,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8642,8 +8642,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8665,8 +8665,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8685,8 +8685,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8718,8 +8718,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8748,8 +8748,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8778,8 +8778,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8808,8 +8808,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8842,8 +8842,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8881,8 +8881,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8920,8 +8920,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8951,8 +8951,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -8981,8 +8981,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9013,8 +9013,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9046,8 +9046,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9077,8 +9077,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9109,8 +9109,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9141,7 +9141,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9169,7 +9169,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9195,7 +9195,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9219,7 +9219,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9244,7 +9244,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9268,7 +9268,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9289,7 +9289,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9323,7 +9323,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9354,7 +9354,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9385,7 +9385,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9416,7 +9416,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9451,7 +9451,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9491,7 +9491,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9531,7 +9531,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9563,7 +9563,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9594,7 +9594,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9627,7 +9627,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9661,7 +9661,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9693,7 +9693,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9726,7 +9726,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-ubuntu-stable",
+              "gpu": "8086:3e92-19.0.8",
               "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
@@ -9759,8 +9759,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9786,8 +9786,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9811,8 +9811,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9834,8 +9834,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9858,8 +9858,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9881,8 +9881,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9901,8 +9901,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9932,8 +9932,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9962,8 +9962,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -9992,8 +9992,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10022,8 +10022,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10052,8 +10052,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10086,8 +10086,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10125,8 +10125,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10164,8 +10164,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10195,8 +10195,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10225,8 +10225,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10257,8 +10257,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10290,8 +10290,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10321,8 +10321,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10353,8 +10353,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10380,8 +10380,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10404,8 +10404,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10444,8 +10444,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10472,8 +10472,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10505,8 +10505,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10535,8 +10535,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10565,8 +10565,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10595,8 +10595,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10634,8 +10634,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10665,8 +10665,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10706,8 +10706,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10745,8 +10745,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10789,8 +10789,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10828,8 +10828,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10867,8 +10867,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10895,8 +10895,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10928,8 +10928,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10958,8 +10958,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -10988,8 +10988,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11018,8 +11018,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11057,8 +11057,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11088,8 +11088,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11129,8 +11129,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11168,8 +11168,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11212,8 +11212,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11251,8 +11251,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11281,8 +11281,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11313,8 +11313,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11341,8 +11341,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11369,8 +11369,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11397,8 +11397,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11425,8 +11425,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11453,8 +11453,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11481,8 +11481,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11509,8 +11509,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11537,8 +11537,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11564,8 +11564,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11592,8 +11592,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -11625,7 +11625,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -11650,7 +11650,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -11672,7 +11672,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -11694,7 +11694,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -11716,7 +11716,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -11735,7 +11735,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -11758,7 +11758,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -11777,7 +11777,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -11809,7 +11809,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -11838,7 +11838,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -11867,7 +11867,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -11896,7 +11896,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -11929,7 +11929,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -11967,7 +11967,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -12005,7 +12005,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -12035,7 +12035,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -12064,7 +12064,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -12094,7 +12094,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -12945,7 +12945,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -12970,7 +12970,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -12996,7 +12996,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -13018,7 +13018,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -13040,7 +13040,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -13062,7 +13062,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -13081,7 +13081,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -13104,7 +13104,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -13123,7 +13123,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -13155,7 +13155,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13184,7 +13184,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13213,7 +13213,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13242,7 +13242,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13275,7 +13275,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13313,7 +13313,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13351,7 +13351,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13375,7 +13375,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -13405,7 +13405,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13434,7 +13434,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13465,7 +13465,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13497,7 +13497,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13527,7 +13527,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13558,7 +13558,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -13589,7 +13589,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13616,7 +13616,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13640,7 +13640,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13664,7 +13664,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13688,7 +13688,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13709,7 +13709,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13734,7 +13734,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13755,7 +13755,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13789,7 +13789,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13820,7 +13820,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13851,7 +13851,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13882,7 +13882,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13917,7 +13917,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13957,7 +13957,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -13997,7 +13997,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14029,7 +14029,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14060,7 +14060,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14092,7 +14092,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14124,7 +14124,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14151,7 +14151,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14175,7 +14175,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14199,7 +14199,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14223,7 +14223,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14244,7 +14244,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14269,7 +14269,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14290,7 +14290,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14324,7 +14324,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14355,7 +14355,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14386,7 +14386,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14417,7 +14417,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14452,7 +14452,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14492,7 +14492,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14532,7 +14532,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14564,7 +14564,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14595,7 +14595,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14626,7 +14626,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14653,7 +14653,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14681,7 +14681,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14705,7 +14705,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14729,7 +14729,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14753,7 +14753,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14774,7 +14774,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14799,7 +14799,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14820,7 +14820,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14854,7 +14854,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14885,7 +14885,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14916,7 +14916,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14947,7 +14947,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -14982,7 +14982,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15022,7 +15022,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15062,7 +15062,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15088,7 +15088,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15120,7 +15120,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15151,7 +15151,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15184,7 +15184,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15218,7 +15218,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15250,7 +15250,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15283,7 +15283,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15315,7 +15315,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15342,7 +15342,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15370,7 +15370,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15394,7 +15394,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15418,7 +15418,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15442,7 +15442,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15463,7 +15463,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15488,7 +15488,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15509,7 +15509,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15543,7 +15543,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15574,7 +15574,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15605,7 +15605,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15636,7 +15636,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15671,7 +15671,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15711,7 +15711,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15751,7 +15751,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15783,7 +15783,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15814,7 +15814,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15847,7 +15847,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15879,7 +15879,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15912,7 +15912,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15943,7 +15943,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15971,7 +15971,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -15999,7 +15999,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -16030,7 +16030,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -16056,7 +16056,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -16082,7 +16082,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -16697,8 +16697,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -16723,8 +16723,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -16746,8 +16746,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -16766,8 +16766,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -16803,8 +16803,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -16833,8 +16833,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -16865,8 +16865,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -16896,8 +16896,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-ubuntu-stable",
-              "os": "linux-intel-stable",
+              "gpu": "8086:5912-19.0.2",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -16928,8 +16928,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -16954,8 +16954,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -16977,8 +16977,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -16997,8 +16997,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17028,8 +17028,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17062,8 +17062,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17083,8 +17083,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17113,8 +17113,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17145,8 +17145,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17176,8 +17176,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17208,7 +17208,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
@@ -17231,7 +17231,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -17250,7 +17250,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -17273,7 +17273,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -17292,7 +17292,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -17328,7 +17328,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -17357,7 +17357,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -17388,7 +17388,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -17418,7 +17418,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -17449,7 +17449,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17474,7 +17474,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17495,7 +17495,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17520,7 +17520,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17541,7 +17541,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17579,7 +17579,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17610,7 +17610,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17643,7 +17643,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17675,7 +17675,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17707,7 +17707,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17732,7 +17732,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17753,7 +17753,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17778,7 +17778,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17799,7 +17799,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17837,7 +17837,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17868,7 +17868,7 @@
             {
               "gpu": "10de:0fe9",
               "hidpi": "1",
-              "os": "mac-nvidia-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -17897,7 +17897,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -17921,7 +17921,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -17945,7 +17945,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -17968,7 +17968,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -17993,7 +17993,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18019,7 +18019,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18039,7 +18039,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18059,7 +18059,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18083,7 +18083,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18114,7 +18114,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18148,7 +18148,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18178,7 +18178,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18208,7 +18208,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18240,7 +18240,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18271,7 +18271,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18302,7 +18302,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18334,7 +18334,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18365,7 +18365,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18396,7 +18396,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18409,7 +18409,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18429,7 +18429,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18441,7 +18441,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18462,7 +18462,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18474,7 +18474,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18494,7 +18494,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18506,7 +18506,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18528,7 +18528,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18540,7 +18540,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18563,7 +18563,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18575,7 +18575,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18592,7 +18592,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18604,7 +18604,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18621,7 +18621,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18633,7 +18633,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18654,7 +18654,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18666,7 +18666,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18694,7 +18694,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18705,7 +18705,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18737,7 +18737,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18748,7 +18748,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18777,7 +18777,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18788,7 +18788,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18816,7 +18816,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18827,7 +18827,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18857,7 +18857,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18869,7 +18869,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18897,7 +18897,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18909,7 +18909,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18937,7 +18937,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18949,7 +18949,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -18978,7 +18978,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -18990,7 +18990,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -19018,7 +19018,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19030,7 +19030,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -19062,7 +19062,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19096,7 +19096,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19126,7 +19126,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19150,7 +19150,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19175,7 +19175,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19199,7 +19199,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19222,7 +19222,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19245,7 +19245,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19268,7 +19268,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19293,7 +19293,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19319,7 +19319,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19339,7 +19339,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19359,7 +19359,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19382,7 +19382,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19406,7 +19406,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19439,7 +19439,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19469,7 +19469,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19499,7 +19499,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19529,7 +19529,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19563,7 +19563,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19602,7 +19602,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19641,7 +19641,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19672,7 +19672,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19702,7 +19702,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19732,7 +19732,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19763,7 +19763,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19795,7 +19795,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -19826,7 +19826,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21540,7 +21540,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21564,7 +21564,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21589,7 +21589,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21613,7 +21613,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21640,7 +21640,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21663,7 +21663,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21686,7 +21686,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21709,7 +21709,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21734,7 +21734,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21760,7 +21760,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21780,7 +21780,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21800,7 +21800,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21823,7 +21823,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21847,7 +21847,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21878,7 +21878,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21908,7 +21908,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21938,7 +21938,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21968,7 +21968,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -21998,7 +21998,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22032,7 +22032,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22071,7 +22071,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22110,7 +22110,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22140,7 +22140,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22166,7 +22166,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22197,7 +22197,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22227,7 +22227,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22259,7 +22259,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22292,7 +22292,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22323,7 +22323,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22354,7 +22354,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22386,7 +22386,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22417,7 +22417,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22448,7 +22448,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22473,7 +22473,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22499,7 +22499,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22524,7 +22524,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22552,7 +22552,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22576,7 +22576,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22600,7 +22600,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22624,7 +22624,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22650,7 +22650,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22677,7 +22677,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22698,7 +22698,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22719,7 +22719,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22743,7 +22743,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22768,7 +22768,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22800,7 +22800,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22831,7 +22831,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22862,7 +22862,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22893,7 +22893,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22924,7 +22924,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22959,7 +22959,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -22999,7 +22999,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23039,7 +23039,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23070,7 +23070,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23097,7 +23097,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23129,7 +23129,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23160,7 +23160,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23193,7 +23193,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23227,7 +23227,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23259,7 +23259,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23291,7 +23291,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23324,7 +23324,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -23356,7 +23356,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-uhd-630-win10-stable",
+              "gpu": "8086:3e92-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24241,7 +24241,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24254,7 +24254,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24274,7 +24274,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24286,7 +24286,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24308,7 +24308,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24320,7 +24320,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24341,7 +24341,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24353,7 +24353,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24377,7 +24377,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24389,7 +24389,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24409,7 +24409,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24421,7 +24421,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24441,7 +24441,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24453,7 +24453,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24473,7 +24473,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24485,7 +24485,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24507,7 +24507,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24519,7 +24519,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24542,7 +24542,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24554,7 +24554,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24571,7 +24571,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24583,7 +24583,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24600,7 +24600,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24612,7 +24612,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24632,7 +24632,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24644,7 +24644,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24665,7 +24665,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24677,7 +24677,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24705,7 +24705,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24716,7 +24716,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24744,7 +24744,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24755,7 +24755,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24783,7 +24783,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24794,7 +24794,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24822,7 +24822,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24833,7 +24833,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24861,7 +24861,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24872,7 +24872,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24904,7 +24904,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24915,7 +24915,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24952,7 +24952,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -24963,7 +24963,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -24992,7 +24992,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25003,7 +25003,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25040,7 +25040,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25051,7 +25051,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25075,7 +25075,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25086,7 +25086,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25115,7 +25115,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25126,7 +25126,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25154,7 +25154,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25165,7 +25165,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25195,7 +25195,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25207,7 +25207,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25237,7 +25237,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25249,7 +25249,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25277,7 +25277,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25289,7 +25289,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25317,7 +25317,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25329,7 +25329,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25358,7 +25358,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25370,7 +25370,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25398,7 +25398,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25410,7 +25410,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25440,7 +25440,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25463,7 +25463,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25486,7 +25486,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25515,7 +25515,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25548,7 +25548,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25578,7 +25578,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25608,7 +25608,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25638,7 +25638,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25677,7 +25677,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25716,7 +25716,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25747,7 +25747,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25790,7 +25790,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25819,7 +25819,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "intel-hd-630-win10-stable",
+              "gpu": "8086:5912-24.20.100.6286",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25850,7 +25850,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25863,7 +25863,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25886,7 +25886,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25899,7 +25899,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25922,7 +25922,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25935,7 +25935,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25958,7 +25958,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -25971,7 +25971,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -25994,7 +25994,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26007,7 +26007,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26030,7 +26030,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26043,7 +26043,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26066,7 +26066,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26079,7 +26079,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26102,7 +26102,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26115,7 +26115,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26138,7 +26138,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26151,7 +26151,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26174,7 +26174,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26187,7 +26187,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26210,7 +26210,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26223,7 +26223,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26246,7 +26246,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26259,7 +26259,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26282,7 +26282,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26294,7 +26294,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26317,7 +26317,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26330,7 +26330,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26353,7 +26353,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26366,7 +26366,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26394,7 +26394,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26407,7 +26407,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26427,7 +26427,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26439,7 +26439,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26461,7 +26461,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26473,7 +26473,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26494,7 +26494,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26506,7 +26506,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26530,7 +26530,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26542,7 +26542,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26562,7 +26562,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26574,7 +26574,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26594,7 +26594,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26606,7 +26606,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26626,7 +26626,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26638,7 +26638,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26660,7 +26660,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26672,7 +26672,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26695,7 +26695,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26707,7 +26707,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26724,7 +26724,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26736,7 +26736,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26753,7 +26753,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26765,7 +26765,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26785,7 +26785,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26797,7 +26797,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26818,7 +26818,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26830,7 +26830,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26858,7 +26858,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26869,7 +26869,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26897,7 +26897,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26908,7 +26908,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26936,7 +26936,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26947,7 +26947,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -26975,7 +26975,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -26986,7 +26986,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27014,7 +27014,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27025,7 +27025,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27057,7 +27057,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27068,7 +27068,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27105,7 +27105,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27116,7 +27116,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27145,7 +27145,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27156,7 +27156,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27193,7 +27193,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27204,7 +27204,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27227,7 +27227,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27238,7 +27238,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27267,7 +27267,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27278,7 +27278,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27306,7 +27306,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27317,7 +27317,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27347,7 +27347,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27359,7 +27359,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27389,7 +27389,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27401,7 +27401,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27429,7 +27429,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27441,7 +27441,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27469,7 +27469,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27481,7 +27481,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27510,7 +27510,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27522,7 +27522,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -27550,7 +27550,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -27562,7 +27562,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
diff --git a/testing/buildbot/chromium.gpu.json b/testing/buildbot/chromium.gpu.json
index d8b3db8..9ff30b1 100644
--- a/testing/buildbot/chromium.gpu.json
+++ b/testing/buildbot/chromium.gpu.json
@@ -391,8 +391,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -414,8 +414,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -438,8 +438,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -471,8 +471,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -501,8 +501,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -532,8 +532,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -562,8 +562,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -592,8 +592,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -626,8 +626,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -665,8 +665,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -704,8 +704,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -735,8 +735,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -765,8 +765,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -796,8 +796,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -826,8 +826,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -849,8 +849,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -873,8 +873,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -906,8 +906,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -936,8 +936,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -967,8 +967,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -997,8 +997,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1027,8 +1027,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1061,8 +1061,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1100,8 +1100,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1139,8 +1139,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1170,8 +1170,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1200,8 +1200,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1231,8 +1231,8 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1261,7 +1261,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1283,7 +1283,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1305,7 +1305,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1337,7 +1337,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1366,7 +1366,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1395,7 +1395,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1424,7 +1424,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1457,7 +1457,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1495,7 +1495,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1533,7 +1533,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1563,7 +1563,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1592,7 +1592,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1622,7 +1622,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1650,7 +1650,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1676,7 +1676,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1698,7 +1698,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1720,7 +1720,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -1752,7 +1752,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1781,7 +1781,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1810,7 +1810,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1839,7 +1839,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1872,7 +1872,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1910,7 +1910,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1948,7 +1948,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1972,7 +1972,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -2002,7 +2002,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2031,7 +2031,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2061,7 +2061,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2090,7 +2090,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -2117,7 +2117,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -2140,7 +2140,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -2163,7 +2163,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -2196,7 +2196,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2226,7 +2226,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2256,7 +2256,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2286,7 +2286,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2320,7 +2320,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2359,7 +2359,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2398,7 +2398,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2423,7 +2423,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -2454,7 +2454,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2484,7 +2484,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2515,7 +2515,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2544,7 +2544,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2568,7 +2568,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2592,7 +2592,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2626,7 +2626,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2657,7 +2657,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2688,7 +2688,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2719,7 +2719,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2754,7 +2754,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2794,7 +2794,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2834,7 +2834,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2866,7 +2866,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2897,7 +2897,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2929,7 +2929,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2959,7 +2959,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2987,7 +2987,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3011,7 +3011,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3035,7 +3035,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3069,7 +3069,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3100,7 +3100,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3131,7 +3131,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3162,7 +3162,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3197,7 +3197,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3237,7 +3237,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3277,7 +3277,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3303,7 +3303,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3335,7 +3335,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3366,7 +3366,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3398,7 +3398,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3429,7 +3429,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3458,7 +3458,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3483,7 +3483,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3508,7 +3508,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3543,7 +3543,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3575,7 +3575,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3607,7 +3607,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3639,7 +3639,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3675,7 +3675,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3716,7 +3716,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3757,7 +3757,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3784,7 +3784,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3817,7 +3817,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3849,7 +3849,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3882,7 +3882,7 @@
             {
               "gpu": "1002:6821",
               "hidpi": "1",
-              "os": "mac-amd-stable",
+              "os": "Mac-10.14.6",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -3910,7 +3910,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3937,7 +3937,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3960,7 +3960,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3983,7 +3983,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4007,7 +4007,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4040,7 +4040,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4070,7 +4070,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4101,7 +4101,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4131,7 +4131,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4161,7 +4161,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4195,7 +4195,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4234,7 +4234,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4273,7 +4273,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4304,7 +4304,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4334,7 +4334,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4365,7 +4365,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4394,7 +4394,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4406,7 +4406,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4430,7 +4430,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4442,7 +4442,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4462,7 +4462,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4474,7 +4474,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4494,7 +4494,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4506,7 +4506,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4527,7 +4527,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4539,7 +4539,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4569,7 +4569,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4580,7 +4580,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4608,7 +4608,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4619,7 +4619,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4648,7 +4648,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4659,7 +4659,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4687,7 +4687,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4698,7 +4698,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4726,7 +4726,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4737,7 +4737,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4769,7 +4769,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4780,7 +4780,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4817,7 +4817,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4828,7 +4828,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4865,7 +4865,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4876,7 +4876,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4901,7 +4901,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4912,7 +4912,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4941,7 +4941,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4952,7 +4952,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -4980,7 +4980,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -4991,7 +4991,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5020,7 +5020,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5032,7 +5032,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5059,7 +5059,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5071,7 +5071,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5096,7 +5096,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5108,7 +5108,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5129,7 +5129,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5141,7 +5141,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5162,7 +5162,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5174,7 +5174,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5196,7 +5196,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5208,7 +5208,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5239,7 +5239,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5250,7 +5250,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5279,7 +5279,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5290,7 +5290,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5320,7 +5320,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5331,7 +5331,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5360,7 +5360,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5371,7 +5371,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5400,7 +5400,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5411,7 +5411,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5444,7 +5444,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5455,7 +5455,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5493,7 +5493,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5504,7 +5504,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5542,7 +5542,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5553,7 +5553,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5583,7 +5583,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5594,7 +5594,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5623,7 +5623,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5634,7 +5634,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
@@ -5664,7 +5664,7 @@
           "containment_type": "AUTO",
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -5676,7 +5676,7 @@
         "trigger_script": {
           "args": [
             "--multiple-trigger-configs",
-            "[{\"gpu\": \"nvidia-quadro-p400-win10-stable\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
+            "[{\"gpu\": \"10de:1cb3-26.21.14.3102\", \"os\": \"Windows-10\", \"pool\": \"chromium.tests.gpu.template\"}]",
             "--multiple-dimension-script-verbose",
             "True"
           ],
diff --git a/testing/buildbot/client.v8.fyi.json b/testing/buildbot/client.v8.fyi.json
index 87c82ac..8a2863a 100644
--- a/testing/buildbot/client.v8.fyi.json
+++ b/testing/buildbot/client.v8.fyi.json
@@ -350,8 +350,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -379,8 +379,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -408,8 +408,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -437,8 +437,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -475,8 +475,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -513,8 +513,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -543,8 +543,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -572,8 +572,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -603,8 +603,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -634,8 +634,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -668,8 +668,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -697,8 +697,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -726,8 +726,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -755,8 +755,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -793,8 +793,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -831,8 +831,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -861,8 +861,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -890,8 +890,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -921,8 +921,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -952,8 +952,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -987,7 +987,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1015,7 +1015,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1043,7 +1043,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1071,7 +1071,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1108,7 +1108,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1145,7 +1145,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1174,7 +1174,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1202,7 +1202,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1232,7 +1232,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1262,7 +1262,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -1642,7 +1642,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1671,7 +1671,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1700,7 +1700,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1729,7 +1729,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1767,7 +1767,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1805,7 +1805,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1835,7 +1835,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1864,7 +1864,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1895,7 +1895,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -1926,7 +1926,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl
index 8f371a3..59278e6d 100644
--- a/testing/buildbot/mixins.pyl
+++ b/testing/buildbot/mixins.pyl
@@ -326,16 +326,6 @@
       }
     }
   },
-  'linux_intel_hd_630': {
-    'swarming': {
-      'dimensions': {
-        # Defined in bot_config.py in internal infradata/config workspace
-        'gpu': 'intel-hd-630-ubuntu-stable',
-        'os': 'linux-intel-stable',
-        'pool': 'chromium.tests.gpu.template',
-      }
-    }
-  },
   'linux_intel_hd_630_experimental': {
     # Similar to stable, but with a newer Mesa version.
     'swarming': {
@@ -346,11 +336,19 @@
       },
     },
   },
-  'linux_intel_uhd_630': {
+  'linux_intel_hd_630_stable': {
     'swarming': {
       'dimensions': {
-        # Defined in bot_config.py in internal infradata/config workspace
-        'gpu': 'intel-uhd-630-ubuntu-stable',
+        'gpu': '8086:5912-19.0.2',
+        'os': 'Ubuntu-19.04',
+        'pool': 'chromium.tests.gpu.template',
+      }
+    }
+  },
+  'linux_intel_uhd_630_stable': {
+    'swarming': {
+      'dimensions': {
+        'gpu': '8086:3e92-19.0.8',
         'os': 'Ubuntu-19.04',
         'pool': 'chromium.tests.gpu.template',
       },
@@ -360,16 +358,6 @@
       'expiration': 14400,
     }
   },
-  'linux_nvidia_quadro_p400': {
-    'swarming': {
-      'dimensions': {
-        # Defined in bot_config.py in internal infradata/config workspace
-        'gpu': 'nvidia-quadro-p400-ubuntu-stable',
-        'os': 'linux-nvidia-stable',
-        'pool': 'chromium.tests.gpu.template',
-      }
-    }
-  },
   'linux_nvidia_quadro_p400_experimental': {
     'swarming': {
       'dimensions': {
@@ -379,6 +367,15 @@
       },
     },
   },
+  'linux_nvidia_quadro_p400_stable': {
+    'swarming': {
+      'dimensions': {
+        'gpu': '10de:1cb3-418.56',
+        'os': 'Ubuntu-19.04',
+        'pool': 'chromium.tests.gpu.template',
+      }
+    }
+  },
   'lollipop': {
     'swarming': {
       'dimensions': {
@@ -441,14 +438,6 @@
       },
     },
   },
-  'mac_mini_intel_gpu': {
-    'swarming': {
-      'dimensions': {
-        'gpu': '8086:0a2e',
-        'os': 'mac-intel-stable',
-      },
-    },
-  },
   'mac_mini_intel_gpu_experimental': {
     'swarming': {
       'dimensions': {
@@ -457,6 +446,14 @@
       },
     },
   },
+  'mac_mini_intel_gpu_stable': {
+    'swarming': {
+      'dimensions': {
+        'gpu': '8086:0a2e',
+        'os': 'Mac-10.14.6',
+      },
+    },
+  },
   'mac_pro_amd_gpu': {
     'swarming': {
       'dimensions': {
@@ -466,16 +463,6 @@
       },
     },
   },
-  'mac_retina_amd_gpu': {
-    'swarming': {
-      'dimensions': {
-        'gpu': '1002:6821',
-        'hidpi': '1',
-        'os': 'mac-amd-stable',
-        'pool': 'chromium.tests.gpu.template',
-      },
-    },
-  },
   'mac_retina_amd_gpu_experimental': {
     # Currently same configuration as stable version above.
     'swarming': {
@@ -487,12 +474,12 @@
       },
     },
   },
-  'mac_retina_nvidia_gpu': {
+  'mac_retina_amd_gpu_stable': {
     'swarming': {
       'dimensions': {
-        'gpu': '10de:0fe9',
+        'gpu': '1002:6821',
         'hidpi': '1',
-        'os': 'mac-nvidia-stable',
+        'os': 'Mac-10.14.6',
         'pool': 'chromium.tests.gpu.template',
       },
     },
@@ -508,6 +495,16 @@
       },
     },
   },
+  'mac_retina_nvidia_gpu_stable': {
+    'swarming': {
+      'dimensions': {
+        'gpu': '10de:0fe9',
+        'hidpi': '1',
+        'os': 'Mac-10.14.6',
+        'pool': 'chromium.tests.gpu.template',
+      },
+    },
+  },
   'mac_toolchain': {
     'swarming': {
       'cipd_packages': [
@@ -697,8 +694,7 @@
   'win10_intel_hd_630_stable': {
     'swarming': {
       'dimensions': {
-        # Defined in bot_config.py in internal infradata/config workspace
-        'gpu': 'intel-hd-630-win10-stable',
+        'gpu': '8086:5912-24.20.100.6286',
         'os': 'Windows-10',
         'pool': 'chromium.tests.gpu.template',
       },
@@ -707,8 +703,7 @@
   'win10_intel_uhd_630_stable': {
     'swarming': {
       'dimensions': {
-        # Defined in bot_config.py in internal infradata/config workspace
-        'gpu': 'intel-uhd-630-win10-stable',
+        'gpu': '8086:3e92-24.20.100.6286',
         'os': 'Windows-10',
         'pool': 'chromium.tests.gpu.template',
       },
@@ -741,8 +736,7 @@
   'win10_nvidia_quadro_p400_stable': {
     'swarming': {
       'dimensions': {
-        # Defined in bot_config.py in internal infradata/config workspace
-        'gpu': 'nvidia-quadro-p400-win10-stable',
+        'gpu': '10de:1cb3-26.21.14.3102',
         'os': 'Windows-10',
         'pool': 'chromium.tests.gpu.template',
       },
diff --git a/testing/buildbot/v8.ci.json b/testing/buildbot/v8.ci.json
index 43e5807..4050c597 100644
--- a/testing/buildbot/v8.ci.json
+++ b/testing/buildbot/v8.ci.json
@@ -1496,8 +1496,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1525,8 +1525,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1554,8 +1554,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1583,8 +1583,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1621,8 +1621,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1659,8 +1659,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1689,8 +1689,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1718,8 +1718,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1749,8 +1749,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1780,8 +1780,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1814,8 +1814,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1843,8 +1843,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1872,8 +1872,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1901,8 +1901,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1939,8 +1939,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -1977,8 +1977,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2007,8 +2007,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2036,8 +2036,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2067,8 +2067,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2098,8 +2098,8 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-ubuntu-stable",
-              "os": "linux-nvidia-stable",
+              "gpu": "10de:1cb3-418.56",
+              "os": "Ubuntu-19.04",
               "pool": "chromium.tests.gpu.template"
             }
           ],
@@ -2133,7 +2133,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2161,7 +2161,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2189,7 +2189,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2217,7 +2217,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2254,7 +2254,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2291,7 +2291,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2320,7 +2320,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2348,7 +2348,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2378,7 +2378,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2408,7 +2408,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "mac-intel-stable"
+              "os": "Mac-10.14.6"
             }
           ],
           "idempotent": false,
@@ -2788,7 +2788,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2817,7 +2817,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2846,7 +2846,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2875,7 +2875,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2913,7 +2913,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2951,7 +2951,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -2981,7 +2981,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3010,7 +3010,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3041,7 +3041,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
@@ -3072,7 +3072,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "gpu": "nvidia-quadro-p400-win10-stable",
+              "gpu": "10de:1cb3-26.21.14.3102",
               "os": "Windows-10",
               "pool": "chromium.tests.gpu.template"
             }
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index fdc03ca6..5aa9b46 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -1276,7 +1276,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_intel_hd_630',
+          'linux_intel_hd_630_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_integration_gtests',
@@ -1287,7 +1287,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_integration_gtests',
@@ -1298,7 +1298,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_intel_hd_630',
+          'linux_intel_hd_630_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_gtests',
@@ -1309,7 +1309,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_gtests',
@@ -1322,7 +1322,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_retina_amd_gpu',
+          'mac_retina_amd_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_integration_gtests',
@@ -1333,7 +1333,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_mini_intel_gpu',
+          'mac_mini_intel_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_integration_gtests',
@@ -1344,7 +1344,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_retina_amd_gpu',
+          'mac_retina_amd_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_gtests',
@@ -1355,7 +1355,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_mini_intel_gpu',
+          'mac_mini_intel_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_gtests',
@@ -2629,7 +2629,7 @@
         'browser_config': 'debug',
         'os_type': 'linux',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_desktop_gtests',
@@ -2640,7 +2640,7 @@
         'browser_config': 'release',
         'os_type': 'linux',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_desktop_gtests',
@@ -2651,7 +2651,7 @@
         'browser_config': 'debug',
         'os_type': 'mac',
         'mixins': [
-          'mac_mini_intel_gpu',
+          'mac_mini_intel_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_desktop_gtests',
@@ -2662,7 +2662,7 @@
         'browser_config': 'release',
         'os_type': 'mac',
         'mixins': [
-          'mac_mini_intel_gpu',
+          'mac_mini_intel_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_desktop_gtests',
@@ -2675,7 +2675,7 @@
         'os_type': 'mac',
         'mixins': [
           'code-coverage',
-          'mac_mini_intel_gpu',
+          'mac_mini_intel_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_desktop_gtests',
@@ -2687,7 +2687,7 @@
         'browser_config': 'debug',
         'os_type': 'mac',
         'mixins': [
-          'mac_retina_amd_gpu',
+          'mac_retina_amd_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_desktop_gtests',
@@ -2698,7 +2698,7 @@
         'browser_config': 'release',
         'os_type': 'mac',
         'mixins': [
-          'mac_retina_amd_gpu',
+          'mac_retina_amd_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_desktop_gtests',
@@ -2711,7 +2711,7 @@
         'os_type': 'mac',
         'mixins': [
           'code-coverage',
-          'mac_retina_amd_gpu',
+          'mac_retina_amd_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_desktop_gtests',
@@ -2791,7 +2791,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_intel_hd_630',
+          'linux_intel_hd_630_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_angle_linux_gtests',
@@ -2803,7 +2803,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_angle_linux_gtests',
@@ -2815,7 +2815,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_mini_intel_gpu',
+          'mac_mini_intel_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_angle_mac_gtests',
@@ -2826,7 +2826,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_retina_amd_gpu',
+          'mac_retina_amd_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_angle_mac_gtests',
@@ -2837,7 +2837,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_retina_nvidia_gpu',
+          'mac_retina_nvidia_gpu_stable',
         ],
         'test_suites': {
           # Fewer tests enabled on this config because of limited capacity.
@@ -3100,7 +3100,7 @@
         'browser_config': 'debug',
         'os_type': 'linux',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_linux_debug_gtests',
@@ -3140,7 +3140,7 @@
         # need the browser_config parameter.
         'os_type': 'linux',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           # This bot doesn't run any browser-based tests
@@ -3179,7 +3179,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_intel_hd_630',
+          'linux_intel_hd_630_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_linux_release_gtests',
@@ -3190,7 +3190,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_intel_uhd_630',
+          'linux_intel_uhd_630_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_linux_release_gtests',
@@ -3201,7 +3201,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_linux_release_gtests',
@@ -3213,7 +3213,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_intel_hd_630',
+          'linux_intel_hd_630_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_skia_renderer_dawn_gtests',
@@ -3223,7 +3223,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_intel_hd_630',
+          'linux_intel_hd_630_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_vulkan_gtests',
@@ -3235,7 +3235,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_vulkan_gtests',
@@ -3247,7 +3247,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_intel_hd_630',
+          'linux_intel_hd_630_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_angle_deqp_gles2_gl_gtests',
@@ -3257,7 +3257,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_angle_deqp_linux_nvidia_gtests',
@@ -3267,7 +3267,7 @@
         'os_type': 'mac',
         'browser_config': 'debug',
         'mixins': [
-          'mac_mini_intel_gpu',
+          'mac_mini_intel_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_mac_debug_gtests',
@@ -3344,7 +3344,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_mini_intel_gpu',
+          'mac_mini_intel_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_mac_release_gtests',
@@ -3356,7 +3356,7 @@
         'os_type': 'mac',
         'browser_config': 'debug',
         'mixins': [
-          'mac_retina_amd_gpu',
+          'mac_retina_amd_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_mac_debug_gtests',
@@ -3367,7 +3367,7 @@
         'os_type': 'mac',
         'browser_config': 'debug',
         'mixins': [
-          'mac_retina_nvidia_gpu',
+          'mac_retina_nvidia_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_mac_debug_gtests',
@@ -3378,7 +3378,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_retina_amd_gpu',
+          'mac_retina_amd_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_mac_release_gtests',
@@ -3390,7 +3390,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_retina_nvidia_gpu',
+          'mac_retina_nvidia_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_mac_release_gtests',
@@ -3400,7 +3400,7 @@
       'Mac FYI dEQP Release AMD': {
         'os_type': 'mac',
         'mixins': [
-          'mac_retina_amd_gpu',
+          'mac_retina_amd_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_angle_deqp_mac_gtests',
@@ -3409,7 +3409,7 @@
       'Mac FYI dEQP Release Intel': {
         'os_type': 'mac',
         'mixins': [
-          'mac_mini_intel_gpu',
+          'mac_mini_intel_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_angle_deqp_mac_gtests',
@@ -3447,7 +3447,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_intel_hd_630',
+          'linux_intel_hd_630_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_linux_optional_gtests',
@@ -3458,7 +3458,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_linux_optional_gtests',
@@ -3470,7 +3470,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_mini_intel_gpu',
+          'mac_mini_intel_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_mac_optional_gtests',
@@ -3481,7 +3481,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_retina_amd_gpu',
+          'mac_retina_amd_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_mac_optional_gtests',
@@ -3492,7 +3492,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_retina_nvidia_gpu',
+          'mac_retina_nvidia_gpu_stable',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_mac_optional_gtests',
@@ -4900,7 +4900,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           'gpu_telemetry_tests': 'gpu_v8_desktop_telemetry_tests',
@@ -4910,7 +4910,7 @@
         'os_type': 'linux',
         'browser_config': 'release',
         'mixins': [
-          'linux_nvidia_quadro_p400',
+          'linux_nvidia_quadro_p400_stable',
         ],
         'test_suites': {
           'gpu_telemetry_tests': 'gpu_v8_desktop_telemetry_tests',
@@ -4920,7 +4920,7 @@
         'browser_config': 'release',
         'os_type': 'mac',
         'mixins': [
-          'mac_mini_intel_gpu',
+          'mac_mini_intel_gpu_stable',
         ],
         'test_suites': {
           'gpu_telemetry_tests': 'gpu_v8_desktop_telemetry_tests',
diff --git a/testing/test_env.py b/testing/test_env.py
index 8734f41..6f26d4b4 100755
--- a/testing/test_env.py
+++ b/testing/test_env.py
@@ -5,6 +5,9 @@
 
 """Sets environment variables needed to run a chromium unit test."""
 
+# Whitespace change to break swarming deduplication.
+# TODO(crbug.com/1069091): Delete this comment.
+
 import io
 import os
 import signal
diff --git a/third_party/abseil-cpp/absl.gni b/third_party/abseil-cpp/absl.gni
index 1edf61a..7a00ab3 100644
--- a/third_party/abseil-cpp/absl.gni
+++ b/third_party/abseil-cpp/absl.gni
@@ -45,6 +45,7 @@
   "//third_party/webrtc/*",
   "//third_party/abseil-cpp/*",
   "//third_party/googletest:gtest",
+  "//third_party/shell-encryption/*",
 ]
 
 absl_visibility = _chromium_absl_clients + additional_absl_clients
diff --git a/third_party/blink/public/mojom/web_feature/web_feature.mojom b/third_party/blink/public/mojom/web_feature/web_feature.mojom
index 764f8fe..d806a09 100644
--- a/third_party/blink/public/mojom/web_feature/web_feature.mojom
+++ b/third_party/blink/public/mojom/web_feature/web_feature.mojom
@@ -2540,6 +2540,7 @@
 
   kWrongBaselineOfButtonElement = 3201,
   kV8Document_HasTrustToken_Method = 3202,
+  kForceLoadAtTop = 3203,
 
   // Add new features immediately above this line. Don't change assigned
   // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
index bb7e435..21bb6b2 100644
--- a/third_party/blink/public/platform/web_runtime_features.h
+++ b/third_party/blink/public/platform/web_runtime_features.h
@@ -104,7 +104,6 @@
   BLINK_PLATFORM_EXPORT static void EnableDecodeLossyWebPImagesToYUV(bool);
   BLINK_PLATFORM_EXPORT static void EnableDisplayCutoutAPI(bool);
   BLINK_PLATFORM_EXPORT static void EnableDocumentPolicy(bool);
-  BLINK_PLATFORM_EXPORT static void EnableFallbackCursorMode(bool);
   BLINK_PLATFORM_EXPORT static void EnableFeaturePolicyForSandbox(bool);
   BLINK_PLATFORM_EXPORT static void EnableFileSystem(bool);
   BLINK_PLATFORM_EXPORT static void EnableForceSynchronousHTMLParsing(bool);
diff --git a/third_party/blink/public/strings/translations/blink_strings_ca.xtb b/third_party/blink/public/strings/translations/blink_strings_ca.xtb
index a60a90e..01057fa 100644
--- a/third_party/blink/public/strings/translations/blink_strings_ca.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_ca.xtb
@@ -79,7 +79,7 @@
 <translation id="3685101356851116974">Imatge sense etiquetar</translation>
 <translation id="3706100364254443312">commutador</translation>
 <translation id="3732799496749320381">mm</translation>
-<translation id="3754210790023674521">Surt del mode de pantalla en pantalla</translation>
+<translation id="3754210790023674521">Surt de pantalla en pantalla</translation>
 <translation id="3757388668994797779"><ph name="QUANTITY" /> GB</translation>
 <translation id="3808586225841795776">terme</translation>
 <translation id="3822383571486410024">Allargueu aquest text fins a un mínim de <ph name="MIN_CHARACTERS" /> caràcters (ara n'utilitzeu <ph name="CURRENT_LENGTH" />).</translation>
@@ -107,7 +107,7 @@
 <translation id="4664250907885839816">Un domini precedit per "<ph name="ATSIGN" />" no pot contenir el símbol "<ph name="INVALIDCHARACTER" />".</translation>
 <translation id="4668956016107839909">apèndix</translation>
 <translation id="4698212723196775569">codi</translation>
-<translation id="4718048029184481307">S'està reproduint en mode de pantalla en pantalla</translation>
+<translation id="4718048029184481307">S'està reproduint en pantalla en pantalla</translation>
 <translation id="4742539557769756338">portada</translation>
 <translation id="4748357248530471599">activa o desactiva la pantalla completa al retall de pantalla</translation>
 <translation id="4757246831282535685">tauler de pestanyes</translation>
@@ -164,7 +164,7 @@
 <translation id="6209276755895393898">Sembla el següent: <ph name="DESCRIPTION" /></translation>
 <translation id="6213469881011901533">glossari</translation>
 <translation id="6281763101136022427">url</translation>
-<translation id="6310801910862476708">Surt del mode de pantalla en pantalla</translation>
+<translation id="6310801910862476708">Surt de pantalla en pantalla</translation>
 <translation id="6398862346408813489">Mostra el tauler de la selecció de mes</translation>
 <translation id="6404546809543547843">barra de moment de l'àudio</translation>
 <translation id="6443871981718447451">mostra el menú de subtítols</translation>
@@ -266,7 +266,7 @@
 <translation id="901834265349196618">correu electrònic</translation>
 <translation id="9048119486235211610">navegació</translation>
 <translation id="9062295712474918030">document</translation>
-<translation id="9093215626363556771">surt del mode de pantalla en pantalla</translation>
+<translation id="9093215626363556771">surt de pantalla en pantalla</translation>
 <translation id="9108370397979208512">matemàtiques</translation>
 <translation id="9132465097189459683">Altres...</translation>
 <translation id="9138385573473225930">alerta</translation>
diff --git a/third_party/blink/public/web/web_widget.h b/third_party/blink/public/web/web_widget.h
index 5a5c579..77e0106a 100644
--- a/third_party/blink/public/web/web_widget.h
+++ b/third_party/blink/public/web/web_widget.h
@@ -179,9 +179,6 @@
   // Called to inform the WebWidget of the mouse cursor's visibility.
   virtual void SetCursorVisibilityState(bool is_visible) {}
 
-  // Inform WebWidget fallback cursor mode toggled.
-  virtual void OnFallbackCursorModeToggled(bool is_on) {}
-
   // Applies viewport related properties during a commit from the compositor
   // thread.
   virtual void ApplyViewportChanges(const cc::ApplyViewportChangesArgs& args) {}
diff --git a/third_party/blink/public/web/web_widget_client.h b/third_party/blink/public/web/web_widget_client.h
index cce1b587..a1f2f6e 100644
--- a/third_party/blink/public/web/web_widget_client.h
+++ b/third_party/blink/public/web/web_widget_client.h
@@ -231,13 +231,6 @@
   // Find in page zooms a rect in the main-frame renderer.
   virtual void ZoomToFindInPageRectInMainFrame(const blink::WebRect& rect) {}
 
-  // Used to call platform API for FallbackCursorMode.
-  virtual void FallbackCursorModeLockCursor(bool left,
-                                            bool right,
-                                            bool up,
-                                            bool down) {}
-  virtual void FallbackCursorModeSetCursorVisibility(bool visible) {}
-
   // Sets the current page scale factor and minimum / maximum limits. Both
   // limits are initially 1 (no page scale allowed).
   virtual void SetPageScaleStateAndLimits(float page_scale_factor,
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
index c83e781..2db56811 100644
--- a/third_party/blink/renderer/core/BUILD.gn
+++ b/third_party/blink/renderer/core/BUILD.gn
@@ -1171,7 +1171,6 @@
     "geometry/dom_matrix_test.cc",
     "imagebitmap/image_bitmap_test.cc",
     "input/event_handler_test.cc",
-    "input/fallback_cursor_event_manager_test.cc",
     "input/ime_on_focus_test.cc",
     "input/overscroll_behavior_test.cc",
     "input/pointer_event_manager_test.cc",
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
index 690f174..3987dea 100644
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -6146,12 +6146,13 @@
 
   const Frame* current_frame = GetFrame();
   while (current_frame) {
-    const SecurityOrigin* cur_security_origin =
-        current_frame->GetSecurityContext()->GetSecurityOrigin();
-    if (!candidate.IsEquivalent(net::SiteForCookies::FromOrigin(
-            cur_security_origin->ToUrlOrigin()))) {
+    const url::Origin cur_security_origin =
+        current_frame->GetSecurityContext()->GetSecurityOrigin()->ToUrlOrigin();
+    if (!candidate.IsEquivalent(
+            net::SiteForCookies::FromOrigin(cur_security_origin))) {
       return net::SiteForCookies();
     }
+    candidate.MarkIfCrossScheme(cur_security_origin);
     current_frame = current_frame->Tree().Parent();
   }
 
diff --git a/third_party/blink/renderer/core/dom/slot_assignment.cc b/third_party/blink/renderer/core/dom/slot_assignment.cc
index d8dbcc1b..400b7ec9 100644
--- a/third_party/blink/renderer/core/dom/slot_assignment.cc
+++ b/third_party/blink/renderer/core/dom/slot_assignment.cc
@@ -17,6 +17,7 @@
 #include "third_party/blink/renderer/core/html/html_details_element.h"
 #include "third_party/blink/renderer/core/html/html_slot_element.h"
 #include "third_party/blink/renderer/core/html/parser/nesting_level_incrementer.h"
+#include "third_party/blink/renderer/core/inspector/console_message.h"
 
 namespace blink {
 
@@ -266,10 +267,24 @@
     HTMLSlotElement* slot = nullptr;
     if (!is_user_agent) {
       if (owner_->IsManualSlotting()) {
-        for (auto candidate_slot : Slots()) {
-          if (candidate_slot->AssignedNodesCandidate().Contains(&child)) {
+        if (auto* candidate_slot = candidate_assigned_slot_map_.at(&child)) {
+          if (candidate_slot->ContainingShadowRoot() == owner_) {
             slot = candidate_slot;
-            break;
+          } else {
+            candidate_assigned_slot_map_.erase(&child);
+            const AtomicString& slot_name =
+                (candidate_slot->GetName() != g_empty_atom)
+                    ? candidate_slot->GetName()
+                    : "SLOT";
+            owner_->GetDocument().AddConsoleMessage(
+                MakeGarbageCollected<ConsoleMessage>(
+                    mojom::blink::ConsoleMessageSource::kRendering,
+                    mojom::blink::ConsoleMessageLevel::kWarning,
+                    "This code triggered a slot assignment recalculation. At "
+                    "the time of this recalculation, the assigned node '" +
+                        child.nodeName() + "' was no longer a child of '" +
+                        slot_name +
+                        "'s parent shadow host, so it could not be assigned."));
           }
         }
       } else {
@@ -334,10 +349,10 @@
 }
 
 HTMLSlotElement* SlotAssignment::FindSlotInManualSlotting(const Node& node) {
-  for (auto& slot : Slots()) {
-    if (slot->AssignedNodesCandidate().Contains(const_cast<Node*>(&node)))
-      return slot;
-  }
+  auto* slot = candidate_assigned_slot_map_.at(const_cast<Node*>(&node));
+  if (slot && slot->ContainingShadowRoot() == owner_)
+    return slot;
+
   return nullptr;
 }
 
@@ -363,10 +378,28 @@
   return nullptr;
 }
 
+void SlotAssignment::UpdateCandidateNodeAssignedSlot(Node& node,
+                                                     HTMLSlotElement& slot) {
+  auto* prev_slot = candidate_assigned_slot_map_.at(&node);
+  if (prev_slot && prev_slot != &slot) {
+    auto candidates = prev_slot->AssignedNodesCandidates();
+    auto it = candidates.find(&node);
+    if (it != candidates.end())
+      candidates.erase(it);
+  }
+  candidate_assigned_slot_map_.Set(&node, &slot);
+}
+
+void SlotAssignment::ClearCandidateNodes(
+    const HeapLinkedHashSet<Member<Node>>& candidates) {
+  candidate_assigned_slot_map_.RemoveAll(candidates);
+}
+
 void SlotAssignment::Trace(Visitor* visitor) {
   visitor->Trace(slots_);
   visitor->Trace(slot_map_);
   visitor->Trace(owner_);
+  visitor->Trace(candidate_assigned_slot_map_);
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/dom/slot_assignment.h b/third_party/blink/renderer/core/dom/slot_assignment.h
index 5be3fe4..cbb4689 100644
--- a/third_party/blink/renderer/core/dom/slot_assignment.h
+++ b/third_party/blink/renderer/core/dom/slot_assignment.h
@@ -56,6 +56,8 @@
   bool NeedsAssignmentRecalc() const { return needs_assignment_recalc_; }
   void SetNeedsAssignmentRecalc();
   void RecalcAssignment();
+  void UpdateCandidateNodeAssignedSlot(Node&, HTMLSlotElement&);
+  void ClearCandidateNodes(const HeapLinkedHashSet<Member<Node>>& candidates);
 
  private:
   enum class SlotMutationType {
@@ -81,6 +83,9 @@
   unsigned needs_collect_slots_ : 1;
   unsigned needs_assignment_recalc_ : 1;
   unsigned slot_count_ : 30;
+  // TODO: (crbug.com/1067157) Ensure references inside the map are GCed.
+  HeapHashMap<Member<Node>, Member<HTMLSlotElement>>
+      candidate_assigned_slot_map_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/exported/web_document_test.cc b/third_party/blink/renderer/core/exported/web_document_test.cc
index 1ec21b5b..4fe2414 100644
--- a/third_party/blink/renderer/core/exported/web_document_test.cc
+++ b/third_party/blink/renderer/core/exported/web_document_test.cc
@@ -367,6 +367,15 @@
       OriginsEqual(g_nested_origin_a, NestedDocument()->TopFrameOrigin()));
 }
 
+TEST_F(WebDocumentFirstPartyTest, NestedOriginASchemefulSiteForCookies) {
+  Load(g_nested_origin_a);
+
+  // TopDocument is same scheme with itself so expect true.
+  ASSERT_TRUE(TopDocument()->SiteForCookies().schemefully_same());
+  // NestedDocument is same scheme with TopDocument so expect true.
+  ASSERT_TRUE(NestedDocument()->SiteForCookies().schemefully_same());
+}
+
 TEST_F(WebDocumentFirstPartyTest, NestedOriginSubA) {
   Load(g_nested_origin_sub_a);
 
@@ -395,6 +404,17 @@
                            NestedDocument()->TopFrameOrigin()));
 }
 
+TEST_F(WebDocumentFirstPartyTest, NestedOriginSecureASchemefulSiteForCookies) {
+  Load(g_nested_origin_secure_a);
+
+  // TopDocument is same scheme with itself so expect true.
+  ASSERT_TRUE(TopDocument()->SiteForCookies().schemefully_same());
+
+  // Since NestedDocument is secure, and the parent is insecure, the scheme will
+  // differ.
+  ASSERT_FALSE(NestedDocument()->SiteForCookies().schemefully_same());
+}
+
 TEST_F(WebDocumentFirstPartyTest, NestedOriginAInOriginA) {
   Load(g_nested_origin_a_in_origin_a);
 
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
index 3d6eef0d..0fb14075 100644
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -1866,12 +1866,6 @@
     AsView().page->SetIsCursorVisible(is_visible);
 }
 
-void WebViewImpl::OnFallbackCursorModeToggled(bool is_on) {
-  DCHECK(MainFrameImpl());
-  MainFrameImpl()->GetFrame()->GetEventHandler().SetIsFallbackCursorModeOn(
-      is_on);
-}
-
 void WebViewImpl::MouseCaptureLost() {
   TRACE_EVENT_NESTABLE_ASYNC_END0("input", "capturing mouse",
                                   TRACE_ID_LOCAL(this));
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h
index ae5fb3f..05d40d1 100644
--- a/third_party/blink/renderer/core/exported/web_view_impl.h
+++ b/third_party/blink/renderer/core/exported/web_view_impl.h
@@ -474,7 +474,6 @@
   WebInputEventResult HandleInputEvent(const WebCoalescedInputEvent&);
   WebInputEventResult DispatchBufferedTouchEvents();
   void SetCursorVisibilityState(bool is_visible);
-  void OnFallbackCursorModeToggled(bool is_on);
   void ApplyViewportChanges(const ApplyViewportChangesArgs& args);
   void RecordManipulationTypeCounts(cc::ManipulationInfo info);
   void SendOverscrollEventFromImplSide(const gfx::Vector2dF& overscroll_delta,
diff --git a/third_party/blink/renderer/core/feature_policy/document_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/document_policy_parser.cc
index 41fa9ea..fb58514 100644
--- a/third_party/blink/renderer/core/feature_policy/document_policy_parser.cc
+++ b/third_party/blink/renderer/core/feature_policy/document_policy_parser.cc
@@ -137,6 +137,9 @@
 // static
 base::Optional<DocumentPolicy::ParsedDocumentPolicy>
 DocumentPolicyParser::Parse(const String& policy_string) {
+  if (policy_string.IsEmpty())
+    return base::make_optional<DocumentPolicy::ParsedDocumentPolicy>({});
+
   return ParseInternal(policy_string, GetDocumentPolicyNameFeatureMap(),
                        GetDocumentPolicyFeatureInfoMap(),
                        GetAvailableDocumentPolicyFeatures());
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
index dd8f1641..358c83e 100644
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
@@ -523,11 +523,6 @@
   GetPage()->SetIsCursorVisible(is_visible);
 }
 
-void WebFrameWidgetImpl::OnFallbackCursorModeToggled(bool is_on) {
-  // TODO(crbug.com/944575) Should support oopif.
-  NOTREACHED();
-}
-
 void WebFrameWidgetImpl::DidDetachLocalFrameTree() {}
 
 WebInputMethodController*
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
index eb9c8bb..f483a1e 100644
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
@@ -107,7 +107,6 @@
   WebInputEventResult DispatchBufferedTouchEvents() override;
   WebInputEventResult HandleInputEvent(const WebCoalescedInputEvent&) override;
   void SetCursorVisibilityState(bool is_visible) override;
-  void OnFallbackCursorModeToggled(bool is_on) override;
 
   void MouseCaptureLost() override;
   void SetFocus(bool enable) override;
diff --git a/third_party/blink/renderer/core/frame/web_view_frame_widget.cc b/third_party/blink/renderer/core/frame/web_view_frame_widget.cc
index 74d7118..da33de81 100644
--- a/third_party/blink/renderer/core/frame/web_view_frame_widget.cc
+++ b/third_party/blink/renderer/core/frame/web_view_frame_widget.cc
@@ -129,10 +129,6 @@
   web_view_->SetCursorVisibilityState(is_visible);
 }
 
-void WebViewFrameWidget::OnFallbackCursorModeToggled(bool is_on) {
-  web_view_->OnFallbackCursorModeToggled(is_on);
-}
-
 void WebViewFrameWidget::ApplyViewportChanges(
     const ApplyViewportChangesArgs& args) {
   web_view_->ApplyViewportChanges(args);
diff --git a/third_party/blink/renderer/core/frame/web_view_frame_widget.h b/third_party/blink/renderer/core/frame/web_view_frame_widget.h
index 1bc5f79..f8cb456c 100644
--- a/third_party/blink/renderer/core/frame/web_view_frame_widget.h
+++ b/third_party/blink/renderer/core/frame/web_view_frame_widget.h
@@ -76,7 +76,6 @@
   WebInputEventResult HandleInputEvent(const WebCoalescedInputEvent&) override;
   WebInputEventResult DispatchBufferedTouchEvents() override;
   void SetCursorVisibilityState(bool is_visible) override;
-  void OnFallbackCursorModeToggled(bool is_on) override;
   void ApplyViewportChanges(const ApplyViewportChangesArgs&) override;
   void RecordManipulationTypeCounts(cc::ManipulationInfo info) override;
   void SendOverscrollEventFromImplSide(
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
index 487efcd..284a3c94 100644
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -694,6 +694,16 @@
   return !!frame_dispatcher_;
 }
 
+void HTMLCanvasElement::UpdateFilterQuality() {
+  if (IsOffscreenCanvasRegistered())
+    UpdateOffscreenCanvasFilterQuality(FilterQuality());
+
+  if (context_ && Is3d())
+    context_->SetFilterQuality(FilterQuality());
+  else if (canvas2d_bridge_)
+    canvas2d_bridge_->UpdateFilterQuality();
+}
+
 // In some instances we don't actually want to paint to the parent layer
 // We still might want to set filter quality and MarkFirstContentfulPaint though
 void HTMLCanvasElement::Paint(GraphicsContext& context,
@@ -724,11 +734,6 @@
   if (!context_ && !OffscreenCanvasFrame())
     return;
 
-  if (Is3d())
-    context_->SetFilterQuality(FilterQuality());
-  else if (canvas2d_bridge_)
-    canvas2d_bridge_->UpdateFilterQuality();
-
   if (HasResourceProvider() && !canvas_is_clear_)
     PaintTiming::From(GetDocument()).MarkFirstContentfulPaint();
 
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.h b/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
index c929303e..99b0315 100644
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
@@ -154,6 +154,7 @@
   void DidDraw(const FloatRect&) override;
   void DidDraw() override;
 
+  void UpdateFilterQuality();
   void Paint(GraphicsContext&,
              const PhysicalRect&,
              bool flatten_composited_layers);
diff --git a/third_party/blink/renderer/core/html/forms/html_input_element.cc b/third_party/blink/renderer/core/html/forms/html_input_element.cc
index ce0b6a33..610bd62 100644
--- a/third_party/blink/renderer/core/html/forms/html_input_element.cc
+++ b/third_party/blink/renderer/core/html/forms/html_input_element.cc
@@ -1989,7 +1989,8 @@
 }
 
 bool HTMLInputElement::IsInteractiveContent() const {
-  return input_type_->IsInteractiveContent();
+  return input_type_->IsInteractiveContent() ||
+         HTMLElement::IsInteractiveContent();
 }
 
 scoped_refptr<ComputedStyle> HTMLInputElement::CustomStyleForLayoutObject() {
diff --git a/third_party/blink/renderer/core/html/forms/password_input_type.cc b/third_party/blink/renderer/core/html/forms/password_input_type.cc
index 171ce120..ef20471a 100644
--- a/third_party/blink/renderer/core/html/forms/password_input_type.cc
+++ b/third_party/blink/renderer/core/html/forms/password_input_type.cc
@@ -200,4 +200,9 @@
   if (!event.DefaultHandled())
     BaseTextInputType::HandleKeydownEvent(event);
 }
+
+bool PasswordInputType::SupportsInputModeAttribute() const {
+  return true;
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/html/forms/password_input_type.h b/third_party/blink/renderer/core/html/forms/password_input_type.h
index 10804fb4..8dff1f7 100644
--- a/third_party/blink/renderer/core/html/forms/password_input_type.h
+++ b/third_party/blink/renderer/core/html/forms/password_input_type.h
@@ -62,6 +62,7 @@
   void HandleBeforeTextInsertedEvent(BeforeTextInsertedEvent&) override;
 
   void HandleBlurEvent() override;
+  bool SupportsInputModeAttribute() const override;
 
   bool should_show_reveal_button_ = false;
 };
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc
index 920a4367..52212db 100644
--- a/third_party/blink/renderer/core/html/html_anchor_element.cc
+++ b/third_party/blink/renderer/core/html/html_anchor_element.cc
@@ -581,7 +581,7 @@
 }
 
 bool HTMLAnchorElement::IsInteractiveContent() const {
-  return IsLink();
+  return IsLink() || HTMLElement::IsInteractiveContent();
 }
 
 Node::InsertionNotificationRequest HTMLAnchorElement::InsertedInto(
diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc
index 1c9bd6f..0797aaa4 100644
--- a/third_party/blink/renderer/core/html/html_element.cc
+++ b/third_party/blink/renderer/core/html/html_element.cc
@@ -1374,7 +1374,7 @@
 }
 
 bool HTMLElement::IsInteractiveContent() const {
-  return false;
+  return FastHasAttribute(html_names::kTabindexAttr);
 }
 
 void HTMLElement::DefaultEventHandler(Event& event) {
diff --git a/third_party/blink/renderer/core/html/html_element.h b/third_party/blink/renderer/core/html/html_element.h
index 6df6aae..0c97f36 100644
--- a/third_party/blink/renderer/core/html/html_element.h
+++ b/third_party/blink/renderer/core/html/html_element.h
@@ -116,7 +116,7 @@
   // |labels| IDL attribute implementation for IsLabelable()==true elements.
   LabelsNodeList* labels();
 
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#interactive-content
+  // https://html.spec.whatwg.org/C/#interactive-content
   virtual bool IsInteractiveContent() const;
   void DefaultEventHandler(Event&) override;
 
diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_party/blink/renderer/core/html/html_image_element.cc
index e40958f..d9b54e7 100644
--- a/third_party/blink/renderer/core/html/html_image_element.cc
+++ b/third_party/blink/renderer/core/html/html_image_element.cc
@@ -667,7 +667,8 @@
 }
 
 bool HTMLImageElement::IsInteractiveContent() const {
-  return FastHasAttribute(html_names::kUsemapAttr);
+  return FastHasAttribute(html_names::kUsemapAttr) ||
+         HTMLElement::IsInteractiveContent();
 }
 
 FloatSize HTMLImageElement::DefaultDestinationSize(
diff --git a/third_party/blink/renderer/core/html/html_object_element.cc b/third_party/blink/renderer/core/html/html_object_element.cc
index 6a2465c..954e322 100644
--- a/third_party/blink/renderer/core/html/html_object_element.cc
+++ b/third_party/blink/renderer/core/html/html_object_element.cc
@@ -408,7 +408,8 @@
 }
 
 bool HTMLObjectElement::IsInteractiveContent() const {
-  return FastHasAttribute(html_names::kUsemapAttr);
+  return FastHasAttribute(html_names::kUsemapAttr) ||
+         HTMLElement::IsInteractiveContent();
 }
 
 bool HTMLObjectElement::UseFallbackContent() const {
diff --git a/third_party/blink/renderer/core/html/html_slot_element.cc b/third_party/blink/renderer/core/html/html_slot_element.cc
index 60345c0..e35740e 100644
--- a/third_party/blink/renderer/core/html/html_slot_element.cc
+++ b/third_party/blink/renderer/core/html/html_slot_element.cc
@@ -180,6 +180,8 @@
     return;
   }
 
+  ContainingShadowRoot()->GetSlotAssignment().ClearCandidateNodes(
+      assigned_nodes_candidates_);
   assigned_nodes_candidates_.clear();
   auto* host = OwnerShadowHost();
   bool has_invalid_node = false;
@@ -193,7 +195,11 @@
       has_invalid_node = true;
       break;
     }
-    assigned_nodes_candidates_.insert(node);
+
+    // Before assignment, see if this node belongs to another slot.
+    ContainingShadowRoot()->GetSlotAssignment().UpdateCandidateNodeAssignedSlot(
+        *node, *this);
+    assigned_nodes_candidates_.AppendOrMoveToLast(node);
   }
 
   if (!has_invalid_node)
@@ -205,6 +211,22 @@
   assigned_nodes_.push_back(&host_child);
 }
 
+void HTMLSlotElement::UpdateManuallyAssignedNodesOrdering() {
+  if (assigned_nodes_.IsEmpty() || assigned_nodes_candidates_.IsEmpty())
+    return;
+
+  // TODO: (crbug.com/1067153) Add perf benchmark test for large assigned list.
+  HeapHashSet<Member<Node>> prev_nodes;
+  for (auto& node : assigned_nodes_) {
+    prev_nodes.insert(node);
+  }
+  assigned_nodes_.clear();
+  for (auto& node : assigned_nodes_candidates_) {
+    if (prev_nodes.Contains(node))
+      assigned_nodes_.push_back(node);
+  }
+}
+
 void HTMLSlotElement::ClearAssignedNodes() {
   assigned_nodes_.clear();
 }
diff --git a/third_party/blink/renderer/core/html/html_slot_element.h b/third_party/blink/renderer/core/html/html_slot_element.h
index f3d054d8..5468f2c 100644
--- a/third_party/blink/renderer/core/html/html_slot_element.h
+++ b/third_party/blink/renderer/core/html/html_slot_element.h
@@ -73,6 +73,7 @@
 
   void WillRecalcAssignedNodes() { ClearAssignedNodes(); }
   void DidRecalcAssignedNodes() {
+    UpdateManuallyAssignedNodesOrdering();
     UpdateFlatTreeNodeDataForAssignedNodes();
     RecalcFlatTreeChildren();
   }
@@ -111,7 +112,7 @@
 
   // For imperative Shadow DOM distribution APIs
   void assign(HeapVector<Member<Node>> nodes, ExceptionState&);
-  const HeapHashSet<Member<Node>>& AssignedNodesCandidate() const {
+  const HeapLinkedHashSet<Member<Node>>& AssignedNodesCandidates() const {
     return assigned_nodes_candidates_;
   }
 
@@ -138,6 +139,8 @@
 
   void SetNeedsDistributionRecalcWillBeSetNeedsAssignmentRecalc();
 
+  // SlotAssignnment:recalc runs in tree order. Update to assigned order.
+  void UpdateManuallyAssignedNodesOrdering();
   void RecalcFlatTreeChildren();
   void UpdateFlatTreeNodeDataForAssignedNodes();
   void ClearAssignedNodesAndFlatTreeChildren();
@@ -147,8 +150,9 @@
 
   bool slotchange_event_enqueued_ = false;
 
-  // For imperative Shadow DOM distribution APIs
-  HeapHashSet<Member<Node>> assigned_nodes_candidates_;
+  // For imperative Shadow DOM distribution APIs.
+  // LinkedHashSet because candidates are ordered.
+  HeapLinkedHashSet<Member<Node>> assigned_nodes_candidates_;
 
   template <typename T, wtf_size_t S>
   struct LCSArray {
diff --git a/third_party/blink/renderer/core/html/media/html_media_element.cc b/third_party/blink/renderer/core/html/media/html_media_element.cc
index f144304..5d325a5 100644
--- a/third_party/blink/renderer/core/html/media/html_media_element.cc
+++ b/third_party/blink/renderer/core/html/media/html_media_element.cc
@@ -3998,7 +3998,8 @@
 }
 
 bool HTMLMediaElement::IsInteractiveContent() const {
-  return FastHasAttribute(html_names::kControlsAttr);
+  return FastHasAttribute(html_names::kControlsAttr) ||
+         HTMLElement::IsInteractiveContent();
 }
 
 void HTMLMediaElement::Trace(Visitor* visitor) {
diff --git a/third_party/blink/renderer/core/input/BUILD.gn b/third_party/blink/renderer/core/input/BUILD.gn
index 069a846..7e73239 100644
--- a/third_party/blink/renderer/core/input/BUILD.gn
+++ b/third_party/blink/renderer/core/input/BUILD.gn
@@ -14,8 +14,6 @@
     "event_handler.h",
     "event_handling_util.cc",
     "event_handling_util.h",
-    "fallback_cursor_event_manager.cc",
-    "fallback_cursor_event_manager.h",
     "gesture_manager.cc",
     "gesture_manager.h",
     "input_device_capabilities.cc",
diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_party/blink/renderer/core/input/event_handler.cc
index 8ada7d3..bba1b32 100644
--- a/third_party/blink/renderer/core/input/event_handler.cc
+++ b/third_party/blink/renderer/core/input/event_handler.cc
@@ -243,13 +243,7 @@
                                                *selection_controller_)),
       active_interval_timer_(frame.GetTaskRunner(TaskType::kUserInteraction),
                              this,
-                             &EventHandler::ActiveIntervalTimerFired) {
-  if (RuntimeEnabledFeatures::FallbackCursorModeEnabled() &&
-      frame.IsMainFrame()) {
-    fallback_cursor_event_manager_ =
-        MakeGarbageCollected<FallbackCursorEventManager>(frame);
-  }
-}
+                             &EventHandler::ActiveIntervalTimerFired) {}
 
 void EventHandler::Trace(Visitor* visitor) {
   visitor->Trace(frame_);
@@ -267,7 +261,6 @@
   visitor->Trace(keyboard_event_manager_);
   visitor->Trace(pointer_event_manager_);
   visitor->Trace(gesture_manager_);
-  visitor->Trace(fallback_cursor_event_manager_);
   visitor->Trace(last_deferred_tap_element_);
 }
 
@@ -764,14 +757,6 @@
   frame_->GetDocument()->SetSequentialFocusNavigationStartingPoint(
       mev.InnerNode());
 
-  if (RuntimeEnabledFeatures::FallbackCursorModeEnabled()) {
-    // TODO(crbug.com/944575) Should support oopif.
-    DCHECK(frame_->LocalFrameRoot().IsMainFrame());
-    frame_->LocalFrameRoot()
-        .GetEventHandler()
-        .fallback_cursor_event_manager_->HandleMousePressEvent(mouse_event);
-  }
-
   LocalFrame* subframe = event_handling_util::GetTargetSubframe(mev);
   if (subframe) {
     WebInputEventResult result = PassMousePressEventToSubframe(mev, subframe);
@@ -931,14 +916,6 @@
   page->GetChromeClient().MouseDidMoveOverElement(*frame_, location,
                                                   hovered_node_result);
 
-  if (RuntimeEnabledFeatures::FallbackCursorModeEnabled()) {
-    // TODO(crbug.com/944575) Should support oopif.
-    DCHECK(frame_->LocalFrameRoot().IsMainFrame());
-    frame_->LocalFrameRoot()
-        .GetEventHandler()
-        .fallback_cursor_event_manager_->HandleMouseMoveEvent(event);
-  }
-
   return result;
 }
 
@@ -2284,14 +2261,6 @@
       event, mouse_event_manager_->MousePressNode());
 }
 
-bool EventHandler::HandleFallbackCursorModeBackEvent() {
-  DCHECK(RuntimeEnabledFeatures::FallbackCursorModeEnabled());
-  // TODO(crbug.com/944575) Should support oopif.
-  DCHECK(frame_->LocalFrameRoot().IsMainFrame());
-
-  return fallback_cursor_event_manager_->HandleKeyBackEvent();
-}
-
 void EventHandler::DragSourceEndedAt(const WebMouseEvent& event,
                                      DragOperation operation) {
   // Asides from routing the event to the correct frame, the hit test is also an
@@ -2505,11 +2474,4 @@
   capturing_subframe_element_ = nullptr;
 }
 
-void EventHandler::SetIsFallbackCursorModeOn(bool is_on) {
-  DCHECK(RuntimeEnabledFeatures::FallbackCursorModeEnabled());
-  // TODO(crbug.com/944575) Should support oopif.
-  DCHECK(frame_->IsMainFrame());
-  fallback_cursor_event_manager_->SetIsFallbackCursorModeOn(is_on);
-}
-
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/input/event_handler.h b/third_party/blink/renderer/core/input/event_handler.h
index d793bf6..42d4cd47 100644
--- a/third_party/blink/renderer/core/input/event_handler.h
+++ b/third_party/blink/renderer/core/input/event_handler.h
@@ -35,7 +35,6 @@
 #include "third_party/blink/public/platform/web_input_event_result.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/events/text_event_input_type.h"
-#include "third_party/blink/renderer/core/input/fallback_cursor_event_manager.h"
 #include "third_party/blink/renderer/core/input/gesture_manager.h"
 #include "third_party/blink/renderer/core/input/keyboard_event_manager.h"
 #include "third_party/blink/renderer/core/input/mouse_event_manager.h"
@@ -225,7 +224,6 @@
   bool HandleAccessKey(const WebKeyboardEvent&);
   WebInputEventResult KeyEvent(const WebKeyboardEvent&);
   void DefaultKeyboardEventHandler(KeyboardEvent*);
-  bool HandleFallbackCursorModeBackEvent();
 
   bool HandleTextInputEvent(const String& text,
                             Event* underlying_event = nullptr,
@@ -262,8 +260,6 @@
 
   void MarkHoverStateDirty();
 
-  void SetIsFallbackCursorModeOn(bool is_on);
-
   // Reset the last mouse position so that movement after unlock will be
   // restart from the lock position.
   void ResetMousePositionForPointerUnlock();
@@ -404,7 +400,6 @@
   Member<KeyboardEventManager> keyboard_event_manager_;
   Member<PointerEventManager> pointer_event_manager_;
   Member<GestureManager> gesture_manager_;
-  Member<FallbackCursorEventManager> fallback_cursor_event_manager_;
 
   double max_mouse_moved_duration_;
 
@@ -459,13 +454,6 @@
                            CursorForInlineVerticalWritingMode);
   FRIEND_TEST_ALL_PREFIXES(EventHandlerTest, CursorForBlockVerticalWritingMode);
 
-  FRIEND_TEST_ALL_PREFIXES(FallbackCursorEventManagerTest,
-                           MouseMoveCursorLockOnDiv);
-  FRIEND_TEST_ALL_PREFIXES(FallbackCursorEventManagerTest,
-                           MouseMoveCursorLockOnIFrame);
-  FRIEND_TEST_ALL_PREFIXES(FallbackCursorEventManagerTest, KeyBackAndMouseMove);
-  FRIEND_TEST_ALL_PREFIXES(FallbackCursorEventManagerTest, MouseDownOnEditor);
-
   DISALLOW_COPY_AND_ASSIGN(EventHandler);
 };
 
diff --git a/third_party/blink/renderer/core/input/fallback_cursor_event_manager.cc b/third_party/blink/renderer/core/input/fallback_cursor_event_manager.cc
deleted file mode 100644
index 3008ec6..0000000
--- a/third_party/blink/renderer/core/input/fallback_cursor_event_manager.cc
+++ /dev/null
@@ -1,466 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "third_party/blink/renderer/core/input/fallback_cursor_event_manager.h"
-
-#include "third_party/blink/public/common/input/web_mouse_event.h"
-#include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/core/dom/node.h"
-#include "third_party/blink/renderer/core/editing/editing_utilities.h"
-#include "third_party/blink/renderer/core/events/web_input_event_conversion.h"
-#include "third_party/blink/renderer/core/frame/local_frame.h"
-#include "third_party/blink/renderer/core/frame/local_frame_client.h"
-#include "third_party/blink/renderer/core/frame/settings.h"
-#include "third_party/blink/renderer/core/frame/visual_viewport.h"
-#include "third_party/blink/renderer/core/geometry/dom_rect.h"
-#include "third_party/blink/renderer/core/html/html_frame_owner_element.h"
-#include "third_party/blink/renderer/core/input/event_handler.h"
-#include "third_party/blink/renderer/core/input/scroll_manager.h"
-#include "third_party/blink/renderer/core/layout/hit_test_location.h"
-#include "third_party/blink/renderer/core/layout/hit_test_request.h"
-#include "third_party/blink/renderer/core/layout/hit_test_result.h"
-#include "third_party/blink/renderer/core/layout/layout_box.h"
-#include "third_party/blink/renderer/core/layout/layout_object.h"
-#include "third_party/blink/renderer/core/layout/layout_view.h"
-#include "third_party/blink/renderer/core/page/chrome_client.h"
-#include "third_party/blink/renderer/core/page/focus_controller.h"
-#include "third_party/blink/renderer/core/page/page.h"
-#include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
-#include "third_party/blink/renderer/platform/geometry/int_point.h"
-#include "third_party/blink/renderer/platform/geometry/int_size.h"
-#include "third_party/blink/renderer/platform/keyboard_codes.h"
-#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-#include "third_party/blink/renderer/platform/wtf/casting.h"
-
-namespace blink {
-
-namespace {
-
-const float kScrollAreaRatio = 0.3f;
-
-LocalFrame* FrameOfNode(const Node& node) {
-  return node.GetDocument().GetFrame();
-}
-
-Node* ParentNode(const Node& node) {
-  if (node.IsDocumentNode()) {
-    FrameOwner* frame_owner = FrameOfNode(node)->Owner();
-    DCHECK(frame_owner->IsLocal());
-    return DynamicTo<HTMLFrameOwnerElement>(frame_owner);
-  }
-
-  return node.parentNode();
-}
-
-HitTestResult HitTest(LayoutView* layout_view, const IntPoint& point_in_root) {
-  HitTestRequest request(HitTestRequest::kReadOnly |
-                         HitTestRequest::kAllowChildFrameContent |
-                         HitTestRequest::kRetargetForInert);
-  HitTestLocation location(point_in_root);
-  HitTestResult result(request, location);
-  layout_view->HitTest(location, result);
-
-  return result;
-}
-
-bool CanScrollAnyDirection(const ScrollableArea& scrollable) {
-  IntSize scroll_dimensions =
-      scrollable.MaximumScrollOffsetInt() - scrollable.MinimumScrollOffsetInt();
-  return !scroll_dimensions.IsZero();
-}
-
-IntSize ScrollableAreaClipSizeInRootFrame(const ScrollableArea& scrollable) {
-  LayoutBox* box = scrollable.GetLayoutBox();
-  DCHECK(box);
-  LocalFrameView* view = box->GetFrameView();
-  DCHECK(view);
-
-  PhysicalRect rect(scrollable.VisibleContentRect(blink::kIncludeScrollbars));
-  rect = view->DocumentToFrame(rect);
-  return view->ConvertToRootFrame(EnclosedIntRect(FloatRect(rect))).Size();
-}
-
-IntPoint RootFrameLocationToScrollable(const IntPoint& location_in_root_frame,
-                                       const ScrollableArea& scrollable) {
-  LayoutBox* box = scrollable.GetLayoutBox();
-  DCHECK(box);
-  LocalFrameView* view = box->GetFrameView();
-
-  DCHECK(view);
-
-  IntPoint location_in_frame =
-      view->ConvertFromRootFrame(location_in_root_frame);
-
-  if (&scrollable == view->GetScrollableArea()) {
-    LocalFrame& frame = view->GetFrame();
-    if (frame.IsMainFrame() && frame.GetPage()) {
-      // For the main frame, the scroller whose location we want to be relative
-      // to is the visual viewport so that the cursor works under pinch zoom
-      // scenarios.
-      VisualViewport& viewport = frame.GetPage()->GetVisualViewport();
-      IntPoint point_in_viewport =
-          viewport.RootFrameToViewport(location_in_frame);
-
-      // Scale since we're in visual viewport coordinates, and want the offset
-      // relative to the visual viewport, but all the comparisons related to
-      // scroller size are done in the root frame.
-      float scale = 1.f / viewport.Scale();
-      point_in_viewport.Scale(scale, scale);
-      return point_in_viewport;
-    }
-
-    return location_in_frame;
-  }
-
-  DCHECK(scrollable.IsPaintLayerScrollableArea());
-
-  IntPoint location_in_box =
-      view->ConvertToLayoutObject(*box, location_in_frame);
-  location_in_box.Move(-box->BorderLeft().ToInt(), -box->BorderTop().ToInt());
-  return location_in_box;
-}
-
-}  // namespace
-
-FallbackCursorEventManager::FallbackCursorEventManager(LocalFrame& root_frame)
-    : root_frame_(root_frame) {
-  DCHECK(root_frame.IsMainFrame());
-  ResetCurrentScrollable();
-}
-
-void FallbackCursorEventManager::Trace(Visitor* visitor) {
-  visitor->Trace(root_frame_);
-  visitor->Trace(current_node_);
-}
-
-void FallbackCursorEventManager::ResetCurrentScrollable() {
-  current_node_.Clear();
-}
-
-// Check if current scrolling ScrollableArea is still valid and reset it if not.
-void FallbackCursorEventManager::InvalidateCurrentScrollableIfNeeded() {
-  if (!current_node_)
-    return;
-
-  if (!current_node_->isConnected() ||
-      !current_node_->GetDocument().GetFrame()) {
-    ResetCurrentScrollable();
-  }
-  ScrollableArea* current_scrollable = CurrentScrollingScrollableArea();
-  if (!current_scrollable || !CanScrollAnyDirection(*current_scrollable))
-    ResetCurrentScrollable();
-}
-
-ScrollableArea* FallbackCursorEventManager::CurrentScrollingScrollableArea() {
-  LocalFrame* current_frame = CurrentScrollingFrame();
-  Node* current_node = CurrentScrollingNode();
-
-  if (current_node->IsDocumentNode())
-    return current_frame->View()->GetScrollableArea();
-
-  auto* layout_object = current_node->GetLayoutObject();
-  if (!layout_object || !layout_object->IsBox())
-    return nullptr;
-
-  return ToLayoutBox(current_node->GetLayoutObject())->GetScrollableArea();
-}
-
-Node* FallbackCursorEventManager::CurrentScrollingNode() {
-  if (!current_node_)
-    return root_frame_->GetDocument();
-
-  return current_node_.Get();
-}
-
-LocalFrame* FallbackCursorEventManager::CurrentScrollingFrame() {
-  if (!current_node_)
-    return root_frame_;
-
-  return FrameOfNode(*current_node_.Get());
-}
-
-bool FallbackCursorEventManager::ShouldLock(
-    Direction d,
-    const ScrollableArea& scrollable,
-    const IntSize& node_size,
-    const IntPoint& cursor_location_in_node) {
-  // This method won't work correctly on RootFrameViewport because of how
-  // UserInputScrollable works.
-  DCHECK(!scrollable.IsRootFrameViewport());
-
-  // Check can scroll in direction, if not should not lock this direction.
-  IntSize current_offset = scrollable.ScrollOffsetInt();
-  IntSize min_offset = scrollable.MinimumScrollOffsetInt();
-  IntSize max_offset = scrollable.MaximumScrollOffsetInt();
-
-  // If a direction isn't scrollable (e.g. overflow:hidden), we should restrict
-  // the min/max in that axis so that the code below realizes we can't scroll
-  // in that direction. That'll ensure we don't lock the cursor in that
-  // direction and allow it to be moved rather than fruitlessly trying to
-  // scroll.
-  if (!scrollable.UserInputScrollable(kHorizontalScrollbar)) {
-    min_offset.SetWidth(current_offset.Width());
-    max_offset.SetWidth(current_offset.Width());
-  }
-  if (!scrollable.UserInputScrollable(kVerticalScrollbar)) {
-    min_offset.SetHeight(current_offset.Height());
-    max_offset.SetHeight(current_offset.Height());
-  }
-
-  switch (d) {
-    case Direction::kLeft:
-      if (current_offset.Width() <= min_offset.Width())
-        return false;
-      break;
-    case Direction::kRight:
-      if (current_offset.Width() >= max_offset.Width())
-        return false;
-      break;
-    case Direction::kUp:
-      if (current_offset.Height() <= min_offset.Height())
-        return false;
-      break;
-    case Direction::kDown:
-      if (current_offset.Height() >= max_offset.Height())
-        return false;
-      break;
-    default:
-      NOTREACHED();
-  }
-
-  // Check if cursor located in scroll area.
-  switch (d) {
-    case Direction::kLeft:
-      if (cursor_location_in_node.X() < node_size.Width() * kScrollAreaRatio) {
-        return true;
-      }
-      break;
-    case Direction::kRight:
-      if (cursor_location_in_node.X() >
-          node_size.Width() * (1 - kScrollAreaRatio)) {
-        return true;
-      }
-      break;
-    case Direction::kUp:
-      if (cursor_location_in_node.Y() < node_size.Height() * kScrollAreaRatio) {
-        return true;
-      }
-      break;
-    case Direction::kDown:
-      if (cursor_location_in_node.Y() >
-          node_size.Height() * (1 - kScrollAreaRatio)) {
-        return true;
-      }
-      break;
-    default:
-      NOTREACHED();
-  }
-
-  return false;
-}
-
-void FallbackCursorEventManager::LockCursor(bool left,
-                                            bool right,
-                                            bool up,
-                                            bool down) {
-  root_frame_->GetChromeClient().FallbackCursorModeLockCursor(
-      root_frame_.Get(), left, right, up, down);
-}
-
-void FallbackCursorEventManager::SetCursorVisibility(bool visible) {
-  root_frame_->GetChromeClient().FallbackCursorModeSetCursorVisibility(
-      root_frame_.Get(), visible);
-}
-
-void FallbackCursorEventManager::ComputeLockCursor(
-    const IntPoint& location_in_root_frame) {
-  DCHECK(root_frame_->GetDocument());
-  DCHECK(root_frame_->GetDocument()->View());
-  // TODO(bokan): Overly-defensive since we'll be merging, remove from ToT.
-  if (!root_frame_->GetDocument() || !root_frame_->GetDocument()->View())
-    return;
-
-  ScrollableArea* scrollable = CurrentScrollingScrollableArea();
-
-  DCHECK(scrollable);
-  IntSize scrollable_clip_size_in_root_frame =
-      ScrollableAreaClipSizeInRootFrame(*scrollable);
-  VisualViewport& visual_viewport = root_frame_->GetPage()->GetVisualViewport();
-  IntPoint location_in_scrollable =
-      RootFrameLocationToScrollable(location_in_root_frame, *scrollable);
-
-  // The RootFrameViewport is special because it's really two scrollers in one.
-  // We need to check each of the visual and layout viewports independently
-  // since we need to account for whether the scroller with extent
-  // (current_offset < MaxScrollOffset()) is UserInputScrollable, however,
-  // RootFrameViewport::UserInputScrollable will return whether either
-  // sub-viewport is UserInputScrollable.
-  // TODO(bokan): The below is awkward because we need a minimal change for
-  // merge. It relies on the fact that ShouldLock doesn't use the the passed in
-  // scroller to determine the mouse location relative to the scroll region,
-  // the geometry is calculated here the same is passed in both cases. We
-  // should refactor ShouldLock into InScrollRegion and CanScroll.
-  ScrollableArea* scroller_for_lock =
-      scrollable->IsRootFrameViewport()
-          ? root_frame_->GetDocument()->View()->LayoutViewport()
-          : scrollable;
-
-  bool left =
-      ShouldLock(Direction::kLeft, *scroller_for_lock,
-                 scrollable_clip_size_in_root_frame, location_in_scrollable);
-  bool right =
-      ShouldLock(Direction::kRight, *scroller_for_lock,
-                 scrollable_clip_size_in_root_frame, location_in_scrollable);
-  bool up =
-      ShouldLock(Direction::kUp, *scroller_for_lock,
-                 scrollable_clip_size_in_root_frame, location_in_scrollable);
-  bool down =
-      ShouldLock(Direction::kDown, *scroller_for_lock,
-                 scrollable_clip_size_in_root_frame, location_in_scrollable);
-
-  // If we can't scroll the layout viewport, we should still check whether we
-  // might be able to scroll the visual viewport.
-  if (scrollable->IsRootFrameViewport()) {
-    left |=
-        ShouldLock(Direction::kLeft, visual_viewport,
-                   scrollable_clip_size_in_root_frame, location_in_scrollable);
-    right |=
-        ShouldLock(Direction::kRight, visual_viewport,
-                   scrollable_clip_size_in_root_frame, location_in_scrollable);
-    up |=
-        ShouldLock(Direction::kUp, visual_viewport,
-                   scrollable_clip_size_in_root_frame, location_in_scrollable);
-    down |=
-        ShouldLock(Direction::kDown, visual_viewport,
-                   scrollable_clip_size_in_root_frame, location_in_scrollable);
-  }
-
-  LockCursor(left, right, up, down);
-}
-
-void FallbackCursorEventManager::HandleMouseMoveEvent(const WebMouseEvent& e) {
-  DCHECK(RuntimeEnabledFeatures::FallbackCursorModeEnabled());
-  // TODO(crbug.com/953393): reenable after bug is fixed.
-  // DCHECK(is_fallback_cursor_mode_on_);
-
-  InvalidateCurrentScrollableIfNeeded();
-  ScrollableArea* scrollable = CurrentScrollingScrollableArea();
-
-  DCHECK(scrollable);
-
-  DCHECK(root_frame_->GetDocument());
-  DCHECK(root_frame_->GetDocument()->View());
-  // TODO(bokan): Overly-defensive since we'll be merging, remove from ToT.
-  if (!root_frame_->GetDocument() || !root_frame_->GetDocument()->View())
-    return;
-
-  IntPoint location_in_root_frame{e.PositionInRootFrame().x(),
-                                  e.PositionInRootFrame().y()};
-
-  // Make sure we unlock all movement if the cursor is outside our bounds. This
-  // can happen when the cursor is enabled/disabled (e.g. position: -1,-1).
-  IntRect root_frame_rect = root_frame_->GetDocument()->View()->FrameRect();
-  if (!root_frame_rect.Contains(location_in_root_frame)) {
-    ResetCurrentScrollable();
-    LockCursor(false, false, false, false);
-    return;
-  }
-
-  IntSize scrollable_clip_size_in_root_frame =
-      ScrollableAreaClipSizeInRootFrame(*scrollable);
-  IntPoint location_in_scrollable =
-      RootFrameLocationToScrollable(location_in_root_frame, *scrollable);
-
-  // Check if mouse out of current node.
-  IntRect rect = IntRect(IntPoint(), scrollable_clip_size_in_root_frame);
-  if (!rect.Contains(location_in_scrollable))
-    ResetCurrentScrollable();
-
-  ComputeLockCursor(location_in_root_frame);
-}
-
-void FallbackCursorEventManager::HandleMousePressEvent(const WebMouseEvent& e) {
-  DCHECK(RuntimeEnabledFeatures::FallbackCursorModeEnabled());
-  // TODO(crbug.com/953393): reenable after bug is fixed.
-  // DCHECK(is_fallback_cursor_mode_on_);
-
-  ResetCurrentScrollable();
-
-  // Re hit test since we need a hit test with child frame.
-  IntPoint location{e.PositionInRootFrame().x(), e.PositionInRootFrame().y()};
-  HitTestResult hit_test_result =
-      HitTest(root_frame_->GetDocument()->GetLayoutView(), location);
-  Node* node = hit_test_result.InnerNode();
-  if (!node)
-    return;
-
-  // Click on input boxes or media node should hide the cursor.
-  if (HasEditableStyle(*node) || node->IsMediaElement()) {
-    SetCursorVisibility(false);
-    return;
-  }
-
-  for (; node; node = ParentNode(*node)) {
-    ScrollableArea* scrollable = nullptr;
-    if (node->IsDocumentNode()) {
-      LocalFrame* current_frame = FrameOfNode(*node);
-      DCHECK(current_frame);
-      scrollable = current_frame->View()->GetScrollableArea();
-    } else {
-      auto* layout_object = node->GetLayoutObject();
-      if (!layout_object || !layout_object->IsBox()) {
-        continue;
-      }
-
-      LayoutBox* box = ToLayoutBox(layout_object);
-      if (!box->CanBeScrolledAndHasScrollableArea()) {
-        continue;
-      }
-      scrollable = box->GetScrollableArea();
-    }
-
-    DCHECK(scrollable);
-    if (!CanScrollAnyDirection(*scrollable))
-      continue;
-
-    // Found scrollable
-    break;
-  }
-
-  current_node_ = node;
-}
-
-Element* FallbackCursorEventManager::GetFocusedElement() const {
-  DCHECK(root_frame_->GetPage());
-  LocalFrame* frame =
-      root_frame_->GetPage()->GetFocusController().FocusedFrame();
-  if (!frame || !frame->GetDocument())
-    return nullptr;
-
-  return frame->GetDocument()->FocusedElement();
-}
-
-bool FallbackCursorEventManager::HandleKeyBackEvent() {
-  DCHECK(RuntimeEnabledFeatures::FallbackCursorModeEnabled());
-
-  if (!is_fallback_cursor_mode_on_)
-    return false;
-
-  SetCursorVisibility(true);
-  if (Element* focused_element = GetFocusedElement()) {
-    focused_element->blur();
-    return true;
-  }
-
-  ResetCurrentScrollable();
-  return true;
-}
-
-void FallbackCursorEventManager::SetIsFallbackCursorModeOn(bool is_on) {
-  is_fallback_cursor_mode_on_ = is_on;
-  DCHECK(root_frame_->GetPage());
-  root_frame_->GetPage()->GetSettings().SetSpatialNavigationEnabled(!is_on);
-}
-
-}  // namespace blink
diff --git a/third_party/blink/renderer/core/input/fallback_cursor_event_manager.h b/third_party/blink/renderer/core/input/fallback_cursor_event_manager.h
deleted file mode 100644
index 7c0bc7a7..0000000
--- a/third_party/blink/renderer/core/input/fallback_cursor_event_manager.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_INPUT_FALLBACK_CURSOR_EVENT_MANAGER_H_
-#define THIRD_PARTY_BLINK_RENDERER_CORE_INPUT_FALLBACK_CURSOR_EVENT_MANAGER_H_
-
-#include "base/gtest_prod_util.h"
-#include "base/macros.h"
-#include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/heap/visitor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
-
-namespace blink {
-
-class Element;
-class Node;
-class IntPoint;
-class IntSize;
-class LocalFrame;
-class ScrollableArea;
-class WebMouseEvent;
-
-class CORE_EXPORT FallbackCursorEventManager
-    : public GarbageCollected<FallbackCursorEventManager> {
- public:
-  FallbackCursorEventManager(LocalFrame&);
-  void Trace(Visitor*);
-
-  void SetIsFallbackCursorModeOn(bool is_on);
-
-  void HandleMouseMoveEvent(const WebMouseEvent&);
-  void HandleMousePressEvent(const WebMouseEvent&);
-  bool HandleKeyBackEvent();
-
- private:
-  FRIEND_TEST_ALL_PREFIXES(FallbackCursorEventManagerTest,
-                           MouseMoveCursorLockOnDiv);
-  FRIEND_TEST_ALL_PREFIXES(FallbackCursorEventManagerTest,
-                           MouseMoveCursorLockOnIFrame);
-  FRIEND_TEST_ALL_PREFIXES(FallbackCursorEventManagerTest, KeyBackAndMouseMove);
-  FRIEND_TEST_ALL_PREFIXES(FallbackCursorEventManagerTest, MouseDownOnEditor);
-
-  enum class Direction {
-    kLeft,
-    kRight,
-    kUp,
-    kDown,
-  };
-
-  void ResetCurrentScrollable();
-  void InvalidateCurrentScrollableIfNeeded();
-  LocalFrame* CurrentScrollingFrame();
-  Node* CurrentScrollingNode();
-  ScrollableArea* CurrentScrollingScrollableArea();
-
-  bool ShouldLock(Direction d,
-                  const ScrollableArea& scrollable,
-                  const IntSize& node_size,
-                  const IntPoint& cursor_location_in_node);
-  void ComputeLockCursor(const IntPoint& location_in_root_frame);
-  void LockCursor(bool left, bool right, bool up, bool down);
-  void SetCursorVisibility(bool visible);
-
-  Element* GetFocusedElement() const;
-
-  const Member<LocalFrame> root_frame_;
-  Member<Node> current_node_;
-  bool is_fallback_cursor_mode_on_;
-
-  DISALLOW_COPY_AND_ASSIGN(FallbackCursorEventManager);
-};
-
-}  // namespace blink
-
-#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_INPUT_FALLBACK_CURSOR_EVENT_MANAGER_H_
diff --git a/third_party/blink/renderer/core/input/fallback_cursor_event_manager_test.cc b/third_party/blink/renderer/core/input/fallback_cursor_event_manager_test.cc
deleted file mode 100644
index ba05ed43..0000000
--- a/third_party/blink/renderer/core/input/fallback_cursor_event_manager_test.cc
+++ /dev/null
@@ -1,597 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "third_party/blink/renderer/core/input/fallback_cursor_event_manager.h"
-
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/public/common/input/web_mouse_event.h"
-#include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/core/frame/local_frame.h"
-#include "third_party/blink/renderer/core/frame/visual_viewport.h"
-#include "third_party/blink/renderer/core/input/event_handler.h"
-#include "third_party/blink/renderer/core/loader/empty_clients.h"
-#include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
-#include "third_party/blink/renderer/core/testing/core_unit_test_helper.h"
-#include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h"
-
-namespace {
-
-constexpr size_t kLeft = 0;
-constexpr size_t kRight = 1;
-constexpr size_t kUp = 2;
-constexpr size_t kDown = 3;
-
-}  //  namespace
-
-#define ExpectLock(l, r, u, d)                                        \
-  EXPECT_EQ(GetFallbackCursorChromeClient().cursor_lock_[kLeft], l);  \
-  EXPECT_EQ(GetFallbackCursorChromeClient().cursor_lock_[kRight], r); \
-  EXPECT_EQ(GetFallbackCursorChromeClient().cursor_lock_[kUp], u);    \
-  EXPECT_EQ(GetFallbackCursorChromeClient().cursor_lock_[kDown], d);
-
-namespace blink {
-
-class FallbackCursorChromeClient : public RenderingTestChromeClient {
- public:
-  FallbackCursorChromeClient() {}
-
-  void FallbackCursorModeLockCursor(LocalFrame* frame,
-                                    bool left,
-                                    bool right,
-                                    bool up,
-                                    bool down) override {
-    cursor_lock_[0] = left;
-    cursor_lock_[1] = right;
-    cursor_lock_[2] = up;
-    cursor_lock_[3] = down;
-  }
-
-  void FallbackCursorModeSetCursorVisibility(LocalFrame* frame,
-                                             bool visible) override {
-    cursor_visible_ = visible;
-  }
-
-  bool cursor_lock_[4] = {0};
-  bool cursor_visible_ = true;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(FallbackCursorChromeClient);
-};
-
-class FallbackCursorEventManagerTest : public RenderingTest,
-                                       private ScopedFallbackCursorModeForTest {
- protected:
-  FallbackCursorEventManagerTest()
-      : RenderingTest(MakeGarbageCollected<SingleChildLocalFrameClient>()),
-        ScopedFallbackCursorModeForTest(true),
-        chrome_client_(MakeGarbageCollected<FallbackCursorChromeClient>()) {}
-
-  ~FallbackCursorEventManagerTest() override {}
-
-  RenderingTestChromeClient& GetChromeClient() const override {
-    return *chrome_client_;
-  }
-
-  FallbackCursorChromeClient& GetFallbackCursorChromeClient() const {
-    return *chrome_client_;
-  }
-
-  void TurnOnFallbackCursorMode() {
-    GetDocument().GetFrame()->GetEventHandler().SetIsFallbackCursorModeOn(true);
-  }
-
-  void MouseMove(int x, int y, float scale = 1.0f) {
-    WebMouseEvent event(WebInputEvent::kMouseMove, gfx::PointF(x, y),
-                        gfx::PointF(x, y),
-                        WebPointerProperties::Button::kNoButton, 0,
-                        WebInputEvent::kNoModifiers, base::TimeTicks::Now());
-    event.SetFrameScale(scale);
-    GetDocument().GetFrame()->GetEventHandler().HandleMouseMoveEvent(
-        event, Vector<WebMouseEvent>(), Vector<WebMouseEvent>());
-  }
-
-  // Simulates a mouse move at the given point in the visual viewport (i.e. the
-  // coordinates relative to the Chrome window).
-  // TODO(bokan): Replace all above uses with this method.
-  void MouseMoveViewport(IntPoint point) {
-    VisualViewport& visual_viewport =
-        GetDocument().GetPage()->GetVisualViewport();
-    FloatPoint root_frame_point =
-        visual_viewport.ViewportToRootFrame(FloatPoint(point));
-
-    WebMouseEvent event(WebInputEvent::kMouseMove, root_frame_point,
-                        root_frame_point,
-                        WebPointerProperties::Button::kNoButton, 0,
-                        WebInputEvent::kNoModifiers, base::TimeTicks::Now());
-    event.SetFrameScale(1.0f);
-    GetDocument().GetFrame()->GetEventHandler().HandleMouseMoveEvent(
-        event, Vector<WebMouseEvent>(), Vector<WebMouseEvent>());
-  }
-
-  void MouseDown(int x, int y) {
-    WebMouseEvent event(WebInputEvent::kMouseDown, gfx::PointF(x, y),
-                        gfx::PointF(x, y), WebPointerProperties::Button::kLeft,
-                        0, WebInputEvent::Modifiers::kLeftButtonDown,
-                        base::TimeTicks::Now());
-    event.SetFrameScale(1);
-    GetDocument().GetFrame()->GetEventHandler().HandleMousePressEvent(event);
-  }
-
-  bool KeyBack() {
-    return GetDocument()
-        .GetFrame()
-        ->GetEventHandler()
-        .HandleFallbackCursorModeBackEvent();
-  }
-
- private:
-  Persistent<FallbackCursorChromeClient> chrome_client_;
-
-  DISALLOW_COPY_AND_ASSIGN(FallbackCursorEventManagerTest);
-};
-
-TEST_F(FallbackCursorEventManagerTest, RootFrameNotScrollable) {
-  SetBodyInnerHTML("A");
-  TurnOnFallbackCursorMode();
-
-  // Mouse move to edge.
-  MouseMove(0, 0);
-  ExpectLock(false, false, false, false);
-
-  MouseMove(0, 600);
-  ExpectLock(false, false, false, false);
-
-  MouseMove(800, 0);
-  ExpectLock(false, false, false, false);
-
-  MouseMove(800, 600);
-  ExpectLock(false, false, false, false);
-}
-
-TEST_F(FallbackCursorEventManagerTest, ResetOnOutOfFrame) {
-  SetBodyInnerHTML(R"HTML(
-    <style>
-    html, body {
-      margin: 0px;
-    }
-    .big {
-      height: 10000px;
-      width: 10000px;
-    }
-    </style>
-    <div class='big'></div>
-  )HTML");
-  TurnOnFallbackCursorMode();
-
-  // Move below the scroll down line.
-  MouseMove(100, 500);
-  ExpectLock(false, false, false, true);
-
-  // Ensure an invalid or out-of-bounds mouse move will reset the lock.
-  MouseMove(-1, -1);
-  ExpectLock(false, false, false, false);
-
-  // Ensure an invalid or out-of-bounds mouse move will reset the lock.
-  MouseMove(790, 590);
-  ExpectLock(false, true, false, true);
-
-  // Ensure an invalid or out-of-bounds mouse move will reset the lock.
-  MouseMove(800, 600);
-  ExpectLock(false, false, false, false);
-}
-
-TEST_F(FallbackCursorEventManagerTest, MouseMoveCursorLockOnRootFrame) {
-  SetBodyInnerHTML(R"HTML(
-    <style>
-    html, body {
-      margin: 0px;
-    }
-    .big {
-      height: 10000px;
-      width: 10000px;
-    }
-    </style>
-    <div class='big'></div>
-  )HTML");
-  TurnOnFallbackCursorMode();
-
-  // Move below the scroll down line.
-  MouseMove(100, 500);
-  ExpectLock(false, false, false, true);
-
-  // Move above the scroll down line.
-  MouseMove(100, 400);
-  ExpectLock(false, false, false, false);
-
-  // Move to the right of scroll right line.
-  MouseMove(600, 400);
-  ExpectLock(false, true, false, false);
-}
-
-TEST_F(FallbackCursorEventManagerTest,
-       MouseMoveCursorLockOnRootFrameWithScale) {
-  const float SCALE = 0.5f;
-  SetBodyInnerHTML(R"HTML(
-    <style>
-    html, body {
-      margin: 0px;
-    }
-    .big {
-      height: 10000px;
-      width: 10000px;
-    }
-    </style>
-    <div class='big'></div>
-  )HTML");
-  TurnOnFallbackCursorMode();
-
-  // Move below the scroll down line.
-  MouseMove(50, 250, SCALE);
-  ExpectLock(false, false, false, true);
-
-  // Move above the scroll down line.
-  MouseMove(50, 200, SCALE);
-  ExpectLock(false, false, false, false);
-
-  // Move to the right of scroll right line.
-  MouseMove(300, 200, SCALE);
-  ExpectLock(false, true, false, false);
-}
-
-TEST_F(FallbackCursorEventManagerTest, MouseMoveCursorLockOnDiv) {
-  SetBodyInnerHTML(R"HTML(
-    <style>
-    html, body {
-      margin: 0px;
-    }
-    .big {
-      height: 10000px;
-      width: 10000px;
-    }
-    #d1 {
-      height: 100px;
-      width: 100px;
-      overflow: auto;
-    }
-    </style>
-    <div id='d1'>
-      <div class='big'></div>
-    </div>
-  )HTML");
-  TurnOnFallbackCursorMode();
-
-  // Move below the scroll down line but before mouse down.
-  MouseMove(50, 80);
-  ExpectLock(false, false, false, false);
-  EXPECT_FALSE(GetDocument()
-                   .GetFrame()
-                   ->GetEventHandler()
-                   .fallback_cursor_event_manager_->current_node_);
-
-  // Mouse down and move lock on down.
-  MouseDown(50, 80);
-  Element* d1 = GetDocument().getElementById("d1");
-  EXPECT_EQ(GetDocument()
-                .GetFrame()
-                ->GetEventHandler()
-                .fallback_cursor_event_manager_->current_node_.Get(),
-            d1);
-  MouseMove(50, 80);
-  ExpectLock(false, false, false, true);
-
-  // Mouse move out of div.
-  MouseMove(200, 200);
-  ExpectLock(false, false, false, false);
-  EXPECT_FALSE(GetDocument()
-                   .GetFrame()
-                   ->GetEventHandler()
-                   .fallback_cursor_event_manager_->current_node_);
-
-  // key back.
-  MouseMove(50, 80);
-  MouseDown(50, 80);
-  EXPECT_EQ(GetDocument()
-                .GetFrame()
-                ->GetEventHandler()
-                .fallback_cursor_event_manager_->current_node_.Get(),
-            d1);
-  EXPECT_TRUE(KeyBack());
-  EXPECT_FALSE(GetDocument()
-                   .GetFrame()
-                   ->GetEventHandler()
-                   .fallback_cursor_event_manager_->current_node_);
-}
-
-TEST_F(FallbackCursorEventManagerTest, MouseMoveCursorLockOnIFrame) {
-  SetBodyInnerHTML(R"HTML(
-    <style>
-    html, body {
-      margin: 0px;
-    }
-    #ifr {
-      height: 100px;
-      width: 100px;
-    }
-    </style>
-    <iframe id='ifr'></iframe>
-  )HTML");
-
-  SetChildFrameHTML(R"HTML(
-    <style>
-    html, body {
-      margin: 0px;
-    }
-    .big {
-      height: 10000px;
-      width: 10000px;
-    }
-    </style>
-    <div class='big'></div>
-  )HTML");
-  TurnOnFallbackCursorMode();
-
-  // Move below the scroll down line but before mouse down.
-  MouseMove(50, 80);
-  ExpectLock(false, false, false, false);
-  EXPECT_FALSE(GetDocument()
-                   .GetFrame()
-                   ->GetEventHandler()
-                   .fallback_cursor_event_manager_->current_node_);
-
-  // Mouse down and move lock on down.
-  MouseDown(50, 80);
-  MouseMove(50, 80);
-  ExpectLock(false, false, false, true);
-  Node* child_frame_doc = ChildFrame().GetDocument();
-  EXPECT_EQ(GetDocument()
-                .GetFrame()
-                ->GetEventHandler()
-                .fallback_cursor_event_manager_->current_node_.Get(),
-            child_frame_doc);
-
-  // Mouse move out of iframe.
-  MouseMove(200, 200);
-  ExpectLock(false, false, false, false);
-  EXPECT_FALSE(GetDocument()
-                   .GetFrame()
-                   ->GetEventHandler()
-                   .fallback_cursor_event_manager_->current_node_);
-
-  // key back.
-  MouseMove(50, 80);
-  MouseDown(50, 80);
-  EXPECT_EQ(GetDocument()
-                .GetFrame()
-                ->GetEventHandler()
-                .fallback_cursor_event_manager_->current_node_.Get(),
-            child_frame_doc);
-  EXPECT_TRUE(KeyBack());
-  EXPECT_FALSE(GetDocument()
-                   .GetFrame()
-                   ->GetEventHandler()
-                   .fallback_cursor_event_manager_->current_node_);
-}
-
-TEST_F(FallbackCursorEventManagerTest, KeyBackAndMouseMove) {
-  SetBodyInnerHTML(R"HTML(
-    <style>
-    html, body {
-      margin: 0px;
-    }
-    #ifr {
-      height: 100px;
-      width: 100px;
-    }
-    div {
-      height: 10000px;
-      width: 10000px;
-    }
-    </style>
-    <iframe id='ifr'></iframe>
-    <div></div>
-  )HTML");
-
-  SetChildFrameHTML(R"HTML(
-    <style>
-    html, body {
-      margin: 0px;
-    }
-    .big {
-      height: 10000px;
-      width: 10000px;
-    }
-    </style>
-    <div class='big'></div>
-  )HTML");
-  TurnOnFallbackCursorMode();
-
-  // Move below the scroll down line but before mouse down.
-  MouseMove(50, 80);
-  ExpectLock(false, false, false, false);
-  EXPECT_FALSE(GetDocument()
-                   .GetFrame()
-                   ->GetEventHandler()
-                   .fallback_cursor_event_manager_->current_node_);
-
-  // Mouse down and move lock on down.
-  MouseDown(50, 80);
-  MouseMove(50, 80);
-  ExpectLock(false, false, false, true);
-  Node* child_frame_doc = ChildFrame().GetDocument();
-  EXPECT_EQ(GetDocument()
-                .GetFrame()
-                ->GetEventHandler()
-                .fallback_cursor_event_manager_->current_node_.Get(),
-            child_frame_doc);
-
-  // key back.
-  EXPECT_TRUE(KeyBack());
-  EXPECT_FALSE(GetDocument()
-                   .GetFrame()
-                   ->GetEventHandler()
-                   .fallback_cursor_event_manager_->current_node_);
-
-  // Move below the scroll down line of page.
-  MouseMove(100, 500);
-  ExpectLock(false, false, false, true);
-}
-
-TEST_F(FallbackCursorEventManagerTest, MouseDownOnEditor) {
-  SetBodyInnerHTML(R"HTML(
-    <style>
-    html, body {
-      margin: 0px;
-    }
-    #editor {
-      height: 100px;
-      width: 100px;
-    }
-    </style>
-    <div id='editor' contenteditable='true'>
-    </div>
-  )HTML");
-  TurnOnFallbackCursorMode();
-
-  MouseMove(50, 80);
-  MouseDown(50, 80);
-
-  EXPECT_EQ(GetFallbackCursorChromeClient().cursor_visible_, false);
-
-  Element* editor = GetDocument().getElementById("editor");
-  EXPECT_EQ(GetDocument().FocusedElement(), editor);
-
-  EXPECT_TRUE(KeyBack());
-
-  EXPECT_EQ(GetFallbackCursorChromeClient().cursor_visible_, true);
-  EXPECT_FALSE(GetDocument().FocusedElement());
-}
-
-// Ensure the cursor causes correct locking and scrolling when the web page is
-// zoomed in and the visual viewport is offset.
-TEST_F(FallbackCursorEventManagerTest, ZoomedIn) {
-  SetBodyInnerHTML(R"HTML(
-    <style>
-    html, body {
-      margin: 0px;
-    }
-    .big {
-      height: 10000px;
-      width: 10000px;
-    }
-    </style>
-    <div class='big'></div>
-  )HTML");
-  TurnOnFallbackCursorMode();
-  VisualViewport& visual_viewport =
-      GetDocument().GetPage()->GetVisualViewport();
-  visual_viewport.SetScaleAndLocation(4, /*is_pinch_gesture_active=*/false,
-                                      FloatPoint(400, 300));
-
-  ASSERT_EQ(IntSize(800, 600), GetDocument().View()->Size());
-  ASSERT_EQ(FloatSize(200, 150), visual_viewport.VisibleRect().Size());
-
-  // Move to the center of the viewport.
-  MouseMoveViewport(IntPoint(400, 300));
-  ExpectLock(false, false, false, false);
-
-  // Move below the scroll down line.
-  MouseMoveViewport(IntPoint(400, 550));
-  ExpectLock(false, false, false, true);
-
-  // Move to the left of scroll left line.
-  MouseMoveViewport(IntPoint(50, 300));
-  ExpectLock(true, false, false, false);
-}
-
-// Ensure the cursor causes correct locking in the presence of overflow:hidden.
-TEST_F(FallbackCursorEventManagerTest, AccountsForOverflowHidden) {
-  SetBodyInnerHTML(R"HTML(
-    <style>
-    html, body {
-      margin: 0px;
-    }
-    html {
-      overflow-x: hidden;
-    }
-    .big {
-      height: 10000px;
-      width: 10000px;
-    }
-    </style>
-    <div class='big'></div>
-  )HTML");
-  TurnOnFallbackCursorMode();
-  VisualViewport& visual_viewport =
-      GetDocument().GetPage()->GetVisualViewport();
-
-  // Start fully zoomed out.
-  ASSERT_EQ(IntSize(800, 600), GetDocument().View()->Size());
-  ASSERT_EQ(FloatSize(800, 600), visual_viewport.VisibleRect().Size());
-
-  // Move to the center of the viewport.
-  MouseMoveViewport(IntPoint(400, 300));
-  ExpectLock(false, false, false, false);
-
-  // Move to the right scroll region. We don't expect to lock because the visual
-  // viewport has no scroll extent. The layout viewport has scroll extent but
-  // is limited by overflow-x:hidden.
-  MouseMoveViewport(IntPoint(750, 300));
-  ExpectLock(false, false, false, false);
-
-  // Move to the bottom scroll region. Since only overflow-x is hidden, this
-  // should cause locking in the down direction.
-  MouseMoveViewport(IntPoint(400, 550));
-  ExpectLock(false, false, false, true);
-
-  // Now zoom in. Make sure we can still scroll the visual viewport but not the
-  // layout.
-  visual_viewport.SetScaleAndLocation(4, /*is_pinch_gesture_active=*/false,
-                                      FloatPoint(0, 0));
-  ASSERT_EQ(IntSize(800, 600), GetDocument().View()->Size());
-  ASSERT_EQ(FloatSize(200, 150), visual_viewport.VisibleRect().Size());
-
-  // Move to the right scroll region; since the visual viewport can scroll, we
-  // should expect to lock to the right.
-  MouseMoveViewport(IntPoint(750, 300));
-  ExpectLock(false, true, false, false);
-
-  // Now move the visual viewport to the bottom right corner of the layout
-  // viewport.
-  visual_viewport.SetScaleAndLocation(4, /*is_pinch_gesture_active=*/false,
-                                      FloatPoint(600, 450));
-
-  // Move mouse to the right scroll region. Since the visual viewport is at the
-  // extent, and the layout viewport isn't user scrollable, we shouldn't cause
-  // locking.
-  MouseMoveViewport(IntPoint(750, 350));
-  ExpectLock(false, false, false, false);
-
-  // Move the mouse to the bottom scroll region, we should expect to lock
-  // because the layout viewport can scroll vertically, even though the visual
-  // viewport is at the extent.
-  MouseMoveViewport(IntPoint(750, 550));
-  ExpectLock(false, false, false, true);
-
-  // Move the mouse to the bottom scroll region, we should expect to lock
-  // because the layout viewport can scroll vertically, even though the visual
-  // viewport is at the extent.
-  MouseMoveViewport(IntPoint(745, 550));
-  ExpectLock(false, false, false, true);
-
-  // Fully scroll the layout viewport to the bottom.
-  GetDocument().View()->LayoutViewport()->SetScrollOffset(
-      ScrollOffset(0, 100000), mojom::blink::ScrollType::kProgrammatic);
-
-  // Move the mouse to the bottom of the viewport, we shouldn't lock because
-  // both layout and visual are at the extent.
-  MouseMoveViewport(IntPoint(740, 550));
-  ExpectLock(false, false, false, false);
-}
-
-TEST_F(FallbackCursorEventManagerTest, NotInCursorMode) {
-  GetPage().SetIsCursorVisible(false);
-  EXPECT_FALSE(KeyBack());
-}
-
-}  // namespace blink
diff --git a/third_party/blink/renderer/core/input/keyboard_event_manager.cc b/third_party/blink/renderer/core/input/keyboard_event_manager.cc
index 124043f..ad9b2316 100644
--- a/third_party/blink/renderer/core/input/keyboard_event_manager.cc
+++ b/third_party/blink/renderer/core/input/keyboard_event_manager.cc
@@ -45,7 +45,6 @@
 namespace {
 
 const int kVKeyProcessKey = 229;
-const int kVKeySpatNavBack = 233;
 
 bool MapKeyCodeForScroll(int key_code,
                          WebInputEvent::Modifiers modifiers,
@@ -397,8 +396,6 @@
       return;
     if (event->key() == "Enter") {
       DefaultEnterEventHandler(event);
-    } else if (event->keyCode() == kVKeySpatNavBack) {
-      DefaultSpatNavBackEventHandler(event);
     }
   }
 }
@@ -516,34 +513,6 @@
     dialog->DispatchEvent(*Event::CreateCancelable(event_type_names::kCancel));
 }
 
-bool KeyboardEventManager::DefaultSpatNavBackEventHandler(
-    KeyboardEvent* event) {
-  if (RuntimeEnabledFeatures::FallbackCursorModeEnabled()) {
-    bool handled = frame_->LocalFrameRoot()
-                       .GetEventHandler()
-                       .HandleFallbackCursorModeBackEvent();
-    if (handled) {
-      event->SetDefaultHandled();
-      return true;
-    }
-  }
-
-  if (IsSpatialNavigationEnabled(frame_) &&
-      !frame_->GetDocument()->InDesignMode()) {
-    Page* page = frame_->GetPage();
-    if (!page)
-      return false;
-    bool handled =
-        page->GetSpatialNavigationController().HandleEscapeKeyboardEvent(event);
-    if (handled) {
-      event->SetDefaultHandled();
-      return true;
-    }
-  }
-
-  return false;
-}
-
 void KeyboardEventManager::DefaultEnterEventHandler(KeyboardEvent* event) {
   Page* page = frame_->GetPage();
   if (!page)
diff --git a/third_party/blink/renderer/core/input/keyboard_event_manager.h b/third_party/blink/renderer/core/input/keyboard_event_manager.h
index c1d28376..7ffe289 100644
--- a/third_party/blink/renderer/core/input/keyboard_event_manager.h
+++ b/third_party/blink/renderer/core/input/keyboard_event_manager.h
@@ -57,7 +57,6 @@
   void DefaultEnterEventHandler(KeyboardEvent*);
   void DefaultImeSubmitHandler(KeyboardEvent*);
   void DefaultArrowEventHandler(KeyboardEvent*, Node*);
-  bool DefaultSpatNavBackEventHandler(KeyboardEvent*);
 
   const Member<LocalFrame> frame_;
 
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
index d97b6a0..94d7026 100644
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -1649,6 +1649,9 @@
     document->SetDeferredCompositorCommitIsAllowed(false);
   }
 
+  if (RuntimeEnabledFeatures::ForceLoadAtTopEnabled(document))
+    CountUse(WebFeature::kForceLoadAtTop);
+
   // Log if the document was blocked by CSP checks now that the new Document has
   // been created and console messages will be properly displayed.
   if (was_blocked_by_csp_) {
diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h
index 90465ec..8ebb995 100644
--- a/third_party/blink/renderer/core/loader/empty_clients.h
+++ b/third_party/blink/renderer/core/loader/empty_clients.h
@@ -210,13 +210,7 @@
   void RegisterPopupOpeningObserver(PopupOpeningObserver*) override {}
   void UnregisterPopupOpeningObserver(PopupOpeningObserver*) override {}
   void NotifyPopupOpeningObservers() const override {}
-  void FallbackCursorModeLockCursor(LocalFrame* frame,
-                                    bool left,
-                                    bool right,
-                                    bool up,
-                                    bool down) override {}
-  void FallbackCursorModeSetCursorVisibility(LocalFrame* frame,
-                                             bool visible) override {}
+
   void RequestBeginMainFrameNotExpected(LocalFrame& frame,
                                         bool request) override {}
   int GetLayerTreeId(LocalFrame& frame) override { return 0; }
diff --git a/third_party/blink/renderer/core/loader/frame_loader.cc b/third_party/blink/renderer/core/loader/frame_loader.cc
index d9144840..48b2fa3 100644
--- a/third_party/blink/renderer/core/loader/frame_loader.cc
+++ b/third_party/blink/renderer/core/loader/frame_loader.cc
@@ -1181,7 +1181,8 @@
 }
 
 void FrameLoader::RestoreScrollPositionAndViewState() {
-  if (!frame_->GetPage() || !GetDocumentLoader() ||
+  if (RuntimeEnabledFeatures::ForceLoadAtTopEnabled(frame_->GetDocument()) ||
+      !frame_->GetPage() || !GetDocumentLoader() ||
       !GetDocumentLoader()->GetHistoryItem() ||
       !GetDocumentLoader()->GetHistoryItem()->GetViewState() ||
       !GetDocumentLoader()->NavigationScrollAllowed()) {
@@ -1309,6 +1310,7 @@
   // restoration type is manual, then we should not override it unless this
   // is a same document reload.
   bool should_scroll_to_fragment =
+      !RuntimeEnabledFeatures::ForceLoadAtTopEnabled(frame_->GetDocument()) &&
       GetDocumentLoader()->NavigationScrollAllowed() &&
       ((load_start_type == kNavigationWithinSameDocument &&
         !IsBackForwardLoadType(frame_load_type)) ||
diff --git a/third_party/blink/renderer/core/page/chrome_client.h b/third_party/blink/renderer/core/page/chrome_client.h
index e027493..a3dd27d0 100644
--- a/third_party/blink/renderer/core/page/chrome_client.h
+++ b/third_party/blink/renderer/core/page/chrome_client.h
@@ -484,15 +484,6 @@
       WTF::CrossThreadOnceFunction<void(WebSwapResult, base::TimeTicks)>;
   virtual void NotifySwapTime(LocalFrame& frame, ReportTimeCallback callback) {}
 
-  virtual void FallbackCursorModeLockCursor(LocalFrame* frame,
-                                            bool left,
-                                            bool right,
-                                            bool up,
-                                            bool down) = 0;
-
-  virtual void FallbackCursorModeSetCursorVisibility(LocalFrame* frame,
-                                                     bool visible) = 0;
-
   // Enable or disable BeginMainFrameNotExpected signals from the compositor of
   // the local root of |frame|. These signals would be consumed by the blink
   // scheduler.
diff --git a/third_party/blink/renderer/core/page/chrome_client_impl.cc b/third_party/blink/renderer/core/page/chrome_client_impl.cc
index cf28300c..4e27cca6 100644
--- a/third_party/blink/renderer/core/page/chrome_client_impl.cc
+++ b/third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -915,27 +915,6 @@
       base::NullCallback(), ConvertToBaseOnceCallback(std::move(callback)));
 }
 
-void ChromeClientImpl::FallbackCursorModeLockCursor(LocalFrame* frame,
-                                                    bool left,
-                                                    bool right,
-                                                    bool up,
-                                                    bool down) {
-  FrameWidget* widget = frame->GetWidgetForLocalRoot();
-  if (!widget)
-    return;
-  if (WebWidgetClient* client = widget->Client())
-    client->FallbackCursorModeLockCursor(left, right, up, down);
-}
-
-void ChromeClientImpl::FallbackCursorModeSetCursorVisibility(LocalFrame* frame,
-                                                             bool visible) {
-  FrameWidget* widget = frame->GetWidgetForLocalRoot();
-  if (!widget)
-    return;
-  if (WebWidgetClient* client = widget->Client())
-    client->FallbackCursorModeSetCursorVisibility(visible);
-}
-
 void ChromeClientImpl::RequestBeginMainFrameNotExpected(LocalFrame& frame,
                                                         bool request) {
   frame.GetWidgetForLocalRoot()->RequestBeginMainFrameNotExpected(request);
diff --git a/third_party/blink/renderer/core/page/chrome_client_impl.h b/third_party/blink/renderer/core/page/chrome_client_impl.h
index ec816f10..3d616600 100644
--- a/third_party/blink/renderer/core/page/chrome_client_impl.h
+++ b/third_party/blink/renderer/core/page/chrome_client_impl.h
@@ -270,15 +270,6 @@
 
   void NotifySwapTime(LocalFrame& frame, ReportTimeCallback callback) override;
 
-  void FallbackCursorModeLockCursor(LocalFrame* frame,
-                                    bool left,
-                                    bool right,
-                                    bool up,
-                                    bool down) override;
-
-  void FallbackCursorModeSetCursorVisibility(LocalFrame* frame,
-                                             bool visible) override;
-
   void RequestBeginMainFrameNotExpected(LocalFrame& frame,
                                         bool request) override;
 
diff --git a/third_party/blink/renderer/core/paint/html_canvas_painter.cc b/third_party/blink/renderer/core/paint/html_canvas_painter.cc
index 1658fc2..63a0cd0 100644
--- a/third_party/blink/renderer/core/paint/html_canvas_painter.cc
+++ b/third_party/blink/renderer/core/paint/html_canvas_painter.cc
@@ -37,8 +37,7 @@
   paint_rect.Move(paint_offset);
 
   auto* canvas = To<HTMLCanvasElement>(layout_html_canvas_.GetNode());
-  if (canvas->IsOffscreenCanvasRegistered())
-    canvas->UpdateOffscreenCanvasFilterQuality(canvas->FilterQuality());
+  canvas->UpdateFilterQuality();
 
   if (RuntimeEnabledFeatures::CompositeAfterPaintEnabled()) {
     if (auto* layer = canvas->ContentsCcLayer()) {
diff --git a/third_party/blink/renderer/core/scroll/scrollbar_theme.cc b/third_party/blink/renderer/core/scroll/scrollbar_theme.cc
index 2f8f6dc..efb2ace 100644
--- a/third_party/blink/renderer/core/scroll/scrollbar_theme.cc
+++ b/third_party/blink/renderer/core/scroll/scrollbar_theme.cc
@@ -191,7 +191,7 @@
       return 0;
     float pos = std::max(0.0f, scroll_position) *
                 (TrackLength(scrollbar) - ThumbLength(scrollbar)) / size;
-    return (pos < 1 && pos > 0) ? 1 : pos;
+    return (pos < 1 && pos > 0) ? 1 : base::saturated_cast<int>(pos);
   }
   return 0;
 }
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.cc b/third_party/blink/renderer/modules/accessibility/ax_object.cc
index b728d93..d53b5d4 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_object.cc
@@ -1346,15 +1346,17 @@
   if (IsDetached())
     return false;
 
+  // Objects within a portal are not focusable.
+  // Note that they are ignored but can be included in the tree.
+  bool inside_portal = GetDocument() && GetDocument()->GetPage() &&
+                       GetDocument()->GetPage()->InsidePortal();
+  if (inside_portal)
+    return false;
+
   // Focusable: web area -- this is the only focusable non-element. Web areas
   // inside portals are not focusable though (portal contents cannot get focus).
-  // The portal check is only necessary for web areas, as all other objects
-  // within a portal are ignored.
-  if (IsWebArea()) {
-    bool inside_portal = GetDocument() && GetDocument()->GetPage() &&
-                         GetDocument()->GetPage()->InsidePortal();
-    return !inside_portal;
-  }
+  if (IsWebArea())
+    return true;
 
   // NOT focusable: objects with no DOM node, e.g. extra layout blocks inserted
   // as filler, or objects where the node is not an element, such as a text
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
index 7c3cd29..9e58e740 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
@@ -96,12 +96,12 @@
 // both documents.
 // clang-format off
 #if DCHECK_IS_ON()
-#define SCOPED_DISALLOW_LIFECYCLE_TRANSITION(doc)                           \
-  DocumentLifecycle::DisallowTransitionScope scoped1((doc).Lifecycle());     \
+#define SCOPED_DISALLOW_LIFECYCLE_TRANSITION(document)                        \
+  DocumentLifecycle::DisallowTransitionScope scoped1((document).Lifecycle()); \
   DocumentLifecycle::DisallowTransitionScope scoped2(document_->Lifecycle())
 #else
-#define SCOPED_DISALLOW_LIFECYCLE_TRANSITION(doc)
-#endif
+#define SCOPED_DISALLOW_LIFECYCLE_TRANSITION(document)
+#endif  // DCHECK_IS_ON()
 // clang-format on
 
 namespace blink {
@@ -1162,7 +1162,7 @@
   }
 
   SCOPED_DISALLOW_LIFECYCLE_TRANSITION(*obj->GetDocument());
-#endif
+#endif  // DCHECK_IS_ON()
 
   PostPlatformNotification(obj, event_type, event_from);
 
@@ -1739,7 +1739,7 @@
   Document& focused_doc =
       new_focused_element ? new_focused_element->GetDocument() : *document_;
   SCOPED_DISALLOW_LIFECYCLE_TRANSITION(focused_doc);
-#endif
+#endif  // DCHECK_IS_ON()
 
   RemoveValidationMessageObject();
 
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
index 97b6c8d..f189b875 100644
--- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
@@ -397,6 +397,13 @@
     const CookieStoreGetOptions* options,
     DoReadBackendResultConverter backend_result_converter,
     ExceptionState& exception_state) {
+  ExecutionContext* context = ExecutionContext::From(script_state);
+  if (!context->GetSecurityOrigin()->CanAccessCookies()) {
+    exception_state.ThrowSecurityError(
+        "Access to the CookieStore API is denied in this context.");
+    return ScriptPromise();
+  }
+
   network::mojom::blink::CookieManagerGetOptionsPtr backend_options =
       ToBackendOptions(options, exception_state);
   KURL cookie_url = CookieUrlForRead(options, default_cookie_url_, script_state,
@@ -462,6 +469,13 @@
 ScriptPromise CookieStore::DoWrite(ScriptState* script_state,
                                    const CookieStoreSetExtraOptions* options,
                                    ExceptionState& exception_state) {
+  ExecutionContext* context = ExecutionContext::From(script_state);
+  if (!context->GetSecurityOrigin()->CanAccessCookies()) {
+    exception_state.ThrowSecurityError(
+        "Access to the CookieStore API is denied in this context.");
+    return ScriptPromise();
+  }
+
   base::Optional<CanonicalCookie> canonical_cookie =
       ToCanonicalCookie(default_cookie_url_, options, exception_state);
   if (!canonical_cookie) {
diff --git a/third_party/blink/renderer/modules/xr/xr_anchor.cc b/third_party/blink/renderer/modules/xr/xr_anchor.cc
index 0177013..9f8d1478 100644
--- a/third_party/blink/renderer/modules/xr/xr_anchor.cc
+++ b/third_party/blink/renderer/modules/xr/xr_anchor.cc
@@ -14,18 +14,20 @@
                    XRSession* session,
                    const device::mojom::blink::XRAnchorData& anchor_data)
     : id_(id), session_(session) {
-  // No need for else - if pose is not present, the default-constructed unique
-  // ptr is fine.
-  if (anchor_data.pose) {
-    SetMojoFromAnchor(
-        mojo::ConvertTo<blink::TransformationMatrix>(anchor_data.pose));
+  // No need for else - if mojo_from_anchor is not present, the
+  // default-constructed unique ptr is fine. It would signify that the anchor
+  // exists and is tracked by the underlying system, but its current location is
+  // unknown.
+  if (anchor_data.mojo_from_anchor) {
+    SetMojoFromAnchor(mojo::ConvertTo<blink::TransformationMatrix>(
+        anchor_data.mojo_from_anchor));
   }
 }
 
 void XRAnchor::Update(const device::mojom::blink::XRAnchorData& anchor_data) {
-  if (anchor_data.pose) {
-    SetMojoFromAnchor(
-        mojo::ConvertTo<blink::TransformationMatrix>(anchor_data.pose));
+  if (anchor_data.mojo_from_anchor) {
+    SetMojoFromAnchor(mojo::ConvertTo<blink::TransformationMatrix>(
+        anchor_data.mojo_from_anchor));
   } else {
     mojo_from_anchor_ = nullptr;
   }
@@ -36,8 +38,6 @@
 }
 
 XRSpace* XRAnchor::anchorSpace() const {
-  DCHECK(mojo_from_anchor_);
-
   if (!anchor_space_) {
     anchor_space_ =
         MakeGarbageCollected<XRObjectSpace<XRAnchor>>(session_, this);
diff --git a/third_party/blink/renderer/modules/xr/xr_anchor.h b/third_party/blink/renderer/modules/xr/xr_anchor.h
index 6ffbc61..0f957b7 100644
--- a/third_party/blink/renderer/modules/xr/xr_anchor.h
+++ b/third_party/blink/renderer/modules/xr/xr_anchor.h
@@ -44,12 +44,8 @@
 
   Member<XRSession> session_;
 
-  // |mojo_from_anchor_| will be non-null in an XRAnchor after the anchor was
-  // updated for the first time - this *must* happen in the same frame in which
-  // the anchor was created for the anchor to be fully usable. It is currently
-  // ensured by XRSession - anchors that got created prior to receiving the
-  // result from mojo call to GetFrameData are not returned to the application
-  // until their poses are known.
+  // Anchor's pose in device (mojo) space. Nullptr if the pose of the anchor is
+  // unknown in the current frame.
   std::unique_ptr<TransformationMatrix> mojo_from_anchor_;
 
   // Cached anchor space - it will be created by `anchorSpace()` if it's not
diff --git a/third_party/blink/renderer/modules/xr/xr_object_space.h b/third_party/blink/renderer/modules/xr/xr_object_space.h
index ed71e679..2c744367 100644
--- a/third_party/blink/renderer/modules/xr/xr_object_space.h
+++ b/third_party/blink/renderer/modules/xr/xr_object_space.h
@@ -13,8 +13,14 @@
 class XRSession;
 
 // Helper class that returns an XRSpace that tracks the position of object of
-// type T (for example XRPlane, XRAnchor). The type T has to have a poseMatrix()
-// method.
+// type T (for example XRPlane, XRAnchor). The type T has to have a
+// MojoFromObject() method, returning a base::Optional<TransformationMatrix>.
+//
+// If the object's MojoFromObject() method returns a base::nullopt, it means
+// that the object is not localizable in the current frame (i.e. its pose is
+// unknown) - the `frame.getPose(objectSpace, otherSpace)` will return null.
+// That does not necessarily mean that object tracking is lost - it may be that
+// the object's location will become known in subsequent frames.
 template <typename T>
 class XRObjectSpace : public XRSpace {
  public:
diff --git a/third_party/blink/renderer/modules/xr/xr_plane.cc b/third_party/blink/renderer/modules/xr/xr_plane.cc
index 1d3d9f1..ea791b531 100644
--- a/third_party/blink/renderer/modules/xr/xr_plane.cc
+++ b/third_party/blink/renderer/modules/xr/xr_plane.cc
@@ -24,11 +24,13 @@
               mojo::ConvertTo<HeapVector<Member<DOMPointReadOnly>>>(
                   plane_data.polygon),
               timestamp) {
-  // No need for else - if pose is not present, the default-constructed unique
-  // ptr is fine.
-  if (plane_data.pose) {
-    SetMojoFromPlane(
-        mojo::ConvertTo<blink::TransformationMatrix>(plane_data.pose));
+  // No need for else - if mojo_from_plane is not present, the
+  // default-constructed unique ptr is fine. It would signify that the plane
+  // exists and is tracked by the underlying system, but its current location is
+  // unknown.
+  if (plane_data.mojo_from_plane) {
+    SetMojoFromPlane(mojo::ConvertTo<blink::TransformationMatrix>(
+        plane_data.mojo_from_plane));
   }
 }
 
@@ -125,9 +127,9 @@
 
   orientation_ = mojo::ConvertTo<base::Optional<blink::XRPlane::Orientation>>(
       plane_data.orientation);
-  if (plane_data.pose) {
-    SetMojoFromPlane(
-        mojo::ConvertTo<blink::TransformationMatrix>(plane_data.pose));
+  if (plane_data.mojo_from_plane) {
+    SetMojoFromPlane(mojo::ConvertTo<blink::TransformationMatrix>(
+        plane_data.mojo_from_plane));
   } else {
     mojo_from_plane_ = nullptr;
   }
diff --git a/third_party/blink/renderer/modules/xr/xr_plane.h b/third_party/blink/renderer/modules/xr/xr_plane.h
index b4e9b87..49159af3 100644
--- a/third_party/blink/renderer/modules/xr/xr_plane.h
+++ b/third_party/blink/renderer/modules/xr/xr_plane.h
@@ -68,7 +68,8 @@
   HeapVector<Member<DOMPointReadOnly>> polygon_;
   base::Optional<Orientation> orientation_;
 
-  // Plane center's pose in device (mojo) space.
+  // Plane center's pose in device (mojo) space.  Nullptr if the pose of the
+  // anchor is unknown in the current frame.
   std::unique_ptr<TransformationMatrix> mojo_from_plane_;
 
   Member<XRSession> session_;
diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
index 39af902..a95ec42 100644
--- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
+++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
@@ -195,10 +195,6 @@
   RuntimeEnabledFeatures::SetDecodeLossyWebPImagesToYUVEnabled(enable);
 }
 
-void WebRuntimeFeatures::EnableFallbackCursorMode(bool enable) {
-  RuntimeEnabledFeatures::SetFallbackCursorModeEnabled(enable);
-}
-
 void WebRuntimeFeatures::EnableFeaturePolicyForSandbox(bool enable) {
   RuntimeEnabledFeatures::SetFeaturePolicyForSandboxEnabled(enable);
 }
diff --git a/third_party/blink/renderer/platform/graphics/gpu/webgpu_swap_buffer_provider.cc b/third_party/blink/renderer/platform/graphics/gpu/webgpu_swap_buffer_provider.cc
index 98dc0c8..981331e2 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/webgpu_swap_buffer_provider.cc
+++ b/third_party/blink/renderer/platform/graphics/gpu/webgpu_swap_buffer_provider.cc
@@ -139,7 +139,7 @@
   client_->OnTextureTransferred();
 
   // Make Dawn relinquish access to the texture so it can be used by the
-  // compositor. This will call dawn::Texture::Destroy so that further accesses
+  // compositor. This will call wgpu::Texture::Destroy so that further accesses
   // to the texture are errors.
   gpu::webgpu::WebGPUInterface* webgpu = dawn_control_client_->GetInterface();
   DCHECK_NE(wire_texture_id_, 0u);
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 5b6789f..7dcd1a1 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -711,9 +711,6 @@
       status: "experimental",
     },
     {
-      name: "FallbackCursorMode",
-    },
-    {
       name: "FeaturePolicyForClientHints",
       status: "experimental",
     },
@@ -780,6 +777,10 @@
       name:"ForceEagerMeasureMemory",
     },
     {
+      name: "ForceLoadAtTop",
+      origin_trial_feature_name: "ForceLoadAtTop",
+    },
+    {
       name: "ForceOverlayFullscreenVideo",
     },
     {
@@ -1447,7 +1448,7 @@
     },
     {
       name: "ResizeObserverUpdates",
-      status: "test",
+      status: "stable",
     },
     {
       name: "RestrictAppCacheToSecureContexts",
diff --git a/third_party/blink/web_tests/FlagExpectations/composite-after-paint b/third_party/blink/web_tests/FlagExpectations/composite-after-paint
index 5b82b7c..129637dd 100644
--- a/third_party/blink/web_tests/FlagExpectations/composite-after-paint
+++ b/third_party/blink/web_tests/FlagExpectations/composite-after-paint
@@ -9,7 +9,6 @@
 
 virtual/composite-after-paint/* [ Skip ]
 
-virtual/gpu/fast/canvas/* [ Skip ]
 virtual/layout_ng_block_frag/* [ Skip ]
 virtual/layout_ng_fieldset/* [ Skip ]
 virtual/layout_ng_flex_box/* [ Skip ]
@@ -56,12 +55,10 @@
 # A fieldset paints its background twice.
 external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-overflow.html [ Crash ]
 
-#image-rendering: pixelated doesn't work on canvas.
-fast/webgl/pixelated.html [ Failure ]
-
 compositing/masks/broken-mask.html [ Failure ]
 compositing/masks/mask-with-removed-filters.html [ Failure ]
 external/wpt/css/css-transforms/transform3d-backface-visibility-006.html [ Failure ]
+external/wpt/css/filter-effects/effect-reference-feimage-002.html [ Failure ]
 external/wpt/portals/portals-rendering.html [ Failure ]
 fullscreen/compositor-touch-hit-rects-fullscreen-video-controls.html [ Failure ]
 
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index b8896fbc..22b24d63 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -274,8 +274,8 @@
 
 # These appear to be actually incorrect at device_scale_factor 2.0:
 crbug.com/968791 crbug.com/1051044 virtual/scalefactor200/css3/filters/effect-reference-image-lazy-attach.html [ Failure ]
-crbug.com/968791 crbug.com/1051044 virtual/scalefactor200/external/wpt/css/filter-effects/effect-reference-feimage.html [ Failure ]
-crbug.com/968791 crbug.com/1051044 virtual/scalefactor200/css3/filters/effect-reference-image-hw.html [ Failure ]
+crbug.com/968791 crbug.com/1051044 virtual/scalefactor200/external/wpt/css/filter-effects/effect-reference-feimage-001.html [ Failure ]
+crbug.com/968791 crbug.com/1051044 virtual/scalefactor200/external/wpt/css/filter-effects/effect-reference-feimage-002.html [ Failure ]
 crbug.com/968791 virtual/scalefactor200/external/wpt/css/filter-effects/filters-test-brightness-003.html [ Failure ]
 
 # Copying these from elsewhere in TestExpectations (for non-scalefactor200 virtual suite)
@@ -2342,7 +2342,7 @@
 
 crbug.com/377696 printing/setPrinting.html [ Failure ]
 
-crbug.com/1051044 external/wpt/css/filter-effects/effect-reference-feimage.html [ Pass Failure ]
+crbug.com/1051044 external/wpt/css/filter-effects/effect-reference-feimage-001.html [ Pass Failure ]
 crbug.com/1051044 css3/filters/effect-reference-image-lazy-attach.html [ Pass Failure ]
 
 crbug.com/524160 [ Debug ] http/tests/media/media-source/stream_memory_tests/mediasource-appendbuffer-quota-exceeded-default-buffers.html [ Timeout ]
@@ -6423,8 +6423,6 @@
 crbug.com/1064472 http/tests/devtools/elements/elements-tab-stops.js [ Pass Failure ]
 
 # Flaky tests blocking WPT import
-crbug.com/1049607 external/wpt/fetch/api/response/response-error-from-stream.html [ Pass Failure ]
-crbug.com/1049607 virtual/omt-worker-fetch/external/wpt/fetch/api/response/response-error-from-stream.html [ Pass Failure ]
 crbug.com/1049607 [ Linux ] external/wpt/js-self-profiling/idlharness.any.html [ Pass Failure ]
 crbug.com/1049607 [ Linux ] external/wpt/js-self-profiling/idlharness.any.worker.html [ Pass Failure ]
 crbug.com/1049607 [ Win ] external/wpt/html/semantics/selectors/pseudo-classes/link.html [ Pass Failure ]
diff --git a/third_party/blink/web_tests/css3/filters/effect-reference-image-hw-expected.html b/third_party/blink/web_tests/css3/filters/effect-reference-image-hw-expected.html
deleted file mode 100644
index a339269..0000000
--- a/third_party/blink/web_tests/css3/filters/effect-reference-image-hw-expected.html
+++ /dev/null
@@ -1 +0,0 @@
-<img src="resources/reference.png" style="transform: translateZ(0);">
diff --git a/third_party/blink/web_tests/css3/filters/effect-reference-image-hw.html b/third_party/blink/web_tests/css3/filters/effect-reference-image-hw.html
deleted file mode 100644
index f938aa6..0000000
--- a/third_party/blink/web_tests/css3/filters/effect-reference-image-hw.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<style>
-  #filtered {
-    width: 160px;
-    height: 90px;
-    filter: url(#imagereplace);
-    transform: translateZ(0);
-  }
-</style>
-<div id="filtered"></div>
-<svg xmlns="http://www.w3.org/3000/svg" width="0" height="0" xmlns:xlink="http://www.w3.org/1999/xlink">
-  <filter id="imagereplace" color-interpolation-filters="sRGB" x="0%" y="0%" width="100%" height="100%">
-     <feimage xlink:href="resources/reference.png"/>
-  </filter>
-</svg>
diff --git a/third_party/blink/web_tests/css3/flexbox/stretch-simplified-layout.html b/third_party/blink/web_tests/css3/flexbox/stretch-simplified-layout.html
deleted file mode 100644
index 64f95c3..0000000
--- a/third_party/blink/web_tests/css3/flexbox/stretch-simplified-layout.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<link href="resources/flexbox.css" rel="stylesheet">
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
-<script src="../../resources/check-layout-th.js"></script>
-<script>
-window.onload = function() {
-    document.body.offsetHeight;
-
-    document.getElementById('to-hide').style.display = "none";
-    checkLayout(".flexbox");
-};
-</script>
-</head>
-<body>
-<div id=log></div>
-<div class="flexbox" style="height: 100px;" data-expected-height="100">
-    <div style="width: 100%; overflow: auto; padding-bottom: 100px; background-color: red;" data-expected-height="100">
-        <div style="position: relative; height: 100px; background-color: green;" data-expected-height="100">
-            <div id="to-hide" style="position: absolute;" data-expected-height="0"></div>
-        </div>
-    </div>
-</div>
-</body>
-</html>
diff --git a/third_party/blink/web_tests/external/wpt/content-index/content-index.https.window.js b/third_party/blink/web_tests/external/wpt/content-index/content-index.https.window.js
new file mode 100644
index 0000000..082ebc3b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/content-index/content-index.https.window.js
@@ -0,0 +1,88 @@
+// META: script=/service-workers/service-worker/resources/test-helpers.sub.js
+// META: script=resources.js
+'use strict';
+
+contentIndexTest(async (t, index) => {
+  // Exposure of the interface and method.
+  assert_own_property(window, 'ContentIndex');
+  assert_own_property(ContentIndex.prototype, 'add');
+
+  assert_idl_attribute(index, 'add');
+  assert_idl_attribute(index, 'delete');
+  assert_idl_attribute(index, 'getAll');
+
+}, 'The Content Index API is exposed');
+
+contentIndexTest(async (t, index) => {
+  await expectTypeError(
+      index.add(createDescription({category: 'fake-category'})));
+
+  await expectTypeError(
+      index.add(createDescription({iconUrl: 'file://some-local-file.png'})));
+  await expectTypeError(index.add(createDescription({iconUrl: '/non-existent-icon.png'})));
+  await expectTypeError(index.add(createDescription({iconUrl: '/images/broken.png'})));
+
+  await expectTypeError(index.add(createDescription({launchUrl: 'https://other-domain.com/'})));
+  await expectTypeError(index.add(createDescription({launchUrl: '/different-scope'})));
+
+  await index.add(createDescription({}));
+
+}, 'index.add parameters are validated.');
+
+contentIndexTest(async (t, index) => {
+  const description = createDescription({});
+
+  // Initially there are no descriptions.
+  assert_array_equals(await index.getAll(), []);
+
+  await index.add(description);
+
+  const descriptions = await index.getAll();
+  assert_equals(descriptions.length, 1);
+
+  assert_object_equals(descriptions[0], description);
+
+}, 'index.getAll returns the same objects provided.');
+
+contentIndexTest(async (t, index) => {
+  const description1 = createDescription({title: 'title1'});
+  const description2 = createDescription({title: 'title2'});
+
+  await index.add(description1);
+  await index.add(description2);
+
+  // There should be one description.
+  const descriptions = await index.getAll();
+  assert_equals(descriptions.length, 1);
+
+  assert_object_equals(descriptions[0], description2);
+
+}, 'index.add with same ID overwrites existing entry.');
+
+contentIndexTest(async (t, index) => {
+  const description1 = createDescription({id: 'id1'});
+  const description2 = createDescription({id: 'id2'});
+
+  await index.add(description1);
+  await index.add(description2);
+
+  // There should be two descriptions.
+  assert_equals((await index.getAll()).length, 2);
+
+  await index.delete('id1');
+
+  // There should be one description.
+  const descriptions = await index.getAll();
+  assert_equals(descriptions.length, 1);
+
+  assert_object_equals(descriptions[0], description2);
+
+}, 'index.delete removes entry.');
+
+contentIndexTest(async (t, index) => {
+  const descriptions = await index.getAll();
+  assert_equals(descriptions.length, 0);
+
+  await index.delete('id');
+
+}, 'index.delete works on invalid ID.');
diff --git a/third_party/blink/web_tests/external/wpt/content-index/resources.js b/third_party/blink/web_tests/external/wpt/content-index/resources.js
new file mode 100644
index 0000000..1a758ab
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/content-index/resources.js
@@ -0,0 +1,40 @@
+'use strict';
+
+const swUrl = 'resources/sw.js';
+const scope = 'resources/';
+
+async function expectTypeError(promise) {
+  try {
+    await promise;
+    assert_unreached('Promise should have rejected');
+  } catch (e) {
+    assert_equals(e.name, 'TypeError');
+  }
+}
+
+function createDescription({id = 'id', title = 'title', description = 'description',
+                            category = 'homepage', iconUrl = '/images/green-256x256.png',
+                            launchUrl = scope, includeIcons = true}) {
+  return {id, title, description, category, icons: includeIcons ? [{src: iconUrl}] : [], launchUrl};
+}
+
+// Creates a Promise test for |func| given the |description|. The |func| will be
+// executed with the `index` object of an activated Service Worker Registration.
+function contentIndexTest(func, description) {
+  promise_test(async t => {
+    const registration = await service_worker_unregister_and_register(t, swUrl, scope);
+    await wait_for_state(t, registration.installing, 'activated');
+    return func(t, registration.index);
+  }, description);
+}
+
+async function waitForMessageFromServiceWorker() {
+  return await new Promise(resolve => {
+    const listener = event => {
+      navigator.serviceWorker.removeEventListener('message', listener);
+      resolve(event.data);
+    };
+
+    navigator.serviceWorker.addEventListener('message', listener);
+  });
+}
diff --git a/third_party/blink/web_tests/external/wpt/content-index/resources/sw.js b/third_party/blink/web_tests/external/wpt/content-index/resources/sw.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/content-index/resources/sw.js
diff --git a/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_get_arguments.tentative.https.any.js b/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_get_arguments.tentative.https.any.js
index 79fc0d37..34f7dbc 100644
--- a/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_get_arguments.tentative.https.any.js
+++ b/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_get_arguments.tentative.https.any.js
@@ -139,11 +139,6 @@
 }, 'cookieStore.get with relative url in options');
 
 promise_test(async testCase => {
-  await cookieStore.set('cookie-name', 'cookie-value');
-  testCase.add_cleanup(async () => {
-    await cookieStore.delete('cookie-name');
-  });
-
   const invalid_url =
       `${self.location.protocol}//${self.location.host}/different/path`;
   await promise_rejects_js(testCase, TypeError, cookieStore.get(
@@ -151,11 +146,6 @@
 }, 'cookieStore.get with invalid url path in options');
 
 promise_test(async testCase => {
-  await cookieStore.set('cookie-name', 'cookie-value');
-  testCase.add_cleanup(async () => {
-    await cookieStore.delete('cookie-name');
-  });
-
   const invalid_url =
       `${self.location.protocol}//www.example.com${self.location.pathname}`;
   await promise_rejects_js(testCase, TypeError, cookieStore.get(
diff --git a/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_opaque_origin.tentative.https.html b/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_opaque_origin.tentative.https.html
new file mode 100644
index 0000000..bbf0dbd
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/cookie-store/cookieStore_opaque_origin.tentative.https.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Cookie Store API: Opaque origins for cookieStore</title>
+<link rel=help href="https://wicg.github.io/cookie-store/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+const apiCalls = {
+  'get': 'cookieStore.get()',
+  'getAll': 'cookieStore.getAll()',
+  'set': 'cookieStore.set("cookie-name", "cookie-value")',
+  'delete': 'cookieStore.delete("cookie-name")'
+};
+
+const script = `
+<script>
+  "use strict";
+  window.onmessage = async () => {
+    try {
+      await %s;
+      window.parent.postMessage({result: "no exception"}, "*");
+    } catch (ex) {
+      window.parent.postMessage({result: ex.name}, "*");
+    };
+  };
+<\/script>
+`;
+
+function load_iframe(apiCall, sandbox) {
+  return new Promise(resolve => {
+    const iframe = document.createElement('iframe');
+    iframe.onload = () => { resolve(iframe); };
+    if (sandbox)
+      iframe.sandbox = sandbox;
+    iframe.srcdoc = script.replace("%s", apiCalls[apiCall]);
+    iframe.style.display = 'none';
+    document.documentElement.appendChild(iframe);
+  });
+}
+
+function wait_for_message(iframe) {
+  return new Promise(resolve => {
+    self.addEventListener('message', function listener(e) {
+      if (e.source === iframe.contentWindow) {
+        resolve(e.data);
+        self.removeEventListener('message', listener);
+      }
+    });
+  });
+}
+
+promise_test(async t => {
+  for (apiCall in apiCalls) {
+    const iframe = await load_iframe(apiCall);
+    iframe.contentWindow.postMessage({}, '*');
+    const message = await wait_for_message(iframe);
+    assert_equals(message.result, 'no exception',
+      'cookieStore ${apiCall} should not throw');
+  }
+}, 'cookieStore in non-sandboxed iframe should not throw');
+
+promise_test(async t => {
+  for (apiCall in apiCalls) {
+    const iframe = await load_iframe(apiCall, 'allow-scripts');
+    iframe.contentWindow.postMessage({}, '*');
+    const message = await wait_for_message(iframe);
+    assert_equals(message.result, 'SecurityError',
+      'cookieStore ${apiCall} should throw SecurityError');
+  }
+}, 'cookieStore in sandboxed iframe should throw SecurityError');
+
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/abspos-descendent-001.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/abspos-descendent-001.html
new file mode 100644
index 0000000..1aebb0f3
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/abspos-descendent-001.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>CSS Flexbox: removing abspos descendents</title>
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-containers">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
+<link rel="issue" href="https://bugs.chromium.org/p/chromium/issues/detail?id=167566">
+<meta name="assert" content="This test ensures that flex item's padding doesn't disappear when an abspos descendent is removed.">
+<link href="support/flexbox.css" rel="stylesheet">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<script>
+window.onload = function() {
+    document.body.offsetHeight;
+
+    document.getElementById('to-hide').style.display = "none";
+    checkLayout(".flexbox");
+};
+</script>
+</head>
+<body>
+<div id=log></div>
+<div class="flexbox" style="height: 100px;" data-expected-height="100">
+    <div style="width: 100%; overflow: auto; padding-bottom: 100px; background-color: red;" data-expected-height="100">
+        <div style="position: relative; height: 100px; background-color: green;" data-expected-height="100">
+            <div id="to-hide" style="position: absolute;" data-expected-height="0"></div>
+        </div>
+    </div>
+</div>
+</body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/effect-reference-feimage.html b/third_party/blink/web_tests/external/wpt/css/filter-effects/effect-reference-feimage-001.html
similarity index 89%
rename from third_party/blink/web_tests/external/wpt/css/filter-effects/effect-reference-feimage.html
rename to third_party/blink/web_tests/external/wpt/css/filter-effects/effect-reference-feimage-001.html
index a1c3744..3a8fb36 100644
--- a/third_party/blink/web_tests/external/wpt/css/filter-effects/effect-reference-feimage.html
+++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/effect-reference-feimage-001.html
@@ -2,7 +2,7 @@
 <title>CSS Filters: feImage and CSS reference filters.</title>
 <link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#feImageElement">
 <link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#FilterProperty">
-<link rel="match" href="reference/effect-reference-feimage-ref.html">
+<link rel="match" href="reference/effect-reference-feimage-001-ref.html">
 <meta name="assert" content="This test ensures that CSS reference filters supports feImage."/>
 <style>
   #filtered {
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/effect-reference-feimage.html b/third_party/blink/web_tests/external/wpt/css/filter-effects/effect-reference-feimage-002.html
similarity index 66%
copy from third_party/blink/web_tests/external/wpt/css/filter-effects/effect-reference-feimage.html
copy to third_party/blink/web_tests/external/wpt/css/filter-effects/effect-reference-feimage-002.html
index a1c3744..c10be0f1 100644
--- a/third_party/blink/web_tests/external/wpt/css/filter-effects/effect-reference-feimage.html
+++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/effect-reference-feimage-002.html
@@ -2,18 +2,19 @@
 <title>CSS Filters: feImage and CSS reference filters.</title>
 <link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#feImageElement">
 <link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#FilterProperty">
-<link rel="match" href="reference/effect-reference-feimage-ref.html">
-<meta name="assert" content="This test ensures that CSS reference filters supports feImage."/>
+<link rel="match" href="reference/effect-reference-feimage-002-ref.html">
+<meta name="assert" content="This test ensures that CSS reference filters with 'will-change: transform' supports feImage."/>
 <style>
   #filtered {
     width: 160px;
     height: 90px;
     filter: url(#imagereplace);
+    will-change: transform;
   }
 </style>
 <div id="filtered"></div>
 <svg width="0" height="0">
-  <filter id="imagereplace" x="0%" y="0%" width="100%" height="100%">
+  <filter id="imagereplace" color-interpolation-filters="sRGB" x="0%" y="0%" width="100%" height="100%">
      <feimage xlink:href="support/color-palette.png"/>
   </filter>
 </svg>
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/reference/effect-reference-feimage-ref.html b/third_party/blink/web_tests/external/wpt/css/filter-effects/reference/effect-reference-feimage-001-ref.html
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/css/filter-effects/reference/effect-reference-feimage-ref.html
rename to third_party/blink/web_tests/external/wpt/css/filter-effects/reference/effect-reference-feimage-001-ref.html
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/reference/effect-reference-feimage-002-ref.html b/third_party/blink/web_tests/external/wpt/css/filter-effects/reference/effect-reference-feimage-002-ref.html
new file mode 100644
index 0000000..72250a1
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/reference/effect-reference-feimage-002-ref.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<img src="../support/color-palette.png" style="will-change: transform;">
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/response/response-error-from-stream-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/response/response-error-from-stream-expected.txt
index cc50fd28..fd1e6908 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/api/response/response-error-from-stream-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/fetch/api/response/response-error-from-stream-expected.txt
@@ -1,15 +1,15 @@
 This is a testharness.js-based test.
 PASS ReadableStreamDefaultReader Promise receives ReadableStream start() Error
 PASS ReadableStreamDefaultReader Promise receives ReadableStream pull() Error
-FAIL ReadableStream start() Error propagates to Response.arrayBuffer() Promise assert_throws: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" ("TypeError") expected object "custom-test-error" ("custom-test-error")
-FAIL ReadableStream start() Error propagates to Response.blob() Promise assert_throws: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" ("TypeError") expected object "custom-test-error" ("custom-test-error")
-FAIL ReadableStream start() Error propagates to Response.formData() Promise assert_throws: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" ("TypeError") expected object "custom-test-error" ("custom-test-error")
-FAIL ReadableStream start() Error propagates to Response.json() Promise assert_throws: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" ("TypeError") expected object "custom-test-error" ("custom-test-error")
-FAIL ReadableStream start() Error propagates to Response.text() Promise assert_throws: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" ("TypeError") expected object "custom-test-error" ("custom-test-error")
-FAIL ReadableStream pull() Error propagates to Response.arrayBuffer() Promise assert_throws: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" ("TypeError") expected object "custom-test-error" ("custom-test-error")
-FAIL ReadableStream pull() Error propagates to Response.blob() Promise assert_throws: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" ("TypeError") expected object "custom-test-error" ("custom-test-error")
-FAIL ReadableStream pull() Error propagates to Response.formData() Promise assert_throws: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" ("TypeError") expected object "custom-test-error" ("custom-test-error")
-FAIL ReadableStream pull() Error propagates to Response.json() Promise assert_throws: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" ("TypeError") expected object "custom-test-error" ("custom-test-error")
-FAIL ReadableStream pull() Error propagates to Response.text() Promise assert_throws: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" ("TypeError") expected object "custom-test-error" ("custom-test-error")
+FAIL ReadableStream start() Error propagates to Response.arrayBuffer() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" but we expected it to throw object "Error: Start error"
+FAIL ReadableStream start() Error propagates to Response.blob() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" but we expected it to throw object "Error: Start error"
+FAIL ReadableStream start() Error propagates to Response.formData() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" but we expected it to throw object "Error: Start error"
+FAIL ReadableStream start() Error propagates to Response.json() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" but we expected it to throw object "Error: Start error"
+FAIL ReadableStream start() Error propagates to Response.text() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" but we expected it to throw object "Error: Start error"
+FAIL ReadableStream pull() Error propagates to Response.arrayBuffer() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" but we expected it to throw object "Error: Pull error"
+FAIL ReadableStream pull() Error propagates to Response.blob() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" but we expected it to throw object "Error: Pull error"
+FAIL ReadableStream pull() Error propagates to Response.formData() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" but we expected it to throw object "Error: Pull error"
+FAIL ReadableStream pull() Error propagates to Response.json() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" but we expected it to throw object "Error: Pull error"
+FAIL ReadableStream pull() Error propagates to Response.text() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Failed to fetch" but we expected it to throw object "Error: Pull error"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-label-element/clicking-interactive-content.html b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-label-element/clicking-interactive-content.html
new file mode 100644
index 0000000..60a80fa
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-label-element/clicking-interactive-content.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Label event handling when a descendant interactive content is clicked</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<body>
+<label id=label></label>
+<template id=interactive-content>
+  <a href="about:blank" onclick="event.preventDefault()"></a>
+  <audio controls></audio>
+  <button></button>
+  <details></details>
+  <embed>
+  <iframe></iframe>
+  <img usemap="">
+  <input>
+  <label>label</label>
+  <object usemap=""></object>
+  <select></select>
+  <textarea></textarea>
+  <video controls></video>
+
+  <div tabindex=""></div>
+
+  <!-- These are interesting in that even without tabindex, they could become
+  interactive with the addition/removal of an attribute. -->
+  <a tabindex=""></a>
+  <audio tabindex=""></audio>
+  <img tabindex="">
+  <input type=hidden tabindex="">
+  <object tabindex=""></object>
+  <video tabindex=""></video>
+</template>
+
+<script>
+"use strict";
+
+const interactiveContent = document.getElementById("interactive-content");
+const interactiveElements = Array.from(interactiveContent.content.children);
+const label = document.getElementById("label");
+
+for (const srcInteractiveElement of interactiveElements) {
+  test(t => {
+    t.add_cleanup(() => {
+      label.innerHTML = "";
+    });
+
+    const interactiveElement = srcInteractiveElement.cloneNode();
+    label.appendChild(interactiveElement);
+
+    let clicked = 0;
+    interactiveElement.addEventListener("click", () => {
+      clicked++;
+    });
+    interactiveElement.click();
+    assert_equals(clicked, 1, "clicking interactive content");
+
+    clicked = 0;
+    const span = document.createElement("span");
+    interactiveElement.appendChild(span);
+    span.click();
+    assert_equals(clicked, 1, "clicking descendant of interactive content");
+  }, `interactive content ${srcInteractiveElement.outerHTML} as first child of <label>`);
+
+  test(t => {
+    t.add_cleanup(() => {
+      label.innerHTML = "";
+    });
+
+    const interactiveElement = srcInteractiveElement.cloneNode();
+    const div = document.createElement("div");
+    div.appendChild(interactiveElement);
+    label.appendChild(div);
+
+    let clicked = 0;
+    interactiveElement.addEventListener("click", () => {
+      clicked++;
+    });
+    interactiveElement.click();
+    assert_equals(clicked, 1, "clicking nested interactive content");
+
+    clicked = 0;
+    const span = document.createElement("span");
+    interactiveElement.appendChild(span);
+    span.click();
+    assert_equals(clicked, 1, "clicking descendant of nested interactive content");
+  }, `interactive content ${srcInteractiveElement.outerHTML} deeply nested under <label>`);
+
+  test(t => {
+    t.add_cleanup(() => {
+      label.innerHTML = "";
+    });
+
+    const button = document.createElement("button");
+    label.appendChild(button);
+
+    const interactiveElement = srcInteractiveElement.cloneNode();
+    label.appendChild(interactiveElement);
+
+    let buttonClicked = 0;
+    button.addEventListener("click", () => {
+      buttonClicked++;
+    });
+
+    let clicked = 0;
+    interactiveElement.addEventListener("click", () => {
+      clicked++;
+    });
+    interactiveElement.click();
+    assert_equals(clicked, 1, "clicking nested interactive content");
+    assert_equals(buttonClicked, 0, "clicking nested interactive content should not click button");
+
+    clicked = 0;
+    const span = document.createElement("span");
+    interactiveElement.appendChild(span);
+    span.click();
+    assert_equals(clicked, 1, "clicking descendant of nested interactive content");
+    assert_equals(buttonClicked, 0, "clicking descendant of nested interactive content should not click button");
+  }, `interactive content ${srcInteractiveElement.outerHTML} as second child under <label>`);
+}
+
+</script>
+</body>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-label-element/clicking-noninteractive-labelable-content.html b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-label-element/clicking-noninteractive-labelable-content.html
new file mode 100644
index 0000000..5563ef1
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-label-element/clicking-noninteractive-labelable-content.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Label event handling when a descendant labelable but not interactive element is clicked</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<body>
+<label id=label></label>
+<template id=labelable-not-interactive-content>
+  <meter></meter>
+  <output></output>
+  <progress></progress>
+</template>
+
+<script>
+"use strict";
+
+const template = document.getElementById("labelable-not-interactive-content");
+const labelableNotInteractiveElements = Array.from(template.content.children);
+const label = document.getElementById("label");
+
+// This part may be subject to platform-dependent operations in the spec, so we
+// only check for obvious errors. (Clicking once should register at least one
+// click, but less than 30 clicks.) See
+// https://github.com/whatwg/html/issues/5415 for possibly tightening this up.
+function checkClickCount(clicked, description) {
+  assert_greater_than(clicked, 0, description);
+  assert_less_than(clicked, 30, description);
+}
+
+for (const srcElement of labelableNotInteractiveElements) {
+  test(t => {
+    t.add_cleanup(() => {
+      label.innerHTML = "";
+    });
+
+    const element = srcElement.cloneNode();
+    label.appendChild(element);
+
+    let clicked = 0;
+    element.addEventListener("click", () => {
+      clicked++;
+    });
+    element.click();
+    checkClickCount(clicked, "clicking labelable content");
+
+    clicked = 0;
+    const span = document.createElement("span");
+    element.appendChild(span);
+    span.click();
+    checkClickCount(clicked, "clicking descendant of labelable content");
+  }, `labelable element ${srcElement.outerHTML} as first child of <label>`);
+
+  test(t => {
+    t.add_cleanup(() => {
+      label.innerHTML = "";
+    });
+
+    const element = srcElement.cloneNode();
+    const div = document.createElement("div");
+    div.appendChild(element);
+    label.appendChild(div);
+
+    let clicked = 0;
+    element.addEventListener("click", () => {
+      clicked++;
+    });
+    element.click();
+    checkClickCount(clicked, "clicking nested labelable content");
+
+    clicked = 0;
+    const span = document.createElement("span");
+    element.appendChild(span);
+    span.click();
+    checkClickCount(clicked, "clicking descendant of nested labelable content");
+  }, `labelable element ${srcElement.outerHTML} deeply nested under <label>`);
+
+  test(t => {
+    t.add_cleanup(() => {
+      label.innerHTML = "";
+    });
+
+    const button = document.createElement("button");
+    label.appendChild(button);
+
+    const element = srcElement.cloneNode();
+    label.appendChild(element);
+
+    let buttonClicked = 0;
+    button.addEventListener("click", () => {
+      buttonClicked++;
+    });
+
+    let clicked = 0;
+    element.addEventListener("click", () => {
+      clicked++;
+    });
+    element.click();
+    assert_equals(clicked, 1, "clicking nested labelable content");
+    assert_equals(buttonClicked, 1, "clicking nested labelable content should click button");
+
+    buttonClicked = 0;
+    clicked = 0;
+    const span = document.createElement("span");
+    element.appendChild(span);
+    span.click();
+    assert_equals(clicked, 1, "clicking descendant of nested labelable content");
+    assert_equals(buttonClicked, 1, "clicking descendant of nested labelable content should not click button");
+  }, `labelable element ${srcElement.outerHTML} as second child under <label>`);
+}
+
+</script>
+</body>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-label-element/clicking-noninteractive-unlabelable-content.html b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-label-element/clicking-noninteractive-unlabelable-content.html
new file mode 100644
index 0000000..233168f5
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-label-element/clicking-noninteractive-unlabelable-content.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Label event handling when a descendant noninteractive and unlabelable content is clicked</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<body>
+<label id=label></label>
+<template id=noninteractive-unlabelable-content>
+  <div></div>
+  <svg></svg>
+
+  <!-- These are "almost interactive": they could become interactive with the
+  addition/removal of a non-tabindex attribute. -->
+  <a></a>
+  <audio></audio>
+  <img>
+  <input type=hidden>
+  <object></object>
+  <video></video>
+</template>
+
+<script>
+"use strict";
+
+const template = document.getElementById("noninteractive-unlabelable-content");
+{
+  const details = document.createElementNS("http://www.w3.org/2000/svg", "details");
+  template.content.appendChild(details);
+}
+
+const elements = Array.from(template.content.children);
+const label = document.getElementById("label");
+
+for (const srcElement of elements) {
+  test(t => {
+    t.add_cleanup(() => {
+      label.innerHTML = "";
+    });
+
+    const element = srcElement.cloneNode();
+    label.appendChild(element);
+
+    let clicked = 0;
+    element.addEventListener("click", () => {
+      clicked++;
+    });
+    element.dispatchEvent(new MouseEvent("click", { bubbles: true }));
+    assert_equals(clicked, 1, "clicking interactive content");
+
+    clicked = 0;
+    const span = document.createElement("span");
+    element.appendChild(span);
+    span.click();
+    assert_equals(clicked, 1, "clicking descendant of interactive content");
+  }, `noninteractive unlabelable content ${srcElement.outerHTML} as first child of <label>`);
+
+  test(t => {
+    t.add_cleanup(() => {
+      label.innerHTML = "";
+    });
+
+    const element = srcElement.cloneNode();
+    const div = document.createElement("div");
+    div.appendChild(element);
+    label.appendChild(div);
+
+    let clicked = 0;
+    element.addEventListener("click", () => {
+      clicked++;
+    });
+    element.dispatchEvent(new MouseEvent("click", { bubbles: true }));
+    assert_equals(clicked, 1, "clicking nested interactive content");
+
+    clicked = 0;
+    const span = document.createElement("span");
+    element.appendChild(span);
+    span.click();
+    assert_equals(clicked, 1, "clicking descendant of nested interactive content");
+  }, `noninteractive unlabelable content ${srcElement.outerHTML} deeply nested under <label>`);
+
+  test(t => {
+    t.add_cleanup(() => {
+      label.innerHTML = "";
+    });
+
+    const button = document.createElement("button");
+    label.appendChild(button);
+
+    const element = srcElement.cloneNode();
+    label.appendChild(element);
+
+    let buttonClicked = 0;
+    button.addEventListener("click", () => {
+      buttonClicked++;
+    });
+
+    let clicked = 0;
+    element.addEventListener("click", () => {
+      clicked++;
+    });
+    element.dispatchEvent(new MouseEvent("click", { bubbles: true }));
+    assert_equals(clicked, 1, "clicking noninteractive unlabelable content");
+    assert_equals(buttonClicked, 1, "clicking noninteractive unlabelable content should click button");
+
+    buttonClicked = 0;
+    clicked = 0;
+    const span = document.createElement("span");
+    element.appendChild(span);
+    span.click();
+    assert_equals(clicked, 1, "clicking descendant of nested noninteractive unlabelable content");
+    assert_equals(
+      buttonClicked, 1,
+      "clicking descendant of nested noninteractive unlabelable content should click button"
+    );
+  }, `noninteractive unlabelable content ${srcElement.outerHTML} as second child under <label>`);
+}
+
+</script>
+</body>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/slots-imperative-slot-api.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/shadow-dom/slots-imperative-slot-api.tentative-expected.txt
index 95f65b4..39495dd 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/slots-imperative-slot-api.tentative-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/slots-imperative-slot-api.tentative-expected.txt
@@ -3,13 +3,16 @@
 PASS Imperative slot API throws exception when not slotAssignment != 'manual'.
 PASS Imperative slot API throws exception when slotable parentNode != slot's host.
 PASS Imperative slot API can assign nodes in manual slot assignment.
-FAIL Order of slotables is preserved in manual slot assignment. assert_array_equals: expected property 0 to be Element node <div id="c2"></div> but got Element node <div id="c1"></div> (expected array [Element node <div id="c2"></div>, Element node <div id="c3"></div>, Element node <div id="c1"></div>] got [Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>])
-FAIL Previously assigned slotable is moved to new slot when it's reassigned. assert_array_equals: expected property 0 to be Element node <div id="c2"></div> but got Element node <div id="c1"></div> (expected array [Element node <div id="c2"></div>, Element node <div id="c3"></div>, Element node <div id="c1"></div>] got [Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>])
-FAIL Assigning invalid nodes causes exception and slot returns to its previous state. assert_array_equals: expected property 0 to be Element node <div id="c2"></div> but got Element node <div id="c1"></div> (expected array [Element node <div id="c2"></div>, Element node <div id="c3"></div>, Element node <div id="c1"></div>] got [Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>])
+PASS Order of slotables is preserved in manual slot assignment.
+PASS Previously assigned slotable is moved to new slot when it's reassigned.
+PASS Order and assignment of nodes are preserved during multiple assignment in a row.
+FAIL Assigning invalid nodes causes exception and slot returns to its previous state. assert_array_equals: lengths differ, expected array [] length 0, got [Element node <div id="c1"></div>, Element node <div id="c2"></div>] length 2
 PASS Moving a slot to a new host, the slot loses its previously assigned slotables.
-FAIL Moving a slot's tree order position within a shadow host has no impact on its assigned slotables. assert_array_equals: lengths differ, expected array [Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>] length 3, got [] length 0
-FAIL Appending slotable to different host, it loses slot assignment. It can be re-assigned within a new host. Failed to execute 'assign' on 'HTMLSlotElement': The object must have a callable @@iterator property.
-FAIL Assignment with the same node in parameters should be ignored, last one wins. assert_array_equals: expected property 0 to be Element node <div id="c2"></div> but got Element node <div id="c1"></div> (expected array [Element node <div id="c2"></div>, Element node <div id="c1"></div>] got [Element node <div id="c1"></div>, Element node <div id="c2"></div>])
+PASS Moving a slot's tree order position within a shadow host has no impact on its assigned slotables.
+PASS Appending slotable to different host, it loses slot assignment. It can be re-assigned within a new host.
+FAIL Previously assigned node should not be assigned if slot moved to a new shadow root. The slot remains empty when moved back, no trigger recalc. assert_array_equals: lengths differ, expected array [] length 0, got [Element node <div id="c1"></div>] length 1
+PASS Previously assigned node should not be assigned if slot moved to a new shadow root. The slot remains empty when moved back, trigger recalc.
+PASS Assignment with the same node in parameters should be ignored, last one wins.
 PASS Removing a slot from DOM resets its slotable's slot assignment.
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/slots-imperative-slot-api.tentative.html b/third_party/blink/web_tests/external/wpt/shadow-dom/slots-imperative-slot-api.tentative.html
index 56dd71b..6d3997b0 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/slots-imperative-slot-api.tentative.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/slots-imperative-slot-api.tentative.html
@@ -137,6 +137,21 @@
 }, 'Previously assigned slotable is moved to new slot when it\'s reassigned.');
 
 test(() => {
+ let tTree = createTestTree(test_assign);
+
+  tTree.s1.assign([tTree.c1]);
+  tTree.s2.assign([tTree.c2, tTree.c1]);
+  tTree.s3.assign([tTree.c1, tTree.c3]);
+
+  assert_array_equals(tTree.s1.assignedNodes(), []);
+  assert_array_equals(tTree.s2.assignedNodes(), [tTree.c2]);
+  assert_array_equals(tTree.s3.assignedNodes(), [tTree.c1, tTree.c3]);
+  assert_equals(tTree.c1.assignedSlot, tTree.s3);
+  assert_equals(tTree.c2.assignedSlot, tTree.s2);
+  assert_equals(tTree.c3.assignedSlot, tTree.s3);
+}, 'Order and assignment of nodes are preserved during multiple assignment in a row.');
+
+test(() => {
   let tTree = createTestTree(test_assign);
 
   // tTree.c4 is invalid for tTree.host slot assignment.
@@ -194,7 +209,7 @@
   assert_array_equals(tTree.s4.assignedNodes(), []);
 
   tTree.ns1.append(tTree.s1);
-  assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1, tTree.c2, tTree.c3]);
+  assert_array_equals(tTree.s1.assignedNodes(), []);
 }, 'Moving a slot\'s tree order position within a shadow host has no impact on its assigned slotables.');
 
 test(() => {
@@ -207,7 +222,7 @@
   assert_array_equals(tTree.s1.assignedNodes(), [tTree.c2, tTree.c3]);
   assert_array_equals(tTree.s4.assignedNodes(), []);
 
-  tTree.s4.assign(tTree.c1);
+  tTree.s4.assign([tTree.c1]);
   assert_array_equals(tTree.s4.assignedNodes(), [tTree.c1]);
   assert_equals(tTree.c1.assignedSlot, tTree.s4);
 }, 'Appending slotable to different host, it loses slot assignment. It can be re-assigned within a new host.');
@@ -215,6 +230,36 @@
 test(() => {
   let tTree = createTestTree(test_assign);
 
+  tTree.s1.assign([tTree.c1]);
+  assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1]);
+
+  tTree.shadow_root4.insertBefore(tTree.s1, tTree.s4);
+  assert_array_equals(tTree.s1.assignedNodes(), []);
+  // Don't trigger slot assignment on previous shadow root.
+  // assert_array_equals(tTree.s2.assignedNodes(), []);
+
+  tTree.shadow_root.insertBefore(tTree.s1, tTree.s2);
+  assert_array_equals(tTree.s1.assignedNodes(), []);
+}, 'Previously assigned node should not be assigned if slot moved to a new shadow root. The slot remains empty when moved back, no trigger recalc.');
+
+test(() => {
+  let tTree = createTestTree(test_assign);
+
+  tTree.s1.assign([tTree.c1]);
+  assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1]);
+
+  tTree.shadow_root4.insertBefore(tTree.s1, tTree.s4);
+  assert_array_equals(tTree.s1.assignedNodes(), []);
+  // Trigger slot assignment on previous shadow root.
+  assert_array_equals(tTree.s2.assignedNodes(), []);
+
+  tTree.shadow_root.insertBefore(tTree.s1, tTree.s2);
+  assert_array_equals(tTree.s1.assignedNodes(), []);
+}, 'Previously assigned node should not be assigned if slot moved to a new shadow root. The slot remains empty when moved back, trigger recalc.');
+
+test(() => {
+  let tTree = createTestTree(test_assign);
+
   tTree.s1.assign([tTree.c1, tTree.c1, tTree.c1]);
   assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1]);
 
diff --git a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-insertable-streams.html b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-insertable-streams.html
index 4100afc..04595bd 100644
--- a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-insertable-streams.html
+++ b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-insertable-streams.html
@@ -285,6 +285,66 @@
   return testNormalDataFlowWithInsertableStreamsForOtherKind(t, 'video');
 }, 'Video flows when insertable streams is enabled for audio and disabled for audio.');
 
+promise_test(async t => {
+  const caller = new RTCPeerConnection({forceEncodedVideoInsertableStreams:true});
+  t.add_cleanup(() => caller.close());
+  const callee = new RTCPeerConnection({forceEncodedVideoInsertableStreams:true});
+  t.add_cleanup(() => callee.close());
+
+  const stream = await navigator.mediaDevices.getUserMedia({video:true});
+  const track = stream.getTracks()[0];
+  t.add_cleanup(() => track.stop());
+
+  const sender = caller.addTrack(track)
+  const senderStreams = sender.createEncodedVideoStreams();
+  const senderReader = senderStreams.readableStream.getReader();
+  const senderWriter = senderStreams.writableStream.getWriter();
+  const numFramesToSend = 20;
+
+  const ontrackPromise = new Promise((resolve, reject) => {
+    callee.ontrack = async e => {
+      const receiverStreams = e.receiver.createEncodedVideoStreams();
+      const receiverReader = receiverStreams.readableStream.getReader();
+
+      let numReceivedKeyFrames = 0;
+      let numReceivedDeltaFrames = 0;
+      for (let i = 0; i < numFramesToSend; i++) {
+        const result = await receiverReader.read();
+        if (result.value.type == 'key')
+          numReceivedKeyFrames++;
+        else if (result.value.type == 'delta')
+          numReceivedDeltaFrames++;
+
+        if (numReceivedKeyFrames > 0 && numReceivedDeltaFrames > 0)
+          resolve();
+        else if (numReceivedKeyFrames + numReceivedDeltaFrames >= numFramesToSend)
+          reject();
+      }
+    }
+  });
+
+  exchangeIceCandidates(caller, callee);
+  await doSignalingHandshake(caller, callee);
+
+  let numSentKeyFrames = 0;
+  let numSentDeltaFrames = 0;
+  // Pass frames as they come from the encoder.
+  for (let i = 0; i < numFramesToSend; i++) {
+    const result = await senderReader.read()
+    if (result.value.type == 'key')
+      numSentKeyFrames++;
+    else
+      numSentDeltaFrames++;
+
+    senderWriter.write(result.value);
+  }
+
+  assert_greater_than(numSentKeyFrames, 0);
+  assert_greater_than(numSentDeltaFrames, 0);
+
+  return ontrackPromise;
+}, 'Key and Delta frames are sent and received');
+
 </script>
 </body>
 </html>
diff --git a/third_party/blink/web_tests/http/tests/content_index/content-index.html b/third_party/blink/web_tests/http/tests/content_index/content-index.html
index 53b928be..8fcd42f 100644
--- a/third_party/blink/web_tests/http/tests/content_index/content-index.html
+++ b/third_party/blink/web_tests/http/tests/content_index/content-index.html
@@ -9,17 +9,6 @@
 'use strict';
 
 contentIndexTest(async (t, index) => {
-  // Exposure of the interface and method.
-  assert_own_property(window, 'ContentIndex');
-  assert_own_property(ContentIndex.prototype, 'add');
-
-  assert_idl_attribute(index, 'add');
-  assert_idl_attribute(index, 'delete');
-  assert_idl_attribute(index, 'getAll');
-
-}, 'The Content Index API is exposed');
-
-contentIndexTest(async (t, index) => {
   await expectTypeErrorWithMessage(
       index.add(createDescription({id: ''})),
       `Failed to execute 'add' on 'ContentIndex': ID cannot be empty`);
@@ -57,64 +46,6 @@
 }, 'index.add parameters are validated.');
 
 contentIndexTest(async (t, index) => {
-  const description = createDescription({});
-
-  // Initially there are no descriptions.
-  assert_array_equals(await index.getAll(), []);
-
-  await index.add(description);
-
-  const descriptions = await index.getAll();
-  assert_equals(descriptions.length, 1);
-
-  assert_object_equals(descriptions[0], description);
-
-}, 'index.getAll returns the same objects provided.');
-
-contentIndexTest(async (t, index) => {
-  const description1 = createDescription({title: 'title1'});
-  const description2 = createDescription({title: 'title2'});
-
-  await index.add(description1);
-  await index.add(description2);
-
-  // There should be one description.
-  const descriptions = await index.getAll();
-  assert_equals(descriptions.length, 1);
-
-  assert_object_equals(descriptions[0], description2);
-
-}, 'index.add with same ID overwrites existing entry.');
-
-contentIndexTest(async (t, index) => {
-  const description1 = createDescription({id: 'id1'});
-  const description2 = createDescription({id: 'id2'});
-
-  await index.add(description1);
-  await index.add(description2);
-
-  // There should be two descriptions.
-  assert_equals((await index.getAll()).length, 2);
-
-  await index.delete('id1');
-
-  // There should be one description.
-  const descriptions = await index.getAll();
-  assert_equals(descriptions.length, 1);
-
-  assert_object_equals(descriptions[0], description2);
-
-}, 'index.delete removes entry.');
-
-contentIndexTest(async (t, index) => {
-  const descriptions = await index.getAll();
-  assert_equals(descriptions.length, 0);
-
-  await index.delete('id');
-
-}, 'index.delete works on invalid ID.');
-
-contentIndexTest(async (t, index) => {
   // Register an entry.
   await index.add(createDescription({id: 'my-id'}));
 
diff --git a/third_party/blink/web_tests/shadow-dom/imperative-api.html b/third_party/blink/web_tests/shadow-dom/imperative-api.html
index 594a8ba..018e8016d 100644
--- a/third_party/blink/web_tests/shadow-dom/imperative-api.html
+++ b/third_party/blink/web_tests/shadow-dom/imperative-api.html
@@ -29,37 +29,6 @@
 <script>
 test(() => {
   let n = createTestTree(test2);
-  assert_array_equals(n.s2.assignedElements(), []);
-  assert_equals(n.c1.assignedSlot, null);
-
-  n.s2.assign([n.c1]);
-
-  assert_array_equals(n.s2.assignedNodes(), [n.c1]);
-  assert_equals(n.c1.assignedSlot, n.s2);
-
-  n.s1.assign([n.c2,n.c1]);
-  assert_array_equals(n.s1.assignedNodes(), [n.c1,n.c2]);
-  assert_array_equals(n.s2.assignedNodes(), []);
-  assert_equals(n.c1.assignedSlot, n.s1);
-  assert_equals(n.c2.assignedSlot, n.s1);
-
-  n.s1.assign([n.c2]);
-  assert_array_equals(n.s1.assignedNodes(), [n.c2]);
-  assert_array_equals(n.s2.assignedNodes(), [n.c1]);
-}, 'assignedNodes/Slot can be used in manual slotting');
-
-test(() => {
-  let n = createTestTree(test2);
-  n.s1.assign([n.c1]);
-  n.s2.assign([n.c1]);
-  assert_array_equals(n.s2.assignedNodes(), []);
-
-  n.shadow_root.insertBefore(n.s2,n.s1);
-  assert_array_equals(n.s2.assignedNodes(), [n.c1]);
-}, 'A node should be assigned to a slot when the slot is inserted before the assigned slot');
-
-test(() => {
-  let n = createTestTree(test2);
   n.s1.assign([n.c1]);
   n.s2.assign([n.c1]);
   n.s3.assign([n.c1]);
@@ -74,19 +43,6 @@
 
 test(() => {
   let n = createTestTree(test2);
-  n.s1.assign([n.c1]);
-  assert_array_equals(n.s1.assignedNodes(), [n.c1]);
-  n.shadow_root1.insertBefore(n.s1,n.s5);
-
-  assert_array_equals(n.s1.assignedNodes(), []);
-  n.s1.assign([]);
-  n.shadow_root.insertBefore(n.s1,n.s2);
-
-  assert_array_equals(n.s1.assignedNodes(), []);
-}, 'A slot should not be assigned to a node once after the slot is inserted in another shadow root, and assigned another slot.')
-
-test(() => {
-  let n = createTestTree(test2);
   n.shadow_root.insertBefore(n.s1,n.s2);
   n.s2.assign([n.c1,n.c1]);
   assert_array_equals(n.s2.assignedNodes(), [n.c1]);
diff --git a/third_party/blink/web_tests/shadow-dom/imperative-apis/custom-detail-summary.js b/third_party/blink/web_tests/shadow-dom/imperative-apis/custom-detail-summary.js
index 835b399..734a3c5 100644
--- a/third_party/blink/web_tests/shadow-dom/imperative-apis/custom-detail-summary.js
+++ b/third_party/blink/web_tests/shadow-dom/imperative-apis/custom-detail-summary.js
@@ -27,11 +27,13 @@
         slot2.style.display = "block";
         child2.innerHTML = "&dtrif; ";
         child1.innerText = "";
+        slot2.assign(target.childNodes);
       });
       child2.addEventListener('click', (e) => {
         slot2.style.display = "none";
         child1.innerHTML = "&rtrif; ";
         child2.innerText = "";
+        slot1.assign([child1,child2, target.querySelector(':scope > my-summary')]);
       });
       const shadowRoot = target.shadowRoot;
       shadowRoot.appendChild(slot1);
@@ -45,8 +47,6 @@
         } else {
           slot1.assign([child1,child2]);
         }
-        slot2.assign(target.childNodes);
-        slot2.style.display = "none";
       });
     observer.observe(this, {childList: true});
     }
diff --git a/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRect.html b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRect.html
index 6f60c78..60bb566 100644
--- a/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRect.html
+++ b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRect.html
@@ -2,8 +2,6 @@
 <html>
   <head>
     <title>Test ClearRect works properly if called during the first frame.</title>
-    <script src="/resources/testharness.js"></script>
-    <script src="/resources/testharnessreport.js"></script>
   </head>
   <body>
   <canvas id="c" width=100 height=100></canvas>
diff --git a/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRectPartial.html b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRectPartial.html
index f8f61a8..58a6acc 100644
--- a/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRectPartial.html
+++ b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasClearRectPartial.html
@@ -2,8 +2,6 @@
 <html>
   <head>
     <title>Test ClearRect works properly if it doesn't clear the full canvas.</title>
-    <script src="/resources/testharness.js"></script>
-    <script src="/resources/testharnessreport.js"></script>
   </head>
   <body>
   <canvas id="c" width=100 height=100></canvas>
diff --git a/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasImageRenderingAuto.html b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasImageRenderingAuto.html
index 66d006e..bfe5b97b 100644
--- a/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasImageRenderingAuto.html
+++ b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasImageRenderingAuto.html
@@ -2,8 +2,6 @@
 <html>
   <head>
     <title>Test if the users can change Image Rendering Quality in Offscreen Canvas</title>
-    <script src="/resources/testharness.js"></script>
-    <script src="/resources/testharnessreport.js"></script>
     <style type="text/css">
 #can {
   width: 500px;
diff --git a/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasImageRenderingPixelated.html b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasImageRenderingPixelated.html
index 73819cc..8be6013 100644
--- a/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasImageRenderingPixelated.html
+++ b/third_party/blink/web_tests/virtual/gpu/fast/canvas/OffscreenCanvasImageRenderingPixelated.html
@@ -2,8 +2,6 @@
 <html>
   <head>
     <title>Test if the users can change Image Rendering Quality in Offscreen Canvas</title>
-    <script src="/resources/testharness.js"></script>
-    <script src="/resources/testharnessreport.js"></script>
     <style type="text/css">
 #can {
   width: 500px;
diff --git a/third_party/blink/web_tests/virtual/stable/resize-observer/README.txt b/third_party/blink/web_tests/virtual/stable/resize-observer/README.txt
deleted file mode 100644
index 7c75df7..0000000
--- a/third_party/blink/web_tests/virtual/stable/resize-observer/README.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-# This suite runs the test in resize-observer/ with --stable-release-mode, with which
-# we run tests with only stable feature (no experiments).
-# See the virtual_test_suites() method in tools/blinkpy/web_tests/port/base.py.
diff --git a/third_party/blink/web_tests/virtual/stable/resize-observer/observe_compat.html b/third_party/blink/web_tests/virtual/stable/resize-observer/observe_compat.html
deleted file mode 100644
index bd83411..0000000
--- a/third_party/blink/web_tests/virtual/stable/resize-observer/observe_compat.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!doctype HTML>
-<script src="../../../resources/testharness.js"></script>
-<script src="../../../resources/testharnessreport.js"></script>
-
-<style>
-  div {
-    width: 100px;
-    height: 100px;
-  }
-</style>
-<div id="observeme"></div>
-
-<script>
-//Ensure no error is thrown, second argument in observe() is ignored
-test(() => {
-
-  new ResizeObserver(entries => {
-
-  }).observe(observeme, "TEST");
-
-  observeme.style.height = "110px";
-}, "No error is thrown when observe() is called");
-</script>
diff --git a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt
index 5b55a71f..4bb2d50 100644
--- a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -5603,9 +5603,17 @@
     method unobserve
 interface ResizeObserverEntry
     attribute @@toStringTag
+    getter borderBoxSize
+    getter contentBoxSize
     getter contentRect
+    getter devicePixelContentBoxSize
     getter target
     method constructor
+interface ResizeObserverSize
+    attribute @@toStringTag
+    getter blockSize
+    getter inlineSize
+    method constructor
 interface Response
     static method error
     static method redirect
diff --git a/third_party/libaom/README.chromium b/third_party/libaom/README.chromium
index 1946045..1a132b72 100644
--- a/third_party/libaom/README.chromium
+++ b/third_party/libaom/README.chromium
@@ -2,9 +2,9 @@
 Short Name: libaom
 URL: https://aomedia.googlesource.com/aom/
 Version: 0
-Date: Wednesday March 18 2020
+Date: Monday April 06 2020
 Branch: master
-Commit: c25910f6d213ec5ec45ae53caa5e40bd7ebd218f
+Commit: 611c58e511042782869dfcb6e0450587b30fc5f2
 License: BSD
 License File: source/libaom/LICENSE
 Security Critical: yes
diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs.gni
index 9b53b80..4dc6f09 100644
--- a/third_party/libaom/libaom_srcs.gni
+++ b/third_party/libaom/libaom_srcs.gni
@@ -84,6 +84,7 @@
   "//third_party/libaom/source/libaom/av1/av1_iface_common.h",
   "//third_party/libaom/source/libaom/av1/common/alloccommon.c",
   "//third_party/libaom/source/libaom/av1/common/alloccommon.h",
+  "//third_party/libaom/source/libaom/av1/common/av1_common_int.h",
   "//third_party/libaom/source/libaom/av1/common/av1_inv_txfm1d.c",
   "//third_party/libaom/source/libaom/av1/common/av1_inv_txfm1d.h",
   "//third_party/libaom/source/libaom/av1/common/av1_inv_txfm1d_cfg.h",
@@ -124,7 +125,6 @@
   "//third_party/libaom/source/libaom/av1/common/obu_util.h",
   "//third_party/libaom/source/libaom/av1/common/odintrin.c",
   "//third_party/libaom/source/libaom/av1/common/odintrin.h",
-  "//third_party/libaom/source/libaom/av1/common/onyxc_int.h",
   "//third_party/libaom/source/libaom/av1/common/pred_common.c",
   "//third_party/libaom/source/libaom/av1/common/pred_common.h",
   "//third_party/libaom/source/libaom/av1/common/quant_common.c",
@@ -499,9 +499,8 @@
 aom_dsp_decoder_sources = [
   "//third_party/libaom/source/libaom/aom_dsp/binary_codes_reader.c",
   "//third_party/libaom/source/libaom/aom_dsp/binary_codes_reader.h",
+  "//third_party/libaom/source/libaom/aom_dsp/bitreader.c",
   "//third_party/libaom/source/libaom/aom_dsp/bitreader.h",
-  "//third_party/libaom/source/libaom/aom_dsp/daalaboolreader.c",
-  "//third_party/libaom/source/libaom/aom_dsp/daalaboolreader.h",
   "//third_party/libaom/source/libaom/aom_dsp/entdec.c",
   "//third_party/libaom/source/libaom/aom_dsp/entdec.h",
   "//third_party/libaom/source/libaom/aom_dsp/grain_synthesis.c",
@@ -605,10 +604,9 @@
 aom_dsp_encoder_sources = [
   "//third_party/libaom/source/libaom/aom_dsp/binary_codes_writer.c",
   "//third_party/libaom/source/libaom/aom_dsp/binary_codes_writer.h",
+  "//third_party/libaom/source/libaom/aom_dsp/bitwriter.c",
   "//third_party/libaom/source/libaom/aom_dsp/bitwriter.h",
   "//third_party/libaom/source/libaom/aom_dsp/blk_sse_sum.c",
-  "//third_party/libaom/source/libaom/aom_dsp/daalaboolwriter.c",
-  "//third_party/libaom/source/libaom/aom_dsp/daalaboolwriter.h",
   "//third_party/libaom/source/libaom/aom_dsp/entenc.c",
   "//third_party/libaom/source/libaom/aom_dsp/entenc.h",
   "//third_party/libaom/source/libaom/aom_dsp/fwd_txfm.c",
diff --git a/third_party/libaom/source/config/config/aom_version.h b/third_party/libaom/source/config/config/aom_version.h
index 6e5bdd91..8516b954 100644
--- a/third_party/libaom/source/config/config/aom_version.h
+++ b/third_party/libaom/source/config/config/aom_version.h
@@ -12,8 +12,8 @@
 #define VERSION_MAJOR 1
 #define VERSION_MINOR 0
 #define VERSION_PATCH 0
-#define VERSION_EXTRA "errata1-avif-415-gc25910f6d"
+#define VERSION_EXTRA "errata1-avif-566-g611c58e51"
 #define VERSION_PACKED \
   ((VERSION_MAJOR << 16) | (VERSION_MINOR << 8) | (VERSION_PATCH))
-#define VERSION_STRING_NOSP "1.0.0-errata1-avif-415-gc25910f6d"
-#define VERSION_STRING " 1.0.0-errata1-avif-415-gc25910f6d"
+#define VERSION_STRING_NOSP "1.0.0-errata1-avif-566-g611c58e51"
+#define VERSION_STRING " 1.0.0-errata1-avif-566-g611c58e51"
diff --git a/third_party/shell-encryption/.clang-format b/third_party/shell-encryption/.clang-format
new file mode 100644
index 0000000..b70de86
--- /dev/null
+++ b/third_party/shell-encryption/.clang-format
@@ -0,0 +1,4 @@
+# Defines the Chromium style for automatic reformatting.
+# http://clang.llvm.org/docs/ClangFormatStyleOptions.html
+DisableFormat: true
+SortIncludes: false
diff --git a/third_party/shell-encryption/BUILD.gn b/third_party/shell-encryption/BUILD.gn
new file mode 100644
index 0000000..32234c5
--- /dev/null
+++ b/third_party/shell-encryption/BUILD.gn
@@ -0,0 +1,134 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//testing/test.gni")
+import("//third_party/protobuf/proto_library.gni")
+
+config("shell_encryption_config1") {
+  include_dirs = [
+    # Allow includes to be prefixed with shell-encryption/src/ in case it is not an
+    # immediate subdirectory of the top-level.
+    "src",
+
+    # Allow includes to be prefixed with shell-encryption/ in case it is not an
+    # immediate subdirectory of the top-level. That's mainly is being used for
+    # glog/logging.h includes.
+    ".",
+
+    # Just like the root shell-encryption directory is added to include path, the
+    # corresponding directory tree with generated files needs to be added too.
+    # Note: this path does not change depending on the current target, e.g.
+    # it is always "//gen/third_party/shell-encryption/src" when building with Chromium.
+    # See also: http://cs.chromium.org/?q=%5C"default_include_dirs
+    # https://gn.googlesource.com/gn/+/master/docs/reference.md#target_gen_dir"
+    target_gen_dir,
+  ]
+}
+
+# Protos.
+proto_library("serialization_proto") {
+  sources = [ "src/serialization.proto" ]
+  proto_in_dir = "src/"
+}
+
+proto_library("coefficient_polynomial_proto") {
+  sources = [ "src/testing/coefficient_polynomial.proto" ]
+  proto_in_dir = "src/testing/"
+}
+
+# SHELL lib.
+source_set("shell_encryption") {
+  public_configs = [ ":shell_encryption_config1" ]
+  configs -= [ "//build/config/compiler:chromium_code" ]
+  configs += [ "//build/config/compiler:no_chromium_code" ]
+  public = [
+    "glog/logging.h",
+    "src/bits_util.h",
+    "src/constants.h",
+    "src/error_params.h",
+    "src/galois_key.h",
+    "src/int256.h",
+    "src/integral_types.h",
+    "src/montgomery.h",
+    "src/ntt_parameters.h",
+    "src/polynomial.h",
+    "src/prng/chacha_prng.h",
+    "src/prng/chacha_prng_util.h",
+    "src/prng/integral_prng_types.h",
+    "src/prng/prng.h",
+    "src/prng/single_thread_chacha_prng.h",
+    "src/relinearization_key.h",
+    "src/sample_error.h",
+    "src/status_macros.h",
+    "src/statusor.h",
+    "src/symmetric_encryption.h",
+    "src/symmetric_encryption_with_prng.h",
+    "src/transcription.h",
+  ]
+  sources = [
+    "src/int256.cc",
+    "src/ntt_parameters.cc",
+    "src/prng/chacha_prng.cc",
+    "src/prng/chacha_prng_util.cc",
+    "src/prng/single_thread_chacha_prng.cc",
+    "src/relinearization_key.cc",
+    "src/statusor.cc",
+  ]
+  public_deps = [
+    ":serialization_proto",
+    "//third_party/abseil-cpp/absl/base",
+    "//third_party/abseil-cpp/absl/base:core_headers",
+    "//third_party/abseil-cpp/absl/memory",
+    "//third_party/abseil-cpp/absl/numeric:int128",
+    "//third_party/abseil-cpp/absl/status:status",
+    "//third_party/abseil-cpp/absl/strings",
+    "//third_party/abseil-cpp/absl/types:optional",
+    "//third_party/boringssl:boringssl",
+  ]
+}
+
+test("shell_encryption_test") {
+  testonly = true
+  public_configs = [ ":shell_encryption_config1" ]
+  configs -= [ "//build/config/compiler:chromium_code" ]
+  configs += [ "//build/config/compiler:no_chromium_code" ]
+  public = [
+    "src/testing/coefficient_polynomial.h",
+    "src/testing/coefficient_polynomial_ciphertext.h",
+    "src/testing/protobuf_matchers.h",
+    "src/testing/status_matchers.h",
+    "src/testing/status_testing.h",
+    "src/testing/testing_prng.h",
+    "src/testing/testing_utils.h",
+  ]
+  sources = [
+    "src/bits_util_test.cc",
+    "src/error_params_test.cc",
+    "src/galois_key_test.cc",
+    "src/int256_test.cc",
+    "src/montgomery_test.cc",
+    "src/ntt_parameters_test.cc",
+    "src/polynomial_test.cc",
+    "src/prng/chacha_prng.cc",
+    "src/prng/integral_prng_testing_types.h",
+    "src/prng/prng_test.cc",
+    "src/prng/single_thread_chacha_prng_test.cc",
+    "src/relinearization_key_test.cc",
+    "src/sample_error_test.cc",
+    "src/status_macros_test.cc",
+    "src/statusor_test.cc",
+    "src/symmetric_encryption_test.cc",
+    "src/symmetric_encryption_with_prng_test.cc",
+    "src/testing/coefficient_polynomial_ciphertext_test.cc",
+    "src/testing/coefficient_polynomial_test.cc",
+    "src/testing/protobuf_matchers_test.cc",
+    "src/transcription_test.cc",
+  ]
+  public_deps = [
+    ":coefficient_polynomial_proto",
+    ":shell_encryption",
+    "//testing/gmock:gmock",
+    "//testing/gtest:gtest",
+  ]
+}
diff --git a/third_party/shell-encryption/DEPS b/third_party/shell-encryption/DEPS
new file mode 100644
index 0000000..17406106
--- /dev/null
+++ b/third_party/shell-encryption/DEPS
@@ -0,0 +1,11 @@
+# This isn't a real DEPS file.
+# Undo things in third_party/DEPS that we don't want.
+include_rules = [
+  # Internal includes.
+  '+glog',
+  '+prng',
+  '+testing',
+  # The lib will be able to use abseil, but without being imported directly in
+  # chromium.
+  '+absl',
+]
diff --git a/third_party/shell-encryption/OWNERS b/third_party/shell-encryption/OWNERS
new file mode 100644
index 0000000..b3e13a4
--- /dev/null
+++ b/third_party/shell-encryption/OWNERS
@@ -0,0 +1,2 @@
+amraboelkher@chromium.org
+kwlyeo@chromium.org
diff --git a/third_party/shell-encryption/README.chromium b/third_party/shell-encryption/README.chromium
new file mode 100644
index 0000000..d0062ad
--- /dev/null
+++ b/third_party/shell-encryption/README.chromium
@@ -0,0 +1,24 @@
+Name: Simple Homomorphic Encryption Library with Lattices
+URL: https://github.com/google/shell-encryption
+Version: 388d4d1ac027c41840564bf99dd88f0f6d05672c
+License: Apache Version 2.0
+License File: src/LICENSE
+Security Critical: no
+
+Description: This project is a library for fully-homomorphic symmetric-key
+encryption. It uses Ring Learning with Errors (RLWE)-based encryption to make it
+possible to both add and multiply encrypted data. It uses modulus-switching to
+enable arbitrary-depth homomorphic encryption (provided sufficiently large
+parameters are set). RLWE is also believed to be secure in the face of quantum
+computers.
+
+Local Modifications:
+
+Applying local modifications live in //third_party/shell-encryption/patches/
+can be done by running the following commands:
+
+$ export SHELL_PATH=<path-to-chromium>/src/third_party/shell-encryption
+$ for patch in $SHELL_PATH/patches/*; do patch -s -p1 < $patch; done
+
+In case of conflict, update those patches accordingly and save them back in
+//third_party/shell-encryption/patches/.
diff --git a/third_party/shell-encryption/glog/logging.h b/third_party/shell-encryption/glog/logging.h
new file mode 100644
index 0000000..3964b76
--- /dev/null
+++ b/third_party/shell-encryption/glog/logging.h
@@ -0,0 +1,9 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
+
+#ifndef SHELL_ENCRYPTION_GLOG_H_
+#define SHELL_ENCRYPTION_GLOG_H_
+
+#include"base/logging.h"
+
+#endif	// SHELL_ENCRYPTION_GLOG_H_
diff --git a/third_party/shell-encryption/patches/0001-Support-SHELL-in-chromium.patch b/third_party/shell-encryption/patches/0001-Support-SHELL-in-chromium.patch
new file mode 100644
index 0000000..ec9618e
--- /dev/null
+++ b/third_party/shell-encryption/patches/0001-Support-SHELL-in-chromium.patch
@@ -0,0 +1,115 @@
+diff --git a/montgomery.h b/montgomery.h
+index 50fb08a..336e925 100644
+--- a/montgomery.h
++++ b/montgomery.h
+@@ -105,8 +105,8 @@ struct MontgomeryIntParams {
+   static rlwe::StatusOr<std::unique_ptr<MontgomeryIntParams>> Create(
+       Int modulus) {
+     // Check that the modulus is smaller than max(Int) / 4.
+-    if (Int most_significant_bit = modulus >> (bitsize_int - 2);
+-        most_significant_bit != 0) {
++    Int most_significant_bit = modulus >> (bitsize_int - 2);
++    if (most_significant_bit != 0) {
+       return absl::InvalidArgumentError(absl::StrCat(
+           "The modulus should be less than 2^", (bitsize_int - 2), "."));
+     }
+diff --git a/ntt_parameters.h b/ntt_parameters.h
+index da03bfe..270a5a2 100644
+--- a/ntt_parameters.h
++++ b/ntt_parameters.h
+@@ -103,7 +103,8 @@ static void BitrevHelper(const std::vector<unsigned int>& bitrevs,
+   using std::swap;
+   for (int i = 0; i < item_to_reverse->size(); i++) {
+     // Only swap in one direction - don't accidentally swap twice.
+-    if (unsigned int r = bitrevs[i]; i < r) {
++    unsigned int r = bitrevs[i];
++    if (static_cast<unsigned int>(i) < r) {
+       swap((*item_to_reverse)[i], (*item_to_reverse)[r]);
+     }
+   }
+diff --git a/polynomial.h b/polynomial.h
+index 0b73dfa..fc0e38a 100644
+--- a/polynomial.h
++++ b/polynomial.h
+@@ -80,7 +80,8 @@ class Polynomial {
+                                  const NttParameters<ModularInt>& ntt_params,
+                                  ModularIntParams* modular_params) {
+     // Check to ensure that the coefficient vector is of the correct length.
+-    if (int len = poly_coeffs.size(); len <= 0 || (len & (len - 1)) != 0) {
++    int len = poly_coeffs.size();
++    if (len <= 0 || (len & (len - 1)) != 0) {
+       // An error value.
+       return Polynomial();
+     }
+diff --git a/prng/chacha_prng_util.cc b/prng/chacha_prng_util.cc
+index bd78ab8..39099e1 100644
+--- a/prng/chacha_prng_util.cc
++++ b/prng/chacha_prng_util.cc
+@@ -10,7 +10,8 @@
+ #include <openssl/rand.h>
+ #include "status_macros.h"
+ 
+-namespace rlwe::internal {
++namespace rlwe {
++namespace internal {
+ 
+ absl::Status ChaChaPrngResalt(absl::string_view key, int buffer_size,
+                               int* salt_counter, int* position_in_buffer,
+@@ -71,4 +72,5 @@ rlwe::StatusOr<Uint64> ChaChaPrngRand64(absl::string_view key,
+   return rand64;
+ }
+ 
+-}  // namespace rlwe::internal
++}  // namespace internal
++}  // namespace rlwe
+diff --git a/prng/chacha_prng_util.h b/prng/chacha_prng_util.h
+index 2bb2fcf..5490505 100644
+--- a/prng/chacha_prng_util.h
++++ b/prng/chacha_prng_util.h
+@@ -12,7 +12,8 @@
+ #include "integral_types.h"
+ #include "statusor.h"
+ 
+-namespace rlwe::internal {
++namespace rlwe {
++namespace internal {
+ 
+ const int kChaChaKeyBytesSize = 32;
+ const int kChaChaNonceSize = 12;
+@@ -43,6 +44,7 @@ rlwe::StatusOr<Uint64> ChaChaPrngRand64(absl::string_view key,
+                                         int* salt_counter,
+                                         std::vector<Uint8>* buffer);
+ 
+-}  // namespace rlwe::internal
++}  // namespace internal
++}  // namespace rlwe
+ 
+ #endif  // RLWE_CHACHA_PRNG_UTIL_H_
+diff --git a/statusor.h b/statusor.h
+index 4fdeade..42761e6 100644
+--- a/statusor.h
++++ b/statusor.h
+@@ -74,7 +74,7 @@ class StatusOr {
+ 
+   operator absl::Status() const { return status(); }
+ 
+-  template <template <typename> typename OtherStatusOrType>
++  template <template <typename> class OtherStatusOrType>
+   operator OtherStatusOrType<T>() {
+     if (value_) {
+       return OtherStatusOrType<T>(std::move(value_.value()));
+diff --git a/symmetric_encryption.h b/symmetric_encryption.h
+index d4ad730..0223149 100644
+--- a/symmetric_encryption.h
++++ b/symmetric_encryption.h
+@@ -584,8 +584,8 @@ class SymmetricRlweKey {
+       typename ModularIntQ::Params* modulus_params_q,
+       const NttParameters<ModularIntQ>* ntt_params_q) const {
+     // Configuration failure.
+-    if (Int t = (modulus_params_q->One() << log_t_) + modulus_params_q->One();
+-        modulus_params_->modulus % t != modulus_params_q->modulus % t) {
++    Int t = (modulus_params_q->One() << log_t_) + modulus_params_q->One();
++    if (modulus_params_->modulus % t != modulus_params_q->modulus % t) {
+       return absl::InvalidArgumentError("p % t != q % t");
+     }
+ 
diff --git a/third_party/shell-encryption/src/BUILD b/third_party/shell-encryption/src/BUILD
new file mode 100644
index 0000000..e9100b7
--- /dev/null
+++ b/third_party/shell-encryption/src/BUILD
@@ -0,0 +1,476 @@
+# Copyright 2017 Google LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+load("@rules_cc//cc:defs.bzl", "cc_library")
+load("@rules_proto//proto:defs.bzl", "proto_library")
+
+package(default_visibility = ["//visibility:public"])
+
+licenses(["notice"])  # Apache 2.0
+
+exports_files(["LICENSE"])
+
+# Protos.
+proto_library(
+    name = "serialization_proto",
+    srcs = ["serialization.proto"],
+)
+
+cc_proto_library(
+    name = "serialization_cc_proto",
+    deps = [":serialization_proto"],
+)
+
+# Integral types for integers.
+
+cc_library(
+    name = "integral_types",
+    hdrs = ["integral_types.h"],
+    deps = [
+        "@com_google_absl//absl/numeric:int128",
+    ],
+)
+
+# Constants.
+
+cc_library(
+    name = "constants",
+    hdrs = ["constants.h"],
+    deps = [
+        ":integral_types",
+        "@com_google_absl//absl/numeric:int128",
+    ],
+)
+
+# Utilities.
+
+cc_library(
+    name = "bits_util",
+    hdrs = ["bits_util.h"],
+    deps = [
+        ":integral_types",
+        "@com_google_absl//absl/base",
+        "@com_google_absl//absl/base:core_headers",
+        "@com_google_absl//absl/numeric:int128",
+    ],
+)
+
+cc_test(
+    name = "bits_util_test",
+    srcs = ["bits_util_test.cc"],
+    deps = [
+        ":bits_util",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+cc_library(
+    name = "sample_error",
+    hdrs = ["sample_error.h"],
+    deps = [
+        ":bits_util",
+        ":constants",
+        ":error_params",
+        ":statusor_fork",
+        "//prng",
+        "@com_google_absl//absl/strings",
+    ],
+)
+
+cc_test(
+    name = "sample_error_test",
+    srcs = [
+        "sample_error_test.cc",
+    ],
+    deps = [
+        ":constants",
+        ":integral_types",
+        ":montgomery",
+        ":sample_error",
+        ":symmetric_encryption",
+        "//testing:status_is_fork",
+        "//testing:status_testing",
+        "//testing:testing_prng",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+cc_library(
+    name = "statusor_fork",
+    srcs = ["statusor.cc"],
+    hdrs = [
+        "status_macros.h",
+        "statusor.h",
+    ],
+    deps = [
+        "@com_github_glog_glog//:glog",
+        "@com_google_absl//absl/base:core_headers",
+        "@com_google_absl//absl/status",
+        "@com_google_absl//absl/types:optional",
+    ],
+)
+
+cc_test(
+    name = "statusor_test",
+    srcs = ["statusor_test.cc"],
+    deps = [
+        ":statusor_fork",
+        "@com_google_absl//absl/status",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+cc_test(
+    name = "status_macros_test",
+    srcs = ["status_macros_test.cc"],
+    deps = [
+        ":statusor_fork",
+        "@com_google_absl//absl/status",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+# Montgomery integers.
+
+cc_library(
+    name = "montgomery",
+    hdrs = [
+        "montgomery.h",
+    ],
+    deps = [
+        ":bits_util",
+        ":constants",
+        ":int256",
+        ":integral_types",
+        ":serialization_cc_proto",
+        ":statusor_fork",
+        ":transcription",
+        "//prng",
+        "@com_github_glog_glog//:glog",
+        "@com_google_absl//absl/base",
+        "@com_google_absl//absl/base:core_headers",
+        "@com_google_absl//absl/numeric:int128",
+        "@com_google_absl//absl/status",
+        "@com_google_absl//absl/strings",
+    ],
+)
+
+cc_test(
+    name = "montgomery_test",
+    srcs = [
+        "montgomery_test.cc",
+    ],
+    deps = [
+        ":constants",
+        ":montgomery",
+        ":serialization_cc_proto",
+        ":statusor_fork",
+        "//testing:status_is_fork",
+        "//testing:status_testing",
+        "//testing:testing_prng",
+        "@com_google_absl//absl/numeric:int128",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+# NTT parameters.
+
+cc_library(
+    name = "ntt_parameters",
+    srcs = ["ntt_parameters.cc"],
+    hdrs = ["ntt_parameters.h"],
+    deps = [
+        ":constants",
+        ":statusor_fork",
+        "@com_google_absl//absl/memory",
+        "@com_google_absl//absl/status",
+        "@com_google_absl//absl/strings",
+    ],
+)
+
+cc_test(
+    name = "ntt_parameters_test",
+    srcs = [
+        "ntt_parameters_test.cc",
+    ],
+    deps = [
+        ":constants",
+        ":montgomery",
+        ":ntt_parameters",
+        ":statusor_fork",
+        "//testing:status_is_fork",
+        "//testing:status_testing",
+        "@com_google_absl//absl/numeric:int128",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+# NTT polynomial.
+
+cc_library(
+    name = "polynomial",
+    hdrs = ["polynomial.h"],
+    deps = [
+        ":constants",
+        ":ntt_parameters",
+        ":serialization_cc_proto",
+        ":statusor_fork",
+        "//prng",
+        "@com_google_absl//absl/status",
+        "@com_google_absl//absl/strings",
+    ],
+)
+
+cc_test(
+    name = "polynomial_test",
+    srcs = [
+        "polynomial_test.cc",
+    ],
+    deps = [
+        ":constants",
+        ":montgomery",
+        ":ntt_parameters",
+        ":polynomial",
+        ":serialization_cc_proto",
+        ":statusor_fork",
+        "//prng:integral_prng_testing_types",
+        "//testing:coefficient_polynomial",
+        "//testing:status_is_fork",
+        "//testing:status_testing",
+        "//testing:testing_prng",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+# Error parameters.
+
+cc_library(
+    name = "error_params",
+    hdrs = ["error_params.h"],
+    deps = [
+        ":montgomery",
+        ":ntt_parameters",
+        ":statusor_fork",
+    ],
+)
+
+cc_test(
+    name = "error_params_test",
+    srcs = [
+        "error_params_test.cc",
+    ],
+    deps = [
+        ":constants",
+        ":error_params",
+        ":montgomery",
+        ":ntt_parameters",
+        ":statusor_fork",
+        ":symmetric_encryption",
+        "//prng:integral_prng_types",
+        "//testing:status_is_fork",
+        "//testing:status_testing",
+        "//testing:testing_prng",
+        "//testing:testing_utils",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+# Encryption.
+
+cc_library(
+    name = "symmetric_encryption",
+    hdrs = ["symmetric_encryption.h"],
+    deps = [
+        ":error_params",
+        ":polynomial",
+        ":sample_error",
+        ":serialization_cc_proto",
+        ":statusor_fork",
+        "//prng",
+        "//prng:integral_prng_types",
+    ],
+)
+
+cc_test(
+    name = "symmetric_encryption_test",
+    srcs = [
+        "symmetric_encryption_test.cc",
+    ],
+    deps = [
+        ":constants",
+        ":montgomery",
+        ":ntt_parameters",
+        ":polynomial",
+        ":serialization_cc_proto",
+        ":statusor_fork",
+        ":symmetric_encryption",
+        "//prng:integral_prng_types",
+        "//testing:status_is_fork",
+        "//testing:status_testing",
+        "//testing:testing_prng",
+        "//testing:testing_utils",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+cc_library(
+    name = "symmetric_encryption_with_prng",
+    hdrs = ["symmetric_encryption_with_prng.h"],
+    deps = [
+        ":polynomial",
+        ":statusor_fork",
+        ":symmetric_encryption",
+        "//prng",
+        "//prng:integral_prng_types",
+        "@com_google_absl//absl/status",
+    ],
+)
+
+cc_test(
+    name = "symmetric_encryption_with_prng_test",
+    srcs = [
+        "symmetric_encryption_with_prng_test.cc",
+    ],
+    deps = [
+        ":montgomery",
+        ":ntt_parameters",
+        ":polynomial",
+        ":statusor_fork",
+        ":symmetric_encryption_with_prng",
+        "//prng:integral_prng_types",
+        "//testing:status_is_fork",
+        "//testing:status_testing",
+        "//testing:testing_utils",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+# Relinearization Key
+cc_library(
+    name = "relinearization_key",
+    srcs = ["relinearization_key.cc"],
+    hdrs = ["relinearization_key.h"],
+    deps = [
+        ":montgomery",
+        ":sample_error",
+        ":statusor_fork",
+        ":symmetric_encryption",
+        ":symmetric_encryption_with_prng",
+        "//prng:integral_prng_types",
+        "@com_google_absl//absl/numeric:int128",
+        "@com_google_absl//absl/status",
+    ],
+)
+
+cc_test(
+    name = "relinearization_key_test",
+    srcs = ["relinearization_key_test.cc"],
+    deps = [
+        ":constants",
+        ":montgomery",
+        ":ntt_parameters",
+        ":polynomial",
+        ":relinearization_key",
+        ":statusor_fork",
+        ":symmetric_encryption",
+        "//prng:integral_prng_types",
+        "//testing:status_is_fork",
+        "//testing:status_testing",
+        "//testing:testing_prng",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+# Galois Key.
+cc_library(
+    name = "galois_key",
+    hdrs = ["galois_key.h"],
+    deps = [
+        ":relinearization_key",
+        ":statusor_fork",
+        "@com_google_absl//absl/status",
+        "@com_google_absl//absl/strings",
+    ],
+)
+
+cc_test(
+    name = "galois_key_test",
+    srcs = ["galois_key_test.cc"],
+    deps = [
+        ":constants",
+        ":galois_key",
+        ":montgomery",
+        ":ntt_parameters",
+        ":polynomial",
+        ":statusor_fork",
+        ":symmetric_encryption",
+        "//prng:integral_prng_types",
+        "//testing:status_is_fork",
+        "//testing:status_testing",
+        "//testing:testing_prng",
+        "//testing:testing_utils",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+# int256 Type
+
+cc_library(
+    name = "int256",
+    srcs = ["int256.cc"],
+    hdrs = ["int256.h"],
+    deps = [
+        ":integral_types",
+        "@com_github_glog_glog//:glog",
+        "@com_google_absl//absl/numeric:int128",
+    ],
+)
+
+cc_test(
+    name = "int256_test",
+    srcs = ["int256_test.cc"],
+    deps = [
+        ":int256",
+        "@com_github_glog_glog//:glog",
+        "@com_google_absl//absl/container:fixed_array",
+        "@com_google_absl//absl/numeric:int128",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+# Transcription
+
+cc_library(
+    name = "transcription",
+    hdrs = ["transcription.h"],
+    deps = [
+        ":statusor_fork",
+        "@com_google_absl//absl/status",
+        "@com_google_absl//absl/strings",
+    ],
+)
+
+cc_test(
+    name = "transcription_test",
+    srcs = ["transcription_test.cc"],
+    deps = [
+        ":integral_types",
+        ":statusor_fork",
+        ":transcription",
+        "//testing:status_is_fork",
+        "//testing:status_testing",
+        "@com_google_absl//absl/numeric:int128",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
diff --git a/third_party/shell-encryption/src/CONTRIBUTING.md b/third_party/shell-encryption/src/CONTRIBUTING.md
new file mode 100644
index 0000000..6d364e1
--- /dev/null
+++ b/third_party/shell-encryption/src/CONTRIBUTING.md
@@ -0,0 +1,23 @@
+# How to Contribute
+
+We'd love to accept your patches and contributions to this project. There are
+just a few small guidelines you need to follow.
+
+## Contributor License Agreement
+
+Contributions to this project must be accompanied by a Contributor License
+Agreement. You (or your employer) retain the copyright to your contribution,
+this simply gives us permission to use and redistribute your contributions as
+part of the project. Head over to <https://cla.developers.google.com/> to see
+your current agreements on file or to sign a new one.
+
+You generally only need to submit a CLA once, so if you've already submitted one
+(even if it was for a different project), you probably don't need to do it
+again.
+
+## Code reviews
+
+All submissions, including submissions by project members, require review. We
+use GitHub pull requests for this purpose. Consult
+[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
+information on using pull requests.
\ No newline at end of file
diff --git a/third_party/shell-encryption/src/LICENSE b/third_party/shell-encryption/src/LICENSE
new file mode 100644
index 0000000..12b597d
--- /dev/null
+++ b/third_party/shell-encryption/src/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2017 Google Inc.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/third_party/shell-encryption/src/README.md b/third_party/shell-encryption/src/README.md
new file mode 100644
index 0000000..a83bc15
--- /dev/null
+++ b/third_party/shell-encryption/src/README.md
@@ -0,0 +1,324 @@
+# Simple Homomorphic Encryption Library with Lattices (SHELL)
+
+## Introduction
+
+This project is a library for fully-homomorphic symmetric-key encryption. It
+uses Ring Learning with Errors (RLWE)-based encryption to make it possible to
+both add and multiply encrypted data. It uses modulus-switching to enable
+arbitrary-depth homomorphic encryption (provided sufficiently large parameters
+are set). RLWE is also believed to be secure in the face of quantum computers.
+
+This library is designed to be compact and readable. The library includes just
+1500 lines of heavily-commented source (700 lines of source, 600 lines of
+comments and 200 blank lines) and 900 lines of unit tests.
+
+We intend this project to be both a useful experimental library and a
+comprehensible tool for learning about and extending RLWE.
+
+Discussion group: https://groups.google.com/forum/#!forum/shell-encryption/
+
+**THIS IS NOT AN OFFICIAL GOOGLE PRODUCT**
+
+## Fully Homomorphic Encryption
+
+Fully homomorphic encryption is a form of encryption that makes it possible to
+perform arbitrary computation on encrypted data.
+
+For example, suppose that Alice creates a secret key *s* that she uses to
+encrypt the numbers *2* and *3*, creating the ciphertexts *{2}<sub>s</sub>* and
+*{3}<sub>s</sub>*. In an *additively homomorphic* encryption scheme, Bob (who
+does not know the numbers inside the ciphertexts) could add the ciphertexts
+together, generating the message *{5}<sub>s</sub>* (the encryption of the number
+5), or multiply the ciphertexts together, generating the message
+*{6}<sub>s</sub>* (the encryption of the number 6). The contents of the
+resulting message remain hidden to Bob. When he gives this result back to Alice,
+however, she can decrypt it to reveal the result of the computation.
+
+When an encryption scheme is both additively and multiplicatively homomorphic,
+it is said to be *fully homomorphic*.
+
+Homomorphic encryption has a vast number of applications. As in the example
+above, Alice can securely offload computation to another entity without worrying
+that doing so will reveal any of her private information. Among many other
+applications, it enables *private information retrieval* (PIR) - databases that
+can serve user requests without learning which pieces of data the users
+requested. (For more information on PIR, see [XPIR: Private Information
+Retrieval for Everyone](https://eprint.iacr.org/2014/1025.pdf).)
+
+## Ring Learning with Errors
+
+The homomorphic encryption scheme that this library implements is based off of
+the Ring Learning with Errors problem. The security of this system derives from
+the conjectured difficulty of finding the shortest vector in a lattice. This
+document does not delve into the mathematical underpinnings of these proofs of
+hardness.
+
+The cryptosystem implemented in this library is from [Fully Homomorphic
+Encryption from Ring-LWE and Security for Key Dependent
+Messages](http://www.wisdom.weizmann.ac.il/~zvikab/localpapers/IdealHom.pdf).
+The cryptosystem works as follows:
+
+### Preliminaries
+
+Each object in the cryptosystems, including keys, messages, and ciphertexts, are
+made of polynomials. Each of these polynomials has degree *n-1*, where *n* is a
+power of 2. In other words, each of these polynomials has *n* coefficients.
+
+Each of the coefficients of these polynomials is an integer (mod *q*), where *q*
+is a prime number equal to 1 (mod *2n*). When we operate on these polynomials,
+we do so (mod *x<sup>n</sup>+1*).
+
+We also need a modulus *t* that is much smaller than *q*. *log(t)* is the number
+of bits of plaintext information we are able to fit into each coefficient of a
+ciphertext polynomial. The importance of *t* will become apparent soon.
+
+Finally, we need two other components: a Gaussian distribution *Y* with mean 0
+and standard deviation *w*, where *w* is a parameter of the cryptosystem. The
+importance of this distribution will become apparent soon.
+
+### Key Generation
+
+A secret key *s* is a polynomial whose *n* coefficients are drawn from the
+distribution *Y*.
+
+### Encryption
+
+A message *m* that is to be encrypted must be a polynomial with *n*
+coefficients, each of which is smaller than *t*.
+
+To encrypt *m* with key *s*, select a polynomial *e* from the distribution *Y*
+and a polynomial *a* from the uniform distribution (each coefficient of *a* is
+chosen uniformly at random). *e* is a random amount of error that makes it
+difficult to extract the error from the ciphertext. Both *a* and *e* are nonces
+that should be regenerated freshly for each encryption.
+
+The ciphertext consists of two polynomials. The first polynomial
+*c<sub>0</sub> = as + m + et*. The second polynomial *c<sub>1</sub> = -a*. The
+products between polynomials are computed using polynomial multiplications (mod
+*x<sup>n</sup>+1*).
+
+### Decryption
+
+Given a ciphertext *(c<sub>0</sub>, c<sub>1</sub>)*, the ciphertext is decrypted
+by computing *m* = *c<sub>0</sub> + sc<sub>1</sub>* (mod *t*) = *as + m + et -
+as* (mod *t*) = *m + et* (mod *t*) = *m*. Recall that each coefficient of *m*
+was already (mod *t*).
+
+### Homomorphic Addition
+
+To add two ciphertexts, simply add them component-wise. If we added the
+ciphertexts *(c<sub>0x</sub>, c<sub>1x</sub>)* and *(c<sub>0y</sub>,
+c<sub>1y</sub>)*, we would get the ciphertext *(c<sub>0x</sub> + c<sub>0y</sub>,
+c<sub>1x</sub> + c<sub>1y</sub>)* = *(a<sub>x</sub>s + m<sub>x</sub> +
+e<sub>x</sub>t + a<sub>y</sub>s + m<sub>y</sub> + e<sub>y</sub>t,
+-a<sub>x</sub> - a<sub>y</sub>)* = *((a<sub>x</sub> + a<sub>y</sub>)s +
+(m<sub>x</sub> - m<sub>y</sub>) + (e<sub>x</sub> + e<sub>y</sub>)t,
+-(a<sub>x</sub> + a<sub>y</sub>))*.
+
+If we let *a<sub>z</sub>* = *a<sub>x</sub> + a<sub>y</sub>* and
+*m<sub>z</sub>* = *m<sub>x</sub> + m<sub>y</sub>* and *e<sub>z</sub>* =
+*e<sub>x</sub> + e<sub>y</sub>*, the resulting ciphertext is *(a<sub>z</sub>s +
+m<sub>z</sub> + e<sub>z</sub>t, -a<sub>z</sub>)*, which is just another
+ciphertext encrypting the sum of the original messages.
+
+### Homomorphic Absorption
+
+We can multiply a ciphertext containing the message *m* by another unencrypted
+polynomial *p* to get the encryption of the message *mp*. To do so, we simply
+multiply the components of the ciphertext by *p*: *(c<sub>x</sub>p,
+c<sub>1</sub>p)* = *(aps + mp + ept, -ap)*, which is simply a ciphertext
+containing the message *mp* with error *ep* and a value of *a* that has been
+changed to *ap*.
+
+### Homomorphic Multiplication
+
+Adding homomorphic multiplication to this library requires small tweaks to the
+aforementioned operations.
+
+To multiply two ciphertexts *(c<sub>0x</sub>, c<sub>1x</sub>)* and
+*(c<sub>0y</sub>, c<sub>1y</sub>)*, compute their cross product:
+*(c<sub>0x</sub>c<sub>0y</sub>, c<sub>1x</sub>c<sub>0y</sub> +
+c<sub>0x</sub>c<sub>1y</sub>, c<sub>1x</sub>c<sub>1y</sub>)*.
+
+Notice that the resulting ciphertext has three components, not the usual two.
+This is perfectly acceptable and all the aforementioned operations will work as
+before with small modifications:
+
+*   Decryption entails taking the inner product of the vector of ciphertext
+    polynomials and the vector of powers of the secret key *(s<sup>0</sup>,
+    s<sup>1</sup>, s<sup>2</sup>, ...)* and reducing the result (mod *t*).
+
+*   Addition entails adding the ciphertext vectors component-wise. If one vector
+    is shorter than the other, simply extend it with polynomials with all-zero
+    coefficients.
+
+*   Absorption entails multiplying the plaintext polynomial *p* by each
+    component of the ciphertext vector.
+
+### Error Growth
+
+Observe that, after each homomorphic operation, the error in the resulting
+ciphertext grows. When adding, it grows additively, where in absorption and
+multiplication it grows exponentially. When the largest coefficient of
+polynomial that results from taking the inner product of the ciphertext vector
+*(c<sub>0</sub>, c<sub>1</sub>, ...)* and the vector of powers of the secret key
+*(s<sup>0</sup>, s<sup>1</sup>, ...)* surpasses *q/2*, too much error has built
+up and decryption will fail.
+
+As you choose the parameters for your particular application, you will need to
+trace the growth of the sum of the error and the message carefully.
+
+*   Addition: The error+message grows additively. Given two ciphertext with
+    error+message sums *m<sub>x</sub> + e<sub>x</sub>t* and *m<sub>y</sub> +
+    e<sub>y</sub>t*, the result of homomorphically adding these messages will
+    have error *m<sub>x</sub> + e<sub>x</sub>t + m<sub>y</sub> +
+    e<sub>y</sub>t*.
+
+*   Absorption: The error+message of the result is equal to the product of *(m +
+    et)* from the original ciphertext and *p*, the plaintext with which it is
+    multiplied, and the number of coefficients in the polynomials *n*. In other
+    words, the resulting error is *np(m + et)*. The factor of *n* results from
+    the fact that we perform a polynomial multiplication between *p* and *(m +
+    et)*.
+
+*   Multiplication: Multiplying two ciphertext has an error equal to the product
+    of their error+message values times *n* for the same reasons as listed in
+    absorption.
+
+One way of managing error is to set a larger modulus. Setting a larger modulus
+must be done with care, however. Security of RLWE derives partly from the ratio
+of modulus to error. If the modulus increases in size, so must the standard
+deviation of the error distirbution.
+
+### Modulus Switching
+
+Modulus switching is a strategy to slow the rate of error growth when performing
+many levels of homomorphic multiplications. The explanation and implementation
+of this technique in this library derives from [Fully Homomorphic Encryption
+without Bootstrapping](https://eprint.iacr.org/2011/277.pdf).
+
+Modulus switching takes a ciphertext converts a ciphertext from a larger modulus
+to a smaller modulus. Specifically, when converting from modulus *q* to modulus
+*r*, each coefficient of the ciphertext *k<sub>q</sub>* is multiplied by *r*,
+divided by *q*, and rounded to the nearest integer, producing *k<sub>r</sub>*.
+This value is then shifted up or down the minimum amount to ensure that
+*k<sub>r</sub>* = *k<sub>q</sub>* (mod *t*). This shifting ensures that the
+ciphertext will decrypt properly. When modulus switching, the error will scale
+with the shift in the modulus, keeping the modulus-to-error ratio constant.
+
+To understand the benefit of modulus switching, consider the following example.
+Suppose four ciphertexts initially each have error *e*. After homomorphically
+multiplying them in pairs, we will have two ciphertexts each with error
+*O(e<sup>2</sup>)*. When multiplying those two ciphertexts, the resulting error
+will be *O(e<sup>4</sup>)*. In other words, when multiplying ciphertexts
+together, the exponent of the error will grow exponentially.
+
+Modulus switching offers a way to reduce the complexity of the error growth.
+After computing two ciphertexts each with error *x<sup>2</sup>*, we shift from
+modulus *q* to modulus *q/x*. Doing so reduces the error of each ciphertext to
+*x*. The modulus-to-error ratio is the same as before. Were we to convert back
+to modulus *q*, the error would return to its original value. When we multiply
+these ciphertexts again, the overall error will be *x<sup>2</sup>* (mod *q/x*).
+Were we to convert back to the original modulus, the overall error would be
+*x<sup>3</sup>*, dramatically smaller than without modulus switching.
+
+This library has the ability to perform modulus switching.
+
+## This Library
+
+This library consists of four major components that form a RLWE stack.
+
+### Montgomery Integers
+
+This library is implemented in `montgomery.h`. At the lowest level is a library
+that represents modular integers in Montgomery form, which speeds up the
+repeated use of the modulo operator. This library supports 64-bit integers,
+meaning that it can support a modulus of up to 30-bits. For larger modulus
+sizes, the higher levels of the stack can be parameterized with a different type
+(such as a BigInteger). Montgomery integers require several parameters in
+addition to the modulus to perform the modular operations efficiently. These
+values have been chosen for several common moduli in `constants.h`.
+
+### NTT Polynomial
+
+This library is implemented in `polynomial.h`. We store all polynomials in
+NTT (Number-Theoretic Transformation) form. A polynomial multiplication on
+standard polynomials can be computed with a coefficient-wise product on the same
+polynomials in NTT form, reducing the complexity of the operation from
+*O(n<sup>2</sup>)* to *O(n)*.
+
+### NTT Parameters
+
+This library is implemented in `ntt_parameters.(cc|h)`. Converting to and from
+NTT form requires special parameters that this file generates. In production
+code, these parameters should be generated ahead of time for the chosen values
+of *q* and *n* and compiled as part of the final binary.
+
+### Symmetric Encryption.
+
+This library is implemented in `symmetric_encryption.h`. This library implements
+all of the cryptographic operations described earlier in ths document. It
+operates on polynomials in NTT form.
+
+## Dependencies
+
+This library requires the following external dependencies:
+
+*   [Abseil](https://github.com/abseil/abseil-cpp) for C++ common libraries.
+
+*   [Bazel](https://github.com/bazelbuild/bazel) for building the library.
+
+*   [BoringSSL](https://github.com/google/boringssl) for underlying
+    cryptographic operations.
+
+*   [GFlag](https://github.com/gflags/gflags) for flags. Needed to use glog.
+
+*   [GLog](https://github.com/google/glog) for logging.
+
+*   [Google Test](https://github.com/google/googletest) for unit testing the
+    library.
+
+*   [Protocol Buffers](https://github.com/google/protobuf) for data
+    serialization.
+
+## How to Build
+
+In order to run the SHELL library, you need to install Bazel, if you don't have
+it already.
+[Follow the instructions for your platform on the Bazel website.](https://docs.bazel.build/versions/master/install.html)
+
+You also need to install Git, if you don't have it already.
+[Follow the instructions for your platform on the Git website.](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
+
+Once you've installed Bazel and Git, open a Terminal and clone the SHELL
+repository into a local folder:
+
+```shell
+git clone https://github.com/google/shell-encryption.git
+```
+
+Navigate into the `shell-encryption` folder you just created, and build the
+SHELL library and dependencies using Bazel. Note, the library must be built
+using C++17.
+
+```bash
+cd shell-encryption
+bazel build :all --cxxopt='-std=c++17'
+```
+
+You may also run all tests using the following command:
+
+```bash
+bazel test :all --cxxopt='-std=c++17'
+```
+
+If you get an error, you may need to build/test with the following flags:
+
+```bash
+bazel build :all --cxxopt='-std=c++17' --incompatible_disable_deprecated_attr_params=false --incompatible_depset_is_not_iterable=false --incompatible_new_actions_api=false --incompatible_no_support_tools_in_action_inputs=false
+```
+
+## Acknowledgements
+
+We also thank Jonathan Frankle, who contributed to this library during an
+internship at Google.
diff --git a/third_party/shell-encryption/src/WORKSPACE b/third_party/shell-encryption/src/WORKSPACE
new file mode 100644
index 0000000..a9f18cd
--- /dev/null
+++ b/third_party/shell-encryption/src/WORKSPACE
@@ -0,0 +1,74 @@
+load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+# rules_cc defines rules for generating C++ code from Protocol Buffers.
+http_archive(
+    name = "rules_cc",
+    sha256 = "35f2fb4ea0b3e61ad64a369de284e4fbbdcdba71836a5555abb5e194cf119509",
+    strip_prefix = "rules_cc-624b5d59dfb45672d4239422fa1e3de1822ee110",
+    urls = [
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/624b5d59dfb45672d4239422fa1e3de1822ee110.tar.gz",
+        "https://github.com/bazelbuild/rules_cc/archive/624b5d59dfb45672d4239422fa1e3de1822ee110.tar.gz",
+    ],
+)
+
+# rules_proto defines abstract rules for building Protocol Buffers.
+http_archive(
+    name = "rules_proto",
+    sha256 = "57001a3b33ec690a175cdf0698243431ef27233017b9bed23f96d44b9c98242f",
+    strip_prefix = "rules_proto-9cd4f8f1ede19d81c6d48910429fe96776e567b1",
+    urls = [
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/9cd4f8f1ede19d81c6d48910429fe96776e567b1.tar.gz",
+        "https://github.com/bazelbuild/rules_proto/archive/9cd4f8f1ede19d81c6d48910429fe96776e567b1.tar.gz",
+    ],
+)
+
+load("@rules_cc//cc:repositories.bzl", "rules_cc_dependencies")
+rules_cc_dependencies()
+
+load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
+rules_proto_dependencies()
+rules_proto_toolchains()
+
+# Install gtest.
+http_archive(
+      name = "com_google_googletest",
+      urls = [
+          "https://github.com/google/googletest/archive/release-1.10.0.zip",
+      ],
+      sha256 = "94c634d499558a76fa649edb13721dce6e98fb1e7018dfaeba3cd7a083945e91",
+      strip_prefix = "googletest-release-1.10.0",
+  )
+
+# abseil-cpp
+git_repository(
+  name = "com_google_absl",
+  remote = "https://github.com/abseil/abseil-cpp.git",
+  commit = "0d5ce2797eb695aee7e019e25323251ef6ffc277",
+)
+
+# BoringSSL
+http_archive(
+    name = "boringssl",
+    urls = [
+        "https://mirror.bazel.build/github.com/google/boringssl/archive/a0fb951d2a26a8ee746b52f3ba81ab011a0af778.tar.gz",
+        "https://github.com/google/boringssl/archive/a0fb951d2a26a8ee746b52f3ba81ab011a0af778.tar.gz",
+    ],
+    sha256 = "524ba98a56300149696481b4cb9ddebd0c7b7ac9b9f6edee81da2d2d7e5d2bb3",
+    strip_prefix = "boringssl-a0fb951d2a26a8ee746b52f3ba81ab011a0af778",
+)
+
+# Logging
+http_archive(
+    name = "com_github_glog_glog",
+    build_file = "@//glog:BUILD",
+    urls = ["https://github.com/google/glog/archive/v0.3.5.tar.gz"],
+    strip_prefix = "glog-0.3.5",
+)
+
+# gflags, needed for glog
+git_repository(
+    name = "com_github_gflags_gflags",
+    remote = "https://github.com/gflags/gflags.git",
+    tag = "v2.2.2",
+)
diff --git a/third_party/shell-encryption/src/bits_util.h b/third_party/shell-encryption/src/bits_util.h
new file mode 100644
index 0000000..9600538
--- /dev/null
+++ b/third_party/shell-encryption/src/bits_util.h
@@ -0,0 +1,89 @@
+#ifndef RLWE_BITS_UTIL_H_
+#define RLWE_BITS_UTIL_H_
+
+#include <stdint.h>
+
+#include "absl/numeric/int128.h"
+#include "integral_types.h"
+
+namespace rlwe {
+namespace internal {
+
+inline unsigned int CountOnesInByte(Uint8 x) {
+  Uint8 x0 = x & 0x55;
+  Uint8 x1 = (x >> 1) & 0x55;
+  x = x0 + x1;
+
+  x0 = x & 0x33;
+  x1 = (x >> 2) & 0x33;
+  x = x0 + x1;
+
+  x0 = x & 0x0F;
+  x1 = (x >> 4) & 0x0F;
+  return x0 + x1;
+}
+
+inline unsigned int CountOnes64(Uint64 x) {
+  Uint64 x0 = x & 0x5555555555555555;
+  Uint64 x1 = (x >> 1) & 0x5555555555555555;
+  x = x0 + x1;
+
+  x0 = x & 0x3333333333333333;
+  x1 = (x >> 2) & 0x3333333333333333;
+  x = x0 + x1;
+
+  x0 = x & 0x0F0F0F0F0F0F0F0F;
+  x1 = (x >> 4) & 0x0F0F0F0F0F0F0F0F;
+  x = x0 + x1;
+
+  x0 = x & 0x00FF00FF00FF00FF;
+  x1 = (x >> 8) & 0x00FF00FF00FF00FF;
+  x = x0 + x1;
+
+  x0 = x & 0x0000FFFF0000FFFF;
+  x1 = (x >> 16) & 0x0000FFFF0000FFFF;
+  x = x0 + x1;
+
+  x0 = x & 0x00000000FFFFFFFF;
+  x1 = (x >> 32) & 0x00000000FFFFFFFF;
+  return x0 + x1;
+}
+
+inline unsigned int CountLeadingZeros64(Uint64 x) {
+  unsigned int zeros = 64;
+  if (x >> 32) {
+    zeros -= 32;
+    x >>= 32;
+  }
+  if (x >> 16) {
+    zeros -= 16;
+    x >>= 16;
+  }
+  if (x >> 8) {
+    zeros -= 8;
+    x >>= 8;
+  }
+  if (x >> 4) {
+    zeros -= 4;
+    x >>= 4;
+  }
+  if (x >> 2) {
+    zeros -= 2;
+    x >>= 2;
+  }
+  if (x >> 1) {
+    zeros -= 1;
+    x >>= 1;
+  }
+  return zeros - x;
+}
+
+inline unsigned int CountLeadingZeros128(absl::uint128 x) {
+  if (Uint64 hi = absl::Uint128High64(x)) return CountLeadingZeros64(hi);
+  return CountLeadingZeros64(absl::Uint128Low64(x)) + 64;
+}
+
+}  // namespace internal
+}  // namespace rlwe
+
+#endif  // RLWE_BITS_UTIL_H_
diff --git a/third_party/shell-encryption/src/bits_util_test.cc b/third_party/shell-encryption/src/bits_util_test.cc
new file mode 100644
index 0000000..c6b4a86
--- /dev/null
+++ b/third_party/shell-encryption/src/bits_util_test.cc
@@ -0,0 +1,36 @@
+#include "bits_util.h"
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
+using ::testing::Eq;
+
+namespace {
+
+TEST(BitsUtilTest, CountOnes64Works) {
+  EXPECT_THAT(rlwe::internal::CountOnes64(0xFF000000000000FF), Eq(16));
+  EXPECT_THAT(rlwe::internal::CountOnes64(0xFF000000000000FE), Eq(15));
+  EXPECT_THAT(rlwe::internal::CountOnes64(0xFF0000000000FF00), Eq(16));
+  EXPECT_THAT(rlwe::internal::CountOnes64(0x1111111111111111), Eq(16));
+  EXPECT_THAT(rlwe::internal::CountOnes64(0x0321212121212121), Eq(16));
+}
+
+TEST(BitsUtilTest, CountOnesInByte) {
+  EXPECT_THAT(rlwe::internal::CountOnesInByte(0x00), Eq(0));
+  EXPECT_THAT(rlwe::internal::CountOnesInByte(0x01), Eq(1));
+  EXPECT_THAT(rlwe::internal::CountOnesInByte(0x11), Eq(2));
+  EXPECT_THAT(rlwe::internal::CountOnesInByte(0x22), Eq(2));
+  EXPECT_THAT(rlwe::internal::CountOnesInByte(0x44), Eq(2));
+  EXPECT_THAT(rlwe::internal::CountOnesInByte(0xFF), Eq(8));
+  EXPECT_THAT(rlwe::internal::CountOnesInByte(0xEE), Eq(6));
+}
+
+TEST(BitsUtilTest, CountLeadingZeros64Works) {
+  rlwe::Uint64 value = 0x8000000000000000;
+  for (int i = 0; i < 64; i++) {
+    EXPECT_THAT(rlwe::internal::CountLeadingZeros64(value), Eq(i));
+    value >>= 1;
+  }
+}
+
+}  // namespace
diff --git a/third_party/shell-encryption/src/constants.h b/third_party/shell-encryption/src/constants.h
new file mode 100644
index 0000000..5d58ce96
--- /dev/null
+++ b/third_party/shell-encryption/src/constants.h
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RLWE_CONSTANTS_H_
+#define RLWE_CONSTANTS_H_
+
+#include <cstdint>
+
+#include "absl/numeric/int128.h"
+#include "integral_types.h"
+
+namespace rlwe {
+
+// To generate parameters for this Ring-LWE system, we need to choose a prime
+// modulus q. In order for us to perform NTT transforms on dimension 2^N
+// polynomials, we require 2^{N+1} to divide q-1. Thus, we set moduli to be
+// primes of the form q = p*2^{N+1} + 1, where N becomes our LogDegreeBound.
+
+// Parameters from the New Hope key exchange protocol. Note that we are not
+// using these parameters for key exchange in this library.
+constexpr Uint64 kNewhopeModulus = 12289;
+constexpr Uint64 kNewhopeLogDegreeBound = 10;
+constexpr Uint64 kNewhopeDegreeBound = 1 << kNewhopeLogDegreeBound;
+
+// Montgomery parameters for a 59-bit modulus.
+constexpr Uint64 kModulus59 = 332366567264636929;
+constexpr Uint64 kInvModulus59 = 7124357790306815999;
+constexpr Uint64 kLogDegreeBound59 = 10;
+constexpr Uint64 kDegreeBound59 = 1L << kLogDegreeBound59;
+
+// RLWE parameters for a 44-bit modulus.
+constexpr Uint64 kModulus44 = 17592169240577;
+constexpr Uint64 kLogDegreeBound44 = 10;
+constexpr Uint64 kDegreeBound44 = 1L << kLogDegreeBound44;
+
+// RLWE parameters for 128-element database in PIR.
+constexpr Uint64 kModulus1PIR128 = 17592173449217;  // 44-bit modulus
+constexpr Uint64 kModulus2PIR128 = 8380417;         // 23-bit modulus
+constexpr Uint64 kLogTPIR128 = 10;
+constexpr Uint64 kLogDegreeBoundPIR128 = 10;
+constexpr Uint64 kDegreeBoundPIR128 = 1L << kLogDegreeBoundPIR128;
+
+// RLWE parameters for 256-element database in PIR.
+constexpr Uint64 kModulus1PIR256 = 8796087789569;  // 43-bit modulus
+constexpr Uint64 kModulus2PIR256 = 2056193;        // 21-bit modulus
+constexpr Uint64 kLogTPIR256 = 9;
+constexpr Uint64 kLogDegreeBoundPIR256 = 10;
+constexpr Uint64 kDegreeBoundPIR256 = 1L << kLogDegreeBoundPIR256;
+
+// RLWE parameters for a 25-bit and a 29-bit moduli, both congruent to 4 modulo
+// 5 = (1 << 2) + 1. These moduli will be useful for testing of modulus
+// switching.
+constexpr Uint64 kModulus29 = 463187969;
+constexpr Uint64 kLogDegreeBound29 = 10;
+constexpr Uint64 kDegreeBound29 = 1L << kLogDegreeBound29;
+constexpr Uint64 kModulus25 = 33538049;
+constexpr Uint64 kLogDegreeBound25 = 10;
+constexpr Uint64 kDegreeBound25 = 1L << kLogDegreeBound25;
+
+// RLWE parameters for an 80-bit modulus.
+// The modulus represented in decimal is 646119422561999443726337.
+constexpr absl::uint128 kModulus80 =
+    absl::MakeUint128(35026, 3764636248688824321);
+constexpr Uint64 kLogDegreeBound80 = 11;
+constexpr Uint64 kDegreeBound80 = 1L << kLogDegreeBound80;
+
+constexpr Uint64 kMaxNumCoeffs = 1L << 15;
+constexpr Uint64 kMaxLogNumCoeffs = 15;
+constexpr Uint64 kMaxVariance = 256;
+
+}  // namespace rlwe
+
+#endif  // RLWE_CONSTANTS_H_
diff --git a/third_party/shell-encryption/src/error_params.h b/third_party/shell-encryption/src/error_params.h
new file mode 100644
index 0000000..1646df1
--- /dev/null
+++ b/third_party/shell-encryption/src/error_params.h
@@ -0,0 +1,141 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// The constants in this file represent an expected bound on the size of certain
+// NTT polynomials. The size is defined as the l-infinity norm over all
+// coefficients, in other words, the size of the largest coefficient. Each bound
+// is chosen to be 6 * sqrt(V), where V is the NTT coefficients' variance. Even
+// after union-bounding over all N coefficients, this provides a
+// high-probability bound for the l-infinity norm of the NTT polynomial.
+
+#ifndef RLWE_ERROR_H_
+#define RLWE_ERROR_H_
+
+#include <cmath>
+
+#include "montgomery.h"
+#include "ntt_parameters.h"
+#include "statusor.h"
+
+namespace rlwe {
+
+// A class that stores the error constants. This class only accurate computes
+// error when the plaintext modulus is sufficiently small (less than 64 bits).
+template <typename ModularInt>
+class ErrorParams {
+ public:
+  static rlwe::StatusOr<ErrorParams> Create(
+      const int log_t, Uint64 variance, typename ModularInt::Params* params,
+      const rlwe::NttParameters<ModularInt>* ntt_params) {
+    if (log_t > params->log_modulus - 1) {
+      return absl::InvalidArgumentError(
+          absl::StrCat("The value log_t, ", log_t,
+                       ", must be smaller than log_modulus - 1, ",
+                       params->log_modulus - 1, "."));
+    }
+    if (variance > kMaxVariance) {
+      return absl::InvalidArgumentError(absl::StrCat(
+          "The variance, ", variance, ", must be at most ", kMaxVariance, "."));
+    }
+    return ErrorParams(log_t, variance, params, ntt_params);
+  }
+
+  // Accessors for constants.
+  double B_plaintext() const { return b_plaintext_; }
+  double B_encryption() const { return b_encryption_; }
+  double B_scale() const { return b_scale_; }
+
+  // A polynomial consisting of error terms is added to the ciphertext during
+  // relinearization. The noise of a ciphertext increases additively by the size
+  // of the polynomial, which depends on the decomposition modulus of the
+  // key-switching matrix.
+  double B_relinearize(int log_decomposition_modulus) const {
+    // The number of digits needed to represent integers mod modulus in base
+    // decomposition modulus.
+    int num_digits = (log_decomposition_modulus + log_modulus_ - 1) /
+                     log_decomposition_modulus;
+    int decomposition_modulus = 1 << log_decomposition_modulus;
+    return (8.0 / sqrt(3.0)) * ExportDoubleT() * num_digits * sigma_ *
+           dimension_ * decomposition_modulus;
+  }
+
+ private:
+  // Constructor to set up the params.
+  ErrorParams(const int log_t, Uint64 variance,
+              typename ModularInt::Params* params,
+              const rlwe::NttParameters<ModularInt>* ntt_params)
+      : t_(params->One()) {
+    t_ = (params->One() << log_t) + params->One();
+    dimension_ = ntt_params->number_coeffs;
+    sigma_ = sqrt(variance);
+    log_modulus_ = params->log_modulus;
+
+    // Set error constants.
+    b_plaintext_ = B_plaintext(dimension_);
+    b_encryption_ = B_encryption(dimension_, sigma_);
+    b_scale_ = B_scale(dimension_);
+  }
+
+  // This represents the "size" of an NTT coefficient of a randomly sampled
+  // plaintext polynomial. The ciphertext error grows multiplicatively by this
+  // constant under an absorb. Assume the plaintext polynomial has coefficients
+  // chosen uniformly at random from the range [0, t), where t is the plaintext
+  // modulus. Then the variance of a coefficient is  V = t ^ 2 / 12. In the NTT
+  // domain, the variance is (dimension * t ^ 2 / 12).
+  double B_plaintext(int dimension) {
+    // Return 6 * sqrt(V) where V is the variance of a coefficient in the NTT
+    // domain.
+    return ExportDoubleT() * sqrt(3.0 * dimension);
+  }
+
+  // This represents the "size" of a freshly encrypted ciphertext with a secret
+  // key and error sampled from a centered binomial distribution with the
+  // specified variance. The error and message have size |m + et|. Like
+  // B_plaintext, the variance of a coefficient of m is V = t ^ 2 / 12, and the
+  // variance of a coefficient of e is sigma ^ 2. In the NTT domain we can bound
+  // the coefficient's variance by (dimension * (t ^ 2 / 12 + t * sigma)). The
+  // bound 6 * sqrt(V) is then t * sqrt(dimension) * (sqrt(3.0) + 6.0 * sigma).
+  double B_encryption(int dimension, double sigma) {
+    return ExportDoubleT() * sqrt(dimension) * (sqrt(3.0) + 6.0 * sigma);
+  }
+
+  // When modulus switching a ciphertext from a modulus q to a smaller modulus
+  // p, the polynomial is scaled by (p / q) and a small rounding polynomial is
+  // added so that the result is the closest integer polynomial with c' = c mod
+  // t. The rounding polynomial's size contributes additively to the ciphertext
+  // error, and its size is given by this constant.
+  double B_scale(int dimension) {
+    return ExportDoubleT() *
+           (sqrt(3.0 * dimension) + 8.0 * dimension * sqrt(1 / 3.0));
+  }
+
+  // This returns the least 64 bits of t_. If t_ is much larger than 64 bits,
+  // this will return inaccurate error estimates.
+  double ExportDoubleT() const {
+    return static_cast<double>(ModularInt::ExportUInt64(t_));
+  }
+
+  double b_plaintext_;
+  double b_encryption_;
+  double b_scale_;
+  int log_modulus_;
+  typename ModularInt::Int t_;
+  int dimension_;
+  double sigma_;
+};
+
+}  //  namespace rlwe
+
+#endif  // RLWE_ERROR_H_
diff --git a/third_party/shell-encryption/src/error_params_test.cc b/third_party/shell-encryption/src/error_params_test.cc
new file mode 100644
index 0000000..d0d208d
--- /dev/null
+++ b/third_party/shell-encryption/src/error_params_test.cc
@@ -0,0 +1,196 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RLWE_ERROR_PARAMS_TEST_H_
+#define RLWE_ERROR_PARAMS_TEST_H_
+
+#include "error_params.h"
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "constants.h"
+#include "montgomery.h"
+#include "ntt_parameters.h"
+#include "prng/integral_prng_types.h"
+#include "status_macros.h"
+#include "symmetric_encryption.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+#include "testing/testing_prng.h"
+#include "testing/testing_utils.h"
+
+namespace {
+
+using ::rlwe::testing::StatusIs;
+using ::testing::HasSubstr;
+
+// Number of samples used to compute the actual variance.
+const rlwe::Uint64 kSamples = 50;
+
+using uint_m = rlwe::MontgomeryInt<rlwe::Uint32>;
+using Polynomial = rlwe::Polynomial<uint_m>;
+using Ciphertext = rlwe::SymmetricRlweCiphertext<uint_m>;
+using Key = rlwe::SymmetricRlweKey<uint_m>;
+
+class ErrorParamsTest : public testing::Test {
+ protected:
+  void SetUp() override {
+    ASSERT_OK_AND_ASSIGN(params14_,
+                         rlwe::testing::ConstructMontgomeryIntParams());
+    ASSERT_OK_AND_ASSIGN(ntt_params_,
+                         rlwe::InitializeNttParameters<uint_m>(
+                             rlwe::testing::kLogCoeffs, params14_.get()));
+    ASSERT_OK_AND_ASSIGN(auto error_params, rlwe::ErrorParams<uint_m>::Create(
+                                                rlwe::testing::kDefaultLogT,
+                                                rlwe::testing::kDefaultVariance,
+                                                params14_.get(), &ntt_params_));
+    error_params_ = absl::make_unique<rlwe::ErrorParams<uint_m>>(error_params);
+  }
+
+  // Computes the l-infinity norm of a vector of Ints.
+  uint_m::Int ComputeNorm(std::vector<uint_m::Int> coeffs) {
+    return *std::max_element(coeffs.begin(), coeffs.end());
+  }
+
+  // Convert a vector of integers to a vector of montgomery integers.
+  rlwe::StatusOr<std::vector<uint_m>> ConvertToMontgomery(
+      const std::vector<uint_m::Int>& coeffs) {
+    return rlwe::testing::ConvertToMontgomery<uint_m>(coeffs, params14_.get());
+  }
+
+  // Sample a random key.
+  rlwe::StatusOr<Key> SampleKey(
+      uint_m::Int variance = rlwe::testing::kDefaultVariance,
+      uint_m::Int log_t = rlwe::testing::kDefaultLogT) {
+    RLWE_ASSIGN_OR_RETURN(std::string prng_seed,
+                          rlwe::SingleThreadPrng::GenerateSeed());
+    RLWE_ASSIGN_OR_RETURN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    return Key::Sample(rlwe::testing::kLogCoeffs, variance, log_t,
+                       params14_.get(), &ntt_params_, prng.get());
+  }
+
+  // Encrypt a plaintext.
+  rlwe::StatusOr<Ciphertext> Encrypt(
+      const Key& key, const std::vector<uint_m::Int>& plaintext) {
+    RLWE_ASSIGN_OR_RETURN(auto m_p, ConvertToMontgomery(plaintext));
+    auto plaintext_ntt =
+        Polynomial::ConvertToNtt(m_p, ntt_params_, params14_.get());
+    RLWE_ASSIGN_OR_RETURN(std::string prng_seed,
+                          rlwe::SingleThreadPrng::GenerateSeed());
+    RLWE_ASSIGN_OR_RETURN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    return rlwe::Encrypt<uint_m>(key, plaintext_ntt, error_params_.get(),
+                                 prng.get());
+  }
+
+  // Decrypt without removing the error, returning (m + et).
+  rlwe::StatusOr<std::vector<uint_m::Int>> GetErrorAndMessage(
+      const Key& key, const Ciphertext& ciphertext) {
+    Polynomial error_and_message_ntt(key.Len(), key.ModulusParams());
+    Polynomial key_powers = key.Key();
+    for (int i = 0; i < ciphertext.Len(); i++) {
+      // Extract component i.
+      RLWE_ASSIGN_OR_RETURN(Polynomial ci, ciphertext.Component(i));
+
+      if (i > 1) {
+        RLWE_RETURN_IF_ERROR(
+            key_powers.MulInPlace(key.Key(), key.ModulusParams()));
+      }
+      // Beyond c0, multiply the exponentiated key in.
+      if (i > 0) {
+        RLWE_RETURN_IF_ERROR(ci.MulInPlace(key_powers, key.ModulusParams()));
+      }
+      RLWE_RETURN_IF_ERROR(
+          error_and_message_ntt.AddInPlace(ci, key.ModulusParams()));
+    }
+    auto error_and_message = error_and_message_ntt.InverseNtt(
+        *(key.NttParams()), key.ModulusParams());
+
+    // Convert the integers mod q to integers.
+    std::vector<uint_m::Int> error_and_message_ints(error_and_message.size(),
+                                                    0);
+    for (int i = 0; i < error_and_message.size(); i++) {
+      error_and_message_ints[i] =
+          error_and_message[i].ExportInt(key.ModulusParams());
+      if (error_and_message_ints[i] > (key.ModulusParams()->modulus >> 1)) {
+        error_and_message_ints[i] =
+            key.ModulusParams()->modulus - error_and_message_ints[i];
+      }
+    }
+    return error_and_message_ints;
+  }
+
+  // Modulus params.
+  std::unique_ptr<uint_m::Params> params14_;
+  // NTT params.
+  rlwe::NttParameters<uint_m> ntt_params_;
+  // Error params.
+  std::unique_ptr<rlwe::ErrorParams<uint_m>> error_params_;
+};
+
+TEST_F(ErrorParamsTest, CreateError) {
+  // large value for log_t
+  const int log_t = params14_->log_modulus;
+  EXPECT_THAT(
+      rlwe::ErrorParams<uint_m>::Create(log_t, rlwe::testing::kDefaultVariance,
+                                        params14_.get(), &ntt_params_),
+      StatusIs(
+          ::absl::StatusCode::kInvalidArgument,
+          HasSubstr(absl::StrCat("The value log_t, ", log_t,
+                                 ", must be smaller than log_modulus - 1, ",
+                                 log_t - 1, "."))));
+}
+
+TEST_F(ErrorParamsTest, PlaintextError) {
+  // Randomly sample polynomials and expect l-infinity norm is bounded by
+  // b_plaintext.
+  for (int i = 0; i < kSamples; i++) {
+    // Samples a polynomial with kLogT and kDefaultCoeffs.
+    auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+
+    // Expect that the norm of the coefficients of the plaintext is less than
+    // b_plaintext.
+    uint_m::Int norm = ComputeNorm(plaintext);
+    EXPECT_LT(norm, error_params_->B_plaintext());
+  }
+}
+
+TEST_F(ErrorParamsTest, EncryptionError) {
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+  // Randomly sample polynomials, decrypt, and compute the size of the result
+  // before removing error.
+  for (int i = 0; i < kSamples; i++) {
+    // Expect that the norm of the coefficients of (m + et) is less than
+    // b_encryption.
+    auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+    ASSERT_OK_AND_ASSIGN(auto error_and_message,
+                         GetErrorAndMessage(key, ciphertext));
+
+    EXPECT_LT(ComputeNorm(error_and_message), error_params_->B_encryption());
+  }
+}
+
+TEST_F(ErrorParamsTest, RelinearizationErrorScalesWithT) {
+  // Error scales by (T / logT) when all other constants are fixed.
+  int small_decomposition_modulus = 1;
+  int large_decomposition_modulus = 10;
+  EXPECT_LT(error_params_->B_relinearize(small_decomposition_modulus),
+            error_params_->B_relinearize(large_decomposition_modulus));
+}
+
+}  //  namespace
+
+#endif  // RLWE_ERROR_PARAMS_TEST_H_
diff --git a/third_party/shell-encryption/src/galois_key.h b/third_party/shell-encryption/src/galois_key.h
new file mode 100644
index 0000000..994d6cd
--- /dev/null
+++ b/third_party/shell-encryption/src/galois_key.h
@@ -0,0 +1,115 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RLWE_GALOIS_KEY_H_
+#define RLWE_GALOIS_KEY_H_
+
+#include <cstdint>
+#include <vector>
+
+#include "absl/strings/str_cat.h"
+#include "relinearization_key.h"
+#include "status_macros.h"
+#include "statusor.h"
+
+namespace rlwe {
+
+// Implements a GaloisKey, a type of key-switching matrix that transforms a
+// ciphertext encrypted with (1, s(x^substitution_power)) to a ciphertext that
+// encrypts the same message under the canonical secret key (1, s). This can be
+// viewed as a RelinearizationKey of length two and a substitution_power > 1. A
+// GaloisKey can only be applied to ciphertexts whose PowerOfS exactly matches
+// the substitution_power.
+//
+// GaloisKeys are constructed based on the secret key. Two GaloisKeys that
+// correspond to the same secret key, substitution power, and use the same
+// decomposition modulus will not necessarily be equal. This is due to
+// randomness that is sampled when a GaloisKey is created. However, either
+// GaloisKey may be used to key-switch the same ciphertext.
+//
+// Details can be found in Appendix D.2 of https://eprint.iacr.org/2011/566.pdf
+template <typename ModularInt>
+class GaloisKey {
+ public:
+  // Initializes a GaloisKey based on a SymmetricRlweKey key that can key-switch
+  // two component ciphertexts. A positive log_decomposition_modulus corresponds
+  // to the decomposition modulus T. The substitution_power corresponds to the
+  // power of x in the secret key polynomial s(x^substitution_power) that the
+  // ciphertext is encrypted with. The prng_seed is used to generate and encode
+  // the bottom row of the matrix, which consists of random entries.
+  static rlwe::StatusOr<GaloisKey> Create(
+      const SymmetricRlweKey<ModularInt>& key, absl::string_view prng_seed,
+      Uint64 substitution_power, Uint64 log_decomposition_modulus) {
+    RLWE_ASSIGN_OR_RETURN(auto relinearization_key,
+                          RelinearizationKey<ModularInt>::Create(
+                              key, prng_seed, /*num_parts=*/2,
+                              log_decomposition_modulus, substitution_power));
+    return GaloisKey(std::move(relinearization_key));
+  }
+
+  // Takes a SymmetricRlweCiphertext with 2 components encrypted under
+  // s(x^{substitution_power}) and returns a 2 component SymmetricRlweCiphertext
+  // encoding the same message. The PowerOfS of the ciphertext is updated to 1.
+  // Returns an error when the number of components is larger than 2.
+  rlwe::StatusOr<SymmetricRlweCiphertext<ModularInt>> ApplyTo(
+      const SymmetricRlweCiphertext<ModularInt>& ciphertext) const {
+    if (ciphertext.PowerOfS() != SubstitutionPower()) {
+      return absl::InvalidArgumentError(absl::StrCat(
+          "Ciphertext PowerOfS: ", ciphertext.PowerOfS(),
+          " doesn't match the key substitution power: ", SubstitutionPower()));
+    }
+
+    return relinearization_key_.ApplyTo(ciphertext);
+  }
+
+  // Returns a SerializedGaloisKey containing a representation of the
+  // key-switching matrix and the power of s that corresponds to this
+  // key-switching matrix.
+  rlwe::StatusOr<SerializedGaloisKey> Serialize() const {
+    SerializedGaloisKey output;
+    RLWE_ASSIGN_OR_RETURN(*output.mutable_key(),
+                          relinearization_key_.Serialize());
+    return output;
+  }
+
+  // Requires that the number of NTT Polynomials in the key field of the
+  // SerializedGaloisKey is (2 * num_parts * dimension) where dimension is the
+  // number of digits needed to represent the modulus in base
+  // 2^{log_decomposition_modulus}. Crashes for non-valid input parameters.
+  static rlwe::StatusOr<GaloisKey> Deserialize(
+      const SerializedGaloisKey& serialized,
+      typename ModularInt::Params* modulus_params,
+      const NttParameters<ModularInt>* ntt_params) {
+    RLWE_ASSIGN_OR_RETURN(RelinearizationKey<ModularInt> key,
+                          RelinearizationKey<ModularInt>::Deserialize(
+                              serialized.key(), modulus_params, ntt_params));
+    return GaloisKey(std::move(key));
+  }
+  // Substitution Power accessor.
+  int SubstitutionPower() const {
+    return relinearization_key_.SubstitutionPower();
+  }
+
+ private:
+  GaloisKey(RelinearizationKey<ModularInt> relinearization_key)
+      : relinearization_key_(std::move(relinearization_key)) {}
+
+  // A relinearization key.
+  RelinearizationKey<ModularInt> relinearization_key_;
+};
+
+}  //  namespace rlwe
+
+#endif  // RLWE_GALOIS_KEY_H_
diff --git a/third_party/shell-encryption/src/galois_key_test.cc b/third_party/shell-encryption/src/galois_key_test.cc
new file mode 100644
index 0000000..a2b5694
--- /dev/null
+++ b/third_party/shell-encryption/src/galois_key_test.cc
@@ -0,0 +1,403 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "galois_key.h"
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "constants.h"
+#include "montgomery.h"
+#include "ntt_parameters.h"
+#include "polynomial.h"
+#include "prng/integral_prng_types.h"
+#include "status_macros.h"
+#include "symmetric_encryption.h"
+#include "testing/protobuf_matchers.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+#include "testing/testing_prng.h"
+#include "testing/testing_utils.h"
+
+namespace {
+
+using Uint64 = rlwe::Uint64;
+
+unsigned int seed = 0;
+
+// Set constants.
+const Uint64 kLogPlaintextModulus = 1;
+const Uint64 kPlaintextModulus = (1 << kLogPlaintextModulus) + 1;
+const Uint64 kLogDecompositionModulus = 2;
+const Uint64 kLargeLogDecompositionModulus = 31;
+
+// Useful typedefs.
+using uint_m = rlwe::MontgomeryInt<Uint64>;
+using Polynomial = rlwe::Polynomial<uint_m>;
+using Ciphertext = rlwe::SymmetricRlweCiphertext<uint_m>;
+using Key = rlwe::SymmetricRlweKey<uint_m>;
+
+using ::rlwe::testing::EqualsProto;
+using ::rlwe::testing::StatusIs;
+using ::testing::HasSubstr;
+
+// Test fixture.
+class GaloisKeyTest : public ::testing::Test {
+ protected:
+  void SetUp() override {
+    ASSERT_OK_AND_ASSIGN(params59_, uint_m::Params::Create(rlwe::kModulus59));
+    ASSERT_OK_AND_ASSIGN(ntt_params_,
+                         rlwe::InitializeNttParameters<uint_m>(
+                             rlwe::testing::kLogCoeffs, params59_.get()));
+    ASSERT_OK_AND_ASSIGN(
+        auto temp_error_params,
+        rlwe::ErrorParams<uint_m>::Create(rlwe::testing::kDefaultLogT,
+                                          rlwe::testing::kDefaultVariance,
+                                          params59_.get(), &ntt_params_));
+    error_params_ =
+        absl::make_unique<rlwe::ErrorParams<uint_m>>(temp_error_params);
+  }
+
+  // Sample a random key.
+  rlwe::StatusOr<Key> SampleKey(
+      Uint64 variance = rlwe::testing::kDefaultVariance,
+      Uint64 log_t = kLogPlaintextModulus) {
+    RLWE_ASSIGN_OR_RETURN(std::string prng_seed,
+                          rlwe::SingleThreadPrng::GenerateSeed());
+    RLWE_ASSIGN_OR_RETURN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    return Key::Sample(rlwe::testing::kLogCoeffs, variance, log_t,
+                       params59_.get(), &ntt_params_, prng.get());
+  }
+
+  // Convert a vector of integers to a vector of montgomery integers.
+  rlwe::StatusOr<std::vector<uint_m>> ConvertToMontgomery(
+      const std::vector<uint_m::Int>& coeffs, uint_m::Params* params) {
+    std::vector<uint_m> output(coeffs.size(), uint_m::ImportZero(params));
+    for (unsigned int i = 0; i < output.size(); i++) {
+      RLWE_ASSIGN_OR_RETURN(output[i], uint_m::ImportInt(coeffs[i], params));
+    }
+    return output;
+  }
+
+  // Sample a random plaintext.
+  std::vector<uint_m::Int> SamplePlaintext(
+      uint_m::Int t = kPlaintextModulus,
+      Uint64 coeffs = rlwe::testing::kCoeffs) {
+    std::vector<uint_m::Int> plaintext(coeffs);
+    for (unsigned int i = 0; i < coeffs; i++) {
+      plaintext[i] = rand_r(&seed) % t;
+    }
+    return plaintext;
+  }
+
+  // Encrypt a plaintext.
+  rlwe::StatusOr<Ciphertext> Encrypt(
+      const Key& key, const std::vector<uint_m::Int>& plaintext) {
+    RLWE_ASSIGN_OR_RETURN(auto mp,
+                          ConvertToMontgomery(plaintext, params59_.get()));
+    auto plaintext_ntt =
+        Polynomial::ConvertToNtt(mp, ntt_params_, params59_.get());
+    RLWE_ASSIGN_OR_RETURN(std::string prng_seed,
+                          rlwe::SingleThreadPrng::GenerateSeed());
+    RLWE_ASSIGN_OR_RETURN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    return rlwe::Encrypt<uint_m>(key, plaintext_ntt, error_params_.get(),
+                                 prng.get());
+  }
+
+  std::unique_ptr<uint_m::Params> params59_;
+  rlwe::NttParameters<uint_m> ntt_params_;
+  std::unique_ptr<rlwe::ErrorParams<uint_m>> error_params_;
+};
+
+TEST_F(GaloisKeyTest, GaloisKeyPowerOfSDoesNotMatchSubPower) {
+  int substitution_power = 3;
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(auto galois_key, rlwe::GaloisKey<uint_m>::Create(
+                                            key, prng_seed, substitution_power,
+                                            kLargeLogDecompositionModulus));
+  auto plaintext = SamplePlaintext(kPlaintextModulus);
+
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(
+      auto subbed_ciphertext,
+      ciphertext.Substitute(substitution_power + 2, ntt_params_));
+  EXPECT_THAT(
+      galois_key.ApplyTo(subbed_ciphertext),
+      StatusIs(::absl::StatusCode::kInvalidArgument,
+               HasSubstr(absl::StrCat(
+                   "Ciphertext PowerOfS: ", subbed_ciphertext.PowerOfS(),
+                   " doesn't match the key substitution power: ",
+                   substitution_power))));
+}
+
+TEST_F(GaloisKeyTest, GaloisKeyUpdatesPowerOfS) {
+  int substitution_power = 3;
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(auto galois_key, rlwe::GaloisKey<uint_m>::Create(
+                                            key, prng_seed, substitution_power,
+                                            kLargeLogDecompositionModulus));
+  auto plaintext = SamplePlaintext(kPlaintextModulus);
+
+  // Substituted ciphertext has substition_power PowerOfS.
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto subbed_ciphertext,
+                       ciphertext.Substitute(substitution_power, ntt_params_));
+  EXPECT_EQ(subbed_ciphertext.PowerOfS(), substitution_power);
+
+  // PowerOfS transformed back to 1.
+  ASSERT_OK_AND_ASSIGN(auto transformed_ciphertext,
+                       galois_key.ApplyTo(subbed_ciphertext));
+  EXPECT_EQ(transformed_ciphertext.PowerOfS(), 1);
+}
+
+TEST_F(GaloisKeyTest, KeySwitchedCiphertextDecrypts) {
+  int substitution_power = 3;
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(auto galois_key, rlwe::GaloisKey<uint_m>::Create(
+                                            key, prng_seed, substitution_power,
+                                            kLogDecompositionModulus));
+
+  // Create the initial plaintexts.
+  std::vector<uint_m::Int> plaintext = SamplePlaintext(kPlaintextModulus);
+
+  // Create the expected polynomial output by substituting the plaintext.
+  ASSERT_OK_AND_ASSIGN(auto mp1,
+                       ConvertToMontgomery(plaintext, params59_.get()));
+  Polynomial plaintext_ntt =
+      Polynomial::ConvertToNtt(mp1, ntt_params_, params59_.get());
+  ASSERT_OK_AND_ASSIGN(Polynomial expected_ntt,
+                       plaintext_ntt.Substitute(substitution_power, ntt_params_,
+                                                params59_.get()));
+  std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+      expected_ntt.InverseNtt(ntt_params_, params59_.get()), params59_->modulus,
+      kPlaintextModulus, params59_.get());
+
+  // Encrypt and substitute the ciphertext. Decrypt with a substituted key.
+  ASSERT_OK_AND_ASSIGN(auto intermediate, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, intermediate.Substitute(
+                                            substitution_power, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto transformed_ciphertext,
+                       galois_key.ApplyTo(ciphertext));
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, transformed_ciphertext));
+
+  EXPECT_EQ(decrypted, expected);
+}
+
+TEST_F(GaloisKeyTest, ComposingSubstitutions) {
+  // Ensure that a ciphertext can be substituted by composing substitutions in
+  // steps that have GaloisKeys.
+  int substitution_power = 9;
+  // Applying the substitution s -> s(x^3) twice will yield the substitution
+  // power.
+  int galois_power = 3;
+
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+  ASSERT_OK_AND_ASSIGN(auto galois_key, rlwe::GaloisKey<uint_m>::Create(
+                                            key, prng_seed, galois_power,
+                                            kLogDecompositionModulus));
+  auto plaintext = SamplePlaintext(kPlaintextModulus);
+
+  // Create the expected polynomial output by substituting the plaintext.
+  ASSERT_OK_AND_ASSIGN(auto mp1,
+                       ConvertToMontgomery(plaintext, params59_.get()));
+  Polynomial plaintext_ntt =
+      Polynomial::ConvertToNtt(mp1, ntt_params_, params59_.get());
+  ASSERT_OK_AND_ASSIGN(Polynomial expected_ntt,
+                       plaintext_ntt.Substitute(substitution_power, ntt_params_,
+                                                params59_.get()));
+  std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+      expected_ntt.InverseNtt(ntt_params_, params59_.get()), params59_->modulus,
+      kPlaintextModulus, params59_.get());
+
+  // Encrypt and substitute the ciphertext in steps using a single galois key.
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto sub_ciphertext,
+                       ciphertext.Substitute(galois_power, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext_power_3,
+                       galois_key.ApplyTo(sub_ciphertext));
+  ASSERT_OK_AND_ASSIGN(
+      auto sub_ciphertext_power_3,
+      ciphertext_power_3.Substitute(galois_power, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext_power_9,
+                       galois_key.ApplyTo(sub_ciphertext_power_3));
+
+  EXPECT_EQ(ciphertext_power_9.PowerOfS(), 1);
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, ciphertext_power_9));
+  EXPECT_EQ(decrypted, expected);
+}
+
+TEST_F(GaloisKeyTest, LargeDecompositionModulus) {
+  int substitution_power = 3;
+
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(auto galois_key, rlwe::GaloisKey<uint_m>::Create(
+                                            key, prng_seed, substitution_power,
+                                            kLargeLogDecompositionModulus));
+  auto plaintext = SamplePlaintext(kPlaintextModulus);
+
+  // Create the expected polynomial output by substituting the plaintext.
+  ASSERT_OK_AND_ASSIGN(auto mp1,
+                       ConvertToMontgomery(plaintext, params59_.get()));
+  Polynomial plaintext_ntt =
+      Polynomial::ConvertToNtt(mp1, ntt_params_, params59_.get());
+  ASSERT_OK_AND_ASSIGN(Polynomial expected_ntt,
+                       plaintext_ntt.Substitute(substitution_power, ntt_params_,
+                                                params59_.get()));
+  std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+      expected_ntt.InverseNtt(ntt_params_, params59_.get()), params59_->modulus,
+      kPlaintextModulus, params59_.get());
+
+  // Encrypt and substitute the ciphertext. Decrypt with a substituted key.
+  ASSERT_OK_AND_ASSIGN(auto intermediate, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, intermediate.Substitute(
+                                            substitution_power, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto transformed_ciphertext,
+                       galois_key.ApplyTo(ciphertext));
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, transformed_ciphertext));
+
+  EXPECT_EQ(decrypted, expected);
+}
+
+TEST_F(GaloisKeyTest, CiphertextWithTooManyComponents) {
+  int substitution_power = 3;
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(auto galois_key, rlwe::GaloisKey<uint_m>::Create(
+                                            key, prng_seed, substitution_power,
+                                            kLargeLogDecompositionModulus));
+  auto plaintext = SamplePlaintext(kPlaintextModulus);
+
+  ASSERT_OK_AND_ASSIGN(auto intermediate, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, intermediate.Substitute(
+                                            substitution_power, ntt_params_));
+
+  ASSERT_OK_AND_ASSIGN(auto product, ciphertext* ciphertext);
+  EXPECT_THAT(galois_key.ApplyTo(product),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("RelinearizationKey not large enough")));
+}
+
+TEST_F(GaloisKeyTest, DeserializedKeySwitches) {
+  int substitution_power = 3;
+  auto plaintext = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(auto galois_key, rlwe::GaloisKey<uint_m>::Create(
+                                            key, prng_seed, substitution_power,
+                                            kLargeLogDecompositionModulus));
+
+  // Serialize and deserialize.
+  ASSERT_OK_AND_ASSIGN(auto serialized, galois_key.Serialize());
+  ASSERT_OK_AND_ASSIGN(auto deserialized,
+                       rlwe::GaloisKey<uint_m>::Deserialize(
+                           serialized, params59_.get(), &ntt_params_));
+
+  // Create the expected polynomial output by substituting the plaintext.
+  ASSERT_OK_AND_ASSIGN(auto mp,
+                       ConvertToMontgomery(plaintext, params59_.get()));
+  Polynomial plaintext_ntt =
+      Polynomial::ConvertToNtt(mp, ntt_params_, params59_.get());
+  ASSERT_OK_AND_ASSIGN(Polynomial expected_ntt,
+                       plaintext_ntt.Substitute(substitution_power, ntt_params_,
+                                                params59_.get()));
+  std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+      expected_ntt.InverseNtt(ntt_params_, params59_.get()), params59_->modulus,
+      kPlaintextModulus, params59_.get());
+
+  // Encrypt and substitute the ciphertext.
+  ASSERT_OK_AND_ASSIGN(auto intermediate, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, intermediate.Substitute(
+                                            substitution_power, ntt_params_));
+
+  // Key-switch with the original galois key.
+  ASSERT_OK_AND_ASSIGN(auto key_switched_ciphertext,
+                       galois_key.ApplyTo(ciphertext));
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, key_switched_ciphertext));
+
+  // Key-switch with the deserialized galois key.
+  ASSERT_OK_AND_ASSIGN(auto key_switched_ciphertext_deserialized,
+                       deserialized.ApplyTo(ciphertext));
+  ASSERT_OK_AND_ASSIGN(
+      std::vector<uint_m::Int> deserialized_decrypted,
+      rlwe::Decrypt<uint_m>(key, key_switched_ciphertext_deserialized));
+
+  EXPECT_EQ(deserialized_decrypted, expected);
+  EXPECT_EQ(deserialized_decrypted, decrypted);
+}
+
+TEST_F(GaloisKeyTest, DeserializationFailsWithIncorrectModulus) {
+  int substitution_power = 3;
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(auto galois_key, rlwe::GaloisKey<uint_m>::Create(
+                                            key, prng_seed, substitution_power,
+                                            kLargeLogDecompositionModulus));
+
+  ASSERT_OK_AND_ASSIGN(auto params29, uint_m::Params::Create(rlwe::kModulus29));
+  // Serialize and deserialize.
+  ASSERT_OK_AND_ASSIGN(auto serialized, galois_key.Serialize());
+  EXPECT_THAT(
+      rlwe::GaloisKey<uint_m>::Deserialize(serialized, params29.get(),
+                                           &ntt_params_),
+      StatusIs(::absl::StatusCode::kInvalidArgument,
+               HasSubstr(absl::StrCat(
+                   "Log decomposition modulus, ", kLargeLogDecompositionModulus,
+                   ", must be at most: ", params29->log_modulus, "."))));
+}
+
+TEST_F(GaloisKeyTest, SerializationsOfIdentialKeysEqual) {
+  int substitution_power = 3;
+  auto plaintext = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(auto galois_key, rlwe::GaloisKey<uint_m>::Create(
+                                            key, prng_seed, substitution_power,
+                                            kLargeLogDecompositionModulus));
+  auto galois_key_copy = galois_key;
+
+  // Serialize both matrices.
+  ASSERT_OK_AND_ASSIGN(auto serialized, galois_key.Serialize());
+  ASSERT_OK_AND_ASSIGN(auto serialized_copy, galois_key_copy.Serialize());
+
+  // Check that two serializations of the same matrix are equal.
+  EXPECT_THAT(serialized_copy, EqualsProto(serialized));
+}
+
+}  //  namespace
diff --git a/third_party/shell-encryption/src/glog/BUILD b/third_party/shell-encryption/src/glog/BUILD
new file mode 100644
index 0000000..fa1d5a9
--- /dev/null
+++ b/third_party/shell-encryption/src/glog/BUILD
@@ -0,0 +1,83 @@
+package(default_visibility = ["//visibility:public"])
+
+cc_library(
+    name = "glog",
+    srcs = [
+        "config.h",
+        "src/base/commandlineflags.h",
+        "src/base/googleinit.h",
+        "src/base/mutex.h",
+        "src/demangle.cc",
+        "src/demangle.h",
+        "src/logging.cc",
+        "src/raw_logging.cc",
+        "src/signalhandler.cc",
+        "src/symbolize.cc",
+        "src/symbolize.h",
+        "src/utilities.cc",
+        "src/utilities.h",
+        "src/vlog_is_on.cc",
+    ] + glob(["src/stacktrace*.h"]),
+    hdrs = [
+        "src/glog/log_severity.h",
+        "src/glog/logging.h",
+        "src/glog/raw_logging.h",
+        "src/glog/stl_logging.h",
+        "src/glog/vlog_is_on.h",
+    ],
+    copts = [
+        "-Wno-sign-compare",
+        "-U_XOPEN_SOURCE",
+    ],
+    includes = ["./src"],
+    linkopts = ["-lpthread"] + select({
+        ":libunwind": ["-lunwind"],
+        "//conditions:default": [],
+    }),
+    visibility = ["//visibility:public"],
+    deps = [
+        "@com_github_gflags_gflags//:gflags",
+    ],
+)
+
+config_setting(
+    name = "libunwind",
+    values = {
+        "define": "libunwind=true",
+    },
+)
+
+genrule(
+    name = "run_configure",
+    srcs = [
+        "README",
+        "Makefile.in",
+        "config.guess",
+        "config.sub",
+        "install-sh",
+        "ltmain.sh",
+        "missing",
+        "libglog.pc.in",
+        "src/config.h.in",
+        "src/glog/logging.h.in",
+        "src/glog/raw_logging.h.in",
+        "src/glog/stl_logging.h.in",
+        "src/glog/vlog_is_on.h.in",
+    ],
+    outs = [
+        "config.h",
+        "src/glog/logging.h",
+        "src/glog/raw_logging.h",
+        "src/glog/stl_logging.h",
+        "src/glog/vlog_is_on.h",
+    ],
+    cmd = "$(location :configure)" +
+          "&& cp -v src/config.h $(location config.h) " +
+          "&& cp -v src/glog/logging.h $(location src/glog/logging.h) " +
+          "&& cp -v src/glog/raw_logging.h $(location src/glog/raw_logging.h) " +
+          "&& cp -v src/glog/stl_logging.h $(location src/glog/stl_logging.h) " +
+          "&& cp -v src/glog/vlog_is_on.h $(location src/glog/vlog_is_on.h) ",
+    tools = [
+        "configure",
+    ],
+)
diff --git a/third_party/shell-encryption/src/glog/LICENSE b/third_party/shell-encryption/src/glog/LICENSE
new file mode 100644
index 0000000..7a4a3ea
--- /dev/null
+++ b/third_party/shell-encryption/src/glog/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/third_party/shell-encryption/src/int256.cc b/third_party/shell-encryption/src/int256.cc
new file mode 100644
index 0000000..f02b7851
--- /dev/null
+++ b/third_party/shell-encryption/src/int256.cc
@@ -0,0 +1,206 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "int256.h"
+
+#include <iomanip>
+#include <iostream>
+#include <sstream>
+
+#include "glog/logging.h"
+#include "absl/numeric/int128.h"
+
+namespace rlwe {
+
+const uint256_pod kuint256max = {absl::kuint128max, absl::kuint128max};
+
+// Returns the 0-based position of the last set bit (i.e., most significant bit)
+// in the given uint64. The argument may not be 0.
+//
+// For example:
+//   Given: 5 (decimal) == 101 (binary)
+//   Returns: 2
+#define STEP(T, n, pos, sh)                   \
+  do {                                        \
+    if ((n) >= (static_cast<T>(1) << (sh))) { \
+      (n) = (n) >> (sh);                      \
+      (pos) |= (sh);                          \
+    }                                         \
+  } while (0)
+static inline int Fls64(Uint64 n) {
+  DCHECK_NE(0, n);
+  int pos = 0;
+  STEP(Uint64, n, pos, 0x20);
+  Uint32 n32 = n;
+  STEP(Uint32, n32, pos, 0x10);
+  STEP(Uint32, n32, pos, 0x08);
+  STEP(Uint32, n32, pos, 0x04);
+  return pos + ((static_cast<Uint64>(0x3333333322221100) >> (n32 << 2)) & 0x3);
+}
+#undef STEP
+
+// Like Fls64() above, but returns the 0-based position of the last set bit
+// (i.e., most significant bit) in the given uint128. The argument may not be 0.
+static inline int Fls128(absl::uint128 n) {
+  if (Uint64 hi = absl::Uint128High64(n)) {
+    return Fls64(hi) + 64;
+  }
+  return Fls64(absl::Uint128Low64(n));
+}
+
+// Like Fls128() above, but returns the 0-based position of the last set bit
+// (i.e., most significant bit) in the given uint256. The argument may not be 0.
+static inline int Fls256(uint256 n) {
+  absl::uint128 hi = Uint256High128(n);
+  if (hi != 0) {
+    return Fls128(hi) + 128;
+  }
+  return Fls128(Uint256Low128(n));
+}
+
+// Long division/modulo for uint256 implemented using the shift-subtract
+// division algorithm adapted from:
+// http://stackoverflow.com/questions/5386377/division-without-using
+void uint256::DivModImpl(uint256 dividend, uint256 divisor,
+                         uint256* quotient_ret, uint256* remainder_ret) {
+  if (divisor == static_cast<uint256>(0)) {
+    LOG(FATAL) << "Division or mod by zero: dividend.hi=" << dividend.hi_
+               << ", lo=" << dividend.lo_;
+  }
+
+  if (divisor > dividend) {
+    *quotient_ret = 0;
+    *remainder_ret = dividend;
+    return;
+  }
+
+  if (divisor == dividend) {
+    *quotient_ret = 1;
+    *remainder_ret = 0;
+    return;
+  }
+
+  uint256 denominator = divisor;
+  uint256 quotient = 0;
+
+  // Left aligns the MSB of the denominator and the dividend.
+  const int shift = Fls256(dividend) - Fls256(denominator);
+  denominator <<= shift;
+
+  // Uses shift-subtract algorithm to divide dividend by denominator. The
+  // remainder will be left in dividend.
+  for (int i = 0; i <= shift; ++i) {
+    quotient <<= 1;
+    if (dividend >= denominator) {
+      dividend -= denominator;
+      quotient |= 1;
+    }
+    denominator >>= 1;
+  }
+
+  *quotient_ret = quotient;
+  *remainder_ret = dividend;
+}
+
+uint256& uint256::operator/=(const uint256& divisor) {
+  uint256 quotient = 0;
+  uint256 remainder = 0;
+  DivModImpl(*this, divisor, &quotient, &remainder);
+  *this = quotient;
+  return *this;
+}
+uint256& uint256::operator%=(const uint256& divisor) {
+  uint256 quotient = 0;
+  uint256 remainder = 0;
+  DivModImpl(*this, divisor, &quotient, &remainder);
+  *this = remainder;
+  return *this;
+}
+
+std::ostream& operator<<(std::ostream& o, const uint256& b) {
+  std::ios_base::fmtflags flags = o.flags();
+
+  // Select a divisor which is the largest power of the base < 2^64.
+  uint256 div;
+  std::streamsize div_base_log;
+  switch (flags & std::ios::basefield) {
+    case std::ios::hex:
+      div = static_cast<Uint64>(0x1000000000000000);  // 16^15
+      div_base_log = 15;
+      break;
+    case std::ios::oct:
+      div = static_cast<Uint64>(01000000000000000000000);  // 8^21
+      div_base_log = 21;
+      break;
+    default:                                               // std::ios::dec
+      div = static_cast<Uint64>(10000000000000000000ull);  // 10^19
+      div_base_log = 19;
+      break;
+  }
+
+  // Now piece together the uint256 representation from five chunks of
+  // the original value, each less than "div" and therefore representable
+  // as a uint64.
+  std::ostringstream os;
+  std::ios_base::fmtflags copy_mask =
+      std::ios::basefield | std::ios::showbase | std::ios::uppercase;
+  os.setf(flags & copy_mask, copy_mask);
+  uint256 high = b;
+  uint256 low;
+  uint256::DivModImpl(high, div, &high, &low);
+  uint256 mid_low;
+  uint256::DivModImpl(high, div, &high, &mid_low);
+  uint256 mid_mid;
+  uint256::DivModImpl(high, div, &high, &mid_mid);
+  uint256 mid_high;
+  uint256::DivModImpl(high, div, &high, &mid_high);
+  bool print = high.lo_ != 0;
+  if (print) {
+    os << high.lo_;
+    os << std::noshowbase << std::setfill('0') << std::setw(div_base_log);
+  }
+  print |= mid_high.lo_ != 0;
+  if (print) {
+    os << mid_high.lo_;
+    os << std::noshowbase << std::setfill('0') << std::setw(div_base_log);
+  }
+  print |= mid_mid.lo_ != 0;
+  if (print) {
+    os << mid_mid.lo_;
+    os << std::noshowbase << std::setfill('0') << std::setw(div_base_log);
+  }
+  print |= mid_low.lo_ != 0;
+  if (print) {
+    os << mid_low.lo_;
+    os << std::noshowbase << std::setfill('0') << std::setw(div_base_log);
+  }
+  os << low.lo_;
+  std::string rep = os.str();
+
+  // Add the requisite padding.
+  std::streamsize width = o.width(0);
+  if (width > rep.size()) {
+    if ((flags & std::ios::adjustfield) == std::ios::left) {
+      rep.append(width - rep.size(), o.fill());
+    } else {
+      rep.insert(0, width - rep.size(), o.fill());
+    }
+  }
+
+  // Stream the final representation in a single "<<" call.
+  return o << rep;
+}
+
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/int256.h b/third_party/shell-encryption/src/int256.h
new file mode 100644
index 0000000..842620c
--- /dev/null
+++ b/third_party/shell-encryption/src/int256.h
@@ -0,0 +1,498 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RLWE_INT256_H_
+#define RLWE_INT256_H_
+
+#include "absl/numeric/int128.h"
+#include "integral_types.h"
+
+namespace rlwe {
+
+struct uint256_pod;
+
+// An unsigned 256-bit integer type. Thread-compatible.
+class uint256 {
+ public:
+  constexpr uint256();
+  constexpr uint256(absl::uint128 top, absl::uint128 bottom);
+
+  // Implicit type conversion is allowed so these behave like familiar int types
+#ifndef SWIG
+  constexpr uint256(int bottom);
+  constexpr uint256(Uint32 bottom);
+#endif
+  constexpr uint256(Uint8 bottom);
+  constexpr uint256(unsigned long bottom);
+  constexpr uint256(unsigned long long bottom);
+  constexpr uint256(absl::uint128 bottom);
+  constexpr uint256(const uint256_pod &val);
+
+  // Conversion operators to other arithmetic types
+  constexpr explicit operator bool() const;
+  constexpr explicit operator char() const;
+  constexpr explicit operator signed char() const;
+  constexpr explicit operator unsigned char() const;
+  constexpr explicit operator char16_t() const;
+  constexpr explicit operator char32_t() const;
+  constexpr explicit operator short() const;
+
+  constexpr explicit operator unsigned short() const;
+  constexpr explicit operator int() const;
+  constexpr explicit operator unsigned int() const;
+  constexpr explicit operator long() const;
+
+  constexpr explicit operator unsigned long() const;
+
+  constexpr explicit operator long long() const;
+
+  constexpr explicit operator unsigned long long() const;
+  constexpr explicit operator absl::int128() const;
+  constexpr explicit operator absl::uint128() const;
+  explicit operator float() const;
+  explicit operator double() const;
+  explicit operator long double() const;
+
+  // Trivial copy constructor, assignment operator and destructor.
+
+  void Initialize(absl::uint128 top, absl::uint128 bottom);
+
+  // Arithmetic operators.
+  uint256& operator+=(const uint256& b);
+  uint256& operator-=(const uint256& b);
+  uint256& operator*=(const uint256& b);
+  // Long division/modulo for uint256.
+  uint256& operator/=(const uint256& b);
+  uint256& operator%=(const uint256& b);
+  uint256 operator++(int);
+  uint256 operator--(int);
+  uint256& operator<<=(int);
+  uint256& operator>>=(int);
+  uint256& operator&=(const uint256& b);
+  uint256& operator|=(const uint256& b);
+  uint256& operator^=(const uint256& b);
+  uint256& operator++();
+  uint256& operator--();
+
+  friend absl::uint128 Uint256Low128(const uint256& v);
+  friend absl::uint128 Uint256High128(const uint256& v);
+
+  // We add "std::" to avoid including all of port.h.
+  friend std::ostream& operator<<(std::ostream& o, const uint256& b);
+
+ private:
+  static void DivModImpl(uint256 dividend, uint256 divisor,
+                         uint256* quotient_ret, uint256* remainder_ret);
+
+  // Little-endian memory order optimizations can benefit from
+  // having lo_ first, hi_ last.
+  // See util/endian/endian.h and Load256/Store256 for storing a uint256.
+  // Adding any new members will cause sizeof(uint256) tests to fail.
+  absl::uint128 lo_;
+  absl::uint128 hi_;
+
+  // Uint256Max()
+  //
+  // Returns the highest value for a 256-bit unsigned integer.
+  friend constexpr uint256 Uint256Max();
+
+  // Not implemented, just declared for catching automatic type conversions.
+  uint256(Uint16);
+  uint256(float v);
+  uint256(double v);
+};
+
+constexpr uint256 Uint256Max() {
+  return uint256((std::numeric_limits<absl::uint128>::max)(),
+                 (std::numeric_limits<absl::uint128>::max)());
+}
+
+// This is a POD form of uint256 which can be used for static variables which
+// need to be operated on as uint256.
+struct uint256_pod {
+  // Note: The ordering of fields is different than 'class uint256' but the
+  // same as its 2-arg constructor.  This enables more obvious initialization
+  // of static instances, which is the primary reason for this struct in the
+  // first place.  This does not seem to defeat any optimizations wrt
+  // operations involving this struct.
+  absl::uint128 hi;
+  absl::uint128 lo;
+};
+
+extern const uint256_pod kuint256max;
+
+// allow uint256 to be logged
+extern std::ostream& operator<<(std::ostream& o, const uint256& b);
+
+// Methods to access low and high pieces of 256-bit value.
+// Defined externally from uint256 to facilitate conversion
+// to native 256-bit types when compilers support them.
+inline absl::uint128 Uint256Low128(const uint256& v) { return v.lo_; }
+inline absl::uint128 Uint256High128(const uint256& v) { return v.hi_; }
+
+// --------------------------------------------------------------------------
+//                      Implementation details follow
+// --------------------------------------------------------------------------
+inline bool operator==(const uint256& lhs, const uint256& rhs) {
+  return (Uint256Low128(lhs) == Uint256Low128(rhs) &&
+          Uint256High128(lhs) == Uint256High128(rhs));
+}
+inline bool operator!=(const uint256& lhs, const uint256& rhs) {
+  return !(lhs == rhs);
+}
+
+inline constexpr uint256::uint256() : lo_(0), hi_(0) {}
+inline constexpr uint256::uint256(absl::uint128 top, absl::uint128 bottom)
+    : lo_(bottom), hi_(top) {}
+inline constexpr uint256::uint256(const uint256_pod& v)
+    : lo_(v.lo), hi_(v.hi) {}
+inline constexpr uint256::uint256(absl::uint128 bottom) : lo_(bottom), hi_(0) {}
+#ifndef SWIG
+inline constexpr uint256::uint256(int bottom)
+      : lo_(bottom), hi_((bottom < 0) ? -1 : 0) {}
+inline constexpr uint256::uint256(Uint32 bottom) : lo_(bottom), hi_(0) {}
+#endif
+inline constexpr uint256::uint256(Uint8 bottom) : lo_(bottom), hi_(0) {}
+
+inline constexpr uint256::uint256(unsigned long bottom)
+    : lo_(bottom), hi_(0) {}
+
+inline constexpr uint256::uint256(unsigned long long bottom)
+    : lo_(bottom), hi_(0) {}
+
+inline void uint256::Initialize(absl::uint128 top, absl::uint128 bottom) {
+  hi_ = top;
+  lo_ = bottom;
+}
+
+// Conversion operators to integer types.
+
+constexpr uint256::operator bool() const { return lo_ || hi_; }
+
+constexpr uint256::operator char() const { return static_cast<char>(lo_); }
+
+constexpr uint256::operator signed char() const {
+  return static_cast<signed char>(lo_);
+}
+
+constexpr uint256::operator unsigned char() const {
+  return static_cast<unsigned char>(lo_);
+}
+
+constexpr uint256::operator char16_t() const {
+  return static_cast<char16_t>(lo_);
+}
+
+constexpr uint256::operator char32_t() const {
+  return static_cast<char32_t>(lo_);
+}
+
+
+constexpr uint256::operator short() const { return static_cast<short>(lo_); }
+
+constexpr uint256::operator unsigned short() const {
+  return static_cast<unsigned short>(lo_);
+}
+
+constexpr uint256::operator int() const { return static_cast<int>(lo_); }
+
+constexpr uint256::operator unsigned int() const {
+  return static_cast<unsigned int>(lo_);
+}
+
+
+constexpr uint256::operator long() const { return static_cast<long>(lo_); }
+
+constexpr uint256::operator unsigned long() const {
+  return static_cast<unsigned long>(lo_);
+}
+
+constexpr uint256::operator long long() const {
+  return static_cast<long long>(lo_);
+}
+
+constexpr uint256::operator unsigned long long() const {
+  return static_cast<unsigned long long>(lo_);
+}
+
+
+constexpr uint256::operator absl::uint128() const { return lo_; }
+constexpr uint256::operator absl::int128() const {
+  return static_cast<absl::int128>(lo_);
+}
+
+// Conversion operators to floating point types.
+
+inline uint256::operator float() const {
+  return static_cast<float>(lo_) + std::ldexp(static_cast<float>(hi_), 128);
+}
+
+inline uint256::operator double() const {
+  return static_cast<double>(lo_) + std::ldexp(static_cast<double>(hi_), 128);
+}
+
+inline uint256::operator long double() const {
+  return static_cast<long double>(lo_) +
+         std::ldexp(static_cast<long double>(hi_), 128);
+}
+
+// Comparison operators.
+
+#define CMP256(op)                                                  \
+  inline bool operator op(const uint256& lhs, const uint256& rhs) { \
+    return (Uint256High128(lhs) == Uint256High128(rhs))             \
+               ? (Uint256Low128(lhs) op Uint256Low128(rhs))         \
+               : (Uint256High128(lhs) op Uint256High128(rhs));      \
+  }
+
+CMP256(<)
+CMP256(>)
+CMP256(>=)
+CMP256(<=)
+
+#undef CMP256
+
+// Unary operators
+
+inline uint256 operator-(const uint256& val) {
+  const absl::uint128 hi_flip = ~Uint256High128(val);
+  const absl::uint128 lo_flip = ~Uint256Low128(val);
+  const absl::uint128 lo_add = lo_flip + 1;
+  if (lo_add < lo_flip) {
+    return uint256(hi_flip + 1, lo_add);
+  }
+  return uint256(hi_flip, lo_add);
+}
+
+inline bool operator!(const uint256& val) {
+  return !Uint256High128(val) && !Uint256Low128(val);
+}
+
+// Logical operators.
+
+inline uint256 operator~(const uint256& val) {
+  return uint256(~Uint256High128(val), ~Uint256Low128(val));
+}
+
+#define LOGIC256(op)                                                   \
+  inline uint256 operator op(const uint256& lhs, const uint256& rhs) { \
+    return uint256(Uint256High128(lhs) op Uint256High128(rhs),         \
+                   Uint256Low128(lhs) op Uint256Low128(rhs));          \
+  }
+
+LOGIC256(|)
+LOGIC256(&)
+LOGIC256(^)
+
+#undef LOGIC256
+
+#define LOGICASSIGN256(op)                                 \
+  inline uint256& uint256::operator op(const uint256& b) { \
+    hi_ op b.hi_;                                          \
+    lo_ op b.lo_;                                          \
+    return *this;                                          \
+  }
+
+LOGICASSIGN256(|=)
+LOGICASSIGN256(&=)
+LOGICASSIGN256(^=)
+
+#undef LOGICASSIGN256
+
+// Shift operators.
+
+inline uint256 operator<<(const uint256& val, int amount) {
+  uint256 out(val);
+  out <<= amount;
+  return out;
+}
+
+inline uint256 operator>>(const uint256& val, int amount) {
+  uint256 out(val);
+  out >>= amount;
+  return out;
+}
+
+inline uint256& uint256::operator<<=(int amount) {
+  // uint128 shifts of >= 128 are undefined, so we will need some special-casing
+  if (amount < 128) {
+    if (amount != 0) {
+      hi_ = (hi_ << amount) | (lo_ >> (128 - amount));
+      lo_ = lo_ << amount;
+    }
+  } else if (amount < 256) {
+    hi_ = lo_ << (amount - 128);
+    lo_ = 0;
+  } else {
+    hi_ = 0;
+    lo_ = 0;
+  }
+  return *this;
+}
+
+inline uint256& uint256::operator>>=(int amount) {
+  // uint128 shifts of >= 128 are undefined, so we will need some special-casing
+  if (amount < 128) {
+    if (amount != 0) {
+      lo_ = (lo_ >> amount) | (hi_ << (128 - amount));
+      hi_ = hi_ >> amount;
+    }
+  } else if (amount < 256) {
+    lo_ = hi_ >> (amount - 128);
+    hi_ = 0;
+  } else {
+    lo_ = 0;
+    hi_ = 0;
+  }
+  return *this;
+}
+
+inline uint256 operator+(const uint256& lhs, const uint256& rhs) {
+  return uint256(lhs) += rhs;
+}
+
+inline uint256 operator-(const uint256& lhs, const uint256& rhs) {
+  return uint256(lhs) -= rhs;
+}
+
+inline uint256 operator*(const uint256& lhs, const uint256& rhs) {
+  return uint256(lhs) *= rhs;
+}
+
+inline uint256 operator/(const uint256& lhs, const uint256& rhs) {
+  return uint256(lhs) /= rhs;
+}
+
+inline uint256 operator%(const uint256& lhs, const uint256& rhs) {
+  return uint256(lhs) %= rhs;
+}
+
+inline uint256& uint256::operator+=(const uint256& b) {
+  hi_ += b.hi_;
+  absl::uint128 lolo = lo_ + b.lo_;
+  if (lolo < lo_)
+    ++hi_;
+  lo_ = lolo;
+  return *this;
+}
+
+inline uint256& uint256::operator-=(const uint256& b) {
+  hi_ -= b.hi_;
+  if (b.lo_ > lo_)
+    --hi_;
+  lo_ -= b.lo_;
+  return *this;
+}
+
+inline uint256& uint256::operator*=(const uint256& b) {
+  // Computes the product c = a * b modulo 2^256.
+  //
+  // We have that
+  //   a = [a.hi_ || a.lo_] and b = [b.hi_ || b.lo_]
+  // where hi_, lo_ are 128-bit numbers. Further, we have that
+  //   a.lo_ = [a64 || a00] and b.lo_ = [b64 || b00]
+  // where a64, a00, b64, b00 are 64-bit numbers.
+  //
+  // The product c = (a * b mod 2^256) is equal to
+  //   (a.hi_ * b.lo_ + a64 * b64 + b.hi_ * a.lo_ mod 2^128) * 2^128 +
+  //   (a64 * b00 + a00 * b64) * 2^64 +
+  //   (a00 * b00)
+  //
+  // The first and last lines can be computed without worrying about the
+  // carries, and then we add the two elements from the second line.
+  absl::uint128 a64 = absl::Uint128High64(lo_);
+  absl::uint128 a00 = absl::Uint128Low64(lo_);
+  absl::uint128 b64 = absl::Uint128High64(b.lo_);
+  absl::uint128 b00 = absl::Uint128Low64(b.lo_);
+
+  // Compute the high order and low order part of c (safe to ignore carry bits).
+  this->hi_ = hi_ * b.lo_ + a64 * b64 + lo_ * b.hi_;
+  this->lo_ = a00 * b00;
+
+  // add middle term and capture carry
+  uint256 middle_term = uint256(a64 * b00) + uint256(a00 * b64);
+  *this += middle_term << 64;
+  return *this;
+}
+
+inline uint256 uint256::operator++(int) {
+  uint256 tmp(*this);
+  lo_++;
+  if (lo_ == 0) hi_++;  // If there was a wrap around, increase the high word.
+  return tmp;
+}
+
+inline uint256 uint256::operator--(int) {
+  uint256 tmp(*this);
+  if (lo_ == 0) hi_--;  // If it wraps around, decrease the high word.
+  lo_--;
+  return tmp;
+}
+
+inline uint256& uint256::operator++() {
+  lo_++;
+  if (lo_ == 0) hi_++;  // If there was a wrap around, increase the high word.
+  return *this;
+}
+
+inline uint256& uint256::operator--() {
+  if (lo_ == 0) hi_--;  // If it wraps around, decrease the high word.
+  lo_--;
+  return *this;
+}
+
+}  // namespace rlwe
+
+// Specialized numeric_limits for uint256.
+namespace std {
+template <>
+class numeric_limits<rlwe::uint256> {
+ public:
+  static constexpr bool is_specialized = true;
+  static constexpr bool is_signed = false;
+  static constexpr bool is_integer = true;
+  static constexpr bool is_exact = true;
+  static constexpr bool has_infinity = false;
+  static constexpr bool has_quiet_NaN = false;
+  static constexpr bool has_signaling_NaN = false;
+  static constexpr float_denorm_style has_denorm = denorm_absent;
+  static constexpr bool has_denorm_loss = false;
+  static constexpr float_round_style round_style = round_toward_zero;
+  static constexpr bool is_iec559 = false;
+  static constexpr bool is_bounded = true;
+  static constexpr bool is_modulo = true;
+  static constexpr int digits = 256;
+  static constexpr int digits10 = 77;
+  static constexpr int max_digits10 = 0;
+  static constexpr int radix = 2;
+  static constexpr int min_exponent = 0;
+  static constexpr int min_exponent10 = 0;
+  static constexpr int max_exponent = 0;
+  static constexpr int max_exponent10 = 0;
+  static constexpr bool traps = numeric_limits<absl::uint128>::traps;
+  static constexpr bool tinyness_before = false;
+
+  static constexpr rlwe::uint256(min)() { return 0; }
+  static constexpr rlwe::uint256 lowest() { return 0; }
+  static constexpr rlwe::uint256(max)() { return rlwe::Uint256Max(); }
+  static constexpr rlwe::uint256 epsilon() { return 0; }
+  static constexpr rlwe::uint256 round_error() { return 0; }
+  static constexpr rlwe::uint256 infinity() { return 0; }
+  static constexpr rlwe::uint256 quiet_NaN() { return 0; }
+  static constexpr rlwe::uint256 signaling_NaN() { return 0; }
+  static constexpr rlwe::uint256 denorm_min() { return 0; }
+};
+}  // namespace std
+#endif  // RLWE_INT256_H_
diff --git a/third_party/shell-encryption/src/int256_test.cc b/third_party/shell-encryption/src/int256_test.cc
new file mode 100644
index 0000000..e57e40f
--- /dev/null
+++ b/third_party/shell-encryption/src/int256_test.cc
@@ -0,0 +1,567 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "int256.h"
+
+#include <algorithm>
+#include <random>
+#include <sstream>
+#include <type_traits>
+#include <utility>
+
+#include "glog/logging.h"
+#include <gtest/gtest.h>
+#include "absl/container/fixed_array.h"
+#include "absl/numeric/int128.h"
+
+namespace rlwe {
+
+TEST(Int256, AllTests) {
+  uint256 zero(0);
+  uint256 one(1);
+  uint256 minus_one(-1);
+  uint256 minus_one_2arg(-1, -1);
+  uint256 one_2arg(0, 1);
+  uint256 two(0, 2);
+  uint256 three(0, 3);
+  uint256 big(2000, 2);
+  uint256 big_minus_one(2000, 1);
+  uint256 bigger(2001, 1);
+  uint256 biggest(kuint256max);
+  uint256 high_low(1, 0);
+  uint256 low_high(0, absl::kuint128max);
+  EXPECT_LT(one, two);
+  EXPECT_GT(two, one);
+  EXPECT_LT(one, big);
+  EXPECT_LT(one, big);
+  EXPECT_EQ(one, one_2arg);
+  EXPECT_NE(one, two);
+  EXPECT_GT(big, one);
+  EXPECT_GE(big, two);
+  EXPECT_GE(big, big_minus_one);
+  EXPECT_GT(big, big_minus_one);
+  EXPECT_LT(big_minus_one, big);
+  EXPECT_LE(big_minus_one, big);
+  EXPECT_NE(big_minus_one, big);
+  EXPECT_LT(big, biggest);
+  EXPECT_LE(big, biggest);
+  EXPECT_GT(biggest, big);
+  EXPECT_GE(biggest, big);
+  EXPECT_EQ(big, ~~big);
+  EXPECT_EQ(one, one | one);
+  EXPECT_EQ(big, big | big);
+  EXPECT_EQ(one, one | zero);
+  EXPECT_EQ(one, one & one);
+  EXPECT_EQ(big, big & big);
+  EXPECT_EQ(zero, one & zero);
+  EXPECT_EQ(zero, big & ~big);
+  EXPECT_EQ(zero, one ^ one);
+  EXPECT_EQ(zero, big ^ big);
+  EXPECT_EQ(one, one ^ zero);
+  EXPECT_LE(minus_one_2arg, biggest);
+  EXPECT_LE(minus_one, biggest);
+  EXPECT_EQ(minus_one, minus_one_2arg);
+
+  // Shift operators.
+  EXPECT_EQ(big, big << 0);
+  EXPECT_EQ(big, big >> 0);
+  EXPECT_GT(big << 1, big);
+  EXPECT_LT(big >> 1, big);
+  EXPECT_EQ(big, (big << 10) >> 10);
+  EXPECT_EQ(big, (big >> 1) << 1);
+  EXPECT_EQ(one, (one << 80) >> 80);
+  EXPECT_EQ(zero, (one >> 80) << 80);
+  EXPECT_EQ(zero, big >> 256);
+  EXPECT_EQ(zero, big << 256);
+
+  // Shift assignments.
+  uint256 big_copy = big;
+  EXPECT_EQ(big << 0, big_copy <<= 0);
+  big_copy = big;
+  EXPECT_EQ(big >> 0, big_copy >>= 0);
+  big_copy = big;
+  EXPECT_EQ(big << 1, big_copy <<= 1);
+  big_copy = big;
+  EXPECT_EQ(big >> 1, big_copy >>= 1);
+  big_copy = big;
+  EXPECT_EQ(big << 10, big_copy <<= 10);
+  big_copy = big;
+  EXPECT_EQ(big >> 10, big_copy >>= 10);
+  big_copy = big;
+  EXPECT_EQ(big << 64, big_copy <<= 64);
+  big_copy = big;
+  EXPECT_EQ(big >> 64, big_copy >>= 64);
+  big_copy = big;
+  EXPECT_EQ(big << 73, big_copy <<= 73);
+  big_copy = big;
+  EXPECT_EQ(big >> 73, big_copy >>= 73);
+  big_copy = big;
+  EXPECT_EQ(big << 128, big_copy <<= 128);
+  big_copy = big;
+  EXPECT_EQ(big >> 128, big_copy >>= 128);
+  big_copy = big;
+  EXPECT_EQ(big << 192, big_copy <<= 192);
+  big_copy = big;
+  EXPECT_EQ(big >> 192, big_copy >>= 192);
+  big_copy = big;
+  EXPECT_EQ(big << 256, big_copy <<= 256);
+  big_copy = big;
+  EXPECT_EQ(big >> 256, big_copy >>= 256);
+
+  EXPECT_EQ(Uint256High128(biggest), absl::kuint128max);
+  EXPECT_EQ(Uint256Low128(biggest), absl::kuint128max);
+  EXPECT_EQ(zero + one, one);
+  EXPECT_EQ(zero + minus_one, minus_one);
+  EXPECT_EQ(one + minus_one, zero);
+  EXPECT_EQ(one - minus_one, two);
+  EXPECT_EQ(one + one, two);
+  EXPECT_EQ(big_minus_one + one, big);
+  EXPECT_EQ(one - one, zero);
+  EXPECT_EQ(one - zero, one);
+  EXPECT_EQ(zero - one, biggest);
+  EXPECT_EQ(big - big, zero);
+  EXPECT_EQ(big - one, big_minus_one);
+  EXPECT_EQ(big + low_high, bigger);
+  EXPECT_EQ(biggest + 1, zero);
+  EXPECT_EQ(minus_one + 1, zero);
+  EXPECT_EQ(zero - 1, biggest);
+  EXPECT_EQ(zero - 1, minus_one);
+  EXPECT_EQ(high_low - one, low_high);
+  EXPECT_EQ(low_high + one, high_low);
+  EXPECT_EQ(Uint256High128((uint256(1) << 128) - 1), 0);
+  EXPECT_EQ(Uint256Low128((uint256(1) << 128) - 1), absl::kuint128max);
+  EXPECT_TRUE(!!one);
+  EXPECT_TRUE(!!high_low);
+  EXPECT_FALSE(!!zero);
+  EXPECT_FALSE(!one);
+  EXPECT_FALSE(!high_low);
+  EXPECT_TRUE(!zero);
+  // These 4 checks are explicitly for the comparison operators.
+  EXPECT_TRUE(zero == 0);
+  EXPECT_FALSE(zero != 0);
+  EXPECT_FALSE(one == 0);
+  EXPECT_TRUE(one != 0);
+
+  uint256 test = zero;
+  EXPECT_EQ(++test, one);
+  EXPECT_EQ(test, one);
+  EXPECT_EQ(test++, one);
+  EXPECT_EQ(test, two);
+  EXPECT_EQ(test -= 2, zero);
+  EXPECT_EQ(test, zero);
+  EXPECT_EQ(test += 2, two);
+  EXPECT_EQ(test, two);
+  EXPECT_EQ(--test, one);
+  EXPECT_EQ(test, one);
+  EXPECT_EQ(test--, one);
+  EXPECT_EQ(test, zero);
+  EXPECT_EQ(test |= three, three);
+  EXPECT_EQ(test &= one, one);
+  EXPECT_EQ(test ^= three, two);
+  EXPECT_EQ(test >>= 1, one);
+  EXPECT_EQ(test <<= 1, two);
+
+  EXPECT_EQ(big, -(-big));
+  EXPECT_EQ(two, -((-one) - 1));
+  EXPECT_EQ(kuint256max, -one);
+  EXPECT_EQ(zero, -zero);
+  EXPECT_EQ(one, -minus_one);
+  EXPECT_EQ(-one, minus_one);
+
+  // Test ++ and -- when hi and lo are both modified.
+  test = low_high;
+  EXPECT_EQ(++test, high_low);
+  EXPECT_EQ(test, high_low);
+  EXPECT_EQ(--test, low_high);
+  EXPECT_EQ(test, low_high);
+  EXPECT_EQ(test++, low_high);
+  EXPECT_EQ(test, high_low);
+  EXPECT_EQ(test--, high_low);
+  EXPECT_EQ(test, low_high);
+  test = minus_one;
+  EXPECT_EQ(++test, zero);
+  EXPECT_EQ(test, zero);
+  EXPECT_EQ(--test, minus_one);
+  EXPECT_EQ(test, minus_one);
+  EXPECT_EQ(test++, minus_one);
+  EXPECT_EQ(test, zero);
+  EXPECT_EQ(test--, zero);
+  EXPECT_EQ(test, minus_one);
+
+  LOG(INFO) << one;
+  LOG(INFO) << big_minus_one;
+}
+
+TEST(Int256, PodTests) {
+  uint256_pod pod = {12345, 67890};
+  uint256 from_pod(pod);
+  EXPECT_EQ(12345, Uint256High128(from_pod));
+  EXPECT_EQ(67890, Uint256Low128(from_pod));
+
+  uint256 zero(0);
+  uint256_pod zero_pod = {0, 0};
+  uint256 one(1);
+  uint256_pod one_pod = {0, 1};
+  uint256 two(2);
+  uint256_pod two_pod = {0, 2};
+  uint256 three(3);
+  uint256_pod three_pod = {0, 3};
+  uint256 big(1, 0);
+  uint256_pod big_pod = {1, 0};
+
+  EXPECT_EQ(zero, zero_pod);
+  EXPECT_EQ(zero_pod, zero);
+  EXPECT_EQ(zero_pod, zero_pod);
+  EXPECT_EQ(one, one_pod);
+  EXPECT_EQ(one_pod, one);
+  EXPECT_EQ(one_pod, one_pod);
+  EXPECT_EQ(two, two_pod);
+  EXPECT_EQ(two_pod, two);
+  EXPECT_EQ(two_pod, two_pod);
+
+  EXPECT_NE(one, two_pod);
+  EXPECT_NE(one_pod, two);
+  EXPECT_NE(one_pod, two_pod);
+
+  EXPECT_LT(one, two_pod);
+  EXPECT_LT(one_pod, two);
+  EXPECT_LT(one_pod, two_pod);
+  EXPECT_LE(one, one_pod);
+  EXPECT_LE(one_pod, one);
+  EXPECT_LE(one_pod, one_pod);
+  EXPECT_LE(one, two_pod);
+  EXPECT_LE(one_pod, two);
+  EXPECT_LE(one_pod, two_pod);
+
+  EXPECT_GT(two, one_pod);
+  EXPECT_GT(two_pod, one);
+  EXPECT_GT(two_pod, one_pod);
+  EXPECT_GE(two, two_pod);
+  EXPECT_GE(two_pod, two);
+  EXPECT_GE(two_pod, two_pod);
+  EXPECT_GE(two, one_pod);
+  EXPECT_GE(two_pod, one);
+  EXPECT_GE(two_pod, one_pod);
+
+  EXPECT_EQ(three, one | two_pod);
+  EXPECT_EQ(three, one_pod | two);
+  EXPECT_EQ(three, one_pod | two_pod);
+  EXPECT_EQ(one, three & one_pod);
+  EXPECT_EQ(one, three_pod & one);
+  EXPECT_EQ(one, three_pod & one_pod);
+  EXPECT_EQ(two, three ^ one_pod);
+  EXPECT_EQ(two, three_pod ^ one);
+  EXPECT_EQ(two, three_pod ^ one_pod);
+  EXPECT_EQ(two, three & (~one));
+  EXPECT_EQ(three, ~~three);
+
+  EXPECT_EQ(two, two_pod << 0);
+  EXPECT_EQ(two, one_pod << 1);
+  EXPECT_EQ(big, one_pod << 128);
+  EXPECT_EQ(zero, one_pod << 256);
+  EXPECT_EQ(two, two_pod >> 0);
+  EXPECT_EQ(one, two_pod >> 1);
+  EXPECT_EQ(one, big_pod >> 128);
+
+  EXPECT_EQ(one, zero + one_pod);
+  EXPECT_EQ(one, zero_pod + one);
+  EXPECT_EQ(one, zero_pod + one_pod);
+  EXPECT_EQ(one, two - one_pod);
+  EXPECT_EQ(one, two_pod - one);
+  EXPECT_EQ(one, two_pod - one_pod);
+}
+
+TEST(Int256, OperatorAssignReturnRef) {
+  uint256 v(1);
+  (v += 4) -= 3;
+  EXPECT_EQ(2, v);
+}
+
+TEST(Int256, Multiply) {
+  uint256 a, b, c;
+
+  // Zero test.
+  a = 0;
+  b = 0;
+  c = a * b;
+  EXPECT_EQ(0, c);
+
+  // Max carries.
+  a = uint256(0) - 1;
+  b = uint256(0) - 1;
+  c = a * b;
+  EXPECT_EQ(1, c);
+
+  // Self-operation with max carries.
+  c = uint256(0) - 1;
+  c *= c;
+  EXPECT_EQ(1, c);
+
+  // 1-bit x 1-bit.
+  for (int i = 0; i < 128; ++i) {
+    for (int j = 0; j < 128; ++j) {
+      a = uint256(1) << i;
+      b = uint256(1) << j;
+      c = a * b;
+      EXPECT_EQ(uint256(1) << (i + j), c);
+    }
+  }
+
+  // Verified with dc.
+  a = uint256(absl::MakeUint128(static_cast<Uint64>(0xffffeeeeddddcccc),
+                                static_cast<Uint64>(0xffffeeeeddddcccc)),
+              absl::MakeUint128(static_cast<Uint64>(0xbbbbaaaa99998888),
+                                static_cast<Uint64>(0xbbbbaaaa99998888)));
+  b = uint256(absl::MakeUint128(static_cast<Uint64>(0x7777666655554444),
+                                static_cast<Uint64>(0x7777666655554444)),
+              absl::MakeUint128(static_cast<Uint64>(0x3333222211110000),
+                                static_cast<Uint64>(0x3333222211110000)));
+  c = a * b;
+  EXPECT_EQ(uint256(absl::MakeUint128(static_cast<Uint64>(0x0B60BCDF06D3A4FA),
+                                      static_cast<Uint64>(0x37C054321A2B4567)),
+                    absl::MakeUint128(static_cast<Uint64>(0xA3D7111116C170A3),
+                                      static_cast<Uint64>(0xBF25975319080000))),
+            c);
+  EXPECT_EQ(0, c - b * a);
+  EXPECT_EQ(a * a - b * b, (a + b) * (a - b));
+
+  // Verified with dc.
+  a = uint256(absl::MakeUint128(static_cast<Uint64>(0x0123456789abcdef),
+                                static_cast<Uint64>(0x0123456789abcdef)),
+              absl::MakeUint128(static_cast<Uint64>(0xfedcba9876543210),
+                                static_cast<Uint64>(0xfedcba9876543210)));
+  b = uint256(absl::MakeUint128(static_cast<Uint64>(0x02468ace13579bdf),
+                                static_cast<Uint64>(0x02468ace13579bdf)),
+              absl::MakeUint128(static_cast<Uint64>(0xfdb97531eca86420),
+                                static_cast<Uint64>(0xfdb97531eca86420)));
+  c = a * b;
+  EXPECT_EQ(uint256(absl::MakeUint128(static_cast<Uint64>(0x361CDAA0607023AD),
+                                      static_cast<Uint64>(0xC86E51A688F16415)),
+                    absl::MakeUint128(static_cast<Uint64>(0x64F2DE16AB6A4222),
+                                      static_cast<Uint64>(0x342D0BBF48948200))),
+            c);
+  EXPECT_EQ(0, c - b * a);
+  EXPECT_EQ(a * a - b * b, (a + b) * (a - b));
+}
+
+TEST(Int256, AliasTests) {
+  uint256 x1(1, 2);
+  uint256 x2(2, 4);
+  x1 += x1;
+  EXPECT_EQ(x2, x1);
+
+  uint256 x3(1, absl::uint128(1) << 127);
+  uint256 x4(3, 0);
+  x3 += x3;
+  EXPECT_EQ(x4, x3);
+}
+
+TEST(Int256, DivideByZeroCheckFails) {
+  uint256 a = 0;
+  uint256 b = 0;
+  EXPECT_DEATH(a / b, "Division or mod by zero:");
+  a = 123;
+  EXPECT_DEATH(a / b, "Division or mod by zero:");
+}
+
+TEST(Int256, ModByZeroCheckFails) {
+  uint256 a = 0;
+  uint256 b = 0;
+  EXPECT_DEATH(a % b, "Division or mod by zero:");
+  a = 123;
+  EXPECT_DEATH(a % b, "Division or mod by zero:");
+}
+
+TEST(Int256, DivideAndMod) {
+  // a := q * b + r
+  uint256 a, b, q, r;
+
+  // a == b
+  a = 123;
+  b = a;
+  q = a / b;
+  r = a % b;
+  EXPECT_EQ(1, q);
+  EXPECT_EQ(0, r);
+
+  // Zero test.
+  a = 0;
+  b = 123;
+  q = a / b;
+  r = a % b;
+  EXPECT_EQ(0, q);
+  EXPECT_EQ(0, r);
+
+  a = uint256(0, absl::MakeUint128(static_cast<Uint64>(0x530eda741c71d4c3),
+                                   static_cast<Uint64>(0xbf25975319080000)));
+  q = uint256(0, absl::MakeUint128(static_cast<Uint64>(0x4de2cab081),
+                                   static_cast<Uint64>(0x14c34ab4676e4bab)));
+  b = uint256(0x1110001);
+  r = uint256(0x3eb455);
+  ASSERT_EQ(a, q * b + r);  // Sanity-check.
+
+  uint256 result_q, result_r;
+  result_q = a / b;
+  result_r = a % b;
+  EXPECT_EQ(q, result_q);
+  EXPECT_EQ(r, result_r);
+
+  // Try the other way around.
+  using std::swap;
+  swap(q, b);
+  result_q = a / b;
+  result_r = a % b;
+  EXPECT_EQ(q, result_q);
+  EXPECT_EQ(r, result_r);
+  // Restore.
+  swap(b, q);
+
+  // Dividend < divisor; result should be q:0 r:<dividend>.
+  swap(a, b);
+  result_q = a / b;
+  result_r = a % b;
+  EXPECT_EQ(0, result_q);
+  EXPECT_EQ(a, result_r);
+  // Try the other way around.
+  swap(a, q);
+  result_q = a / b;
+  result_r = a % b;
+  EXPECT_EQ(0, result_q);
+  EXPECT_EQ(a, result_r);
+  // Restore.
+  swap(q, a);
+  swap(b, a);
+
+  // Try a large remainder.
+  b = a / 2 + 1;
+  uint256 expected_r(
+      0, absl::MakeUint128(static_cast<Uint64>(0x29876d3a0e38ea61),
+                           static_cast<Uint64>(0xdf92cba98c83ffff)));
+  // Sanity checks.
+  ASSERT_EQ(a / 2 - 1, expected_r);
+  ASSERT_EQ(a, b + expected_r);
+  result_q = a / b;
+  result_r = a % b;
+  EXPECT_EQ(1, result_q);
+  EXPECT_EQ(expected_r, result_r);
+}
+
+TEST(Int256, DivideAndModRandomInputs) {
+  const int kNumIters = 1 << 18;
+  std::minstd_rand random(testing::UnitTest::GetInstance()->random_seed());
+  std::uniform_int_distribution<Uint64> uniform_uint64;
+  for (int i = 0; i < kNumIters; ++i) {
+    const uint256 a(uniform_uint64(random), uniform_uint64(random));
+    const uint256 b(uniform_uint64(random), uniform_uint64(random));
+    if (b == 0) {
+      continue;  // Avoid a div-by-zero.
+    }
+    const uint256 q = a / b;
+    const uint256 r = a % b;
+    ASSERT_EQ(a, b * q + r);
+  }
+}
+
+TEST(Int256, ConstexprTest) {
+  constexpr uint256 one = 1;
+  constexpr uint256_pod pod = {2, 3};
+  constexpr uint256 from_pod = pod;
+  constexpr uint256 minus_two = -2;
+
+  EXPECT_EQ(one, uint256(1));
+  EXPECT_EQ(from_pod, uint256(2, 3));
+  EXPECT_EQ(minus_two, uint256(absl::uint128(-1), absl::uint128(-2)));
+}
+
+TEST(Int256, Traits) {
+  EXPECT_TRUE(std::is_trivially_copy_constructible<uint256>::value);
+  EXPECT_TRUE(std::is_trivially_copy_assignable<uint256>::value);
+  EXPECT_TRUE(std::is_trivially_destructible<uint256>::value);
+}
+
+TEST(Int256, OStream) {
+  struct {
+    uint256 val;
+    std::ios_base::fmtflags flags;
+    std::streamsize width;
+    char fill;
+    const char* rep;
+  } cases[] = {
+      // zero with different bases
+      {uint256(0), std::ios::dec, 0, '_', "0"},
+      {uint256(0), std::ios::oct, 0, '_', "0"},
+      {uint256(0), std::ios::hex, 0, '_', "0"},
+      // crossover between lo_ and hi_
+      {uint256(0, -1), std::ios::dec, 0, '_',
+       "340282366920938463463374607431768211455"},
+      {uint256(0, -1), std::ios::oct, 0, '_',
+       "3777777777777777777777777777777777777777777"},
+      {uint256(0, -1), std::ios::hex, 0, '_',
+       "ffffffffffffffffffffffffffffffff"},
+      {uint256(1, 0), std::ios::dec, 0, '_',
+       "340282366920938463463374607431768211456"},
+      {uint256(1, 0), std::ios::oct, 0, '_',
+       "4000000000000000000000000000000000000000000"},
+      {uint256(1, 0), std::ios::hex, 0, '_',
+       "100000000000000000000000000000000"},
+      // just the top bit
+      {uint256(static_cast<Uint64>(0x8000000000000000), 0), std::ios::dec, 0,
+       '_', "3138550867693340381917894711603833208051177722232017256448"},
+      {uint256(static_cast<Uint64>(0x8000000000000000), 0), std::ios::oct, 0,
+       '_', "4000000000000000000000000000000000000000000000000000000000000000"},
+      {uint256(static_cast<Uint64>(0x8000000000000000), 0), std::ios::hex, 0,
+       '_', "800000000000000000000000000000000000000000000000"},
+      // maximum uint256 value
+      {uint256(-1, -1), std::ios::dec, 0, '_',
+       "115792089237316195423570985008687907853"
+       "269984665640564039457584007913129639935"},
+      {uint256(-1, -1), std::ios::oct, 0, '_',
+       "1777777777777777777777777777777777777777777"
+       "7777777777777777777777777777777777777777777"},
+      {uint256(-1, -1), std::ios::hex, 0, '_',
+       "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},
+      // uppercase
+      {uint256(-1, -1), std::ios::hex | std::ios::uppercase, 0, '_',
+       "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},
+      // showbase
+      {uint256(1), std::ios::dec | std::ios::showbase, 0, '_', "1"},
+      {uint256(1), std::ios::oct | std::ios::showbase, 0, '_', "01"},
+      {uint256(1), std::ios::hex | std::ios::showbase, 0, '_', "0x1"},
+      // showbase does nothing on zero
+      {uint256(0), std::ios::dec | std::ios::showbase, 0, '_', "0"},
+      {uint256(0), std::ios::oct | std::ios::showbase, 0, '_', "0"},
+      {uint256(0), std::ios::hex | std::ios::showbase, 0, '_', "0"},
+      // showpos does nothing on unsigned types
+      {uint256(1), std::ios::dec | std::ios::showpos, 0, '_', "1"},
+      // padding
+      {uint256(9), std::ios::dec, 6, '_', "_____9"},
+      {uint256(12345), std::ios::dec, 6, '_', "_12345"},
+      // left adjustment
+      {uint256(9), std::ios::dec | std::ios::left, 6, '_', "9_____"},
+      {uint256(12345), std::ios::dec | std::ios::left, 6, '_', "12345_"},
+  };
+  for (size_t i = 0; i < ABSL_ARRAYSIZE(cases); ++i) {
+    std::ostringstream os;
+    os.flags(cases[i].flags);
+    os.width(cases[i].width);
+    os.fill(cases[i].fill);
+    os << cases[i].val;
+    EXPECT_EQ(cases[i].rep, os.str());
+  }
+}
+
+TEST(Int256, SizeOfTest) { EXPECT_EQ(sizeof(uint256), 32); }
+
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/integral_types.h b/third_party/shell-encryption/src/integral_types.h
new file mode 100644
index 0000000..a39199c
--- /dev/null
+++ b/third_party/shell-encryption/src/integral_types.h
@@ -0,0 +1,15 @@
+#ifndef RLWE_INTEGRAL_TYPES_H_
+#define RLWE_INTEGRAL_TYPES_H_
+
+#include "absl/numeric/int128.h"
+
+namespace rlwe {
+
+typedef uint8_t Uint8;
+typedef uint16_t Uint16;
+typedef uint32_t Uint32;
+typedef uint64_t Uint64;
+
+}  // namespace rlwe
+
+#endif  // RLWE_INTEGRAL_TYPES_H_
diff --git a/third_party/shell-encryption/src/montgomery.h b/third_party/shell-encryption/src/montgomery.h
new file mode 100644
index 0000000..336e925
--- /dev/null
+++ b/third_party/shell-encryption/src/montgomery.h
@@ -0,0 +1,677 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Defines types that are necessary for Ring-Learning with Errors (rlwe)
+// encryption.
+
+#ifndef RLWE_MONTGOMERY_H_
+#define RLWE_MONTGOMERY_H_
+
+#include <cmath>
+#include <cstdint>
+#include <tuple>
+#include <vector>
+
+#include "glog/logging.h"
+#include "absl/base/thread_annotations.h"
+#include "absl/numeric/int128.h"
+#include "absl/strings/str_cat.h"
+#include "bits_util.h"
+#include "constants.h"
+#include "int256.h"
+#include "prng/prng.h"
+#include "serialization.pb.h"
+#include "status_macros.h"
+#include "statusor.h"
+#include "transcription.h"
+
+namespace rlwe {
+
+// Forward declarations. T needs to be an unsigned integral of at least 8 bits.
+template <typename T, std::enable_if_t<std::numeric_limits<T>::is_integer &&
+                                           !std::is_same<T, bool>::value &&
+                                           !std::numeric_limits<T>::is_signed,
+                                       T>* = nullptr>
+struct MontgomeryIntParams;
+template <typename T, std::enable_if_t<std::numeric_limits<T>::is_integer &&
+                                           !std::is_same<T, bool>::value &&
+                                           !std::numeric_limits<T>::is_signed,
+                                       T>* = nullptr>
+class MontgomeryInt;
+
+namespace internal {
+
+// The input is implicitly casted to absl::uint128 before computing the bit
+// length.
+inline unsigned int BitLength(absl::uint128 v) {
+  return 128 - CountLeadingZeros128(v);
+}
+
+// Struct to capture the "bigger int" type.
+template <typename T>
+struct BigInt;
+// Specialization for uint8, uint16, uint32, uint64, and uint128.
+template <>
+struct BigInt<Uint8> {
+  typedef Uint16 value_type;
+};
+template <>
+struct BigInt<Uint16> {
+  typedef Uint32 value_type;
+};
+template <>
+struct BigInt<Uint32> {
+  typedef Uint64 value_type;
+};
+template <>
+struct BigInt<Uint64> {
+  typedef absl::uint128 value_type;
+};
+template <>
+struct BigInt<absl::uint128> {
+  typedef uint256 value_type;
+};
+
+}  // namespace internal
+
+// The parameters necessary for a Montgomery integer. Note that the template
+// parameters ensure that T is an unsigned integral of at least 8 bits.
+template <typename T, std::enable_if_t<std::numeric_limits<T>::is_integer &&
+                                           !std::is_same<T, bool>::value &&
+                                           !std::numeric_limits<T>::is_signed,
+                                       T>*>
+struct MontgomeryIntParams {
+  // Expose Int and its greater type. BigInt is required in order to multiply
+  // two Int and ensure that no overflow occurs.
+  //
+  // Thread safe.
+  using Int = T;
+  using BigInt = typename internal::BigInt<Int>::value_type;
+  static const size_t bitsize_int = sizeof(Int) * 8;
+  static const size_t bitsize_bigint = sizeof(BigInt) * 8;
+
+  static rlwe::StatusOr<std::unique_ptr<MontgomeryIntParams>> Create(
+      Int modulus) {
+    // Check that the modulus is smaller than max(Int) / 4.
+    Int most_significant_bit = modulus >> (bitsize_int - 2);
+    if (most_significant_bit != 0) {
+      return absl::InvalidArgumentError(absl::StrCat(
+          "The modulus should be less than 2^", (bitsize_int - 2), "."));
+    }
+    if ((modulus % 2) == 0) {
+      return absl::InvalidArgumentError(
+          absl::StrCat("The modulus should be odd."));
+    }
+    return absl::WrapUnique<MontgomeryIntParams>(
+        new MontgomeryIntParams(modulus));
+  }
+
+  // The value R to be used in Montgomery multiplication. R will be selected as
+  // 2^bitsize(Int) and hence automatically verifies R > modulus.
+  const BigInt r;
+
+  // The modulus over which these modular operations are being performed.
+  const Int modulus;
+
+  // The modulus over which these modular operations are being performed, cast
+  // as a BigInt.
+  const BigInt modulus_bigint;
+
+  // The number of bits in the modulus.
+  const unsigned int log_modulus;
+
+  // The value of R taken modulo the modulus.
+  const BigInt r_mod_modulus;
+
+  // The values below, inv_modulus and inv_r, satisfy the formula:
+  //     R * inv_r - modulus * inv_modulus = 1
+  // Note that inv_modulus is not literally the multiplicative inverse of
+  // modulus modulo R.
+  const Int inv_modulus;
+  const BigInt
+      inv_r;  // needed to translate from Montgomery to normal representation
+
+  // The numerator used in the Barrett reduction.
+  const BigInt barrett_numerator;  // = 2^(sizeof(Int)*8) / modulus
+  const BigInt
+      barrett_numerator_bigint;  // = 2^(sizeof(BigInt)*8 - 1) / modulus
+
+  inline const Int Zero() const { return 0; }
+  inline const Int One() const { return 1; }
+  inline const Int Two() const { return 2; }
+
+  // Functions to perform Barrett reduction. For more details, see
+  // https://en.wikipedia.org/wiki/Barrett_reduction.
+  inline Int BarrettReduce(Int input) const {
+    Int out =
+        static_cast<Int>((this->barrett_numerator * input) >> bitsize_int);
+    out = input - (out * this->modulus);
+    // The steps above produce an integer that is in the range [0, 2N).
+    // We now reduce to the range [0, N).
+    return (out >= this->modulus) ? out - this->modulus : out;
+  }
+
+  inline Int BarrettReduceBigInt(BigInt input) const {
+    // Will be specialized for absl::uint128, as BigBigInt = uint512 does not
+    // exists.
+    using BigBigInt = typename internal::BigInt<BigInt>::value_type;
+    Int out = static_cast<Int>(
+        (static_cast<BigBigInt>(this->barrett_numerator_bigint) * input) >>
+        (bitsize_bigint - 1));
+    out = static_cast<Int>(input) - (out * this->modulus);
+    return (out >= this->modulus) ? out - this->modulus : out;
+  }
+
+  // Computes the serialized byte length of an integer.
+  inline unsigned int SerializedSize() const { return (log_modulus + 7) / 8; }
+
+  // Check whether (1 << log_n) fits into the underlying Int type.
+  static bool DoesLogNFit(Uint64 log_n) { return (log_n < bitsize_int - 1); }
+
+ private:
+  MontgomeryIntParams(Int mod)
+      : r(static_cast<BigInt>(1) << bitsize_int),
+        modulus(mod),
+        modulus_bigint(static_cast<BigInt>(this->modulus)),
+        log_modulus(internal::BitLength(modulus)),
+        r_mod_modulus(this->r % this->modulus_bigint),
+        inv_modulus(static_cast<Int>(
+            std::get<1>(MontgomeryIntParams::Inverses(modulus_bigint, r)))),
+        inv_r(std::get<0>(MontgomeryIntParams::Inverses(modulus_bigint, r))),
+        barrett_numerator(this->r / this->modulus_bigint),
+        barrett_numerator_bigint(
+            (static_cast<BigInt>(1) << (bitsize_bigint - 1)) /
+            this->modulus_bigint) {}
+
+  // From Hacker's Delight.
+  // Computes the Montgomery inverse coefficients for r and modulus using
+  // the Extended Euclidean Algorithm.
+  //
+  // modulus must be odd.
+  // Returns a tuple of (inv_r, inv_modulus) such that:
+  //     r * inv_r - modulus * inv_modulus = 1
+  static std::tuple<BigInt, BigInt> Inverses(BigInt modulus_bigint,
+                                             BigInt r) {  // Invariants
+    //   1) sum = x * 2^w - y * modulus.
+    //   2) sum is always a power of 2.
+    //   3) modulus is odd.
+    //   4) y is always even.
+    // sum will decrease from 2^w to 2^0 = 1
+    BigInt x = 1;
+    BigInt y = 0;
+    for (int i = bitsize_int; i > 0; i--) {
+      // Ensure that x is even.
+      if ((x & 1) == 1) {
+        // If x is odd, make x even by adding modulus to x and changing the
+        // value of y accordingly (y remains even).
+        //
+        //     sum = x * 2^w - y * modulus
+        //     sum = (x + modulus) * 2^w - (y + 2^w) * modulus
+        //
+        // We can then divide the new values of x and y by 2 safely.
+        x += modulus_bigint;
+        y += r;
+      }
+      // Divide x and y by 2
+      x >>= 1;
+      y >>= 1;
+    }
+    // Return the inverses
+    return std::tuple<BigInt, BigInt>(x, y);
+  }
+};
+
+// Specialization of BarrettReduceBigInt for absl::uint128 because BigBigInt =
+// uint512 does not exist. Instead, we do a regular modular reduction.
+template <>
+inline absl::uint128 MontgomeryIntParams<absl::uint128>::BarrettReduceBigInt(
+    uint256 input) const {
+  return static_cast<absl::uint128>(input % this->modulus_bigint);
+}
+
+// Stores an integer in Montgomery representation. The goal of this
+// class is to provide a static type that differentiates between integers
+// in Montgomery representation and standard integers. Once a Montgomery
+// integer is created, it has the * and + operators necessary to be treated
+// as another integer.
+// The underlying integer type T must be unsigned and must not be bool.
+// This class is thread safe.
+template <typename T, std::enable_if_t<std::numeric_limits<T>::is_integer &&
+                                           !std::is_same<T, bool>::value &&
+                                           !std::numeric_limits<T>::is_signed,
+                                       T>*>
+class ABSL_MUST_USE_RESULT MontgomeryInt {
+ public:
+  // Expose Int and its greater type. BigInt is required in order to multiply
+  // two Int and ensure that no overflow occurs. This should also be used by
+  // external classes.
+  using Int = T;
+  using BigInt = typename internal::BigInt<Int>::value_type;
+
+  // Expose the parameter type.
+  using Params = MontgomeryIntParams<T>;
+
+  // Static factory that converts a non-Montgomery representation integer, the
+  // underlying integer type, into a Montgomery representation integer. Does not
+  // take ownership of params. i.e., import "a".
+  static rlwe::StatusOr<MontgomeryInt> ImportInt(Int n, Params* params) {
+    BigInt result = static_cast<BigInt>(n) * params->r_mod_modulus;
+    return MontgomeryInt(params->BarrettReduceBigInt(result));
+  }
+
+  static MontgomeryInt ImportZero(Params* params) {
+    return MontgomeryInt(params->Zero());
+  }
+
+  static MontgomeryInt ImportOne(Params* params) {
+    // 1 should be multiplied by r_mod_modulus; we load directly r_mod_modulus.
+    return MontgomeryInt(static_cast<Int>(params->r_mod_modulus));
+  }
+
+  // Import a random integer using entropy from specified prng. Does not take
+  // ownership of params or prng.
+  template <typename Prng = rlwe::SecurePrng>
+  static rlwe::StatusOr<MontgomeryInt> ImportRandom(Prng* prng,
+                                                    Params* params) {
+    // In order to generate unbiased randomness, we uniformly and randomly
+    // sample integers in [0, 2^params->log_modulus) until the generated integer
+    // is less than the modulus (i.e., we perform rejection sampling).
+    RLWE_ASSIGN_OR_RETURN(Int random_int,
+                          GenerateRandomInt(params->log_modulus, prng));
+    while (random_int >= params->modulus) {
+      RLWE_ASSIGN_OR_RETURN(random_int,
+                            GenerateRandomInt(params->log_modulus, prng));
+    }
+    return MontgomeryInt(random_int);
+  }
+
+  static BigInt DivAndTruncate(BigInt dividend, BigInt divisor) {
+    return dividend / divisor;
+  }
+
+  // No default constructor.
+  MontgomeryInt() = delete;
+
+  // Default copy constructor.
+  MontgomeryInt(const MontgomeryInt& that) = default;
+  MontgomeryInt& operator=(const MontgomeryInt& that) = default;
+
+  // Convert a Montgomery representation integer back to the underlying integer.
+  // i.e., export "a".
+  Int ExportInt(Params* params) const {
+    return params->BarrettReduceBigInt(static_cast<BigInt>(n_) * params->inv_r);
+  }
+
+  // Returns the least significant 64 bits of n.
+  static Uint64 ExportUInt64(Int n) { return static_cast<Uint64>(n); }
+
+  // Serialization.
+  rlwe::StatusOr<std::string> Serialize(Params* params) const {
+    // Use transcription to transform all the LogModulus() bits of input into a
+    // vector of unsigned char.
+    RLWE_ASSIGN_OR_RETURN(
+        auto v, (TranscribeBits<Int, Uint8>({this->n_}, params->log_modulus,
+                                            params->log_modulus, 8)));
+    // Return a string
+    return std::string(std::make_move_iterator(v.begin()),
+                       std::make_move_iterator(v.end()));
+  }
+
+  static rlwe::StatusOr<std::string> SerializeVector(
+      const std::vector<MontgomeryInt>& coeffs, Params* params) {
+    if (coeffs.size() > kMaxNumCoeffs) {
+      return absl::InvalidArgumentError(
+          absl::StrCat("Number of coefficients, ", coeffs.size(),
+                       ", cannot be larger than ", kMaxNumCoeffs, "."));
+    } else if (coeffs.empty()) {
+      return absl::InvalidArgumentError("Cannot serialize an empty vector.");
+    }
+    // Bits required to represent modulus.
+    int bit_size = params->log_modulus;
+    // Extract the values
+    std::vector<Int> coeffs_values;
+    coeffs_values.reserve(coeffs.size());
+    for (const auto& c : coeffs) {
+      coeffs_values.push_back(c.n_);
+    }
+    // Use transcription to transform all the bit_size bits of input into a
+    // vector of unsigned char.
+    RLWE_ASSIGN_OR_RETURN(
+        auto v,
+        (TranscribeBits<Int, Uint8>(
+            coeffs_values, coeffs_values.size() * bit_size, bit_size, 8)));
+    // Return a string
+    return std::string(std::make_move_iterator(v.begin()),
+                       std::make_move_iterator(v.end()));
+  }
+
+  static rlwe::StatusOr<MontgomeryInt> Deserialize(absl::string_view payload,
+                                                   Params* params) {
+    // Parse the string as unsigned char
+    std::vector<Uint8> input(payload.begin(), payload.end());
+    // Bits required to represent modulus.
+    int bit_size = params->log_modulus;
+    // Recover the coefficients from the input stream.
+    RLWE_ASSIGN_OR_RETURN(
+        auto coeffs_values,
+        (TranscribeBits<Uint8, Int>(input, bit_size, 8, bit_size)));
+    // There will be at least one coefficient in coeff_values because bit_size
+    // is always expected to be positive.
+    return MontgomeryInt(coeffs_values[0]);
+  }
+
+  static rlwe::StatusOr<std::vector<MontgomeryInt>> DeserializeVector(
+      int num_coeffs, absl::string_view serialized, Params* params) {
+    if (num_coeffs < 0) {
+      return absl::InvalidArgumentError(
+          "Number of coefficients must be non-negative.");
+    }
+    if (num_coeffs > kMaxNumCoeffs) {
+      return absl::InvalidArgumentError(
+          absl::StrCat("Number of coefficients, ", num_coeffs, ", cannot be ",
+                       "larger than ", kMaxNumCoeffs, "."));
+    }
+    // Parse the string as unsigned char
+    std::vector<Uint8> input(serialized.begin(), serialized.end());
+    // Bits required to represent modulus.
+    int bit_size = params->log_modulus;
+    // Recover the coefficients from the input stream.
+    RLWE_ASSIGN_OR_RETURN(auto coeffs_values,
+                          (TranscribeBits<Uint8, Int>(
+                              input, bit_size * num_coeffs, 8, bit_size)));
+    // Check that the number of coefficients recovered is at least what is
+    // expected.
+    if (coeffs_values.size() < num_coeffs) {
+      return absl::InvalidArgumentError("Given serialization is invalid.");
+    }
+    // Create a vector of Montgomery Int from the values.
+    std::vector<MontgomeryInt> coeffs;
+    coeffs.reserve(num_coeffs);
+    for (int i = 0; i < num_coeffs; i++) {
+      coeffs.push_back(MontgomeryInt(coeffs_values[i]));
+    }
+    return coeffs;
+  }
+
+  // Perform a multiply followed by a modular reduction. Produces an output
+  // in the range [0, N).
+  // Taken from Hacker's Delight chapter on Montgomery multiplication.
+  MontgomeryInt Mul(const MontgomeryInt& that, Params* params) const {
+    MontgomeryInt out(*this);
+    return out.MulInPlace(that, params);
+  }
+
+  MontgomeryInt& MulInPlace(const MontgomeryInt& that, Params* params) {
+    // This function computes the product of the two numbers (a and b), which
+    // will equal a * R * b * R in Montgomery representation. It then performs
+    // the reduction, creating a * b * R (mod N).
+    Int u = static_cast<Int>(n_ * that.n_) * params->inv_modulus;
+    BigInt t = static_cast<BigInt>(n_) * that.n_ + params->modulus_bigint * u;
+    Int t_msb = static_cast<Int>(t >> Params::bitsize_int);
+
+    // The steps above produce an integer that is in the range [0, 2N).
+    // We now reduce to the range [0, N).
+    n_ = (t_msb >= params->modulus) ? t_msb - params->modulus : t_msb;
+    return *this;
+  }
+
+  // Montgomery addition. Performs a Barrett reduction.
+  MontgomeryInt Add(const MontgomeryInt& that, Params* params) const {
+    MontgomeryInt out(*this);
+    return out.AddInPlace(that, params);
+  }
+
+  MontgomeryInt& AddInPlace(const MontgomeryInt& that, Params* params) {
+    // We can use Barrett reduction because n_ <= modulus < Max(Int)/2.
+    n_ = params->BarrettReduce(n_ + that.n_);
+    return *this;
+  }
+
+  // Negation.
+  MontgomeryInt Negate(Params* params) const {
+    return MontgomeryInt(params->modulus - n_);
+  }
+
+  MontgomeryInt& NegateInPlace(Params* params) {
+    n_ = params->modulus - n_;
+    return *this;
+  }
+
+  MontgomeryInt Sub(const MontgomeryInt& that, Params* params) const {
+    MontgomeryInt out(*this);
+    return out.SubInPlace(that, params);
+  }
+
+  MontgomeryInt& SubInPlace(const MontgomeryInt& that, Params* params) {
+    // We can use Barrett reduction because n_ <= modulus < Max(Int)/2.
+    n_ = params->BarrettReduce(n_ + (params->modulus - that.n_));
+    return *this;
+  }
+
+  // Batch operations (and in-place variants) over vectors of MontgomeryInt.
+  // We define two versions of the batch operations:
+  // -  the first input is a vector and the second is a MontgomeryInt scalar:
+  //    in that case, the scalar will be added/subtracted/multiplied with each
+  //    element of the first input.
+  // -  both inputs are vectors of same length: in that case, the operations
+  //    will be performed component wise.
+  // These batch operations may fail if the input vectors are not of the same
+  // size.
+
+  // Batch addition of two vectors.
+  static rlwe::StatusOr<std::vector<MontgomeryInt>> BatchAdd(
+      const std::vector<MontgomeryInt>& in1,
+      const std::vector<MontgomeryInt>& in2, Params* params) {
+    std::vector<MontgomeryInt> out = in1;
+    RLWE_RETURN_IF_ERROR(BatchAddInPlace(&out, in2, params));
+    return out;
+  }
+
+  static absl::Status BatchAddInPlace(std::vector<MontgomeryInt>* in1,
+                                      const std::vector<MontgomeryInt>& in2,
+                                      Params* params) {
+    // If the input vectors' sizes don't match, return an error.
+    if (in1->size() != in2.size()) {
+      return absl::InvalidArgumentError("Input vectors are not of same size");
+    }
+    int i = 0;
+    // The remaining elements, if any, are added in place sequentially.
+    for (; i < in1->size(); i++) {
+      (*in1)[i].AddInPlace(in2[i], params);
+    }
+    return absl::OkStatus();
+  }
+
+  // Batch addition of one vector with a scalar.
+  static rlwe::StatusOr<std::vector<MontgomeryInt>> BatchAdd(
+      const std::vector<MontgomeryInt>& in1, const MontgomeryInt& in2,
+      Params* params) {
+    std::vector<MontgomeryInt> out = in1;
+    RLWE_RETURN_IF_ERROR(BatchAddInPlace(&out, in2, params));
+    return out;
+  }
+
+  static absl::Status BatchAddInPlace(std::vector<MontgomeryInt>* in1,
+                                      const MontgomeryInt& in2,
+                                      Params* params) {
+    int i = 0;
+    // The remaining elements, if any, are added in place sequentially.
+    std::for_each(
+        in1->begin() + i, in1->end(),
+        [in2, params](MontgomeryInt& coeff) { coeff.AddInPlace(in2, params); });
+    return absl::OkStatus();
+  }
+
+  // Batch subtraction of two vectors.
+  static rlwe::StatusOr<std::vector<MontgomeryInt>> BatchSub(
+      const std::vector<MontgomeryInt>& in1,
+      const std::vector<MontgomeryInt>& in2, Params* params) {
+    std::vector<MontgomeryInt> out = in1;
+    RLWE_RETURN_IF_ERROR(BatchSubInPlace(&out, in2, params));
+    return out;
+  }
+
+  static absl::Status BatchSubInPlace(std::vector<MontgomeryInt>* in1,
+                                      const std::vector<MontgomeryInt>& in2,
+                                      Params* params) {
+    // If the input vectors' sizes don't match, return an error.
+    if (in1->size() != in2.size()) {
+      return absl::InvalidArgumentError("Input vectors are not of same size");
+    }
+    int i = 0;
+    // The remaining elements, if any, are subtracted in place sequentially.
+    for (; i < in1->size(); i++) {
+      (*in1)[i].SubInPlace(in2[i], params);
+    }
+    return absl::OkStatus();
+  }
+
+  // Batch subtraction of one vector with a scalar.
+  static rlwe::StatusOr<std::vector<MontgomeryInt>> BatchSub(
+      const std::vector<MontgomeryInt>& in1, const MontgomeryInt& in2,
+      Params* params) {
+    std::vector<MontgomeryInt> out = in1;
+    RLWE_RETURN_IF_ERROR(BatchSubInPlace(&out, in2, params));
+    return out;
+  }
+
+  static absl::Status BatchSubInPlace(std::vector<MontgomeryInt>* in1,
+                                      const MontgomeryInt& in2,
+                                      Params* params) {
+    int i = 0;
+    // The remaining elements, if any, are subtracted in place sequentially.
+    std::for_each(
+        in1->begin() + i, in1->end(),
+        [in2, params](MontgomeryInt& coeff) { coeff.SubInPlace(in2, params); });
+    return absl::OkStatus();
+  }
+
+  // Batch multiplication of two vectors.
+  static rlwe::StatusOr<std::vector<MontgomeryInt>> BatchMul(
+      const std::vector<MontgomeryInt>& in1,
+      const std::vector<MontgomeryInt>& in2, Params* params) {
+    std::vector<MontgomeryInt> out = in1;
+    RLWE_RETURN_IF_ERROR(BatchMulInPlace(&out, in2, params));
+    return out;
+  }
+
+  static absl::Status BatchMulInPlace(std::vector<MontgomeryInt>* in1,
+                                      const std::vector<MontgomeryInt>& in2,
+                                      Params* params) {
+    // If the input vectors' sizes don't match, return an error.
+    if (in1->size() != in2.size()) {
+      return absl::InvalidArgumentError("Input vectors are not of same size");
+    }
+    int i = 0;
+    // The remaining elements, if any, are multiplied in place sequentially.
+    for (; i < in1->size(); i++) {
+      (*in1)[i].MulInPlace(in2[i], params);
+    }
+    return absl::OkStatus();
+  }
+
+  // Batch multiplication of a vector with a scalar.
+  static rlwe::StatusOr<std::vector<MontgomeryInt>> BatchMul(
+      const std::vector<MontgomeryInt>& in1, const MontgomeryInt& in2,
+      Params* params) {
+    std::vector<MontgomeryInt> out = in1;
+    RLWE_RETURN_IF_ERROR(BatchMulInPlace(&out, in2, params));
+    return out;
+  }
+
+  static absl::Status BatchMulInPlace(std::vector<MontgomeryInt>* in1,
+                                      const MontgomeryInt& in2,
+                                      Params* params) {
+    int i = 0;
+    // The remaining elements, if any, are multiplied in place sequentially.
+    std::for_each(
+        in1->begin() + i, in1->end(),
+        [in2, params](MontgomeryInt& coeff) { coeff.MulInPlace(in2, params); });
+    return absl::OkStatus();
+  }
+
+  // Equality.
+  bool operator==(const MontgomeryInt& that) const { return (n_ == that.n_); }
+  bool operator!=(const MontgomeryInt& that) const { return !(*this == that); }
+
+  // Modular exponentiation.
+  MontgomeryInt ModExp(Int exponent, Params* params) const {
+    MontgomeryInt result = MontgomeryInt::ImportOne(params);
+    MontgomeryInt base = *this;
+
+    // Uses the bits of the exponent to gradually compute the result.
+    // When bit k of the exponent is 1, the result is multiplied by
+    // base^{2^k}.
+    while (exponent > 0) {
+      // If the current bit (bit k) is 1, multiply base^{2^k} into the result.
+      if (exponent % 2 == 1) {
+        result.MulInPlace(base, params);
+      }
+
+      // Update base from base^{2^k} to base^{2^{k+1}}.
+      base.MulInPlace(base, params);
+      exponent >>= 1;
+    }
+
+    return result;
+  }
+
+  // Inverse.
+  MontgomeryInt MultiplicativeInverse(Params* params) const {
+    return (*this).ModExp(static_cast<Int>(params->modulus - 2), params);
+  }
+
+ private:
+  template <typename Prng = rlwe::SecurePrng>
+  static rlwe::StatusOr<Int> GenerateRandomInt(int log_modulus, Prng* prng) {
+    // Generate a random Int. As the modulus is always smaller than max(Int),
+    // there will be no issues with overflow.
+    int max_bits_per_step = std::min((int)Params::bitsize_int, (int)64);
+    auto bits_required = log_modulus;
+    Int rand = 0;
+    while (bits_required > 0) {
+      Int rand_bits = 0;
+      if (bits_required <= 8) {
+        // Generate 8 bits of randomness.
+        RLWE_ASSIGN_OR_RETURN(rand_bits, prng->Rand8());
+
+        // Extract bits_required bits and add them to rand.
+        Int needed_bits =
+            rand_bits & ((static_cast<Int>(1) << bits_required) - 1);
+        rand = (rand << bits_required) + needed_bits;
+        break;
+      } else {
+        // Generate 64 bits of randomness.
+        RLWE_ASSIGN_OR_RETURN(rand_bits, prng->Rand64());
+
+        // Extract min(64, bits in Int, bits_required) bits and add them to rand
+        int bits_to_extract = std::min(bits_required, max_bits_per_step);
+        Int needed_bits =
+            rand_bits & ((static_cast<Int>(1) << bits_to_extract) - 1);
+        rand = (rand << bits_to_extract) + needed_bits;
+        bits_required -= bits_to_extract;
+      }
+    }
+    return rand;
+  }
+
+  explicit MontgomeryInt(Int n) : n_(n) {}
+
+  Int n_;
+};
+
+}  // namespace rlwe
+
+#endif  // RLWE_MONTGOMERY_H_
diff --git a/third_party/shell-encryption/src/montgomery_test.cc b/third_party/shell-encryption/src/montgomery_test.cc
new file mode 100644
index 0000000..c16d509
--- /dev/null
+++ b/third_party/shell-encryption/src/montgomery_test.cc
@@ -0,0 +1,840 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "montgomery.h"
+
+#include <cstdint>
+#include <limits>
+#include <list>
+#include <memory>
+#include <random>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "absl/numeric/int128.h"
+#include "constants.h"
+#include "serialization.pb.h"
+#include "status_macros.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+#include "testing/testing_prng.h"
+
+namespace rlwe {
+namespace {
+
+// Random uniform distribution for Uint64.
+std::uniform_int_distribution<Uint64> uniform_uint64;
+
+using ::rlwe::testing::StatusIs;
+using ::testing::HasSubstr;
+
+const Uint64 kTestingRounds = 1;
+
+// Montgomery parameters for a 10-bit modulus.
+constexpr Uint64 kModulus10 = 997;
+
+// Montgomery parameters for a 8-bit modulus.
+constexpr Uint64 kModulus8 = 233;
+
+// Generate a random integer of a specified number of bits.
+template <class TypeParam>
+TypeParam GenerateRandom(unsigned int* seed) {
+  std::minstd_rand random(*seed);
+  *seed += 1;
+  return static_cast<TypeParam>(uniform_uint64(random));
+}
+// Specialization for absl::uint128 and uint256.
+template <>
+absl::uint128 GenerateRandom(unsigned int* seed) {
+  Uint64 hi = GenerateRandom<Uint64>(seed);
+  Uint64 lo = GenerateRandom<Uint64>(seed);
+  return absl::MakeUint128(hi, lo);
+}
+template <>
+uint256 GenerateRandom(unsigned int* seed) {
+  absl::uint128 hi = GenerateRandom<absl::uint128>(seed);
+  absl::uint128 lo = GenerateRandom<absl::uint128>(seed);
+  return uint256(hi, lo);
+}
+
+template <typename T>
+std::list<std::unique_ptr<MontgomeryIntParams<T>>> ConstructParams();
+
+template <>
+std::list<std::unique_ptr<MontgomeryIntParams<Uint16>>>
+ConstructParams<Uint16>() {
+  std::list<std::unique_ptr<MontgomeryIntParams<Uint16>>> params;
+  for (auto modulus :
+       std::vector<Uint16>({kModulus8, kModulus10, kNewhopeModulus})) {
+    auto status_or_params = MontgomeryIntParams<Uint16>::Create(modulus);
+    if (!status_or_params.ok()) {
+      LOG(FATAL) << "Creating MontgomeryIntParams failed.\n";
+    }
+    params.emplace_back(std::move(status_or_params).ValueOrDie());
+  }
+  return params;
+}
+
+template <>
+std::list<std::unique_ptr<MontgomeryIntParams<Uint32>>>
+ConstructParams<Uint32>() {
+  std::list<std::unique_ptr<MontgomeryIntParams<Uint32>>> params;
+  for (auto modulus : std::vector<Uint32>(
+           {kModulus8, kModulus10, kNewhopeModulus, kModulus29})) {
+    auto status_or_params = MontgomeryIntParams<Uint32>::Create(modulus);
+    if (!status_or_params.ok()) {
+      LOG(FATAL) << "Creating MontgomeryIntParams failed.\n";
+    }
+    params.emplace_back(std::move(status_or_params).ValueOrDie());
+  }
+  return params;
+}
+
+template <>
+std::list<std::unique_ptr<MontgomeryIntParams<Uint64>>>
+ConstructParams<Uint64>() {
+  std::list<std::unique_ptr<MontgomeryIntParams<Uint64>>> params;
+  for (auto modulus : std::vector<Uint64>(
+           {kModulus8, kModulus10, kNewhopeModulus, kModulus29, kModulus59})) {
+    auto status_or_params = MontgomeryIntParams<Uint64>::Create(modulus);
+    if (!status_or_params.ok()) {
+      LOG(FATAL) << "Creating MontgomeryIntParams failed.\n";
+    }
+    params.emplace_back(std::move(status_or_params).ValueOrDie());
+  }
+  return params;
+}
+
+template <>
+std::list<std::unique_ptr<MontgomeryIntParams<absl::uint128>>>
+ConstructParams<absl::uint128>() {
+  std::list<std::unique_ptr<MontgomeryIntParams<absl::uint128>>> params;
+  for (auto modulus : std::vector<absl::uint128>({kModulus59, kModulus80})) {
+    auto status_or_params = MontgomeryIntParams<absl::uint128>::Create(modulus);
+    if (!status_or_params.ok()) {
+      LOG(FATAL) << "Creating MontgomeryIntParams failed.\n";
+    }
+    params.emplace_back(std::move(status_or_params).ValueOrDie());
+  }
+  return params;
+}
+
+template <typename T>
+class MontgomeryTest : public ::testing::Test {
+ protected:
+  MontgomeryTest() { params_ = ConstructParams<T>(); }
+
+  std::list<std::unique_ptr<MontgomeryIntParams<T>>> params_;
+};
+using IntTypes = ::testing::Types<Uint16, Uint32, Uint64, absl::uint128>;
+TYPED_TEST_SUITE(MontgomeryTest, IntTypes);
+
+TYPED_TEST(MontgomeryTest, ModulusTooLarge) {
+  using Int = TypeParam;
+
+  unsigned int seed = 0;
+  Int modulus;
+  for (Int i = 0; i < kTestingRounds; ++i) {
+    // Sample an invalid odd modulus in (max(Int)/2, max(Int)).
+    modulus =
+        (std::numeric_limits<Int>::max() / 2) +
+        (GenerateRandom<Int>(&seed) % (std::numeric_limits<Int>::max() / 2));
+    modulus |= 1;  // Ensure that the modulus is odd.
+
+    EXPECT_THAT(
+        MontgomeryIntParams<Int>::Create(modulus),
+        StatusIs(absl::StatusCode::kInvalidArgument,
+                 HasSubstr(absl::StrCat("The modulus should be less than 2^",
+                                        (sizeof(Int) * 8 - 2), "."))));
+
+    // Sample an even modulus in the allowed range.
+    modulus =
+        (GenerateRandom<Int>(&seed) % (std::numeric_limits<Int>::max() / 8))
+        << 1;
+    EXPECT_THAT(
+        MontgomeryIntParams<Int>::Create(modulus),
+        StatusIs(absl::StatusCode::kInvalidArgument,
+                 HasSubstr(absl::StrCat("The modulus should be odd."))));
+  }
+}
+
+// Verifies that the MontgomeryIntParams code computes the inverse modulus.
+TYPED_TEST(MontgomeryTest, ParamsInvModulus) {
+  using BigInt = typename internal::BigInt<TypeParam>::value_type;
+  for (auto& params : this->params_) {
+    EXPECT_EQ(params->r * params->inv_r -
+                  static_cast<BigInt>(params->modulus) * params->inv_modulus,
+              1);
+  }
+}
+
+// Verifies that numbers can be imported and exported properly.
+TYPED_TEST(MontgomeryTest, ImportExportInt) {
+  using Int = TypeParam;
+
+  unsigned int seed = 0;
+  for (auto& params : this->params_) {
+    for (Int i = 0; i < kTestingRounds; ++i) {
+      Int a = GenerateRandom<Int>(&seed) % params->modulus;
+      ASSERT_OK_AND_ASSIGN(auto m,
+                           MontgomeryInt<Int>::ImportInt(a, params.get()));
+      Int after = m.ExportInt(params.get());
+      EXPECT_EQ(after, a);
+    }
+  }
+}
+
+// Verifies that numbers can be added correctly.
+TYPED_TEST(MontgomeryTest, AddSub) {
+  using Int = TypeParam;
+
+  // Test over a selection of the possible input space.
+  unsigned int seed = 0;
+
+  for (auto& params : this->params_) {
+    for (int i = 0; i < kTestingRounds; i++) {
+      Int a = GenerateRandom<Int>(&seed) % params->modulus;
+      Int b = GenerateRandom<Int>(&seed) % params->modulus;
+      ASSERT_OK_AND_ASSIGN(MontgomeryInt<Int> ma,
+                           MontgomeryInt<Int>::ImportInt(a, params.get()));
+      ASSERT_OK_AND_ASSIGN(MontgomeryInt<Int> mb,
+                           MontgomeryInt<Int>::ImportInt(b, params.get()));
+      MontgomeryInt<Int> mc = ma.Add(mb, params.get());
+      Int c = mc.ExportInt(params.get());
+
+      Int expected = (a + b) % params->modulus;
+      EXPECT_EQ(expected, c);
+
+      MontgomeryInt<Int> md = ma.Sub(mb, params.get());
+      Int d = md.ExportInt(params.get());
+
+      Int expected2 = (a + params->modulus - b) % params->modulus;
+      EXPECT_EQ(expected2, d);
+    }
+  }
+}
+
+TYPED_TEST(MontgomeryTest, InlineAddSub) {
+  using Int = TypeParam;
+
+  // Test over a selection of the possible input space.
+  unsigned int seed = 0;
+
+  for (auto& params : this->params_) {
+    for (int i = 0; i < kTestingRounds; i++) {
+      Int a = GenerateRandom<Int>(&seed) % params->modulus;
+      Int b = GenerateRandom<Int>(&seed) % params->modulus;
+      ASSERT_OK_AND_ASSIGN(MontgomeryInt<Int> ma,
+                           MontgomeryInt<Int>::ImportInt(a, params.get()));
+      ASSERT_OK_AND_ASSIGN(MontgomeryInt<Int> mb,
+                           MontgomeryInt<Int>::ImportInt(b, params.get()));
+      ma.AddInPlace(mb, params.get());
+      Int c = ma.ExportInt(params.get());
+
+      Int expected = (a + b) % params->modulus;
+      EXPECT_EQ(expected, c);
+
+      ASSERT_OK_AND_ASSIGN(ma, MontgomeryInt<Int>::ImportInt(a, params.get()));
+
+      ma.SubInPlace(mb, params.get());
+      Int d = ma.ExportInt(params.get());
+
+      Int expected2 = (a + params->modulus - b) % params->modulus;
+      EXPECT_EQ(expected2, d);
+    }
+  }
+}
+
+// Verifies that equality functions properly.
+TYPED_TEST(MontgomeryTest, Equality) {
+  using Int = TypeParam;
+
+  // Test over a selection of the possible input space.
+  unsigned int seed = 0;
+
+  for (auto& params : this->params_) {
+    for (int i = 0; i < kTestingRounds; i++) {
+      Int a = GenerateRandom<Int>(&seed) % params->modulus;
+      Int b = GenerateRandom<Int>(&seed) % params->modulus;
+      while (b == a) {
+        b = GenerateRandom<Int>(&seed) % params->modulus;
+      }
+
+      ASSERT_OK_AND_ASSIGN(auto ma1,
+                           MontgomeryInt<Int>::ImportInt(a, params.get()));
+      ASSERT_OK_AND_ASSIGN(auto ma2,
+                           MontgomeryInt<Int>::ImportInt(a, params.get()));
+      ASSERT_OK_AND_ASSIGN(auto mb1,
+                           MontgomeryInt<Int>::ImportInt(b, params.get()));
+      ASSERT_OK_AND_ASSIGN(auto mb2,
+                           MontgomeryInt<Int>::ImportInt(b, params.get()));
+
+      EXPECT_TRUE(ma1 == ma2);
+      EXPECT_TRUE(ma2 == ma1);
+      EXPECT_FALSE(ma1 != ma2);
+      EXPECT_FALSE(ma2 != ma1);
+
+      EXPECT_TRUE(mb1 == mb2);
+      EXPECT_TRUE(mb2 == mb1);
+      EXPECT_FALSE(mb1 != mb2);
+      EXPECT_FALSE(mb2 != mb1);
+
+      EXPECT_TRUE(ma1 != mb1);
+      EXPECT_TRUE(mb1 != ma1);
+      EXPECT_FALSE(ma1 == mb1);
+      EXPECT_FALSE(mb1 == ma1);
+    }
+  }
+}
+
+// Verifies that numbers can be negated correctly.
+TYPED_TEST(MontgomeryTest, Negate) {
+  using Int = TypeParam;
+
+  for (auto& params : this->params_) {
+    for (Int i = 0; i < 4 * kNewhopeModulus; i++) {
+      ASSERT_OK_AND_ASSIGN(auto mi,
+                           MontgomeryInt<Int>::ImportInt(i, params.get()));
+      EXPECT_EQ(0, mi.Add(mi.Negate(params.get()), params.get())
+                       .ExportInt(params.get()));
+    }
+  }
+}
+
+// Verifies that repeated addition works properly.
+TYPED_TEST(MontgomeryTest, AddRepeatedly) {
+  using Int = TypeParam;
+
+  // Test over a selection of the possible input space.
+  unsigned int seed = 0;
+
+  for (auto& params : this->params_) {
+    for (int i = 0; i < kTestingRounds; i++) {
+      Int sum = 0;
+      Int diff = 0;
+      MontgomeryInt<Int> mont_sum =
+          MontgomeryInt<Int>::ImportZero(params.get());
+      MontgomeryInt<Int> mont_diff =
+          MontgomeryInt<Int>::ImportZero(params.get());
+
+      for (int j = 0; j < 1000; j++) {
+        Int a = GenerateRandom<Int>(&seed) % params->modulus;
+
+        sum = (sum + a) % params->modulus;
+        ASSERT_OK_AND_ASSIGN(auto ma,
+                             MontgomeryInt<Int>::ImportInt(a, params.get()));
+        mont_sum = mont_sum.Add(ma, params.get());
+
+        diff = (diff + params->modulus - a) % params->modulus;
+        mont_diff = mont_diff.Sub(ma, params.get());
+      }
+
+      EXPECT_EQ(sum, mont_sum.ExportInt(params.get()));
+      EXPECT_EQ(diff, mont_diff.ExportInt(params.get()));
+    }
+  }
+}
+
+// Verifies that numbers can be multiplied correctly.
+TYPED_TEST(MontgomeryTest, Multiply) {
+  using Int = TypeParam;
+  using BigInt = typename internal::BigInt<Int>::value_type;
+  unsigned int seed = 0;
+
+  for (auto& params : this->params_) {
+    // Test over many random values.
+    for (int i = 0; i < kTestingRounds; i++) {
+      Int a = GenerateRandom<Int>(&seed) % params->modulus;
+      Int b = GenerateRandom<Int>(&seed) % params->modulus;
+      ASSERT_OK_AND_ASSIGN(auto ma,
+                           MontgomeryInt<Int>::ImportInt(a, params.get()));
+      ASSERT_OK_AND_ASSIGN(auto mb,
+                           MontgomeryInt<Int>::ImportInt(b, params.get()));
+      MontgomeryInt<Int> mc = ma.Mul(mb, params.get());
+      Int c = mc.ExportInt(params.get());
+
+      Int expected =
+          static_cast<Int>((static_cast<BigInt>(a) * static_cast<BigInt>(b)) %
+                           static_cast<BigInt>(params->modulus));
+      EXPECT_EQ(expected, c);
+    }
+    // Test the multiplication of the maximum values together.
+    Int a = params->modulus - 1;
+    ASSERT_OK_AND_ASSIGN(auto ma,
+                         MontgomeryInt<Int>::ImportInt(a, params.get()));
+
+    MontgomeryInt<Int> mb = ma.Mul(ma, params.get());
+    Int b = mb.ExportInt(params.get());
+
+    EXPECT_EQ(1, b);
+  }
+}
+
+TYPED_TEST(MontgomeryTest, InlineMultiply) {
+  using Int = TypeParam;
+  using BigInt = typename internal::BigInt<Int>::value_type;
+  unsigned int seed = 0;
+
+  for (auto& params : this->params_) {
+    // Test over many random values.
+    for (int i = 0; i < kTestingRounds; i++) {
+      Int a = GenerateRandom<Int>(&seed) % params->modulus;
+      Int b = GenerateRandom<Int>(&seed) % params->modulus;
+      ASSERT_OK_AND_ASSIGN(auto ma,
+                           MontgomeryInt<Int>::ImportInt(a, params.get()));
+      ASSERT_OK_AND_ASSIGN(auto mb,
+                           MontgomeryInt<Int>::ImportInt(b, params.get()));
+      ma.MulInPlace(mb, params.get());
+      Int c = ma.ExportInt(params.get());
+
+      Int expected =
+          static_cast<Int>((static_cast<BigInt>(a) * static_cast<BigInt>(b)) %
+                           static_cast<BigInt>(params->modulus));
+      EXPECT_EQ(expected, c);
+    }
+  }
+}
+
+// Verifies that repeated addition works properly.
+TYPED_TEST(MontgomeryTest, MultiplyRepeatedly) {
+  using Int = TypeParam;
+  using BigInt = typename internal::BigInt<Int>::value_type;
+
+  // Test over a selection of the possible input space.
+  unsigned int seed = 0;
+
+  for (auto& params : this->params_) {
+    for (int i = 0; i < kTestingRounds; i++) {
+      BigInt prod = 1;
+      MontgomeryInt<Int> mont_prod =
+          MontgomeryInt<Int>::ImportOne(params.get());
+
+      for (int j = 0; j < 1000; j++) {
+        Int a = GenerateRandom<Int>(&seed) % params->modulus;
+
+        prod = (prod * static_cast<BigInt>(a)) %
+               static_cast<BigInt>(params->modulus);
+        ASSERT_OK_AND_ASSIGN(auto ma,
+                             MontgomeryInt<Int>::ImportInt(a, params.get()));
+        mont_prod = mont_prod.Mul(ma, params.get());
+      }
+
+      EXPECT_EQ(static_cast<Int>(prod), mont_prod.ExportInt(params.get()));
+    }
+  }
+}
+
+// Test the entire space for a small modulus.
+TYPED_TEST(MontgomeryTest, SmallModulus) {
+  using Int = TypeParam;
+  using BigInt = typename internal::BigInt<Int>::value_type;
+
+  for (auto& params : this->params_) {
+    const BigInt modulus = static_cast<BigInt>(params->modulus);
+    Int upper_bound = std::min<Int>(kModulus8, params->modulus);
+    for (Int a = 0; a < 2 * upper_bound; a++) {
+      Int b = a + 1;
+      BigInt a_BigInt = static_cast<BigInt>(a);
+      BigInt b_BigInt = static_cast<BigInt>(b);
+      ASSERT_OK_AND_ASSIGN(auto ma,
+                           MontgomeryInt<Int>::ImportInt(a, params.get()));
+      ASSERT_OK_AND_ASSIGN(auto mb,
+                           MontgomeryInt<Int>::ImportInt(b, params.get()));
+      MontgomeryInt<Int> mc = ma.Add(mb, params.get());
+
+      // Equality.
+      if (a_BigInt % modulus == b_BigInt % modulus) {
+        EXPECT_TRUE(ma == mb);
+        EXPECT_FALSE(ma != mb);
+      } else {
+        EXPECT_TRUE(ma != mb);
+        EXPECT_FALSE(ma == mb);
+      }
+
+      // Addition.
+      EXPECT_EQ(static_cast<Int>((a_BigInt + b_BigInt) % modulus),
+                mc.ExportInt(params.get()));
+
+      // Negation.
+      EXPECT_EQ(static_cast<Int>((2 * modulus - a_BigInt) % modulus),
+                (ma.Negate(params.get())).ExportInt(params.get()));
+      EXPECT_EQ(static_cast<Int>((2 * modulus - b_BigInt) % modulus),
+                (mb.Negate(params.get())).ExportInt(params.get()));
+      EXPECT_EQ(static_cast<Int>((4 * modulus - a_BigInt - b_BigInt) % modulus),
+                (mc.Negate(params.get())).ExportInt(params.get()));
+
+      // Subtraction.
+      EXPECT_EQ(static_cast<Int>((2 * modulus - a_BigInt + b_BigInt) % modulus),
+                (mb.Sub(ma, params.get()).ExportInt(params.get())));
+      EXPECT_EQ(static_cast<Int>((2 * modulus - b_BigInt + a_BigInt) % modulus),
+                (ma.Sub(mb, params.get()).ExportInt(params.get())));
+
+      // Multiplication and commutativity.
+      EXPECT_EQ(static_cast<Int>((a_BigInt * b_BigInt) % modulus),
+                (ma.Mul(mb, params.get())).ExportInt(params.get()));
+      EXPECT_EQ(static_cast<Int>((a_BigInt * b_BigInt) % modulus),
+                (mb.Mul(ma, params.get())).ExportInt(params.get()));
+    }
+  }
+}
+
+TYPED_TEST(MontgomeryTest, ModExpModulus) {
+  using Int = TypeParam;
+  using BigInt = typename internal::BigInt<Int>::value_type;
+  unsigned int seed = 0;
+
+  for (auto& params : this->params_) {
+    const BigInt modulus = static_cast<BigInt>(params->modulus);
+    for (int i = 0; i < kTestingRounds; i++) {
+      BigInt expected = 1;
+      Int base = GenerateRandom<Int>(&seed) % params->modulus;
+      for (Int exp = 0; exp < 1000; exp++) {
+        ASSERT_OK_AND_ASSIGN(auto base_m,
+                             MontgomeryInt<Int>::ImportInt(base, params.get()));
+        auto actual_m = base_m.ModExp(exp, params.get());
+        Int actual = actual_m.ExportInt(params.get());
+        ASSERT_EQ(actual, expected);
+
+        expected *= static_cast<BigInt>(base);
+        expected %= modulus;
+      }
+    }
+  }
+}
+
+TYPED_TEST(MontgomeryTest, InverseModulus) {
+  using Int = TypeParam;
+  unsigned int seed = 0;
+
+  for (auto& params : this->params_) {
+    for (int i = 0; i < kTestingRounds; i++) {
+      Int a = GenerateRandom<Int>(&seed) % params->modulus;
+      ASSERT_OK_AND_ASSIGN(auto a_m,
+                           MontgomeryInt<Int>::ImportInt(a, params.get()));
+      MontgomeryInt<Int> inv = a_m.MultiplicativeInverse(params.get());
+      ASSERT_EQ((a_m.Mul(inv, params.get())).ExportInt(params.get()), 1);
+    }
+  }
+}
+
+TYPED_TEST(MontgomeryTest, Serialization) {
+  using Int = TypeParam;
+
+  // Try all possible values up to kModulus10.
+  for (auto& params : this->params_) {
+    for (Int i = 0; i < kModulus10; i++) {
+      Int input_int = i % params->modulus;
+      // Serialize and ensure the byte length is as expected.
+      ASSERT_OK_AND_ASSIGN(auto int_value, MontgomeryInt<Int>::ImportInt(
+                                               input_int, params.get()));
+
+      ASSERT_OK_AND_ASSIGN(std::string serialized,
+                           int_value.Serialize(params.get()));
+
+      EXPECT_EQ(serialized.length(), params->SerializedSize());
+
+      // Ensure that deserialization works properly.
+      ASSERT_OK_AND_ASSIGN(
+          auto int_deserialized,
+          MontgomeryInt<Int>::Deserialize(serialized, params.get()));
+      EXPECT_EQ(int_deserialized, int_value);
+
+      // Ensure that that any bit beyond bit the serialized bit length can be
+      // wiped out without issue. That is, ensure that the bit size is accurate.
+      serialized[serialized.length() - 1] &=
+          (static_cast<Uint8>(1)
+           << (params->log_modulus - 8 * (serialized.length() - 1))) -
+          1;
+      ASSERT_OK_AND_ASSIGN(
+          auto int_deserialized2,
+          MontgomeryInt<Int>::Deserialize(serialized, params.get()));
+      EXPECT_EQ(int_deserialized2, int_value);
+    }
+  }
+}
+
+TYPED_TEST(MontgomeryTest, ExceedMaxNumCoeffVectorSerialization) {
+  using Int = TypeParam;
+  int num_coeffs = kMaxNumCoeffs + 1;
+
+  for (auto& params : this->params_) {
+    std::vector<MontgomeryInt<Int>> coeffs;
+    for (int i = 0; i < num_coeffs; ++i) {
+      coeffs.push_back(MontgomeryInt<Int>::ImportOne(params.get()));
+    }
+    EXPECT_THAT(MontgomeryInt<Int>::SerializeVector(coeffs, params.get()),
+                StatusIs(absl::StatusCode::kInvalidArgument,
+                         HasSubstr(absl::StrCat(
+                             "Number of coefficients, ", num_coeffs,
+                             ", cannot be larger than ", kMaxNumCoeffs, "."))));
+  }
+}
+
+TYPED_TEST(MontgomeryTest, EmptyVectorSerialization) {
+  using Int = TypeParam;
+
+  for (auto& params : this->params_) {
+    std::vector<MontgomeryInt<Int>> coeffs;
+    EXPECT_THAT(MontgomeryInt<Int>::SerializeVector(coeffs, params.get()),
+                StatusIs(absl::StatusCode::kInvalidArgument,
+                         HasSubstr("Cannot serialize an empty vector")));
+  }
+}
+
+TYPED_TEST(MontgomeryTest, VectorSerialization) {
+  using Int = TypeParam;
+
+  // Prng to generate random values
+  auto prng = absl::make_unique<rlwe::testing::TestingPrng>(0);
+
+  for (auto& params : this->params_) {
+    for (int num_coeffs = 3; num_coeffs <= 25; ++num_coeffs) {
+      std::vector<MontgomeryInt<Int>> coeffs;
+      coeffs.reserve(num_coeffs);
+      for (int i = 0; i < num_coeffs; ++i) {
+        ASSERT_OK_AND_ASSIGN(auto int_value, MontgomeryInt<Int>::ImportRandom(
+                                                 prng.get(), params.get()));
+        coeffs.push_back(int_value);
+      }
+      ASSERT_OK_AND_ASSIGN(
+          std::string serialized,
+          MontgomeryInt<Int>::SerializeVector(coeffs, params.get()));
+      int expected_size = (num_coeffs * params->log_modulus + 7) / 8;
+      EXPECT_EQ(serialized.size(), expected_size);
+      ASSERT_OK_AND_ASSIGN(auto deserialized,
+                           MontgomeryInt<Int>::DeserializeVector(
+                               num_coeffs, serialized, params.get()));
+      EXPECT_EQ(deserialized.size(), num_coeffs);
+      for (int i = 0; i < num_coeffs; ++i) {
+        EXPECT_EQ(coeffs[i], deserialized[i]);
+      }
+    }
+  }
+}
+
+TYPED_TEST(MontgomeryTest, ExceedMaxNumCoeffVectorDeserialization) {
+  using Int = TypeParam;
+  int num_coeffs = kMaxNumCoeffs + 1;
+  for (auto& params : this->params_) {
+    EXPECT_THAT(MontgomeryInt<Int>::DeserializeVector(num_coeffs, std::string(),
+                                                      params.get()),
+                StatusIs(absl::StatusCode::kInvalidArgument,
+                         HasSubstr(absl::StrCat(
+                             "Number of coefficients, ", num_coeffs,
+                             ", cannot be larger than ", kMaxNumCoeffs, "."))));
+  }
+}
+
+TYPED_TEST(MontgomeryTest, NegativeVectorDeserialization) {
+  using Int = TypeParam;
+  int num_coeffs = -1;
+  for (auto& params : this->params_) {
+    EXPECT_THAT(
+        MontgomeryInt<Int>::DeserializeVector(num_coeffs, std::string(),
+                                              params.get()),
+        StatusIs(absl::StatusCode::kInvalidArgument,
+                 HasSubstr("Number of coefficients must be non-negative.")));
+  }
+}
+
+TYPED_TEST(MontgomeryTest, ImportRandomWithPrngWithSameKeys) {
+  using Int = TypeParam;
+
+  unsigned int seed = 0;
+
+  for (auto& params : this->params_) {
+    unsigned int seed_prng = GenerateRandom<unsigned int>(&seed);
+    auto prng1 = absl::make_unique<rlwe::testing::TestingPrng>(seed_prng);
+    auto prng2 = absl::make_unique<rlwe::testing::TestingPrng>(seed_prng);
+
+    ASSERT_OK_AND_ASSIGN(
+        auto r1, MontgomeryInt<Int>::ImportRandom(prng1.get(), params.get()));
+    ASSERT_OK_AND_ASSIGN(
+        auto r2, MontgomeryInt<Int>::ImportRandom(prng2.get(), params.get()));
+    EXPECT_EQ(r1, r2);
+  }
+}
+
+TYPED_TEST(MontgomeryTest, ImportRandomWithPrngWithDifferentKeys) {
+  using Int = TypeParam;
+
+  unsigned int seed = 0;
+
+  for (auto& params : this->params_) {
+    unsigned int seed_prng1 = GenerateRandom<unsigned int>(&seed);
+    unsigned int seed_prng2 = seed_prng1 + 1;  // Different seed
+    auto prng1 = absl::make_unique<rlwe::testing::TestingPrng>(seed_prng1);
+    auto prng2 = absl::make_unique<rlwe::testing::TestingPrng>(seed_prng2);
+
+    ASSERT_OK_AND_ASSIGN(
+        auto r1, MontgomeryInt<Int>::ImportRandom(prng1.get(), params.get()));
+    ASSERT_OK_AND_ASSIGN(
+        auto r2, MontgomeryInt<Int>::ImportRandom(prng2.get(), params.get()));
+    EXPECT_NE(r1, r2);
+  }
+}
+
+// Verifies that Barrett reductions functions properly.
+TYPED_TEST(MontgomeryTest, VerifyBarrett) {
+  using Int = TypeParam;
+  using BigInt = typename internal::BigInt<Int>::value_type;
+
+  // Test over a selection of the possible input space.
+  for (unsigned int j = 0; j < kTestingRounds; j++) {
+    unsigned int seed = j;
+
+    for (auto& params : this->params_) {
+      const BigInt modulus = static_cast<BigInt>(params->modulus);
+      for (int i = 0; i < kTestingRounds; i++) {
+        // Verify Barrett reduction up to max(Int).
+        Int a = params->modulus +
+                (GenerateRandom<Int>(&seed) %
+                 (std::numeric_limits<Int>::max() - params->modulus));
+        EXPECT_EQ(params->BarrettReduce(a), static_cast<BigInt>(a) % modulus);
+
+        // Verify Barrett reduction for BigInt up to max(Int) * modulus.
+        BigInt b = GenerateRandom<BigInt>(&seed) %
+                   (std::numeric_limits<Int>::max() * params->modulus);
+        EXPECT_EQ(params->BarrettReduceBigInt(b), b % modulus);
+      }
+    }
+  }
+}
+
+TYPED_TEST(MontgomeryTest, BatchOperations) {
+  using Int = TypeParam;
+  unsigned int seed = 0;
+  unsigned int seed_prng = GenerateRandom<unsigned int>(&seed);
+  auto prng = absl::make_unique<rlwe::testing::TestingPrng>(seed_prng);
+
+  for (auto& params : this->params_) {
+    for (size_t length : {1, 2, 7, 32, 500, 1024}) {
+      std::vector<MontgomeryInt<Int>> a, b;
+      std::vector<MontgomeryInt<Int>> expected_add, expected_sub, expected_mul;
+      MontgomeryInt<Int> scalar =
+          MontgomeryInt<Int>::ImportRandom(prng.get(), params.get())
+              .ValueOrDie();
+      std::vector<MontgomeryInt<Int>> expected_add_scalar, expected_sub_scalar,
+          expected_mul_scalar;
+      for (size_t i = 0; i < length; i++) {
+        a.push_back(MontgomeryInt<Int>::ImportRandom(prng.get(), params.get())
+                        .ValueOrDie());
+        b.push_back(MontgomeryInt<Int>::ImportRandom(prng.get(), params.get())
+                        .ValueOrDie());
+        expected_add.push_back(a[i].Add(b[i], params.get()));
+        expected_sub.push_back(a[i].Sub(b[i], params.get()));
+        expected_mul.push_back(a[i].Mul(b[i], params.get()));
+        expected_add_scalar.push_back(a[i].Add(scalar, params.get()));
+        expected_sub_scalar.push_back(a[i].Sub(scalar, params.get()));
+        expected_mul_scalar.push_back(a[i].Mul(scalar, params.get()));
+      }
+
+      ASSERT_OK_AND_ASSIGN(std::vector<MontgomeryInt<Int>> add,
+                           MontgomeryInt<Int>::BatchAdd(a, b, params.get()));
+      ASSERT_OK_AND_ASSIGN(std::vector<MontgomeryInt<Int>> sub,
+                           MontgomeryInt<Int>::BatchSub(a, b, params.get()));
+      ASSERT_OK_AND_ASSIGN(std::vector<MontgomeryInt<Int>> mul,
+                           MontgomeryInt<Int>::BatchMul(a, b, params.get()));
+      ASSERT_OK_AND_ASSIGN(
+          std::vector<MontgomeryInt<Int>> add_scalar,
+          MontgomeryInt<Int>::BatchAdd(a, scalar, params.get()));
+      ASSERT_OK_AND_ASSIGN(
+          std::vector<MontgomeryInt<Int>> sub_scalar,
+          MontgomeryInt<Int>::BatchSub(a, scalar, params.get()));
+      ASSERT_OK_AND_ASSIGN(
+          std::vector<MontgomeryInt<Int>> mul_scalar,
+          MontgomeryInt<Int>::BatchMul(a, scalar, params.get()));
+
+      EXPECT_EQ(add.size(), expected_add.size());
+      EXPECT_EQ(sub.size(), expected_sub.size());
+      EXPECT_EQ(mul.size(), expected_mul.size());
+      EXPECT_EQ(add_scalar.size(), expected_add_scalar.size());
+      EXPECT_EQ(sub_scalar.size(), expected_sub_scalar.size());
+      EXPECT_EQ(mul_scalar.size(), expected_mul_scalar.size());
+      for (size_t i = 0; i < length; i++) {
+        EXPECT_EQ(add[i].ExportInt(params.get()),
+                  expected_add[i].ExportInt(params.get()));
+        EXPECT_EQ(sub[i].ExportInt(params.get()),
+                  expected_sub[i].ExportInt(params.get()));
+        EXPECT_EQ(mul[i].ExportInt(params.get()),
+                  expected_mul[i].ExportInt(params.get()));
+        EXPECT_EQ(add_scalar[i].ExportInt(params.get()),
+                  expected_add_scalar[i].ExportInt(params.get()));
+        EXPECT_EQ(sub_scalar[i].ExportInt(params.get()),
+                  expected_sub_scalar[i].ExportInt(params.get()));
+        EXPECT_EQ(mul_scalar[i].ExportInt(params.get()),
+                  expected_mul_scalar[i].ExportInt(params.get()));
+      }
+    }
+  }
+}
+
+TYPED_TEST(MontgomeryTest, BatchOperationsFailsWithVectorsOfDifferentSize) {
+  using Int = TypeParam;
+  for (auto& params : this->params_) {
+    for (size_t length_a : {1, 2, 7, 32, 500, 1024}) {
+      for (size_t length_b : {1, 2, 7, 32, 500, 1024}) {
+        if (length_a != length_b) {
+          std::vector<MontgomeryInt<Int>> a(
+              length_a, MontgomeryInt<Int>::ImportZero(params.get()));
+          std::vector<MontgomeryInt<Int>> b(
+              length_b, MontgomeryInt<Int>::ImportZero(params.get()));
+
+          EXPECT_THAT(
+              MontgomeryInt<Int>::BatchAdd(a, b, params.get()),
+              StatusIs(absl::StatusCode::kInvalidArgument,
+                       HasSubstr("Input vectors are not of same size")));
+          EXPECT_THAT(
+              MontgomeryInt<Int>::BatchAddInPlace(&a, b, params.get()),
+              StatusIs(absl::StatusCode::kInvalidArgument,
+                       HasSubstr("Input vectors are not of same size")));
+          EXPECT_THAT(
+              MontgomeryInt<Int>::BatchSub(a, b, params.get()),
+              StatusIs(absl::StatusCode::kInvalidArgument,
+                       HasSubstr("Input vectors are not of same size")));
+          EXPECT_THAT(
+              MontgomeryInt<Int>::BatchSubInPlace(&a, b, params.get()),
+              StatusIs(absl::StatusCode::kInvalidArgument,
+                       HasSubstr("Input vectors are not of same size")));
+          EXPECT_THAT(
+              MontgomeryInt<Int>::BatchMul(a, b, params.get()),
+              StatusIs(absl::StatusCode::kInvalidArgument,
+                       HasSubstr("Input vectors are not of same size")));
+          EXPECT_THAT(
+              MontgomeryInt<Int>::BatchMulInPlace(&a, b, params.get()),
+              StatusIs(absl::StatusCode::kInvalidArgument,
+                       HasSubstr("Input vectors are not of same size")));
+        }
+      }
+    }
+  }
+}
+
+// This PRNG tests templating with a Prng that does not inherit from SecurePrng.
+class FakePrng {
+ public:
+  StatusOr<Uint8> Rand8() { return 0; }
+  StatusOr<Uint64> Rand64() { return 0; }
+};
+
+TYPED_TEST(MontgomeryTest, PrngTemplateParameterizationWorks) {
+  using Int = TypeParam;
+  FakePrng prng;
+  auto& params = this->params_.front();
+  ASSERT_OK(MontgomeryInt<Int>::ImportRandom(
+      &prng, params.get()));
+}
+
+}  // namespace
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/ntt_parameters.cc b/third_party/shell-encryption/src/ntt_parameters.cc
new file mode 100644
index 0000000..6d542ac9
--- /dev/null
+++ b/third_party/shell-encryption/src/ntt_parameters.cc
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "ntt_parameters.h"
+
+namespace rlwe {
+namespace internal {
+
+// Bit reverse only among the rightmost log_n bytes.
+unsigned int Bitrev(unsigned int input, unsigned int log_n) {
+  unsigned int output = 0;
+  for (unsigned int i = 0; i < log_n; i++) {
+    output <<= 1;
+    output |= input & 0x01;
+    input >>= 1;
+  }
+
+  return output;
+}
+
+std::vector<unsigned int> BitrevArray(unsigned int log_n) {
+  unsigned int n = 1 << log_n;
+  std::vector<unsigned int> output(n);
+
+  for (unsigned int i = 0; i < n; i++) {
+    output[i] = Bitrev(i, log_n);
+  }
+
+  return output;
+}
+
+}  // namespace internal
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/ntt_parameters.h b/third_party/shell-encryption/src/ntt_parameters.h
new file mode 100644
index 0000000..270a5a2b
--- /dev/null
+++ b/third_party/shell-encryption/src/ntt_parameters.h
@@ -0,0 +1,223 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef RLWE_NTT_PARAMETERS_H_
+#define RLWE_NTT_PARAMETERS_H_
+
+#include <algorithm>
+#include <cstdlib>
+#include <vector>
+
+#include "absl/memory/memory.h"
+#include "absl/strings/str_cat.h"
+#include "constants.h"
+#include "status_macros.h"
+#include "statusor.h"
+
+namespace rlwe {
+namespace internal {
+
+// Fill row with every power in {0, 1, ..., n-1} (mod modulus) of base .
+template <typename ModularInt>
+void FillWithEveryPower(const ModularInt& base, unsigned int n,
+                        std::vector<ModularInt>* row,
+                        typename ModularInt::Params* params) {
+  for (int i = 0; i < n; i++) {
+    (*row)[i].AddInPlace(base.ModExp(i, params), params);
+  }
+}
+
+template <typename ModularInt>
+rlwe::StatusOr<ModularInt> PrimitiveNthRootOfUnity(
+    unsigned int log_n, typename ModularInt::Params* params) {
+  typename ModularInt::Int n = params->One() << log_n;
+  typename ModularInt::Int half_n = n >> 1;
+
+  // When the modulus is prime, the value k is a power such that any number
+  // raised to it will be a n-th root of unity. (It will not necessarily be a
+  // *primitive* root of unity, however).
+  typename ModularInt::Int k = (params->modulus - params->One()) / n;
+
+  // Test each number t to see whether t^k is a primitive n-th root
+  // of unity - that t^{nk} is a root of unity but t^{(n/2)k} is not.
+  ModularInt one = ModularInt::ImportOne(params);
+  for (typename ModularInt::Int t = params->Two(); t < params->modulus;
+       t = t + params->One()) {
+    // Produce a candidate root of unity.
+    RLWE_ASSIGN_OR_RETURN(auto mt, ModularInt::ImportInt(t, params));
+    ModularInt candidate = mt.ModExp(k, params);
+
+    // Check whether candidate^half_n = 1. If not, it is a primitive root of
+    // unity.
+    if (candidate.ModExp(half_n, params) != one) {
+      return candidate;
+    }
+  }
+
+  // Failure state. The above loop should always return successfully assuming
+  // the parameters were set properly.
+  return absl::UnknownError("Loop in PrimitiveNthRootOfUnity terminated.");
+}
+
+// Let psi be a primitive 2n-th root of unity, i.e., a 2n-th root of unity such
+// that psi^n = -1. When performing the NTT transformation, the powers of psi in
+// bitreversed order are needed. The vector produced by this helper function
+// contains the powers of psi (psi^0, psi^1, psi^2, ..., psi^(n-1)).
+//
+// Each item of the vector is in modular integer representation.
+template <typename ModularInt>
+rlwe::StatusOr<std::vector<ModularInt>> NttPsis(
+    unsigned int log_n, typename ModularInt::Params* params) {
+  // Obtain psi, a primitive 2n-th root of unity (hence log_n + 1).
+  RLWE_ASSIGN_OR_RETURN(
+      ModularInt psi,
+      internal::PrimitiveNthRootOfUnity<ModularInt>(log_n + 1, params));
+  unsigned int n = 1 << log_n;
+  ModularInt zero = ModularInt::ImportZero(params);
+  // Create a vector with the powers of psi.
+  std::vector<ModularInt> row(n, zero);
+  internal::FillWithEveryPower<ModularInt>(psi, n, &row, params);
+  return row;
+}
+
+// Creates a vector containing the indices necessary to perform the NTT bit
+// reversal operation. Index i of the returned vector contains an integer with
+// the rightmost log_n bits of i reversed.
+std::vector<unsigned int> BitrevArray(unsigned int log_n);
+
+// Helper function: Perform the bit-reversal operation in-place on coeffs_.
+template <typename ModularInt>
+static void BitrevHelper(const std::vector<unsigned int>& bitrevs,
+                         std::vector<ModularInt>* item_to_reverse) {
+  using std::swap;
+  for (int i = 0; i < item_to_reverse->size(); i++) {
+    // Only swap in one direction - don't accidentally swap twice.
+    unsigned int r = bitrevs[i];
+    if (static_cast<unsigned int>(i) < r) {
+      swap((*item_to_reverse)[i], (*item_to_reverse)[r]);
+    }
+  }
+}
+
+}  // namespace internal
+
+// The precomputed roots of unity used during the forward NTT are the
+// bitreversed powers of the primitive 2n-th root of unity.
+template <typename ModularInt>
+rlwe::StatusOr<std::vector<ModularInt>> NttPsisBitrev(
+    unsigned int log_n, typename ModularInt::Params* params) {
+  // Retrieve the table for the forward transformation.
+  RLWE_ASSIGN_OR_RETURN(std::vector<ModularInt> psis,
+                        internal::NttPsis<ModularInt>(log_n, params));
+  // Bitreverse the vector.
+  internal::BitrevHelper(internal::BitrevArray(log_n), &psis);
+  return psis;
+}
+
+// The precomputed roots of unity used during the inverse NTT are the inverses
+// of the bitreversed powers of the primitive 2n-th root of unity plus 1.
+template <typename ModularInt>
+rlwe::StatusOr<std::vector<ModularInt>> NttPsisInvBitrev(
+    unsigned int log_n, typename ModularInt::Params* params) {
+  // Retrieve the table for the forward transformation.
+  RLWE_ASSIGN_OR_RETURN(std::vector<ModularInt> row,
+                        internal::NttPsis<ModularInt>(log_n, params));
+
+  // Reverse the items at indices 1 through (n - 1). Multiplying index i
+  // of the reversed row by index i of the original row will yield psi^n = -1.
+  // (The exception is psi^0 = 1, which is already its own inverse.)
+  std::reverse(row.begin() + 1, row.end());
+
+  // Get the inverse of psi
+  ModularInt psi_inv = row[1].Negate(params);
+  ModularInt negative_psi_inv = row[1];
+
+  // Bitreverse the vector.
+  internal::BitrevHelper(internal::BitrevArray(log_n), &row);
+
+  // Finally, multiply each of the items at indices 1 to (n-1) by -1. Multiply
+  // every entry by psi_inv.
+  row[0].MulInPlace(psi_inv, params);
+  for (int i = 1; i < row.size(); i++) {
+    row[i].MulInPlace(negative_psi_inv, params);
+  }
+
+  return row;
+}
+
+// A struct that stores a package of NTT Parameters
+template <typename ModularInt>
+struct NttParameters {
+  NttParameters() = default;
+  // Disallow copy and copy-assign, allow move and move-assign.
+  NttParameters(const NttParameters<ModularInt>&) = delete;
+  NttParameters& operator=(const NttParameters<ModularInt>&) = delete;
+  NttParameters(NttParameters<ModularInt>&&) = default;
+  NttParameters& operator=(NttParameters<ModularInt>&&) = default;
+  ~NttParameters() = default;
+
+  int number_coeffs;
+  std::unique_ptr<ModularInt> n_inv_ptr;
+  std::vector<ModularInt> psis_bitrev;
+  std::vector<ModularInt> psis_inv_bitrev;
+  std::vector<unsigned int> bitrevs;
+};
+
+// A convenient function that sets up all NTT parameters at once.
+// Does not take ownership of params.
+template <typename ModularInt>
+rlwe::StatusOr<NttParameters<ModularInt>> InitializeNttParameters(
+    int log_n, typename ModularInt::Params* params) {
+  // Abort if log_n is non-positive.
+  if (log_n <= 0) {
+    return absl::InvalidArgumentError("log_n must be positive");
+  } else if (log_n > kMaxLogNumCoeffs) {
+    return absl::InvalidArgumentError(absl::StrCat(
+        "log_n, ", log_n, ", must be less than ", kMaxLogNumCoeffs, "."));
+  }
+
+  if (!ModularInt::Params::DoesLogNFit(log_n)) {
+    return absl::InvalidArgumentError(
+        absl::StrCat("log_n, ", log_n,
+                     ", does not fit into underlying ModularInt::Int type."));
+  }
+
+  NttParameters<ModularInt> output;
+
+  output.number_coeffs = 1 << log_n;
+  typename ModularInt::Int two_times_n = params->One() << (log_n + 1);
+
+  if (params->modulus % two_times_n != params->One()){
+    return absl::InvalidArgumentError(
+        absl::StrCat("modulus is not 1 mod 2n for logn, ", log_n));
+  }
+
+  // 1-dimensional vector containing the inverse of n
+  typename ModularInt::Int n = params->One() << log_n;
+  RLWE_ASSIGN_OR_RETURN(auto mn, ModularInt::ImportInt(n, params));
+  auto minv = mn.MultiplicativeInverse(params);
+  output.n_inv_ptr = absl::make_unique<ModularInt>(minv);
+
+  RLWE_ASSIGN_OR_RETURN(output.psis_bitrev,
+                        NttPsisBitrev<ModularInt>(log_n, params));
+  RLWE_ASSIGN_OR_RETURN(output.psis_inv_bitrev,
+                        NttPsisInvBitrev<ModularInt>(log_n, params));
+  output.bitrevs = internal::BitrevArray(log_n);
+
+  return output;
+}
+
+}  // namespace rlwe
+
+#endif  // RLWE_NTT_PARAMETERS_H_
diff --git a/third_party/shell-encryption/src/ntt_parameters_test.cc b/third_party/shell-encryption/src/ntt_parameters_test.cc
new file mode 100644
index 0000000..4a0e0e21
--- /dev/null
+++ b/third_party/shell-encryption/src/ntt_parameters_test.cc
@@ -0,0 +1,228 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "ntt_parameters.h"
+
+#include <cstdint>
+#include <vector>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "absl/numeric/int128.h"
+#include "constants.h"
+#include "montgomery.h"
+#include "status_macros.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+
+using uint16_m = rlwe::MontgomeryInt<rlwe::Uint16>;
+using uint64_m = rlwe::MontgomeryInt<rlwe::Uint64>;
+
+using ::rlwe::testing::StatusIs;
+using ::testing::HasSubstr;
+
+namespace {
+
+static const rlwe::Uint64 kLogN = rlwe::kNewhopeLogDegreeBound;
+static const rlwe::Uint64 kN = rlwe::kNewhopeDegreeBound;
+
+class NttParametersTest : public testing::Test {
+ protected:
+  void SetUp() override {
+    ASSERT_OK_AND_ASSIGN(params14_,
+                         uint16_m::Params::Create(rlwe::kNewhopeModulus));
+  }
+  std::unique_ptr<uint16_m::Params> params14_;
+};
+
+TEST_F(NttParametersTest, LogNumCoeffsTooLarge) {
+  ASSERT_OK_AND_ASSIGN(auto params59,
+                       uint64_m::Params::Create(rlwe::kModulus59));
+  int log_n = rlwe::kMaxLogNumCoeffs + 1;
+  EXPECT_THAT(
+      rlwe::InitializeNttParameters<uint64_m>(log_n, params59.get()),
+      StatusIs(::absl::StatusCode::kInvalidArgument,
+               HasSubstr(absl::StrCat("log_n, ", log_n, ", must be less than ",
+                                      rlwe::kMaxLogNumCoeffs, "."))));
+
+  log_n = (sizeof(typename uint16_m::Int) * 8) - 1;
+  EXPECT_THAT(
+      rlwe::InitializeNttParameters<uint16_m>(log_n, params14_.get()),
+      StatusIs(::absl::StatusCode::kInvalidArgument,
+               HasSubstr(absl::StrCat(
+                   "log_n, ", log_n,
+                   ", does not fit into underlying ModularInt::Int type."))));
+}
+
+TEST_F(NttParametersTest, PrimitiveNthRootOfUnity) {
+  unsigned int log_ns[] = {2u, 4u, 6u, 8u, 11u};
+  unsigned int len = 5;
+
+  for (unsigned int i = 0; i < len; i++) {
+    ASSERT_OK_AND_ASSIGN(uint16_m w,
+                         rlwe::internal::PrimitiveNthRootOfUnity<uint16_m>(
+                             log_ns[i], params14_.get()));
+    unsigned int n = 1 << log_ns[i];
+
+    // Ensure it is really a n-th root of unity.
+    auto res = w.ModExp(n, params14_.get());
+    auto one = uint16_m::ImportOne(params14_.get());
+    EXPECT_EQ(res, one) << "Not an n-th root of unity.";
+
+    // Ensure it is really a primitive n-th root of unity.
+    auto res2 = w.ModExp(n / 2, params14_.get());
+    EXPECT_NE(res2, one) << "Not a primitive n-th root of unity.";
+  }
+}
+
+TEST_F(NttParametersTest, NttPsis) {
+  // The values of psi should be the powers of the primitive 2n-th root of
+  // unity.
+  // Obtain the psis.
+  ASSERT_OK_AND_ASSIGN(
+      std::vector<uint16_m> psis,
+      rlwe::internal::NttPsis<uint16_m>(kLogN, params14_.get()));
+
+  // Verify that that the 0th entry is 1.
+  uint16_m one = uint16_m::ImportOne(params14_.get());
+  EXPECT_EQ(one, psis[0]);
+
+  // Verify that the 1th entry is a primitive 2n-th root of unity.
+  auto r1 = psis[1].ModExp(kN << 1, params14_.get());
+  auto r2 = psis[1].ModExp(kN, params14_.get());
+  EXPECT_EQ(one, r1);
+  EXPECT_NE(one, r2);
+
+  // Verify that each subsequent entry is the appropriate power of the 1th
+  // entry.
+  for (unsigned int i = 2; i < kN; i++) {
+    auto ri = psis[1].ModExp(i, params14_.get());
+    EXPECT_EQ(psis[i], ri);
+  }
+}
+
+TEST_F(NttParametersTest, NttPsisBitrev) {
+  // The values of psi should be bitreversed.
+  // Target vector: obtain the psis in bitreversed order.
+  ASSERT_OK_AND_ASSIGN(std::vector<uint16_m> psis_bitrev,
+                       rlwe::NttPsisBitrev<uint16_m>(kLogN, params14_.get()));
+  // Obtain the psis.
+  ASSERT_OK_AND_ASSIGN(
+      std::vector<uint16_m> psis,
+      rlwe::internal::NttPsis<uint16_m>(kLogN, params14_.get()));
+  // Obtain the mapping for bitreversed order
+  std::vector<unsigned int> bit_rev = rlwe::internal::BitrevArray(kLogN);
+
+  for (unsigned int i = 0; i < kN; i++) {
+    EXPECT_EQ(psis_bitrev[i], psis[bit_rev[i]]);
+  }
+}
+
+TEST_F(NttParametersTest, NttPsisInvBitrev) {
+  // The values of the vectors should be psi^(-(brv[k]+1) for all k.
+  // Target vector: obtain the psi inv in bit reversed order.
+  ASSERT_OK_AND_ASSIGN(
+      std::vector<uint16_m> psis_inv_bitrev,
+      rlwe::NttPsisInvBitrev<uint16_m>(kLogN, params14_.get()));
+  // Obtain the psis.
+  ASSERT_OK_AND_ASSIGN(
+      std::vector<uint16_m> psis,
+      rlwe::internal::NttPsis<uint16_m>(kLogN, params14_.get()));
+  // Obtain the mapping for bitreversed order
+  std::vector<unsigned int> bit_rev = rlwe::internal::BitrevArray(kLogN);
+
+  for (unsigned int i = 0; i < kN; i++) {
+    EXPECT_EQ(params14_->One(), psis_inv_bitrev[i]
+                                    .Mul(psis[1], params14_.get())
+                                    .Mul(psis[bit_rev[i]], params14_.get())
+                                    .ExportInt(params14_.get()));
+  }
+}
+
+TEST_F(NttParametersTest, Bitrev) {
+  for (unsigned int log_N = 2; log_N < 11; log_N++) {
+    unsigned int N = 1 << log_N;
+    std::vector<unsigned int> bit_rev = rlwe::internal::BitrevArray(log_N);
+
+    // Visit each entry of the array.
+    for (unsigned int i = 0; i < N; i++) {
+      for (unsigned int j = 0; j < log_N; j++) {
+        // Ensure bit j of i is equal to bit (log_N - j) of bit_rev[i].
+        rlwe::Uint64 mask1 = 1 << j;
+        rlwe::Uint64 mask2 = 1 << (log_N - j - 1);
+        EXPECT_EQ((i & mask1) == 0, (bit_rev[i] & mask2) == 0);
+      }
+    }
+  }
+}
+
+TEST_F(NttParametersTest, IncorrectNTTParams) {
+  // Constants for this test.
+  const int log_num_coeffs = 10;
+
+  // 29-bit working modulus + 2, will no longer be 1 mod 2*n
+  ASSERT_OK_AND_ASSIGN(auto params29,
+                       uint64_m::Params::Create(rlwe::kModulus29 + 2));
+
+  EXPECT_THAT(
+      rlwe::InitializeNttParameters<uint64_m>(log_num_coeffs, params29.get()),
+      StatusIs(::absl::StatusCode::kInvalidArgument,
+               HasSubstr(absl::StrCat("modulus is not 1 mod 2n for logn, ",
+                                      log_num_coeffs))));
+}
+
+// Test all the NTT Parameter fields under 64-bit modulus.
+TEST_F(NttParametersTest, Initialize) {
+  ASSERT_OK_AND_ASSIGN(auto params59,
+                       uint64_m::Params::Create(rlwe::kModulus59));
+  ASSERT_OK_AND_ASSIGN(
+      rlwe::NttParameters<uint64_m> ntt_params59,
+      rlwe::InitializeNttParameters<uint64_m>(kLogN, params59.get()));
+
+  uint64_m one = uint64_m::ImportOne(params59.get());
+
+  // Obtain the mapping for bitreversed order
+  std::vector<unsigned int> bit_rev = rlwe::internal::BitrevArray(kLogN);
+
+  // Test first entry of psis in bitreversed order is one.
+  EXPECT_EQ(one, ntt_params59.psis_bitrev[0]);
+
+  // Test n/2-th (brv[1]-th) entry of psis in bitreversed order is a primitive
+  // 2n-th root of unity.
+  auto psi = ntt_params59.psis_bitrev[bit_rev[1]];
+  auto r1 = psi.ModExp(kN << 1, params59.get());
+  auto r2 = psi.ModExp(kN, params59.get());
+  EXPECT_EQ(one, r1);
+  EXPECT_NE(one, r2);
+
+  // The values of psis should be the powers of the primitive 2n-th root of
+  // unity in bitreversed order.
+  for (unsigned int i = 0; i < kN; i++) {
+    auto bi = psi.ModExp(i, params59.get());
+    EXPECT_EQ(ntt_params59.psis_bitrev[bit_rev[i]], bi);
+  }
+
+  // Test psis_inv_bitrev contains the inverses of the powers of psi in
+  // bitreversed order, each multiplied by the inverse of psi.
+  for (unsigned int i = 0; i < 1 << kLogN; i++) {
+    EXPECT_EQ(params59->One(),
+              ntt_params59.psis_bitrev[i]
+                  .Mul(psi, params59.get())
+                  .Mul(ntt_params59.psis_inv_bitrev[i], params59.get())
+                  .ExportInt(params59.get()));
+  }
+}
+
+}  // namespace
diff --git a/third_party/shell-encryption/src/polynomial.h b/third_party/shell-encryption/src/polynomial.h
new file mode 100644
index 0000000..fc0e38a
--- /dev/null
+++ b/third_party/shell-encryption/src/polynomial.h
@@ -0,0 +1,369 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RLWE_POLYNOMIAL_H_
+#define RLWE_POLYNOMIAL_H_
+
+#include <cmath>
+#include <vector>
+
+#include "absl/strings/str_cat.h"
+#include "constants.h"
+#include "ntt_parameters.h"
+#include "prng/prng.h"
+#include "serialization.pb.h"
+#include "status_macros.h"
+#include "statusor.h"
+
+namespace rlwe {
+
+// A polynomial in NTT form. The length of the polynomial must be a power of 2.
+template <typename ModularInt>
+class Polynomial {
+  using ModularIntParams = typename ModularInt::Params;
+
+ public:
+  // Default constructor.
+  Polynomial() = default;
+
+  // Copy constructor.
+  Polynomial(const Polynomial& p) = default;
+  Polynomial& operator=(const Polynomial& that) = default;
+
+  // Basic constructor.
+  explicit Polynomial(std::vector<ModularInt> poly_coeffs)
+      : log_len_(log2(poly_coeffs.size())), coeffs_(std::move(poly_coeffs)) {}
+
+  // Create an empty polynomial of the specified length. The length must be
+  // a power of 2.
+  explicit Polynomial(int len, ModularIntParams* params)
+      : Polynomial(
+            std::vector<ModularInt>(len, ModularInt::ImportZero(params))) {}
+
+  // This is an implementation of the FFT from [Sei18, Sec. 2].
+  // [Sei18] https://eprint.iacr.org/2018/039
+  // All polynomial arithmetic performed is modulo (x^n+1) for n a power of two,
+  // with the coefficients operated on modulo a prime modulus.
+  //
+  // Let psi be a primitive 2n-th root of the unity, i.e., psi is a 2n-th root
+  // of unity such that psi^n = -1. Hence it holds that
+  //           x^n+1 = x^n-psi^n = (x^n/2-psi^n/2)*(x^n/2+psi^n/2)
+  //
+  //
+  // If f = f_0 + f_1*x + ... + f_{n-1}*x^(n-1) is the polynomial to transform,
+  // the i-th coefficient of the polynomial mod x^n/2-psi^n/2 can thus be
+  // computed as
+  //            f'_i = f_i + psi^(n/2)*f_(n/2+i),
+  // and the i-th coefficient of the polynomial mod x^n/2+psi^n/2 can thus be
+  // computed as
+  //            f''_i = f_i - psi^(n/2)*f_(n/2+i)
+  // This operation is called the Cooley-Tukey butterfly and is done
+  // iteratively during the NTT.
+  //
+  // The FFT can thus be performed in-place and after the k-th level, it
+  // produces the vector of polynomials with pairs of coefficients
+  //  f mod (x^(n/2^(k+1))-psi^brv[2^k+1]), f mod (x^(n/2^(k+1))+psi^brv[2^k+1])
+  // where brv maps a log(n)-bit number to its bitreversal.
+  static Polynomial ConvertToNtt(std::vector<ModularInt> poly_coeffs,
+                                 const NttParameters<ModularInt>& ntt_params,
+                                 ModularIntParams* modular_params) {
+    // Check to ensure that the coefficient vector is of the correct length.
+    int len = poly_coeffs.size();
+    if (len <= 0 || (len & (len - 1)) != 0) {
+      // An error value.
+      return Polynomial();
+    }
+
+    Polynomial output(std::move(poly_coeffs));
+    output.IterativeCooleyTukey(ntt_params.psis_bitrev, modular_params);
+
+    return output;
+  }
+
+  // The inverse NTT transform is computed similarly by iteratively inverting
+  // the NTT representation. For instance, using the same notation as above,
+  //    f'_i + f''_i = 2f_i and  psi^(-n/2)*(f'_i-f''_i) = 2c_(n/2+i).
+  //
+  // In particular, the butterfly operation differs from the Cooley-Tukey
+  // butterfly used during the forward transform in that addition and
+  // substraction come before multiplying with a power of the root of unity.
+  // This butterfly operation is called the Gentleman-Sande butterfly.
+  //
+  // At the end of the computation, a normalization step by the inverse of
+  // n=2^log(n) (the factor 2 obtained at each level of the butterfly) is
+  // required.
+  std::vector<ModularInt> InverseNtt(
+      const NttParameters<ModularInt>& ntt_params,
+      ModularIntParams* modular_params) const {
+    Polynomial copy(*this);
+
+    copy.IterativeGentlemanSande(ntt_params.psis_inv_bitrev, modular_params);
+
+    // Normalize the result by multiplying by the inverse of n.
+    for (auto& coeff : copy.coeffs_) {
+      coeff.MulInPlace(*ntt_params.n_inv_ptr, modular_params);
+    }
+
+    return copy.coeffs_;
+  }
+
+  // Specifies whether the Polynomial is valid.
+  bool IsValid() const { return !coeffs_.empty(); }
+
+  // Scalar multiply.
+  rlwe::StatusOr<Polynomial> Mul(const ModularInt& scalar,
+                                 ModularIntParams* modular_params) const {
+    Polynomial output = *this;
+    RLWE_RETURN_IF_ERROR(output.MulInPlace(scalar, modular_params));
+    return output;
+  }
+
+  // Scalar multiply in place.
+  absl::Status MulInPlace(const ModularInt& scalar,
+                          ModularIntParams* modular_params) {
+    return ModularInt::BatchMulInPlace(&coeffs_, scalar, modular_params);
+  }
+
+  // Coordinate-wise multiplication.
+  rlwe::StatusOr<Polynomial> Mul(const Polynomial& that,
+                                 ModularIntParams* modular_params) const {
+    Polynomial output = *this;
+    RLWE_RETURN_IF_ERROR(output.MulInPlace(that, modular_params));
+    return output;
+  }
+
+  // Coordinate-wise multiplication in place.
+  absl::Status MulInPlace(const Polynomial& that,
+                          ModularIntParams* modular_params) {
+    // If this operation is invalid, return an invalid error.
+    if (Len() != that.Len()) {
+      return absl::InvalidArgumentError(
+          "The polynomials do not have the same length.");
+    }
+    return ModularInt::BatchMulInPlace(&coeffs_, that.coeffs_, modular_params);
+  }
+
+  // Negation.
+  Polynomial Negate(ModularIntParams* modular_params) const {
+    Polynomial output = *this;
+    output.NegateInPlace(modular_params);
+    return output;
+  }
+
+  // Negation in place.
+  Polynomial& NegateInPlace(ModularIntParams* modular_params) {
+    for (auto& coeff : coeffs_) {
+      coeff.NegateInPlace(modular_params);
+    }
+
+    return *this;
+  }
+
+  // Coordinate-wise addition.
+  rlwe::StatusOr<Polynomial> Add(const Polynomial& that,
+                                 ModularIntParams* modular_params) const {
+    Polynomial output = *this;
+    RLWE_RETURN_IF_ERROR(output.AddInPlace(that, modular_params));
+    return output;
+  }
+
+  // Coordinate-wise substraction.
+  rlwe::StatusOr<Polynomial> Sub(const Polynomial& that,
+                                 ModularIntParams* modular_params) const {
+    Polynomial output = *this;
+    RLWE_RETURN_IF_ERROR(output.SubInPlace(that, modular_params));
+    return output;
+  }
+
+  // Coordinate-wise addition in place.
+  absl::Status AddInPlace(const Polynomial& that,
+                          ModularIntParams* modular_params) {
+    // If this operation is invalid, return an invalid error.
+    if (Len() != that.Len()) {
+      return absl::InvalidArgumentError(
+          "The polynomials do not have the same length.");
+    }
+
+    return ModularInt::BatchAddInPlace(&coeffs_, that.coeffs_, modular_params);
+  }
+
+  // Coordinate-wise substraction in place.
+  absl::Status SubInPlace(const Polynomial& that,
+                          ModularIntParams* modular_params) {
+    // If this operation is invalid, return an invalid error.
+    if (Len() != that.Len()) {
+      return absl::InvalidArgumentError(
+          "The polynomials do not have the same length.");
+    }
+
+    return ModularInt::BatchSubInPlace(&coeffs_, that.coeffs_, modular_params);
+  }
+
+  // Substitute: Given an Polynomial representing p(x), returns an
+  // Polynomial representing p(x^power). Power must be an odd non-negative
+  // integer less than 2 * Len().
+  rlwe::StatusOr<Polynomial> Substitute(
+      const int power, const NttParameters<ModularInt>& ntt_params,
+      ModularIntParams* modulus_params) const {
+    // The NTT representation consists in the evaluations of the polynomial at
+    // roots psi^brv[n/2], psi^brv[n/2+1], ..., psi^brv[n/2+n/2-1],
+    //       psi^(n/2+brv[n/2+1]), ...,         psi^(n/2+brv[n/2+n/2-1]).
+    // Let f(x) be the original polynomial, and out(x) be the polynomial after
+    // the substitution. Note that (psi^i)^power = psi^{(i * power) % (2 * n).
+    if (0 > power || (power % 2) == 0 || power >= 2 * Len()) {
+      return absl::InvalidArgumentError(
+          absl::StrCat("Substitution power must be a non-negative odd "
+                       "integer less than 2*n."));
+    }
+
+    Polynomial out = *this;
+
+    // Get the index of the psi^power evaluation
+    int psi_power_index = (power - 1) / 2;
+    // Update the coefficients one by one: remember that they are stored in
+    // bitreversed order.
+    for (int i = 0; i < Len(); i++) {
+      out.coeffs_[ntt_params.bitrevs[i]] =
+          coeffs_[ntt_params.bitrevs[psi_power_index]];
+      // Each time the index increases by 1, the psi_power_index increases by
+      // power mod the length.
+      psi_power_index = (psi_power_index + power) % Len();
+    }
+
+    return out;
+  }
+
+  // Boolean comparison.
+  bool operator==(const Polynomial& that) const {
+    if (Len() != that.Len()) {
+      return false;
+    }
+
+    for (int i = 0; i < Len(); i++) {
+      if (coeffs_[i] != that.coeffs_[i]) {
+        return false;
+      }
+    }
+
+    return true;
+  }
+  bool operator!=(const Polynomial& that) const { return !(*this == that); }
+
+  int Len() const { return coeffs_.size(); }
+
+  // Accessor for coefficients.
+  std::vector<ModularInt> Coeffs() const { return coeffs_; }
+
+  rlwe::StatusOr<SerializedNttPolynomial> Serialize(
+      ModularIntParams* modular_params) const {
+    SerializedNttPolynomial output;
+    RLWE_ASSIGN_OR_RETURN(*(output.mutable_coeffs()),
+                          ModularInt::SerializeVector(coeffs_, modular_params));
+    output.set_num_coeffs(coeffs_.size());
+    return output;
+  }
+
+  static rlwe::StatusOr<Polynomial> Deserialize(
+      const SerializedNttPolynomial& serialized,
+      ModularIntParams* modular_params) {
+    if (serialized.num_coeffs() <= 0) {
+      return absl::InvalidArgumentError(
+          "Number of serialized coefficients must be positive.");
+    } else if (serialized.num_coeffs() > kMaxNumCoeffs) {
+      return absl::InvalidArgumentError(absl::StrCat(
+          "Number of serialized coefficients, ", serialized.num_coeffs(),
+          ", must be less than ", kMaxNumCoeffs, "."));
+    }
+    Polynomial output(serialized.num_coeffs(), modular_params);
+    RLWE_ASSIGN_OR_RETURN(
+        output.coeffs_,
+        ModularInt::DeserializeVector(serialized.num_coeffs(),
+                                      serialized.coeffs(), modular_params));
+    return output;
+  }
+
+ private:
+  // Instance variables.
+  size_t log_len_;
+  std::vector<ModularInt> coeffs_;
+
+  // Helper function: Perform iterations of the Cooley-Tukey butterfly.
+  void IterativeCooleyTukey(const std::vector<ModularInt>& psis_bitrev,
+                            ModularIntParams* modular_params) {
+    int index_psi = 1;
+    for (int i = log_len_ - 1; i >= 0; i--) {
+      const unsigned int half_m = 1 << i;
+      const unsigned int m = half_m << 1;
+      for (int k = 0; k < Len(); k += m) {
+        const ModularInt psi = psis_bitrev[index_psi];
+        for (int j = 0; j < half_m; j++) {
+          // The Cooley-Tukey butterfly operation.
+          const ModularInt t = psi.Mul(coeffs_[k + j + half_m], modular_params);
+          ModularInt u = coeffs_[k + j];
+          coeffs_[k + j].AddInPlace(t, modular_params);
+          coeffs_[k + j + half_m] = std::move(u.SubInPlace(t, modular_params));
+        }
+        index_psi++;
+      }
+    }
+  }
+
+  // Helper function: Perform iterations of the Gentleman-Sande butterfly.
+  void IterativeGentlemanSande(const std::vector<ModularInt>& psis_inv_bitrev,
+                               ModularIntParams* modular_params) {
+    int index_psi_inv = 0;
+    for (int i = 0; i < log_len_; i++) {
+      const unsigned int half_m = 1 << i;
+      const unsigned int m = half_m << 1;
+      for (int k = 0; k < Len(); k += m) {
+        const ModularInt psi_inv = psis_inv_bitrev[index_psi_inv];
+        for (int j = 0; j < half_m; j++) {
+          // The Gentleman-Sande butterfly operation.
+          const ModularInt t = coeffs_[k + j + half_m];
+          ModularInt u = coeffs_[k + j];
+          coeffs_[k + j].AddInPlace(t, modular_params);
+          coeffs_[k + j + half_m] =
+              std::move(u.SubInPlace(t, modular_params)
+                            .MulInPlace(psi_inv, modular_params));
+        }
+        index_psi_inv++;
+      }
+    }
+  }
+};
+
+template <typename ModularInt, typename Prng = rlwe::SecurePrng>
+rlwe::StatusOr<Polynomial<ModularInt>> SamplePolynomialFromPrng(
+    int num_coeffs, Prng* prng, typename ModularInt::Params* modulus_params) {
+  // Sample a from the uniform distribution. Since a is uniformly distributed,
+  // it can be generated directly in NTT form since the NTT transformation is
+  // an automorphism.
+  if (num_coeffs < 1) {
+    return absl::InvalidArgumentError(
+        "SamplePolynomialFromPrng: number of coefficients must be a "
+        "non-negative integer.");
+  }
+  std::vector<ModularInt> a_ntt_coeffs(num_coeffs,
+                                       ModularInt::ImportZero(modulus_params));
+  for (int i = 0; i < num_coeffs; i++) {
+    RLWE_ASSIGN_OR_RETURN(a_ntt_coeffs[i],
+                          ModularInt::ImportRandom(prng, modulus_params));
+  }
+  return Polynomial<ModularInt>(a_ntt_coeffs);
+}
+
+}  // namespace rlwe
+
+#endif  // RLWE_POLYNOMIAL_H_
diff --git a/third_party/shell-encryption/src/polynomial_test.cc b/third_party/shell-encryption/src/polynomial_test.cc
new file mode 100644
index 0000000..66fcf9d
--- /dev/null
+++ b/third_party/shell-encryption/src/polynomial_test.cc
@@ -0,0 +1,531 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "polynomial.h"
+
+#include <cmath>
+#include <random>
+#include <vector>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "constants.h"
+#include "montgomery.h"
+#include "ntt_parameters.h"
+#include "prng/integral_prng_testing_types.h"
+#include "serialization.pb.h"
+#include "status_macros.h"
+#include "testing/coefficient_polynomial.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+#include "testing/testing_prng.h"
+
+
+namespace {
+
+using ::rlwe::testing::StatusIs;
+using ::testing::Eq;
+using ::testing::HasSubstr;
+using ::testing::Ne;
+
+// Useful typedefs.
+using uint_m = rlwe::MontgomeryInt<rlwe::Uint16>;
+
+using CoefficientPolynomial = rlwe::testing::CoefficientPolynomial<uint_m>;
+using Polynomial = rlwe::Polynomial<uint_m>;
+
+unsigned int seed = 0;
+const absl::string_view kPrngSeed =
+    "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef";
+
+// Test fixture to take care of messy setup.
+template <typename Prng>
+class PolynomialTest : public ::testing::Test {
+ protected:
+  PolynomialTest()
+      : params14_(uint_m::Params::Create(rlwe::kNewhopeModulus).ValueOrDie()),
+        zero_(uint_m::ImportZero(params14_.get())) {}
+
+  void SetUp() override { srand(0); }
+
+  void SetParams(int n, int log_n) {
+    // Prng to generate random values
+    ASSERT_OK_AND_ASSIGN(auto prng,
+                         Prng::Create(kPrngSeed.substr(0, Prng::SeedLength())));
+
+    std::vector<uint_m> p_coeffs(n, zero_);
+    std::vector<uint_m> q_coeffs(n, zero_);
+
+    // Create some random polynomials. Ensure that they are different.
+    for (int j = 0; j < n; j++) {
+      ASSERT_OK_AND_ASSIGN(p_coeffs[j],
+                           uint_m::ImportRandom(prng.get(), params14_.get()));
+      ASSERT_OK_AND_ASSIGN(q_coeffs[j],
+                           uint_m::ImportRandom(prng.get(), params14_.get()));
+    }
+
+    // Ensure the polynomials are different.
+    uint_m::Int rand_index = rand_r(&seed) % n;
+    auto one = uint_m::ImportOne(params14_.get());
+    p_coeffs[rand_index] = q_coeffs[rand_index].Add(one, params14_.get());
+
+    p_.reset(new CoefficientPolynomial(p_coeffs, params14_.get()));
+    q_.reset(new CoefficientPolynomial(q_coeffs, params14_.get()));
+
+    // Acquire all of the NTT parameters.
+    ASSERT_OK_AND_ASSIGN(ntt_params_, rlwe::InitializeNttParameters<uint_m>(
+                                          log_n, params14_.get()));
+
+    // Put p and q in the NTT domain.
+    ntt_p_ = Polynomial::ConvertToNtt(p_coeffs, ntt_params_, params14_.get());
+    ntt_q_ = Polynomial::ConvertToNtt(q_coeffs, ntt_params_, params14_.get());
+  }
+
+  std::unique_ptr<Prng> MakePrng(absl::string_view seed) {
+    auto prng = Prng::Create(seed.substr(0, Prng::SeedLength())).ValueOrDie();
+    return prng;
+  }
+
+  std::unique_ptr<uint_m::Params> params14_;
+  rlwe::NttParameters<uint_m> ntt_params_;
+  std::unique_ptr<CoefficientPolynomial> p_;
+  std::unique_ptr<CoefficientPolynomial> q_;
+  Polynomial ntt_p_;
+  Polynomial ntt_q_;
+  uint_m zero_;
+};
+
+TYPED_TEST_SUITE(PolynomialTest, rlwe::TestingPrngTypes);
+
+// Ensure that a default NTT polynomial is invalid.
+TYPED_TEST(PolynomialTest, DefaultIsInvalid) {
+  EXPECT_FALSE(Polynomial().IsValid());
+}
+
+TYPED_TEST(PolynomialTest, CoeffsCorrectlyReturnsCoefficients) {
+  auto prng = this->MakePrng(kPrngSeed);
+  for (int i = 2; i < 11; i++) {
+    int n = 1 << i;
+    this->SetParams(n, i);
+
+    // coeffs = {1, 0, 0, ...}, ntt_coeffs = {1, 1, 1, ...}
+    // Test that NTT(coeffs) == ntt_coeffs
+    std::vector<uint_m::Int> coeffs(n, 0), ntt_coeffs(n, 1);
+    coeffs[0] = 1;
+
+    std::vector<uint_m> v;
+    for (const uint_m::Int& coeff : coeffs) {
+      ASSERT_OK_AND_ASSIGN(auto elt,
+                           uint_m::ImportInt(coeff, this->params14_.get()));
+      v.push_back(elt);
+    }
+
+    Polynomial ntt_v =
+        Polynomial::ConvertToNtt(v, this->ntt_params_, this->params14_.get());
+
+    for (int j = 0; j < n; j++) {
+      EXPECT_EQ(ntt_v.Coeffs()[j].ExportInt(this->params14_.get()),
+                ntt_coeffs[j]);
+    }
+
+    // Test that coeffs are the same when explicitly constructed
+    std::vector<uint_m> coeffs2(n, this->zero_);
+    for (int j = 0; j < n; j++) {
+      ASSERT_OK_AND_ASSIGN(
+          coeffs2[j], uint_m::ImportRandom(prng.get(), this->params14_.get()));
+    }
+    Polynomial ntt2 = Polynomial(coeffs2);
+    std::vector<uint_m> nttcoeffs2 = ntt2.Coeffs();
+    for (int j = 0; j < n; j++) {
+      EXPECT_EQ(coeffs2[j], nttcoeffs2[j]);
+    }
+
+    // Test that coeffs are all zero when only length is given
+    Polynomial ntt3 = Polynomial(n, this->params14_.get());
+    std::vector<uint_m> nttcoeffs3 = ntt3.Coeffs();
+    for (int j = 0; j < n; j++) {
+      EXPECT_EQ(nttcoeffs3[j], this->zero_);
+    }
+  }
+}
+
+// Ensure that a polynomial converted to NTT form can be converted back.
+TYPED_TEST(PolynomialTest, Symmetry) {
+  for (int i = 2; i < 11; i++) {
+    this->SetParams(1 << i, i);
+    EXPECT_TRUE(this->ntt_p_.IsValid());
+    CoefficientPolynomial p_prime(
+        this->ntt_p_.InverseNtt(this->ntt_params_, this->params14_.get()),
+        this->params14_.get());
+    EXPECT_EQ(*this->p_, p_prime);
+  }
+}
+
+// Ensure that equality holds properly.
+TYPED_TEST(PolynomialTest, Equality) {
+  for (int i = 2; i < 11; i++) {
+    this->SetParams(1 << i, i);
+    Polynomial ntt_p_cpy = this->ntt_p_;
+    Polynomial ntt_q_cpy = this->ntt_q_;
+
+    EXPECT_TRUE(this->ntt_p_ == ntt_p_cpy);
+    EXPECT_TRUE(this->ntt_q_ == ntt_q_cpy);
+    EXPECT_FALSE(this->ntt_p_ != ntt_p_cpy);
+    EXPECT_FALSE(this->ntt_q_ != ntt_q_cpy);
+
+    EXPECT_TRUE(this->ntt_p_ != this->ntt_q_);
+    EXPECT_TRUE(this->ntt_q_ != this->ntt_p_);
+    EXPECT_FALSE(this->ntt_p_ == this->ntt_q_);
+    EXPECT_FALSE(this->ntt_q_ == this->ntt_p_);
+  }
+}
+
+// Ensure that a polynomial whose size is not a power of two gets rejected.
+TYPED_TEST(PolynomialTest, NotPowerOfTwo) {
+  for (int i = 2; i < 11; i++) {
+    // j is any value that isn't a power of 2.
+    for (int j = 1 + (1 << (i - 1)); j < (1 << i); j++) {
+      this->SetParams(j, i);
+      EXPECT_FALSE(this->ntt_p_.IsValid());
+    }
+  }
+}
+
+// Ensure that adding or multiplying two polynomials of different lengths gets
+// rejected.
+TYPED_TEST(PolynomialTest, BinopOfDifferentLengths) {
+  for (int i = 2; i < 11; i++) {
+    for (int j = 2; j < 11; j++) {
+      if (j == i) {
+        continue;
+      }
+
+      int bigger = std::max(i, j);
+      this->SetParams(1 << bigger, bigger);
+
+      std::vector<uint_m> x(1 << i, this->zero_);
+      std::vector<uint_m> y(1 << j, this->zero_);
+
+      this->ntt_params_.bitrevs = rlwe::internal::BitrevArray(i);
+      Polynomial ntt_x =
+          Polynomial::ConvertToNtt(x, this->ntt_params_, this->params14_.get());
+      this->ntt_params_.bitrevs = rlwe::internal::BitrevArray(j);
+      Polynomial ntt_y =
+          Polynomial::ConvertToNtt(y, this->ntt_params_, this->params14_.get());
+
+      EXPECT_TRUE(ntt_x.IsValid());
+      EXPECT_TRUE(ntt_y.IsValid());
+
+      // Lengths are different
+      EXPECT_FALSE(ntt_x == ntt_y);
+
+      EXPECT_THAT(ntt_x.Mul(ntt_y, this->params14_.get()),
+                  StatusIs(::absl::StatusCode::kInvalidArgument,
+                           HasSubstr("do not have the same length")));
+      EXPECT_THAT(ntt_y.Mul(ntt_x, this->params14_.get()),
+                  StatusIs(::absl::StatusCode::kInvalidArgument,
+                           HasSubstr("do not have the same length")));
+      EXPECT_THAT(ntt_x.Add(ntt_y, this->params14_.get()),
+                  StatusIs(::absl::StatusCode::kInvalidArgument,
+                           HasSubstr("do not have the same length")));
+      EXPECT_THAT(ntt_y.Add(ntt_x, this->params14_.get()),
+                  StatusIs(::absl::StatusCode::kInvalidArgument,
+                           HasSubstr("do not have the same length")));
+      EXPECT_THAT(ntt_x.Sub(ntt_y, this->params14_.get()),
+                  StatusIs(::absl::StatusCode::kInvalidArgument,
+                           HasSubstr("do not have the same length")));
+      EXPECT_THAT(ntt_y.Sub(ntt_x, this->params14_.get()),
+                  StatusIs(::absl::StatusCode::kInvalidArgument,
+                           HasSubstr("do not have the same length")));
+
+      // In-place operations return the original polynomial if invalid
+      // To check, we keep a copy of the original and check that the output
+      // remains the same
+      Polynomial orig_ntt_x = ntt_x;
+      Polynomial orig_ntt_y = ntt_y;
+      EXPECT_THAT(ntt_x.MulInPlace(ntt_y, this->params14_.get()),
+                  StatusIs(::absl::StatusCode::kInvalidArgument,
+                           HasSubstr("do not have the same length")));
+      EXPECT_THAT(ntt_y.MulInPlace(ntt_x, this->params14_.get()),
+                  StatusIs(::absl::StatusCode::kInvalidArgument,
+                           HasSubstr("do not have the same length")));
+      EXPECT_THAT(ntt_x.AddInPlace(ntt_y, this->params14_.get()),
+                  StatusIs(::absl::StatusCode::kInvalidArgument,
+                           HasSubstr("do not have the same length")));
+      EXPECT_THAT(ntt_y.AddInPlace(ntt_x, this->params14_.get()),
+                  StatusIs(::absl::StatusCode::kInvalidArgument,
+                           HasSubstr("do not have the same length")));
+      EXPECT_THAT(ntt_x.SubInPlace(ntt_y, this->params14_.get()),
+                  StatusIs(::absl::StatusCode::kInvalidArgument,
+                           HasSubstr("do not have the same length")));
+      EXPECT_THAT(ntt_y.SubInPlace(ntt_x, this->params14_.get()),
+                  StatusIs(::absl::StatusCode::kInvalidArgument,
+                           HasSubstr("do not have the same length")));
+    }
+  }
+}
+
+// Test that the convolution property holds. Let p, q be polynomials.
+// CoefficientPolynomial multiplication of p and q =
+// NTT_INV(the coordinate-wise product of NTT(p) and NTT(q))
+TYPED_TEST(PolynomialTest, Multiply) {
+  for (int i = 2; i < 11; i++) {
+    this->SetParams(1 << i, i);
+
+    EXPECT_TRUE(this->ntt_p_.IsValid());
+    EXPECT_TRUE(this->ntt_q_.IsValid());
+
+    ASSERT_OK_AND_ASSIGN(Polynomial ntt_res1,
+                         this->ntt_p_.Mul(this->ntt_q_, this->params14_.get()));
+    ASSERT_OK_AND_ASSIGN(Polynomial ntt_res2,
+                         this->ntt_q_.Mul(this->ntt_p_, this->params14_.get()));
+
+    CoefficientPolynomial res1(
+        ntt_res1.InverseNtt(this->ntt_params_, this->params14_.get()),
+        this->params14_.get());
+    CoefficientPolynomial res2(
+        ntt_res2.InverseNtt(this->ntt_params_, this->params14_.get()),
+        this->params14_.get());
+
+    ASSERT_OK_AND_ASSIGN(CoefficientPolynomial expected,
+                         (*this->p_) * (*this->q_));
+
+    EXPECT_EQ(res1, expected);
+    EXPECT_EQ(res2, expected);
+    EXPECT_EQ(res1, res2);
+  }
+}
+
+// Test scalar multiplication.
+TYPED_TEST(PolynomialTest, ScalarMultiply) {
+  auto prng = this->MakePrng(kPrngSeed);
+  ASSERT_OK_AND_ASSIGN(uint_m scalar,
+                       uint_m::ImportRandom(prng.get(), this->params14_.get()));
+  for (int i = 2; i < 11; i++) {
+    this->SetParams(1 << i, i);
+
+    EXPECT_TRUE(this->ntt_p_.IsValid());
+
+    ASSERT_OK_AND_ASSIGN(Polynomial ntt_res,
+                         this->ntt_p_.Mul(scalar, this->params14_.get()));
+
+    CoefficientPolynomial res(
+        ntt_res.InverseNtt(this->ntt_params_, this->params14_.get()),
+        this->params14_.get());
+
+    CoefficientPolynomial expected = (*this->p_) * scalar;
+
+    EXPECT_EQ(res, expected);
+  }
+}
+
+// Test that p + (-p) = 0.
+TYPED_TEST(PolynomialTest, Negate) {
+  for (int i = 2; i < 11; i++) {
+    this->SetParams(1 << i, i);
+
+    // An NTT polynomial of all zeros.
+    Polynomial zeros_ntt =
+        Polynomial::ConvertToNtt(std::vector<uint_m>(1 << i, this->zero_),
+                                 this->ntt_params_, this->params14_.get());
+
+    auto minus_p = this->ntt_p_.Negate(this->params14_.get());
+    ASSERT_OK_AND_ASSIGN(auto p0,
+                         this->ntt_p_.Add(minus_p, this->params14_.get()));
+    EXPECT_EQ(zeros_ntt, p0);
+    ASSERT_OK_AND_ASSIGN(p0, minus_p.Add(this->ntt_p_, this->params14_.get()));
+    EXPECT_EQ(zeros_ntt, p0);
+  }
+}
+
+// Test that p + q = NTT_INV(NTT(p) + NTT(q)).
+TYPED_TEST(PolynomialTest, Add) {
+  for (int i = 2; i < 11; i++) {
+    this->SetParams(1 << i, i);
+    EXPECT_TRUE(this->ntt_p_.IsValid());
+    EXPECT_TRUE(this->ntt_q_.IsValid());
+
+    ASSERT_OK_AND_ASSIGN(Polynomial ntt_res1,
+                         this->ntt_p_.Add(this->ntt_q_, this->params14_.get()));
+    ASSERT_OK_AND_ASSIGN(Polynomial ntt_res2,
+                         this->ntt_q_.Add(this->ntt_p_, this->params14_.get()));
+
+    CoefficientPolynomial res1(
+        ntt_res1.InverseNtt(this->ntt_params_, this->params14_.get()),
+        this->params14_.get());
+    CoefficientPolynomial res2(
+        ntt_res2.InverseNtt(this->ntt_params_, this->params14_.get()),
+        this->params14_.get());
+
+    ASSERT_OK_AND_ASSIGN(CoefficientPolynomial expected,
+                         (*this->p_) + (*this->q_));
+    EXPECT_EQ(res1, expected);
+    EXPECT_EQ(res2, expected);
+    EXPECT_EQ(res1, res2);
+  }
+}
+
+// Test that p - q = NTT_INV(NTT(p) - NTT(q)) and
+//           q - p = NTT_INV(NTT(q) - NTT(p)).
+TYPED_TEST(PolynomialTest, Sub) {
+  for (int i = 2; i < 11; i++) {
+    this->SetParams(1 << i, i);
+    EXPECT_TRUE(this->ntt_p_.IsValid());
+    EXPECT_TRUE(this->ntt_q_.IsValid());
+
+    ASSERT_OK_AND_ASSIGN(Polynomial ntt_res1,
+                         this->ntt_p_.Sub(this->ntt_q_, this->params14_.get()));
+    ASSERT_OK_AND_ASSIGN(Polynomial ntt_res2,
+                         this->ntt_q_.Sub(this->ntt_p_, this->params14_.get()));
+
+    CoefficientPolynomial res1(
+        ntt_res1.InverseNtt(this->ntt_params_, this->params14_.get()),
+        this->params14_.get());
+    CoefficientPolynomial res2(
+        ntt_res2.InverseNtt(this->ntt_params_, this->params14_.get()),
+        this->params14_.get());
+
+    ASSERT_OK_AND_ASSIGN(CoefficientPolynomial expected_res1,
+                         (*this->p_) - (*this->q_));
+    ASSERT_OK_AND_ASSIGN(CoefficientPolynomial expected_res2,
+                         (*this->q_) - (*this->p_));
+    EXPECT_EQ(res1, expected_res1);
+    EXPECT_EQ(res2, expected_res2);
+  }
+}
+
+TYPED_TEST(PolynomialTest, SubstitutionPowerMalformed) {
+  // Ensure substitution fails on powers that are negative, even, and greater
+  // than 2 * kDimension.
+  for (int i = 2; i < 11; i++) {
+    this->SetParams(1 << i, i);
+
+    EXPECT_THAT(
+        this->ntt_p_.Substitute(2, this->ntt_params_, this->params14_.get()),
+        StatusIs(::absl::StatusCode::kInvalidArgument,
+                 HasSubstr("must be a non-negative odd integer less than")));
+
+    // Even when not in debugging mode, the following two tests will yield a
+    // segmentation fault. We therefore only do the tests in debug mode.
+    EXPECT_THAT(
+        this->ntt_p_.Substitute(-10, this->ntt_params_, this->params14_.get()),
+        StatusIs(::absl::StatusCode::kInvalidArgument,
+                 HasSubstr("must be a non-negative odd integer less than")));
+    EXPECT_THAT(
+        this->ntt_p_.Substitute(2 * (1 << i) + 1, this->ntt_params_,
+                                this->params14_.get()),
+        StatusIs(::absl::StatusCode::kInvalidArgument,
+                 HasSubstr("must be a non-negative odd integer less than")));
+  }
+}
+
+TYPED_TEST(PolynomialTest, Substitution) {
+  // Tests substitutions of the form N/2^k + 1.
+  for (int i = 2; i < 11; i++) {
+    this->SetParams(1 << i, i);
+    int dimension = 1 << i;
+    for (int k = 0; k < i; k++) {
+      int power = (dimension >> k) + 1;
+      ASSERT_OK_AND_ASSIGN(auto ntt_res,
+                           this->ntt_p_.Substitute(power, this->ntt_params_,
+                                                   this->params14_.get()));
+      CoefficientPolynomial res(
+          ntt_res.InverseNtt(this->ntt_params_, this->params14_.get()),
+          this->params14_.get());
+
+      ASSERT_OK_AND_ASSIGN(auto r, this->p_->Substitute(power));
+      EXPECT_EQ(res, r);
+    }
+  }
+}
+
+TYPED_TEST(PolynomialTest, Serialize) {
+  for (int i = 2; i < 11; i++) {
+    this->SetParams(1 << i, i);
+    ASSERT_OK_AND_ASSIGN(rlwe::SerializedNttPolynomial serialized_p,
+                         this->ntt_p_.Serialize(this->params14_.get()));
+    ASSERT_OK_AND_ASSIGN(rlwe::SerializedNttPolynomial serialized_q,
+                         this->ntt_q_.Serialize(this->params14_.get()));
+
+    // Ensure that a serialized polynomial can be deserialized.
+    ASSERT_OK_AND_ASSIGN(
+        auto deserialized_p,
+        Polynomial::Deserialize(serialized_p, this->params14_.get()));
+    EXPECT_EQ(this->ntt_p_, deserialized_p);
+    ASSERT_OK_AND_ASSIGN(
+        auto deserialized_q,
+        Polynomial::Deserialize(serialized_q, this->params14_.get()));
+    EXPECT_EQ(this->ntt_q_, deserialized_q);
+
+    // Ensure that the length of a Serialized polynomial is at most
+    // SerializedSize times the number of coefficients.
+    EXPECT_LE(serialized_p.coeffs().size(),
+              this->ntt_p_.Len() * this->params14_->SerializedSize());
+    EXPECT_LE(serialized_q.coeffs().size(),
+              this->ntt_q_.Len() * this->params14_->SerializedSize());
+  }
+}
+
+TYPED_TEST(PolynomialTest,
+           SamplePolynomialFromPrngReturnsPolynomialWithCorrectSize) {
+  auto prng = this->MakePrng(kPrngSeed);
+  ASSERT_OK_AND_ASSIGN(auto polynomial,
+                       rlwe::SamplePolynomialFromPrng<uint_m>(
+                           16, prng.get(), this->params14_.get()));
+  EXPECT_THAT(polynomial.Len(), Eq(16));
+}
+
+TYPED_TEST(PolynomialTest, SamplePolynomialFromPrngFailsWithLengthLessThanOne) {
+  auto prng = this->MakePrng(kPrngSeed);
+  EXPECT_THAT(rlwe::SamplePolynomialFromPrng<uint_m>(0, prng.get(),
+                                                     this->params14_.get()),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("must be a non-negative integer")));
+  EXPECT_THAT(rlwe::SamplePolynomialFromPrng<uint_m>(-10, prng.get(),
+                                                     this->params14_.get()),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("must be a non-negative integer")));
+}
+
+TYPED_TEST(PolynomialTest,
+           SamplePolynomialFromPrngSamplesSamePolynomialFromSameSeed) {
+  auto prng1 = this->MakePrng(kPrngSeed);
+  auto prng2 = this->MakePrng(kPrngSeed);
+  ASSERT_OK_AND_ASSIGN(auto polynomial1,
+                       rlwe::SamplePolynomialFromPrng<uint_m>(
+                           16, prng1.get(), this->params14_.get()));
+  ASSERT_OK_AND_ASSIGN(auto polynomial2,
+                       rlwe::SamplePolynomialFromPrng<uint_m>(
+                           16, prng2.get(), this->params14_.get()));
+
+  EXPECT_THAT(polynomial1, Eq(polynomial2));
+}
+
+TYPED_TEST(PolynomialTest,
+           SamplePolynomialFromPrngSamplesOtherPolynomialFromOtherSeed) {
+  auto prng1 = this->MakePrng(kPrngSeed);
+  auto prng2 = this->MakePrng(
+      "0000000000000000000000000000000000000000000000000000000000000000");
+  ASSERT_OK_AND_ASSIGN(auto polynomial1,
+                       rlwe::SamplePolynomialFromPrng<uint_m>(
+                           16, prng1.get(), this->params14_.get()));
+  ASSERT_OK_AND_ASSIGN(auto polynomial2,
+                       rlwe::SamplePolynomialFromPrng<uint_m>(
+                           16, prng2.get(), this->params14_.get()));
+
+  EXPECT_THAT(polynomial1, Ne(polynomial2));
+}
+
+}  // namespace
diff --git a/third_party/shell-encryption/src/prng/BUILD b/third_party/shell-encryption/src/prng/BUILD
new file mode 100644
index 0000000..caf1a08
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/BUILD
@@ -0,0 +1,145 @@
+# Copyright 2019 Google LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+package(default_visibility = ["//visibility:public"])
+
+licenses(["notice"])  # Apache 2.0
+
+# PRNG interface.
+
+cc_library(
+    name = "prng",
+    hdrs = ["prng.h"],
+    deps = [
+        "//:integral_types",
+        "//:statusor_fork",
+        "@com_google_absl//absl/strings",
+    ],
+)
+
+cc_library(
+    name = "integral_prng_types",
+    hdrs = ["integral_prng_types.h"],
+    deps = [
+        "//prng:chacha_prng",
+        "//prng:single_thread_chacha_prng",
+    ],
+)
+
+cc_library(
+    name = "integral_prng_testing_types",
+    testonly = 1,
+    hdrs = ["integral_prng_testing_types.h"],
+    deps = [
+        ":chacha_prng",
+        ":single_thread_chacha_prng",
+        "@com_google_googletest//:gtest",
+    ],
+)
+
+# PRNG test common to all PRNGs implementations.
+
+cc_test(
+    name = "prng_test",
+    size = "small",
+    srcs = [
+        "prng_test.cc",
+    ],
+    deps = [
+        ":integral_prng_testing_types",
+        ":integral_prng_types",
+        "//testing:matchers",
+        "//testing:status_testing",
+        "@com_google_absl//absl/strings",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+# PRNG using ChaCha20 from OpenSSL.
+
+cc_library(
+    name = "chacha_prng",
+    srcs = [
+        "chacha_prng.cc",
+    ],
+    hdrs = ["chacha_prng.h"],
+    deps = [
+        ":chacha_prng_util",
+        ":prng",
+        "//:statusor_fork",
+        "@com_google_absl//absl/base:core_headers",
+        "@com_google_absl//absl/memory",
+        "@com_google_absl//absl/strings",
+        "@com_google_absl//absl/synchronization",
+    ],
+)
+
+cc_library(
+    name = "single_thread_chacha_prng",
+    srcs = ["single_thread_chacha_prng.cc"],
+    hdrs = ["single_thread_chacha_prng.h"],
+    deps = [
+        ":chacha_prng_util",
+        ":prng",
+        "//:statusor_fork",
+        "@com_google_absl//absl/memory",
+        "@com_google_absl//absl/strings",
+    ],
+)
+
+cc_library(
+    name = "chacha_prng_util",
+    srcs = [
+        "chacha_prng_util.cc",
+    ],
+    hdrs = ["chacha_prng_util.h"],
+    deps = [
+        "//:integral_types",
+        "//:statusor_fork",
+        "@boringssl//:ssl",
+        "@com_google_absl//absl/memory",
+        "@com_google_absl//absl/status",
+        "@com_google_absl//absl/strings",
+    ],
+)
+
+cc_test(
+    name = "chacha_prng_test",
+    size = "small",
+    srcs = [
+        "chacha_prng_test.cc",
+    ],
+    deps = [
+        ":chacha_prng",
+        "//testing:matchers",
+        "//testing:status_testing",
+        "@com_google_absl//absl/strings",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+cc_test(
+    name = "single_thread_chacha_prng_test",
+    size = "small",
+    srcs = [
+        "single_thread_chacha_prng_test.cc",
+    ],
+    deps = [
+        ":single_thread_chacha_prng",
+        "//testing:matchers",
+        "//testing:status_testing",
+        "@com_google_absl//absl/strings",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
diff --git a/third_party/shell-encryption/src/prng/LICENSE b/third_party/shell-encryption/src/prng/LICENSE
new file mode 100644
index 0000000..12b597d
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2017 Google Inc.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/third_party/shell-encryption/src/prng/chacha_prng.cc b/third_party/shell-encryption/src/prng/chacha_prng.cc
new file mode 100644
index 0000000..c1fb2fe
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/chacha_prng.cc
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2019 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "prng/chacha_prng.h"
+
+#include <vector>
+
+#include "absl/memory/memory.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/string_view.h"
+#include "prng/chacha_prng_util.h"
+#include "status_macros.h"
+
+namespace rlwe {
+
+ChaChaPrng::ChaChaPrng(absl::string_view in_key, int position_in_buffer,
+                       int salt_counter, std::vector<Uint8> buffer)
+    : key_(in_key),
+      position_in_buffer_(position_in_buffer),
+      salt_counter_(salt_counter),
+      buffer_(std::move(buffer)) {}
+
+rlwe::StatusOr<std::unique_ptr<ChaChaPrng>> ChaChaPrng::Create(
+    absl::string_view in_key) {
+  if (in_key.length() != SeedLength()) {
+    return absl::InvalidArgumentError(
+        absl::StrCat("Cannot create Prng with key of the "
+                     "wrong size. Real ",
+                     "key length of ", in_key.length(), " instead of expected ",
+                     "key length of ", SeedLength(), "."));
+  }
+  int position_in_buffer = 0;
+  int salt_counter = 0;
+  std::vector<Uint8> buffer;
+  RLWE_RETURN_IF_ERROR(
+      internal::ChaChaPrngResalt(in_key, internal::kChaChaOutputBytes,
+                                 &salt_counter, &position_in_buffer, &buffer));
+  return absl::WrapUnique<ChaChaPrng>(new ChaChaPrng(
+      in_key, position_in_buffer, salt_counter, std::move(buffer)));
+}
+
+rlwe::StatusOr<Uint8> ChaChaPrng::Rand8() ABSL_LOCKS_EXCLUDED(mu_) {
+  absl::MutexLock lock(&mu_);
+  return internal::ChaChaPrngRand8(key_, &position_in_buffer_, &salt_counter_,
+                                   &buffer_);
+}
+
+rlwe::StatusOr<Uint64> ChaChaPrng::Rand64() ABSL_LOCKS_EXCLUDED(mu_) {
+  absl::MutexLock lock(&mu_);
+  return internal::ChaChaPrngRand64(key_, &position_in_buffer_, &salt_counter_,
+                                    &buffer_);
+}
+
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/prng/chacha_prng.h b/third_party/shell-encryption/src/prng/chacha_prng.h
new file mode 100644
index 0000000..27940fd
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/chacha_prng.h
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2019 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// An implementation of a PRNG using the ChaCha20 stream cipher. Since this is
+// a stream cipher, the key stream can be obtained by "encrypting" the plaintext
+// 0....0.
+
+#ifndef RLWE_CHACHA_PRNG_H_
+#define RLWE_CHACHA_PRNG_H_
+
+#include "absl/base/thread_annotations.h"
+#include "absl/strings/string_view.h"
+#include "absl/synchronization/mutex.h"
+#include "prng/chacha_prng_util.h"
+#include "prng/prng.h"
+#include "statusor.h"
+
+namespace rlwe {
+
+class ChaChaPrng : public SecurePrng {
+ public:
+  // Constructs a secure pseudorandom number generator using the ChaCha20 stream
+  // cipher. The parameter in_key is the key for the ChaCha20.
+  //
+  // This class is for use only in single threaded scenarios. For thread safe
+  // pseudorandom number generators, use ChaChaPrng instead.
+  //
+  // Input keys should contain sufficient randomness (such as those generated by
+  // the ChaChaPrngGenerateKey function) to ensure the random generated strings
+  // are pseudorandom. As long as the initial key contains sufficient entropy,
+  // there is no bound on the number of pseudorandom bytes that can be created.
+  //
+  // ChaChaPrng allows replaying pseudorandom outputs. For any fixed input key,
+  // the pseudorandom outputs of ChaChaPrng will be identical.
+  //
+  // For a fixed key and salt, the underlying ChaCha primitive can
+  // generate 2^32 * 64 pseudorandom bytes. Instead, we will construct a smaller
+  // pool of 255 * 32 bytes to match the Hkdf Prng. Once, these bytes have been
+  // exhausted, the prng deterministically re-salts the key using a salting
+  // counter, thereby constructing a new internal ChaCha that can output more
+  // pseudorandom bytes.
+  //
+  // Fails if the key is not the expected size or on internal cryptographic
+  // errors.
+  //
+  // Thread safe.
+  static rlwe::StatusOr<std::unique_ptr<ChaChaPrng>> Create(
+      absl::string_view in_key);
+
+  // Returns 8 bits of randomness.
+  //
+  // Fails on internal cryptographic errors.
+  rlwe::StatusOr<Uint8> Rand8() override;
+
+  // Returns 64 bits of randomness.
+  //
+  // Fails on internal cryptographic errors.
+  rlwe::StatusOr<Uint64> Rand64() override;
+
+  // Generate a valid seed for the Prng.
+  //
+  // Fails on internal cryptographic errors.
+  static rlwe::StatusOr<std::string> GenerateSeed() {
+    return internal::ChaChaPrngGenerateKey();
+  }
+
+  // Output the size of the expected generated seed.
+  static int SeedLength() { return internal::kChaChaKeyBytesSize; }
+
+ private:
+  explicit ChaChaPrng(absl::string_view in_key, int position_in_buffer,
+                      int salt_counter, std::vector<Uint8> buffer);
+
+  absl::Mutex mu_;  // Guards all values below
+
+  const std::string key_;
+  int position_in_buffer_ ABSL_GUARDED_BY(mu_);
+  int salt_counter_ ABSL_GUARDED_BY(mu_);
+  std::vector<Uint8> buffer_ ABSL_GUARDED_BY(mu_);
+};
+
+}  // namespace rlwe
+
+#endif  // RLWE_CHACHA_PRNG_H_
diff --git a/third_party/shell-encryption/src/prng/chacha_prng_test.cc b/third_party/shell-encryption/src/prng/chacha_prng_test.cc
new file mode 100644
index 0000000..bc390ad
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/chacha_prng_test.cc
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2019 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// This file includes specific unit tests files to test populating the buffer
+// every internal::kChaChaOutputBytes bytes.
+
+#include "prng/chacha_prng.h"
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "absl/strings/str_cat.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+
+namespace rlwe {
+
+namespace {
+
+using ::testing::Eq;
+using ::testing::Not;
+
+class ChaChaPrngTest : public ::testing::Test {
+ protected:
+  void SetUp() override {
+    ASSERT_OK_AND_ASSIGN(seed_, ChaChaPrng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(prng_, ChaChaPrng::Create(seed_));
+  }
+
+  std::string seed_;
+  std::unique_ptr<ChaChaPrng> prng_;
+};
+
+TEST_F(ChaChaPrngTest, TestRand8BeforeAndAfterResalting) {
+  // Two random 8 bit strings have 1/256 probability of being equal. Instead,
+  // we check that a sequence of 8 strings from the PRNG before and after
+  // salting are not all equal.
+  std::vector<std::vector<Uint8>> before_resalt(internal::kChaChaOutputBytes);
+  for (int i = 0; i < internal::kChaChaOutputBytes / 8; ++i) {
+    SCOPED_TRACE(absl::StrCat("Iteration ", i, "."));
+    std::vector<Uint8> rand8s;
+    for (int j = 0; j < 8; ++j) {
+      ASSERT_OK_AND_ASSIGN(auto elt, prng_->Rand8());
+      rand8s.push_back(elt);
+    }
+    before_resalt.push_back(rand8s);
+  }
+  for (int i = 0; i < internal::kChaChaOutputBytes / 8; ++i) {
+    SCOPED_TRACE(absl::StrCat("Iteration ", i, "."));
+    std::vector<Uint8> rand8s;
+    for (int j = 0; j < 8; ++j) {
+      ASSERT_OK_AND_ASSIGN(auto elt, prng_->Rand8());
+      rand8s.push_back(elt);
+    }
+    EXPECT_THAT(rand8s, Not(Eq(before_resalt[i])));
+  }
+}
+
+TEST_F(ChaChaPrngTest, TestRand64BeforeAndAfterResalting) {
+  std::vector<Uint64> before_resalt(internal::kChaChaOutputBytes / 8);
+  for (int i = 0; i < internal::kChaChaOutputBytes / 8; ++i) {
+    SCOPED_TRACE(absl::StrCat("Iteration ", i, "."));
+    ASSERT_OK_AND_ASSIGN(before_resalt[i], prng_->Rand64());
+  }
+  for (int i = 0; i < internal::kChaChaOutputBytes / 8; ++i) {
+    SCOPED_TRACE(absl::StrCat("Iteration ", i, "."));
+    ASSERT_OK_AND_ASSIGN(auto r64, prng_->Rand64());
+    EXPECT_NE(before_resalt[i], r64);
+  }
+}
+
+TEST_F(ChaChaPrngTest, TestRand64WithResaltingInBetween) {
+  for (int i = 0; i < internal::kChaChaOutputBytes - 1; ++i) {
+    SCOPED_TRACE(absl::StrCat("Iteration ", i, "."));
+    EXPECT_OK(prng_->Rand8());
+  }
+  EXPECT_OK(prng_->Rand64());
+}
+
+}  // namespace
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/prng/chacha_prng_util.cc b/third_party/shell-encryption/src/prng/chacha_prng_util.cc
new file mode 100644
index 0000000..39099e1
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/chacha_prng_util.cc
@@ -0,0 +1,76 @@
+#include "prng/chacha_prng_util.h"
+
+#include <cstdint>
+#include <vector>
+
+#include "absl/memory/memory.h"
+#include "absl/strings/str_cat.h"
+#include <openssl/chacha.h>
+#include <openssl/crypto.h>
+#include <openssl/rand.h>
+#include "status_macros.h"
+
+namespace rlwe {
+namespace internal {
+
+absl::Status ChaChaPrngResalt(absl::string_view key, int buffer_size,
+                              int* salt_counter, int* position_in_buffer,
+                              std::vector<Uint8>* buffer) {
+  buffer->assign(buffer_size, 0);
+  std::string salt = "salt";
+  if (salt.size() > kChaChaNonceSize) {
+    return absl::InternalError("The salt length is too large.");
+  }
+  salt.resize(kChaChaNonceSize, 0);
+
+  CRYPTO_chacha_20(buffer->data(), buffer->data(), buffer->size(),
+                   reinterpret_cast<const Uint8*>(key.data()),
+                   reinterpret_cast<const Uint8*>(salt.data()),
+                   static_cast<uint32_t>(*salt_counter));
+
+  ++(*salt_counter);
+  *position_in_buffer = 0;
+  return absl::OkStatus();
+}
+
+rlwe::StatusOr<std::string> ChaChaPrngGenerateKey() {
+  std::unique_ptr<Uint8[]> buf(new Uint8[kChaChaKeyBytesSize]);
+  // BoringSSL documentation says that it always returns 1; while
+  // OpenSSL documentation says that it returns 1 on success, 0 otherwise. Check
+  // for an error just in case.
+  if (RAND_bytes(buf.get(), kChaChaKeyBytesSize) == 0) {
+    return absl::InternalError("Internal error generating random PRNG key.");
+  }
+  return std::string(reinterpret_cast<const char*>(buf.get()),
+                     kChaChaKeyBytesSize);
+}
+
+rlwe::StatusOr<Uint8> ChaChaPrngRand8(absl::string_view key,
+                                      int* position_in_buffer,
+                                      int* salt_counter,
+                                      std::vector<Uint8>* buffer) {
+  Uint8 rand;
+  if (*position_in_buffer >= buffer->size()) {
+    RLWE_RETURN_IF_ERROR(ChaChaPrngResalt(key, kChaChaOutputBytes, salt_counter,
+                                          position_in_buffer, buffer));
+  }
+  rand = buffer->at(*position_in_buffer);
+  ++(*position_in_buffer);
+  return rand;
+}
+
+rlwe::StatusOr<Uint64> ChaChaPrngRand64(absl::string_view key,
+                                        int* position_in_buffer,
+                                        int* salt_counter,
+                                        std::vector<Uint8>* buffer) {
+  Uint64 rand64 = 0;
+  for (int i = 0; i < 8; ++i) {
+    RLWE_ASSIGN_OR_RETURN(Uint8 rand8, ChaChaPrngRand8(key, position_in_buffer,
+                                                       salt_counter, buffer));
+    rand64 += Uint64{rand8} << (8 * i);
+  }
+  return rand64;
+}
+
+}  // namespace internal
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/prng/chacha_prng_util.h b/third_party/shell-encryption/src/prng/chacha_prng_util.h
new file mode 100644
index 0000000..5490505f
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/chacha_prng_util.h
@@ -0,0 +1,50 @@
+// An implementation of a PRNG using the ChaCha20 stream cipher. Since this is
+// a stream cipher, the key stream can be obtained by "encrypting" the plaintext
+// 0....0.
+
+#ifndef RLWE_CHACHA_PRNG_UTIL_H_
+#define RLWE_CHACHA_PRNG_UTIL_H_
+
+#include <vector>
+
+#include "absl/status/status.h"
+#include "absl/strings/string_view.h"
+#include "integral_types.h"
+#include "statusor.h"
+
+namespace rlwe {
+namespace internal {
+
+const int kChaChaKeyBytesSize = 32;
+const int kChaChaNonceSize = 12;
+const int kChaChaOutputBytes = 255 * 32;
+
+// Once pseudorandom output is exhausted, the salt is updated to construct
+// new pseudorandom output.
+absl::Status ChaChaPrngResalt(absl::string_view key, int buffer_size,
+                              int* salt_counter, int* position_in_buffer,
+                              std::vector<Uint8>* buffer);
+
+// Generates a secure key for instantiating an CHACHA.
+rlwe::StatusOr<std::string> ChaChaPrngGenerateKey();
+
+// Returns 8 bits of randomness.
+//
+// Fails on internal cryptographic errors.
+rlwe::StatusOr<Uint8> ChaChaPrngRand8(absl::string_view key,
+                                      int* position_in_buffer,
+                                      int* salt_counter,
+                                      std::vector<Uint8>* buffer);
+
+// Returns 64 bits of randomness.
+//
+// Fails on internal cryptographic errors.
+rlwe::StatusOr<Uint64> ChaChaPrngRand64(absl::string_view key,
+                                        int* position_in_buffer,
+                                        int* salt_counter,
+                                        std::vector<Uint8>* buffer);
+
+}  // namespace internal
+}  // namespace rlwe
+
+#endif  // RLWE_CHACHA_PRNG_UTIL_H_
diff --git a/third_party/shell-encryption/src/prng/integral_prng_testing_types.h b/third_party/shell-encryption/src/prng/integral_prng_testing_types.h
new file mode 100644
index 0000000..7ea17b0
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/integral_prng_testing_types.h
@@ -0,0 +1,15 @@
+#ifndef RLWE_PRNG_INTEGRAL_PRNG_TYPE_H_
+#define RLWE_PRNG_INTEGRAL_PRNG_TYPE_H_
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "prng/chacha_prng.h"
+#include "prng/single_thread_chacha_prng.h"
+
+namespace rlwe {
+
+typedef ::testing::Types<ChaChaPrng, SingleThreadChaChaPrng> TestingPrngTypes;
+
+}  // namespace rlwe
+
+#endif  // RLWE_PRNG_INTEGRAL_PRNG_TYPE_H_
diff --git a/third_party/shell-encryption/src/prng/integral_prng_types.h b/third_party/shell-encryption/src/prng/integral_prng_types.h
new file mode 100644
index 0000000..3b52005
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/integral_prng_types.h
@@ -0,0 +1,14 @@
+#ifndef RLWE_PRNG_INTEGRAL_PRNG_TYPE_H_
+#define RLWE_PRNG_INTEGRAL_PRNG_TYPE_H_
+
+#include "prng/chacha_prng.h"
+#include "prng/single_thread_chacha_prng.h"
+
+namespace rlwe {
+
+typedef SingleThreadChaChaPrng SingleThreadPrng;
+typedef ChaChaPrng Prng;
+
+}  // namespace rlwe
+
+#endif  // RLWE_PRNG_INTEGRAL_PRNG_TYPE_H_
diff --git a/third_party/shell-encryption/src/prng/prng.h b/third_party/shell-encryption/src/prng/prng.h
new file mode 100644
index 0000000..563d860
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/prng.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RLWE_PRNG_H_
+#define RLWE_PRNG_H_
+
+#include <cstdint>
+
+#include "absl/strings/string_view.h"
+#include "integral_types.h"
+#include "statusor.h"
+
+namespace rlwe {
+
+// An interface for a secure pseudo-random number generator.
+class SecurePrng {
+ public:
+  virtual rlwe::StatusOr<Uint8> Rand8() = 0;
+  virtual rlwe::StatusOr<Uint64> Rand64() = 0;
+  virtual ~SecurePrng() = default;
+  static rlwe::StatusOr<std::unique_ptr<SecurePrng>> Create(
+      absl::string_view seed);
+  static rlwe::StatusOr<std::string> GenerateSeed();
+  static int SeedLength();
+};
+
+}  // namespace rlwe
+
+#endif  // RLWE_PRNG_H_
diff --git a/third_party/shell-encryption/src/prng/prng_test.cc b/third_party/shell-encryption/src/prng/prng_test.cc
new file mode 100644
index 0000000..de7eacc
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/prng_test.cc
@@ -0,0 +1,146 @@
+/*
+ * Copyright 2019 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// This file includes unit tests for the functions available in the interface of
+// SecurePrng. PRNGs that follow some specific behavior, such as using an
+// internal buffer with random data, and repopulating the buffer according to a
+// salt counter, should add specific unit tests files.
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include <gtest/gtest-typed-test.h>
+#include "absl/strings/str_cat.h"
+#include "prng/integral_prng_testing_types.h"
+#include "prng/integral_prng_types.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+
+namespace rlwe {
+
+namespace {
+
+using ::rlwe::testing::StatusIs;
+using ::testing::HasSubstr;
+
+constexpr int kLargeRequestRounds = 2048;
+
+template <typename Prng>
+class PrngTest : public ::testing::Test {
+ protected:
+  void SetUp() override {
+    ASSERT_OK_AND_ASSIGN(seed_, Prng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(prng_, Prng::Create(seed_));
+  }
+
+  std::string seed_;
+  std::unique_ptr<Prng> prng_;
+};
+
+TYPED_TEST_SUITE(PrngTest, TestingPrngTypes);
+
+TYPED_TEST(PrngTest, TestNonGeneratedKey) {
+  std::string fake_key = "fake_key";
+  EXPECT_THAT(
+      TypeParam::Create(fake_key),
+      StatusIs(absl::StatusCode::kInvalidArgument,
+               HasSubstr(absl::StrCat(
+                   "Cannot create Prng with key of the wrong "
+                   "size. Real key length of ",
+                   fake_key.length(), " instead of expected key length of ",
+                   TypeParam::SeedLength(), "."))));
+}
+
+TYPED_TEST(PrngTest, TestLength) {
+  ASSERT_OK_AND_ASSIGN(std::string key, TypeParam::GenerateSeed());
+  EXPECT_EQ(key.length(), TypeParam::SeedLength());
+}
+
+TYPED_TEST(PrngTest, TestRandomness) {
+  ASSERT_OK_AND_ASSIGN(std::string key1, TypeParam::GenerateSeed());
+  ASSERT_OK_AND_ASSIGN(std::string key2, TypeParam::GenerateSeed());
+  EXPECT_NE(key1, key2);
+}
+
+TYPED_TEST(PrngTest, TestRand8) {
+  // Two random 8 bit strings have 1/256 probability of being equal. Instead,
+  // we check that 8 consecutively generated strings are not all equal.
+  bool equal = true;
+  ASSERT_OK_AND_ASSIGN(Uint64 prev, this->prng_->Rand8());
+  for (int i = 0; i < 8; ++i) {
+    ASSERT_OK_AND_ASSIGN(Uint64 next, this->prng_->Rand8());
+    if (next != prev) {
+      equal = false;
+    }
+    prev = next;
+  }
+  EXPECT_FALSE(equal);
+}
+
+TYPED_TEST(PrngTest, TestRand64) {
+  ASSERT_OK_AND_ASSIGN(auto r1, this->prng_->Rand64());
+  ASSERT_OK_AND_ASSIGN(auto r2, this->prng_->Rand64());
+  EXPECT_NE(r1, r2);
+}
+
+TYPED_TEST(PrngTest, ReplaySameInKeyTest) {
+  ASSERT_OK_AND_ASSIGN(auto same_prng, TypeParam::Create(this->seed_));
+
+  ASSERT_OK_AND_ASSIGN(auto r8, this->prng_->Rand8());
+  ASSERT_OK_AND_ASSIGN(auto same_r8, same_prng->Rand8());
+  EXPECT_EQ(r8, same_r8);
+
+  ASSERT_OK_AND_ASSIGN(auto r64, this->prng_->Rand64());
+  ASSERT_OK_AND_ASSIGN(auto same_r64, same_prng->Rand64());
+  EXPECT_EQ(r64, same_r64);
+}
+
+TYPED_TEST(PrngTest, ReplaySameInKeyTestWithResalting) {
+  ASSERT_OK_AND_ASSIGN(auto same_key, TypeParam::Create(this->seed_));
+  for (int i = 0; i < kLargeRequestRounds; ++i) {
+    SCOPED_TRACE(absl::StrCat("Iteration ", i, "."));
+    if (i % 2 == 0) {
+      ASSERT_OK_AND_ASSIGN(auto r64, this->prng_->Rand64());
+      ASSERT_OK_AND_ASSIGN(auto same_r64, same_key->Rand64());
+      EXPECT_EQ(r64, same_r64);
+    } else {
+      ASSERT_OK_AND_ASSIGN(auto r8, this->prng_->Rand8());
+      ASSERT_OK_AND_ASSIGN(auto same_r8, same_key->Rand8());
+      EXPECT_EQ(r8, same_r8);
+    }
+  }
+}
+
+TYPED_TEST(PrngTest, ReplayDifferentInKeyTest) {
+  ASSERT_OK_AND_ASSIGN(std::string other_seed, TypeParam::GenerateSeed());
+  EXPECT_NE(this->seed_, other_seed);
+  ASSERT_OK_AND_ASSIGN(auto other_prng, TypeParam::Create(other_seed));
+  // Two random 8 bit strings have 1/256 probability of being equal. Instead,
+  // we check that a sequence of 8 bit strings from each PRNG are not equal.
+  bool equal = true;
+  for (int i = 0; i < 8; ++i) {
+    ASSERT_OK_AND_ASSIGN(auto r8, this->prng_->Rand8());
+    ASSERT_OK_AND_ASSIGN(auto other_r8, other_prng->Rand8());
+    if (r8 != other_r8) {
+      equal = false;
+    }
+  }
+  EXPECT_FALSE(equal);
+  ASSERT_OK_AND_ASSIGN(auto r64, this->prng_->Rand64());
+  ASSERT_OK_AND_ASSIGN(auto other_r64, other_prng->Rand64());
+  EXPECT_NE(r64, other_r64);
+}
+
+}  // namespace
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/prng/single_thread_chacha_prng.cc b/third_party/shell-encryption/src/prng/single_thread_chacha_prng.cc
new file mode 100644
index 0000000..c8373b6b
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/single_thread_chacha_prng.cc
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2019 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "prng/single_thread_chacha_prng.h"
+
+#include <vector>
+
+#include "absl/memory/memory.h"
+#include "absl/strings/str_cat.h"
+#include "status_macros.h"
+
+namespace rlwe {
+
+SingleThreadChaChaPrng::SingleThreadChaChaPrng(absl::string_view in_key,
+                                               int position_in_buffer,
+                                               int salt_counter,
+                                               std::vector<Uint8> buffer)
+    : key_(in_key),
+      position_in_buffer_(position_in_buffer),
+      salt_counter_(salt_counter),
+      buffer_(std::move(buffer)) {}
+
+rlwe::StatusOr<std::unique_ptr<SingleThreadChaChaPrng>>
+SingleThreadChaChaPrng::Create(absl::string_view in_key) {
+  if (in_key.length() != SeedLength()) {
+    return absl::InvalidArgumentError(
+        absl::StrCat("Cannot create Prng with key of the "
+                     "wrong size. Real ",
+                     "key length of ", in_key.length(), " instead of expected ",
+                     "key length of ", SeedLength(), "."));
+  }
+  int position_in_buffer = 0;
+  int salt_counter = 0;
+  std::vector<Uint8> buffer;
+  RLWE_RETURN_IF_ERROR(
+      internal::ChaChaPrngResalt(in_key, internal::kChaChaOutputBytes,
+                                 &salt_counter, &position_in_buffer, &buffer));
+  return absl::WrapUnique<SingleThreadChaChaPrng>(new SingleThreadChaChaPrng(
+      in_key, position_in_buffer, salt_counter, std::move(buffer)));
+}
+
+rlwe::StatusOr<Uint8> SingleThreadChaChaPrng::Rand8() {
+  return internal::ChaChaPrngRand8(key_, &position_in_buffer_, &salt_counter_,
+                                   &buffer_);
+}
+
+rlwe::StatusOr<Uint64> SingleThreadChaChaPrng::Rand64() {
+  return internal::ChaChaPrngRand64(key_, &position_in_buffer_, &salt_counter_,
+                                    &buffer_);
+}
+
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/prng/single_thread_chacha_prng.h b/third_party/shell-encryption/src/prng/single_thread_chacha_prng.h
new file mode 100644
index 0000000..fcaff827
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/single_thread_chacha_prng.h
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2019 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// An implementation of a PRNG using the ChaCha20 stream cipher. Since this is
+// a stream cipher, the key stream can be obtained by "encrypting" the plaintext
+// 0....0.
+
+#ifndef RLWE_SINGLE_THREAD_CHACHA_PRNG_H_
+#define RLWE_SINGLE_THREAD_CHACHA_PRNG_H_
+
+#include "absl/strings/string_view.h"
+#include "prng/chacha_prng_util.h"
+#include "prng/prng.h"
+#include "statusor.h"
+
+namespace rlwe {
+
+class SingleThreadChaChaPrng : public SecurePrng {
+ public:
+  // Constructs a secure pseudorandom number generator using the ChaCha20 stream
+  // cipher. The parameter in_key is the key for the ChaCha20.
+  //
+  // This class is for use only in single threaded scenarios. For thread safe
+  // pseudorandom number generators, use ChaChaPrng instead.
+  //
+  // Input keys should contain sufficient randomness (such as those generated by
+  // the ChaChaPrngGenerateKey function) to ensure the random generated strings
+  // are pseudorandom. As long as the initial key contains sufficient entropy,
+  // there is no bound on the number of pseudorandom bytes that can be created.
+  //
+  // ChaChaPrng allows replaying pseudorandom outputs. For any fixed input key,
+  // the pseudorandom outputs of ChaChaPrng will be identical.
+  //
+  // For a fixed key and salt, the underlying ChaCha primitive can
+  // generate 2^32 * 64 pseudorandom bytes. Instead, we will construct a smaller
+  // pool of 255 * 32 bytes to match the Hkdf Prng. Once, these bytes have been
+  // exhausted, the prng deterministically re-salts the key using a salting
+  // counter, thereby constructing a new internal ChaCha that can output more
+  // pseudorandom bytes.
+  //
+  // Fails if the key is not the expected size or on internal cryptographic
+  // errors.
+  static rlwe::StatusOr<std::unique_ptr<SingleThreadChaChaPrng>> Create(
+      absl::string_view in_key);
+
+  // Returns 8 bits of randomness.
+  //
+  // Fails on internal cryptographic errors.
+  rlwe::StatusOr<Uint8> Rand8() override;
+
+  // Returns 64 bits of randomness.
+  //
+  // Fails on internal cryptographic errors.
+  rlwe::StatusOr<Uint64> Rand64() override;
+
+  // Generate a valid seed for the Prng.
+  //
+  // Fails on internal cryptographic errors.
+  static rlwe::StatusOr<std::string> GenerateSeed() {
+    return internal::ChaChaPrngGenerateKey();
+  }
+
+  // Output the size of the expected generated seed.
+  static int SeedLength() { return internal::kChaChaKeyBytesSize; }
+
+ private:
+  explicit SingleThreadChaChaPrng(absl::string_view in_key,
+                                  int position_in_buffer, int salt_counter,
+                                  std::vector<Uint8> buffer);
+
+  const std::string key_;
+  int position_in_buffer_;
+  int salt_counter_;
+  std::vector<Uint8> buffer_;
+};
+
+}  // namespace rlwe
+
+#endif  // RLWE_SINGLE_THREAD_CHACHA_PRNG_H_
diff --git a/third_party/shell-encryption/src/prng/single_thread_chacha_prng_test.cc b/third_party/shell-encryption/src/prng/single_thread_chacha_prng_test.cc
new file mode 100644
index 0000000..aadeb155
--- /dev/null
+++ b/third_party/shell-encryption/src/prng/single_thread_chacha_prng_test.cc
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2019 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// This file includes specific unit tests files to test populating the buffer
+// every internal::kChaChaOutputBytes bytes.
+
+#include "prng/single_thread_chacha_prng.h"
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "absl/strings/str_cat.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+
+namespace rlwe {
+
+namespace {
+
+using ::testing::Eq;
+using ::testing::Not;
+
+class SingleThreadChaChaPrngTest : public ::testing::Test {
+ protected:
+  void SetUp() override {
+    ASSERT_OK_AND_ASSIGN(seed_, SingleThreadChaChaPrng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(prng_, SingleThreadChaChaPrng::Create(seed_));
+  }
+
+  std::string seed_;
+  std::unique_ptr<SingleThreadChaChaPrng> prng_;
+};
+
+TEST_F(SingleThreadChaChaPrngTest, TestRand8BeforeAndAfterResalting) {
+  // Two random 8 bit strings have 1/256 probability of being equal. Instead,
+  // we check that a sequence of 8 strings from the PRNG before and after
+  // salting are not all equal.
+  std::vector<std::vector<Uint8>> before_resalt(internal::kChaChaOutputBytes);
+  for (int i = 0; i < internal::kChaChaOutputBytes / 8; ++i) {
+    SCOPED_TRACE(absl::StrCat("Iteration ", i, "."));
+    std::vector<Uint8> rand8s;
+    for (int j = 0; j < 8; ++j) {
+      ASSERT_OK_AND_ASSIGN(auto elt, prng_->Rand8());
+      rand8s.push_back(elt);
+    }
+    before_resalt.push_back(rand8s);
+  }
+  for (int i = 0; i < internal::kChaChaOutputBytes / 8; ++i) {
+    SCOPED_TRACE(absl::StrCat("Iteration ", i, "."));
+    std::vector<Uint8> rand8s;
+    for (int j = 0; j < 8; ++j) {
+      ASSERT_OK_AND_ASSIGN(auto elt, prng_->Rand8());
+      rand8s.push_back(elt);
+    }
+    EXPECT_THAT(rand8s, Not(Eq(before_resalt[i])));
+  }
+}
+
+TEST_F(SingleThreadChaChaPrngTest, TestRand64BeforeAndAfterResalting) {
+  std::vector<Uint64> before_resalt(internal::kChaChaOutputBytes / 8);
+  for (int i = 0; i < internal::kChaChaOutputBytes / 8; ++i) {
+    SCOPED_TRACE(absl::StrCat("Iteration ", i, "."));
+    ASSERT_OK_AND_ASSIGN(before_resalt[i], prng_->Rand64());
+  }
+  for (int i = 0; i < internal::kChaChaOutputBytes / 8; ++i) {
+    SCOPED_TRACE(absl::StrCat("Iteration ", i, "."));
+    ASSERT_OK_AND_ASSIGN(auto r64, prng_->Rand64());
+    EXPECT_NE(before_resalt[i], r64);
+  }
+}
+
+TEST_F(SingleThreadChaChaPrngTest, TestRand64WithResaltingInBetween) {
+  for (int i = 0; i < internal::kChaChaOutputBytes - 1; ++i) {
+    SCOPED_TRACE(absl::StrCat("Iteration ", i, "."));
+    EXPECT_OK(prng_->Rand8());
+  }
+  EXPECT_OK(prng_->Rand64());
+}
+
+}  // namespace
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/relinearization_key.cc b/third_party/shell-encryption/src/relinearization_key.cc
new file mode 100644
index 0000000..72310a8
--- /dev/null
+++ b/third_party/shell-encryption/src/relinearization_key.cc
@@ -0,0 +1,444 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "relinearization_key.h"
+
+#include "absl/numeric/int128.h"
+#include "montgomery.h"
+#include "prng/integral_prng_types.h"
+#include "status_macros.h"
+#include "statusor.h"
+#include "symmetric_encryption_with_prng.h"
+
+namespace rlwe {
+namespace {
+// Method to compute the number of digits needed to represent integers mod
+// q in base T. Upcasts the modulus to absl::uint128 to handle all uint*_t
+// types.
+inline int ComputeDimension(Uint64 log_decomposition_modulus,
+                            absl::uint128 modulus) {
+  double modulus_bits;
+  // Compute bit lengths of each as a double and divide.
+  if (absl::Uint128High64(modulus) > 0) {
+    modulus_bits = std::log2(absl::Uint128High64(modulus)) + 64;
+  } else {
+    modulus_bits = std::log2(absl::Uint128Low64(modulus));
+  }
+  return std::ceil(modulus_bits / log_decomposition_modulus);
+}
+
+// Returns a random vector r orthogonal to (1,s). The second component is chosen
+// using randomness-of-encryption sampled using the specified PRNG. The first
+// component is then chosen so that r is perpendicular to (1,s).
+template <typename ModularInt>
+rlwe::StatusOr<std::vector<Polynomial<ModularInt>>> SampleOrthogonalFromPrng(
+    const SymmetricRlweKey<ModularInt>& key, SecurePrng* prng) {
+  // Sample a random polynomial r using a PRNG.
+  RLWE_ASSIGN_OR_RETURN(auto r, SamplePolynomialFromPrng<ModularInt>(
+                                    key.Len(), prng, key.ModulusParams()));
+  // Top entries of the matrix R will be -s*r, thus R is orthogonal to
+  // (1,s).
+  RLWE_ASSIGN_OR_RETURN(Polynomial<ModularInt> r_top,
+                        r.Mul(key.Key(), key.ModulusParams()));
+  r_top.NegateInPlace(key.ModulusParams());
+  std::vector<Polynomial<ModularInt>> res = {std::move(r_top), std::move(r)};
+  return res;
+}
+
+// The i-th component of the result is (T^i key_power).
+template <typename ModularInt>
+rlwe::StatusOr<std::vector<Polynomial<ModularInt>>> PowersOfT(
+    const Polynomial<ModularInt>& key_power,
+    const SymmetricRlweKey<ModularInt>& key,
+    const ModularInt& decomposition_modulus, int dimension) {
+  std::vector<Polynomial<ModularInt>> result;
+  result.reserve(dimension);
+  Polynomial<ModularInt> key_to_i = key_power;
+
+  for (int i = 0; i < dimension; i++) {
+    // Increase the power of T in T^i s in place.
+    if (i != 0) {
+      RLWE_RETURN_IF_ERROR(
+          key_to_i.MulInPlace(decomposition_modulus, key.ModulusParams()));
+    }
+    result.push_back(key_to_i);
+  }
+  return result;
+}
+
+// The i-th component of the result contains a vector of i-th digits of the
+// coefficients in base T (the decomposition modulus).
+template <typename ModularInt>
+rlwe::StatusOr<std::vector<std::vector<ModularInt>>> BitDecompose(
+    const std::vector<ModularInt>& coefficients,
+    typename ModularInt::Params* modulus_params,
+    const Uint64 log_decomposition_modulus, int dimension) {
+  std::vector<std::vector<ModularInt>> result;
+
+  std::vector<typename ModularInt::Int> ciphertext_coeffs(coefficients.size(),
+                                                          0);
+
+  std::transform(
+      coefficients.begin(), coefficients.end(), ciphertext_coeffs.begin(),
+      [modulus_params](ModularInt x) { return x.ExportInt(modulus_params); });
+
+  auto zero = ModularInt::ImportZero(modulus_params);
+  std::vector<ModularInt> sum_part(ciphertext_coeffs.size(), zero);
+
+  for (int i = 0; i < dimension; i++) {
+    for (int j = 0; j < ciphertext_coeffs.size(); ++j) {
+      RLWE_ASSIGN_OR_RETURN(
+          sum_part[j],
+          ModularInt::ImportInt(
+              (ciphertext_coeffs[j] % (1L << log_decomposition_modulus)),
+              modulus_params));
+      ciphertext_coeffs[j] = ciphertext_coeffs[j] >> log_decomposition_modulus;
+    }
+    result.push_back(sum_part);
+  }
+
+  return result;
+}
+
+template <typename ModularInt>
+rlwe::StatusOr<std::vector<Polynomial<ModularInt>>> MatrixMultiply(
+    std::vector<std::vector<ModularInt>> decomposed_coefficients,
+    const std::vector<std::vector<Polynomial<ModularInt>>>& matrix,
+    typename ModularInt::Params* modulus_params,
+    const NttParameters<ModularInt>* ntt_params) {
+  Polynomial<ModularInt> temp(matrix[0][0].Len(), modulus_params);
+  Polynomial<ModularInt> ntt_part(matrix[0][0].Len(), modulus_params);
+
+  std::vector<Polynomial<ModularInt>> result(2, temp);
+
+  for (int i = 0; i < matrix[0].size(); i++) {
+    ntt_part = Polynomial<ModularInt>::ConvertToNtt(
+        std::move(decomposed_coefficients[i]), *ntt_params, modulus_params);
+    RLWE_ASSIGN_OR_RETURN(temp, ntt_part.Mul(matrix[0][i], modulus_params));
+    RLWE_RETURN_IF_ERROR(result[0].AddInPlace(temp, modulus_params));
+    RLWE_RETURN_IF_ERROR(ntt_part.MulInPlace(matrix[1][i], modulus_params))
+    RLWE_RETURN_IF_ERROR(result[1].AddInPlace(ntt_part, modulus_params));
+  }
+
+  return result;
+}
+}  //  namespace
+
+template <typename ModularInt>
+rlwe::StatusOr<typename RelinearizationKey<ModularInt>::RelinearizationKeyPart>
+RelinearizationKey<ModularInt>::RelinearizationKeyPart::Create(
+    const Polynomial<ModularInt>& key_power,
+    const SymmetricRlweKey<ModularInt>& key,
+    const Uint64 log_decomposition_modulus,
+    const ModularInt& decomposition_modulus, int dimension, SecurePrng* prng,
+    SecurePrng* prng_encryption) {
+  std::vector<std::vector<Polynomial<ModularInt>>> matrix(2);
+  for (auto& row : matrix) {
+    row.reserve(dimension);
+  }
+
+  // Compute a vector of (T^i key_power).
+  RLWE_ASSIGN_OR_RETURN(
+      auto powers_of_t,
+      PowersOfT(key_power, key, decomposition_modulus, dimension));
+
+  // For key_power = s^j, the ith iteration of this loop computes the column of
+  // the KeyPart corresponding to (T^i s^j).
+  for (int i = 0; i < dimension; ++i) {
+    // Sample r component orthogonal to (1,s).
+    RLWE_ASSIGN_OR_RETURN(auto r, SampleOrthogonalFromPrng(key, prng));
+
+    // Sample error.
+    RLWE_ASSIGN_OR_RETURN(auto error,
+                          SampleFromErrorDistribution<ModularInt>(
+                              key_power.Len(), key.Variance(), prng_encryption,
+                              key.ModulusParams()));
+    // Convert the error coefficients into an error polynomial.
+    auto e = Polynomial<ModularInt>::ConvertToNtt(error, *key.NttParams(),
+                                                  key.ModulusParams());
+    // Set the column of the Relinearization matrix.
+    RLWE_RETURN_IF_ERROR(
+        e.MulInPlace(key.PlaintextModulus(), key.ModulusParams()));
+    RLWE_RETURN_IF_ERROR(e.AddInPlace(r[0], key.ModulusParams()));
+    RLWE_RETURN_IF_ERROR(e.AddInPlace(powers_of_t[i], key.ModulusParams()));
+    matrix[0].push_back(std::move(e));
+    matrix[1].push_back(std::move(r[1]));
+  }
+
+  return RelinearizationKeyPart(std::move(matrix), log_decomposition_modulus);
+}
+
+template <typename ModularInt>
+rlwe::StatusOr<std::vector<Polynomial<ModularInt>>>
+RelinearizationKey<ModularInt>::RelinearizationKeyPart::ApplyPartTo(
+    const Polynomial<ModularInt>& ciphertext_part,
+    typename ModularInt::Params* modulus_params,
+    const NttParameters<ModularInt>* ntt_params) const {
+  // Convert ciphertext out of NTT form.
+  std::vector<ModularInt> ciphertext_coefficients =
+      ciphertext_part.InverseNtt(*ntt_params, modulus_params);
+
+  // Bit-decompose the vector of coefficients in the ciphertext.
+  RLWE_ASSIGN_OR_RETURN(
+      std::vector<std::vector<ModularInt>> decomposed_coefficients,
+      BitDecompose<ModularInt>(ciphertext_coefficients, modulus_params,
+                               log_decomposition_modulus_, matrix_[0].size()));
+
+  // Matrix multiply with the bit-decomposed coefficients.
+  return MatrixMultiply<ModularInt>(std::move(decomposed_coefficients), matrix_,
+                                    modulus_params, ntt_params);
+}
+
+template <typename ModularInt>
+rlwe::StatusOr<typename RelinearizationKey<ModularInt>::RelinearizationKeyPart>
+RelinearizationKey<ModularInt>::RelinearizationKeyPart::Deserialize(
+    const std::vector<SerializedNttPolynomial>& polynomials,
+    Uint64 log_decomposition_modulus, SecurePrng* prng,
+    ModularIntParams* modulus_params,
+    const NttParameters<ModularInt>* ntt_params) {
+  // The polynomials input is a flattened representation of a 2 x dimension
+  // matrix where the first half corresponds to the first row of matrix and the
+  // second half corresponds to the second row of matrix. This matrix makes up
+  // the RelinearizationKeyPart.
+  auto matrix = std::vector<std::vector<Polynomial<ModularInt>>>(2);
+  int dimension = polynomials.size();
+
+  for (int i = 0; i < dimension; i++) {
+    RLWE_ASSIGN_OR_RETURN(auto elt, Polynomial<ModularInt>::Deserialize(
+                                        polynomials[i], modulus_params));
+    matrix[0].push_back(std::move(elt));
+    RLWE_ASSIGN_OR_RETURN(auto sample,
+                          SamplePolynomialFromPrng<ModularInt>(
+                              matrix[0][i].Len(), prng, modulus_params));
+    matrix[1].push_back(std::move(sample));
+  }
+
+  return RelinearizationKeyPart(std::move(matrix), log_decomposition_modulus);
+}
+
+template <typename ModularInt>
+RelinearizationKey<ModularInt>::RelinearizationKey(
+    const SymmetricRlweKey<ModularInt>& key, absl::string_view prng_seed,
+    ssize_t num_parts, Uint64 log_decomposition_modulus,
+    Uint64 substitution_power, ModularInt decomposition_modulus,
+    std::vector<RelinearizationKeyPart> relinearization_key)
+    : dimension_(ComputeDimension(log_decomposition_modulus,
+                                  key.ModulusParams()->modulus)),
+      num_parts_(num_parts),
+      log_decomposition_modulus_(log_decomposition_modulus),
+      decomposition_modulus_(decomposition_modulus),
+      substitution_power_(substitution_power),
+      modulus_params_(key.ModulusParams()),
+      ntt_params_(key.NttParams()),
+      relinearization_key_(std::move(relinearization_key)),
+      prng_seed_(prng_seed) {}
+
+template <typename ModularInt>
+rlwe::StatusOr<RelinearizationKey<ModularInt>>
+RelinearizationKey<ModularInt>::Create(const SymmetricRlweKey<ModularInt>& key,
+                                       absl::string_view prng_seed,
+                                       ssize_t num_parts,
+                                       Uint64 log_decomposition_modulus,
+                                       Uint64 substitution_power) {
+  if (num_parts <= 0) {
+    return absl::InvalidArgumentError(
+        absl::StrCat("Num parts: ", num_parts, " must be positive."));
+  }
+  if (log_decomposition_modulus <= 0) {
+    return absl::InvalidArgumentError(
+        absl::StrCat("Log decomposition modulus, ", log_decomposition_modulus,
+                     ", must be positive."));
+  } else if (log_decomposition_modulus > key.ModulusParams()->log_modulus) {
+    return absl::InvalidArgumentError(absl::StrCat(
+        "Log decomposition modulus, ", log_decomposition_modulus,
+        ", must be at most: ", key.ModulusParams()->log_modulus, "."));
+  }
+  RLWE_ASSIGN_OR_RETURN(auto decomposition_modulus,
+                        ModularInt::ImportInt(key.ModulusParams()->One()
+                                                  << log_decomposition_modulus,
+                                              key.ModulusParams()));
+  // Initialize the first part of the secret key, s.
+  RLWE_ASSIGN_OR_RETURN(auto key_base, key.Substitute(substitution_power));
+  auto key_power = key_base.Key();
+
+  RLWE_ASSIGN_OR_RETURN(auto prng, SingleThreadPrng::Create(prng_seed));
+  RLWE_ASSIGN_OR_RETURN(auto prng_encryption_seed,
+                        SingleThreadPrng::GenerateSeed());
+  RLWE_ASSIGN_OR_RETURN(auto prng_encryption,
+                        SingleThreadPrng::Create(prng_encryption_seed));
+
+  auto dimension =
+      ComputeDimension(log_decomposition_modulus, key.ModulusParams()->modulus);
+  std::vector<RelinearizationKeyPart> relinearization_key;
+  // Create RealinearizationKeyPart for each of the secret key parts: s, ...,
+  // s^k.
+  for (int i = 1; i < num_parts; i++) {
+    if (i != 1) {
+      // Increment the power of s.
+      RLWE_RETURN_IF_ERROR(
+          key_power.MulInPlace(key_base.Key(), key.ModulusParams()));
+    }
+    RLWE_ASSIGN_OR_RETURN(
+        auto key_part,
+        RelinearizationKeyPart::Create(
+            key_power, key, log_decomposition_modulus, decomposition_modulus,
+            dimension, prng.get(), prng_encryption.get()));
+    relinearization_key.push_back(std::move(key_part));
+  }
+
+  return RelinearizationKey<ModularInt>(
+      key, prng_seed, num_parts, log_decomposition_modulus, substitution_power,
+      decomposition_modulus, std::move(relinearization_key));
+}
+
+template <typename ModularInt>
+rlwe::StatusOr<SymmetricRlweCiphertext<ModularInt>>
+RelinearizationKey<ModularInt>::ApplyTo(
+    const SymmetricRlweCiphertext<ModularInt>& ciphertext) const {
+  // Ensure that the length of the ciphertext is less than or equal to the
+  // length of the relinearization key.
+  if (ciphertext.Len() > num_parts_) {
+    return absl::InvalidArgumentError(
+        "RelinearizationKey not large enough for ciphertext.");
+  }
+
+  // Initialize the result ciphertext of length 2.
+  RLWE_ASSIGN_OR_RETURN(auto comp, ciphertext.Component(0));
+  std::vector<Polynomial<ModularInt>> result(
+      2, Polynomial<ModularInt>(comp.Len(), modulus_params_));
+
+  // Apply each RelinearizationKeyPart to the part of the ciphertext it
+  // corresponds to. The first component of the ciphertext corresponds to the
+  // "1" part of the secret key, and is added without any
+  // RelinearizationKeyPart.
+  result[0] = std::move(comp);
+
+  for (int i = 0; i < relinearization_key_.size(); i++) {
+    // Add RelinearizationKeyPart_i c_i to the result vector.
+    RLWE_ASSIGN_OR_RETURN(auto temp_comp, ciphertext.Component(i + 1));
+    RLWE_ASSIGN_OR_RETURN(auto result_part,
+                          relinearization_key_[i].ApplyPartTo(
+                              temp_comp, modulus_params_, ntt_params_));
+    RLWE_RETURN_IF_ERROR(result[0].AddInPlace(result_part[0], modulus_params_));
+    RLWE_RETURN_IF_ERROR(result[1].AddInPlace(result_part[1], modulus_params_));
+  }
+  return SymmetricRlweCiphertext<ModularInt>(
+      std::move(result), 1,
+      ciphertext.Error() +
+          ciphertext.ErrorParams()->B_relinearize(log_decomposition_modulus_),
+      modulus_params_, ciphertext.ErrorParams());
+}
+
+template <typename ModularInt>
+rlwe::StatusOr<SerializedRelinearizationKey>
+RelinearizationKey<ModularInt>::Serialize() const {
+  SerializedRelinearizationKey output;
+  output.set_log_decomposition_modulus(log_decomposition_modulus_);
+  output.set_num_parts(num_parts_);
+  output.set_prng_seed(prng_seed_);
+  output.set_power_of_s(substitution_power_);
+  for (const RelinearizationKeyPart& matrix : relinearization_key_) {
+    // Only serialize the first row of each matrix.
+    for (const Polynomial<ModularInt>& c : matrix.Matrix()) {
+      RLWE_ASSIGN_OR_RETURN(*output.add_c(), c.Serialize(modulus_params_));
+    }
+  }
+  return output;
+}
+
+template <typename ModularInt>
+rlwe::StatusOr<RelinearizationKey<ModularInt>>
+RelinearizationKey<ModularInt>::Deserialize(
+    const SerializedRelinearizationKey& serialized,
+    typename ModularInt::Params* modulus_params,
+    const NttParameters<ModularInt>* ntt_params) {
+  // Verifies that the number of polynomials in serialized is expected.
+  // A RelinearizationKey can decrypt ciphertexts with num_parts number of
+  // components corresponding to decryption under (1, s, ..., s^k) or (1,
+  // s(x^power)) but only contains parts corresponding to the non-"1"
+  // components.
+  if (serialized.num_parts() <= 1) {
+    return absl::InvalidArgumentError(
+        absl::StrCat("The number of parts, ", serialized.num_parts(),
+                     ", must be greater than one."));
+  } else if (serialized.c_size() % (serialized.num_parts() - 1) != 0) {
+    return absl::InvalidArgumentError(
+        absl::StrCat("The length of serialized, ", serialized.c_size(), ", ",
+                     "must be divisible by the number of parts minus one ",
+                     serialized.num_parts() - 1, "."));
+  }
+
+  // Return an error when log decomposition modulus is non-positive.
+  if (serialized.log_decomposition_modulus() <= 0) {
+    return absl::InvalidArgumentError(absl::StrCat(
+        "Log decomposition modulus, ", serialized.log_decomposition_modulus(),
+        ", must be positive."));
+  } else if (serialized.log_decomposition_modulus() >
+             modulus_params->log_modulus) {
+    return absl::InvalidArgumentError(absl::StrCat(
+        "Log decomposition modulus, ", serialized.log_decomposition_modulus(),
+        ", must be at most: ", modulus_params->log_modulus, "."));
+  }
+
+  int polynomials_per_matrix =
+      serialized.c_size() / (serialized.num_parts() - 1);
+
+  int dimension = polynomials_per_matrix;
+  if (dimension != ComputeDimension(serialized.log_decomposition_modulus(),
+                                    modulus_params->modulus)) {
+    return absl::InvalidArgumentError(
+        absl::StrCat("Number of NTT Polynomials does not match expected ",
+                     "number of matrix entries."));
+  }
+  RLWE_ASSIGN_OR_RETURN(
+      auto decomposition_modulus,
+      ModularInt::ImportInt(static_cast<typename ModularInt::Int>(1)
+                                << serialized.log_decomposition_modulus(),
+                            modulus_params));
+  RelinearizationKey output(serialized.log_decomposition_modulus(),
+                            decomposition_modulus, modulus_params, ntt_params);
+  output.dimension_ = dimension;
+  output.num_parts_ = serialized.num_parts();
+  output.prng_seed_ = serialized.prng_seed();
+  output.substitution_power_ = serialized.power_of_s();
+
+  // Create prng based on seed.
+  RLWE_ASSIGN_OR_RETURN(auto prng, SingleThreadPrng::Create(output.prng_seed_));
+
+  // Takes each polynomials_per_matrix chunk of serialized.c()'s and places them
+  // into a KeyPart.
+  for (int i = 0; i < (serialized.num_parts() - 1); i++) {
+    auto start = serialized.c().begin() + i * polynomials_per_matrix;
+    auto end = start + polynomials_per_matrix;
+    std::vector<SerializedNttPolynomial> chunk(start, end);
+    RLWE_ASSIGN_OR_RETURN(auto deserialized,
+                          RelinearizationKeyPart::Deserialize(
+                              chunk, serialized.log_decomposition_modulus(),
+                              prng.get(), modulus_params, ntt_params));
+    output.relinearization_key_.push_back(std::move(deserialized));
+  }
+
+  return output;
+}
+
+// Instantiations of RelinearizationKey with specific MontgomeryInt classes.
+// If any new types are added, montgomery.h should be updated accordingly (such
+// as ensuring BigInt is correctly specialized, etc.).
+template class RelinearizationKey<MontgomeryInt<Uint16>>;
+template class RelinearizationKey<MontgomeryInt<Uint32>>;
+template class RelinearizationKey<MontgomeryInt<Uint64>>;
+template class RelinearizationKey<MontgomeryInt<absl::uint128>>;
+
+}  //  namespace rlwe
diff --git a/third_party/shell-encryption/src/relinearization_key.h b/third_party/shell-encryption/src/relinearization_key.h
new file mode 100644
index 0000000..8da4dae
--- /dev/null
+++ b/third_party/shell-encryption/src/relinearization_key.h
@@ -0,0 +1,197 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RLWE_RELINEARIZATION_KEY_H_
+#define RLWE_RELINEARIZATION_KEY_H_
+
+#include <cstdint>
+#include <vector>
+
+#include "sample_error.h"
+#include "statusor.h"
+#include "symmetric_encryption.h"
+
+namespace rlwe {
+// Represents a RelinearizationKey constructed from a symmetric-key. Applying a
+// RelinearizationKey of order k to a ciphertext {m1}_s encrypting m1 with
+// k components produces a ciphertext {m1}_s with 2 components encrypted with
+// the same secret key s. This is one of two ways key-switching is used, the
+// other being GaloisKeys.
+//
+// RelinearizationKeys are constructed based on the secret key. Two
+// RelinearizationKeys that correspond to the same secret key, number of parts,
+// and use the same decomposition modulus will not necessarily be equal. This is
+// due to randomness that is sampled when the key is created. However, both will
+// relinearize a ciphertext. This randomness is generated from a PRNG with a
+// given prng_seed.
+//
+// This variant of key-switching is based on a decomposition modulo a general
+// modulus T. We restrict this decomposition modulus T to be a power of 2, and
+// log_2(T) generally ranges form 1 to log_2(q)/2. We treat T as a parameter to
+// be optimized for. The matrix W is the sum of two matrices: (1) the first is
+// the matrix A = [PowersofT(( s, ..., s^{k-1})) + t * e, 0], and (2) a matrix
+// R which is perpendicular to (1, s). Note that A consists of "encryptions" of
+// the PowersOfT (setting a = 0 in {as + et + m, -a}), and R basically consists
+// of encryptions of 0 under (1,s). The sum of these two matrices yields
+// essentially "encryptions" of the non-trivial powers of the length k secret
+// key (s, s^2, ..., s^{k-1}) under the length 2 secret key (1,s).
+//
+// Details can be found in Appendix D.2 of https://eprint.iacr.org/2011/566.pdf
+//
+// Only MontgomeryInt types (Uint16, Uint32, Uint64, absl::uint128) are
+// supported.
+
+// The RelinearizationKey, which holds a vector of RelinearizationKeyParts of
+// length (k - 1), where k is the number of parts of the ciphertext it applies
+// to.
+template <typename ModularInt>
+class RelinearizationKey {
+  using ModularIntParams = typename ModularInt::Params;
+
+ public:
+  // Initializes a RelinearizationKey based on a SymmetricRlweKey key that can
+  // relinearize ciphertexts with at most num_parts components.
+  // A positive log_decomposition_modulus corresponds to the decomposition
+  // modulus T. The prng_seed is used to generate and encode the random entries
+  // that form the bottom row of the matrix. For most RelinearizationKeys, the
+  // substitution_power is 1. This corresponds to the power of x in the secret
+  // key polynomial s(x^substitution_power) that the ciphertext is encrypted
+  // with. This power changes when substitutions of the form x->x^k (Galois
+  // automorphisms) have been applied to ciphertexts, yielding an encryption
+  // with (1, s^k). In that case, we would use a relinearization key with
+  // substition_power = k to return the ciphertext to be encrypted with (1,s).
+  // See GaloisKey for an explicit wrapper around RelinearizationKey.
+  static rlwe::StatusOr<RelinearizationKey> Create(
+      const SymmetricRlweKey<ModularInt>& key, absl::string_view prng_seed,
+      ssize_t num_parts, Uint64 log_decomposition_modulus,
+      Uint64 substitution_power = 1);
+
+  // Takes a SymmetricRlweCiphertext with at most num_parts components and
+  // returns a 2 component SymmetricRlweCiphertext encoding the same message.
+  // Returns an error when the number of components of ciphertext is larger than
+  // the number of parts of the RelineraizationKey.
+  rlwe::StatusOr<SymmetricRlweCiphertext<ModularInt>> ApplyTo(
+      const SymmetricRlweCiphertext<ModularInt>& ciphertext) const;
+
+  // Returns a SerializedRelinearizationKey containing a flattened
+  // representation of the SerializedNttPolynomials in the key, the
+  // log_decomposition_modulus, and the number of parts the key is comprised of.
+  rlwe::StatusOr<SerializedRelinearizationKey> Serialize() const;
+
+  // Requires that the number of NTT Polynomials in serialized is (num_parts) *
+  // (2 * dimension) where dimension is the number of digits needed to represent
+  // the modulus in base 2^{log_decomposition_modulus}. Crashes for non-valid
+  // input parameters.
+  static rlwe::StatusOr<RelinearizationKey> Deserialize(
+      const SerializedRelinearizationKey& serialized,
+      ModularIntParams* modulus_params,
+      const NttParameters<ModularInt>* ntt_params);
+
+  // Substitution Power accessor.
+  int SubstitutionPower() const { return substitution_power_; }
+
+ private:
+  // Represents part of the RelinearizationKey corresponding to a single
+  // component of the secret key.
+  class RelinearizationKeyPart {
+   public:
+    static rlwe::StatusOr<RelinearizationKeyPart> Create(
+        const Polynomial<ModularInt>& key_power,
+        const SymmetricRlweKey<ModularInt>& key,
+        const Uint64 log_decomposition_modulus,
+        const ModularInt& decomposition_modulus, int dimension,
+        SecurePrng* prng, SecurePrng* prng_encryption);
+
+    // For RelinearizationKeyPart i, this method takes the ith component of the
+    // ciphertext and params, and applies the RelinearizationKeyPart matrix to
+    // an expanded ciphertext component vector to produce a 2-component vector
+    // of polynomials.
+    rlwe::StatusOr<std::vector<Polynomial<ModularInt>>> ApplyPartTo(
+        const Polynomial<ModularInt>& ciphertext_part,
+        ModularIntParams* modulus_params,
+        const NttParameters<ModularInt>* ntt_params) const;
+
+    // Creates a RelinearizationKeyPart out of a vector of Polynomials.
+    static rlwe::StatusOr<RelinearizationKeyPart> Deserialize(
+        const std::vector<SerializedNttPolynomial>& polynomials,
+        Uint64 log_decomposition_modulus, SecurePrng* prng,
+        ModularIntParams* modulus_params,
+        const NttParameters<ModularInt>* ntt_params);
+
+    std::vector<Polynomial<ModularInt>> Matrix() const { return matrix_[0]; }
+
+   private:
+    RelinearizationKeyPart(
+        std::vector<std::vector<Polynomial<ModularInt>>> matrix,
+        Uint64 log_decomposition_modulus)
+        : matrix_(std::move(matrix)),
+          log_decomposition_modulus_(log_decomposition_modulus) {}
+
+    std::vector<std::vector<Polynomial<ModularInt>>> matrix_;
+
+    const Uint64 log_decomposition_modulus_;
+  };
+
+  // Creates an empty RelinearizationKey.
+  RelinearizationKey(Uint64 log_decomposition_modulus,
+                     const ModularInt& decomposition_modulus,
+                     ModularIntParams* params,
+                     const NttParameters<ModularInt>* ntt_params)
+      : log_decomposition_modulus_(log_decomposition_modulus),
+        decomposition_modulus_(decomposition_modulus),
+        substitution_power_(1),
+        modulus_params_(params),
+        ntt_params_(ntt_params) {}
+
+  RelinearizationKey(const SymmetricRlweKey<ModularInt>& key,
+                     absl::string_view prng_seed, ssize_t num_parts,
+                     Uint64 log_decomposition_modulus,
+                     Uint64 substitution_power,
+                     ModularInt decomposition_modulus,
+                     std::vector<RelinearizationKeyPart> relinearization_key);
+
+  // Dimension of the relinearization key matrix.
+  int dimension_;
+
+  // Number of parts the key corresponds to.
+  int num_parts_;
+
+  const Uint64 log_decomposition_modulus_;
+
+  ModularInt decomposition_modulus_;
+
+  // Substitution power.
+  int substitution_power_;
+
+  // Modulus parameters. Does not take ownership.
+  ModularIntParams* modulus_params_;
+
+  // NTT parameters. Does not take ownership.
+  const NttParameters<ModularInt>* ntt_params_;
+
+  // The key-switching matrix. Each component in the vector is a
+  // RelinearizationKeyPart: a 2 by dimension_ matrix corresponding to a single
+  // power of the key. In this way, a RelinearizationKey for a length k
+  // ciphertext can be used to transform ciphertext with any number of parts up
+  // to k by only using items 0 to k-1 of the relinearization_key_.
+  std::vector<RelinearizationKeyPart> relinearization_key_;
+
+  // Prng seed
+  std::string prng_seed_;
+};
+
+}  // namespace rlwe
+
+#endif  // RLWE_RELINEARIZATION_KEY_H_
diff --git a/third_party/shell-encryption/src/relinearization_key_test.cc b/third_party/shell-encryption/src/relinearization_key_test.cc
new file mode 100644
index 0000000..6b0fe64a
--- /dev/null
+++ b/third_party/shell-encryption/src/relinearization_key_test.cc
@@ -0,0 +1,618 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "relinearization_key.h"
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "constants.h"
+#include "montgomery.h"
+#include "ntt_parameters.h"
+#include "polynomial.h"
+#include "prng/integral_prng_types.h"
+#include "status_macros.h"
+#include "symmetric_encryption.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+#include "testing/testing_prng.h"
+
+namespace {
+
+unsigned int seed = 1;
+
+// Useful typedefs.
+using uint_m = rlwe::MontgomeryInt<absl::uint128>;
+using Polynomial = rlwe::Polynomial<uint_m>;
+using Ciphertext = rlwe::SymmetricRlweCiphertext<uint_m>;
+using Key = rlwe::SymmetricRlweKey<uint_m>;
+using RelinearizationKey = rlwe::RelinearizationKey<uint_m>;
+using ErrorParams = rlwe::ErrorParams<uint_m>;
+
+// Set constants.
+const ssize_t kLogPlaintextModulus = 1;
+const ssize_t kPlaintextModulus = (1 << kLogPlaintextModulus) + 1;
+const ssize_t kDefaultVariance = 4;
+const ssize_t kCoeffs = rlwe::kNewhopeDegreeBound;
+const ssize_t kLogCoeffs = rlwe::kNewhopeLogDegreeBound;
+const ssize_t kSmallLogDecompositionModulus = 2;
+const ssize_t kLargeLogDecompositionModulus = 20;
+
+using ::rlwe::testing::StatusIs;
+using ::testing::HasSubstr;
+
+// Test fixture.
+class RelinearizationKeyTest : public ::testing::Test {
+ protected:
+  void SetUp() override {
+    ASSERT_OK_AND_ASSIGN(params14_,
+                         uint_m::Params::Create(rlwe::kNewhopeModulus));
+    ASSERT_OK_AND_ASSIGN(params80_, uint_m::Params::Create(rlwe::kModulus80));
+    ASSERT_OK_AND_ASSIGN(ntt_params_, rlwe::InitializeNttParameters<uint_m>(
+                                          kLogCoeffs, params14_.get()));
+    ASSERT_OK_AND_ASSIGN(ntt_params80_, rlwe::InitializeNttParameters<uint_m>(
+                                            kLogCoeffs, params80_.get()));
+    ASSERT_OK_AND_ASSIGN(auto temp_error_params,
+                         rlwe::ErrorParams<uint_m>::Create(
+                             kLogPlaintextModulus, kDefaultVariance,
+                             params14_.get(), &ntt_params_));
+    error_params_ = absl::make_unique<ErrorParams>(temp_error_params);
+    ASSERT_OK_AND_ASSIGN(auto temp_error_params80,
+                         rlwe::ErrorParams<uint_m>::Create(
+                             kLogPlaintextModulus, kDefaultVariance,
+                             params80_.get(), &ntt_params80_));
+    error_params80_ = absl::make_unique<ErrorParams>(temp_error_params80);
+  }
+
+  // Convert a vector of integers to a vector of montgomery integers.
+  rlwe::StatusOr<std::vector<uint_m>> ConvertToMontgomery(
+      const std::vector<uint_m::Int>& coeffs, uint_m::Params* params) {
+    std::vector<uint_m> output(coeffs.size(), uint_m::ImportZero(params));
+    for (unsigned int i = 0; i < output.size(); i++) {
+      RLWE_ASSIGN_OR_RETURN(output[i], uint_m::ImportInt(coeffs[i], params));
+    }
+    return output;
+  }
+
+  // Sample a random key.
+  rlwe::StatusOr<Key> SampleKey(rlwe::Uint64 variance = kDefaultVariance,
+                                rlwe::Uint64 log_t = kLogPlaintextModulus) {
+    RLWE_ASSIGN_OR_RETURN(std::string prng_seed,
+                          rlwe::SingleThreadPrng::GenerateSeed());
+    RLWE_ASSIGN_OR_RETURN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    return Key::Sample(kLogCoeffs, variance, log_t, params14_.get(),
+                       &ntt_params_, prng.get());
+  }
+
+  // Sample a random plaintext.
+  std::vector<uint_m::Int> SamplePlaintext(uint_m::Int t = kPlaintextModulus,
+                                           rlwe::Uint64 coeffs = kCoeffs) {
+    std::vector<uint_m::Int> plaintext(kCoeffs);
+    for (unsigned int i = 0; i < kCoeffs; i++) {
+      plaintext[i] = rand_r(&seed) % t;
+    }
+    return plaintext;
+  }
+
+  // Encrypt a plaintext.
+  rlwe::StatusOr<Ciphertext> Encrypt(
+      const Key& key, const std::vector<uint_m::Int>& plaintext,
+      uint_m::Params* params, const rlwe::NttParameters<uint_m>& ntt_params,
+      const ErrorParams* error_params) {
+    RLWE_ASSIGN_OR_RETURN(auto m_plaintext,
+                          ConvertToMontgomery(plaintext, params));
+    auto plaintext_ntt =
+        Polynomial::ConvertToNtt(m_plaintext, ntt_params, params);
+    RLWE_ASSIGN_OR_RETURN(std::string prng_seed,
+                          rlwe::SingleThreadPrng::GenerateSeed());
+    RLWE_ASSIGN_OR_RETURN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    return rlwe::Encrypt<uint_m>(key, plaintext_ntt, error_params, prng.get());
+  }
+
+  std::unique_ptr<uint_m::Params> params14_;
+  std::unique_ptr<uint_m::Params> params80_;
+  rlwe::NttParameters<uint_m> ntt_params_;
+  rlwe::NttParameters<uint_m> ntt_params80_;
+  std::unique_ptr<ErrorParams> error_params_;
+  std::unique_ptr<ErrorParams> error_params80_;
+};
+
+TEST_F(RelinearizationKeyTest, RelinearizationKeyReducesSizeOfCiphertext) {
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(
+      auto relinearization_key,
+      rlwe::RelinearizationKey<uint_m>::Create(key, prng_seed, /*num_parts=*/3,
+                                               kSmallLogDecompositionModulus));
+
+  // Create the initial plaintexts.
+  std::vector<uint_m::Int> plaintext1 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp1,
+                       ConvertToMontgomery(plaintext1, params14_.get()));
+  Polynomial plaintext1_ntt =
+      Polynomial::ConvertToNtt(mp1, ntt_params_, params14_.get());
+
+  std::vector<uint_m::Int> plaintext2 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp2,
+                       ConvertToMontgomery(plaintext2, params14_.get()));
+  Polynomial plaintext2_ntt =
+      Polynomial::ConvertToNtt(mp2, ntt_params_, params14_.get());
+
+  // Encrypt, multiply, apply the relinearization key and decrypt.
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1,
+                       Encrypt(key, plaintext1, params14_.get(), ntt_params_,
+                               error_params_.get()));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2,
+                       Encrypt(key, plaintext2, params14_.get(), ntt_params_,
+                               error_params_.get()));
+  ASSERT_OK_AND_ASSIGN(auto product, ciphertext1* ciphertext2);
+  ASSERT_OK_AND_ASSIGN(auto relinearized_product,
+                       relinearization_key.ApplyTo(product));
+
+  EXPECT_EQ(product.Len(), 3);
+  EXPECT_EQ(relinearized_product.Len(), 2);
+}
+
+TEST_F(RelinearizationKeyTest, RelinearizeKey3PartsDecrypts) {
+  ASSERT_OK_AND_ASSIGN(std::string key_prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+  ASSERT_OK_AND_ASSIGN(auto key_prng,
+                       rlwe::SingleThreadPrng::Create(key_prng_seed));
+  ASSERT_OK_AND_ASSIGN(
+      auto key, Key::Sample(kLogCoeffs, kDefaultVariance, kLogPlaintextModulus,
+                            params80_.get(), &ntt_params80_, key_prng.get()));
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(
+      auto relinearization_key,
+      rlwe::RelinearizationKey<uint_m>::Create(key, prng_seed, /*num_parts=*/3,
+                                               kSmallLogDecompositionModulus));
+
+  // Create the initial plaintexts.
+  std::vector<uint_m::Int> plaintext1 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp1,
+                       ConvertToMontgomery(plaintext1, params80_.get()));
+  Polynomial plaintext1_ntt =
+      Polynomial::ConvertToNtt(mp1, ntt_params80_, params80_.get());
+
+  std::vector<uint_m::Int> plaintext2 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp2,
+                       ConvertToMontgomery(plaintext2, params80_.get()));
+  Polynomial plaintext2_ntt =
+      Polynomial::ConvertToNtt(mp2, ntt_params80_, params80_.get());
+
+  // Encrypt, multiply, apply the relinearization key and decrypt.
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1,
+                       Encrypt(key, plaintext1, params80_.get(), ntt_params80_,
+                               error_params80_.get()));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2,
+                       Encrypt(key, plaintext2, params80_.get(), ntt_params80_,
+                               error_params80_.get()));
+  ASSERT_OK_AND_ASSIGN(auto product, ciphertext1* ciphertext2);
+  ASSERT_OK_AND_ASSIGN(auto relinearized_product,
+                       relinearization_key.ApplyTo(product));
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, relinearized_product));
+
+  // Create the polynomial we expect.
+  ASSERT_OK(plaintext1_ntt.MulInPlace(plaintext2_ntt, params80_.get()));
+  std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+      plaintext1_ntt.InverseNtt(ntt_params80_, params80_.get()),
+      params80_->modulus, kPlaintextModulus, params80_.get());
+
+  EXPECT_EQ(decrypted, expected);
+}
+
+TEST_F(RelinearizationKeyTest, RelinearizeKey4PartsDecrypts) {
+  ASSERT_OK_AND_ASSIGN(std::string key_prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+  ASSERT_OK_AND_ASSIGN(auto key_prng,
+                       rlwe::SingleThreadPrng::Create(key_prng_seed));
+  ASSERT_OK_AND_ASSIGN(
+      auto key, Key::Sample(kLogCoeffs, kDefaultVariance, kLogPlaintextModulus,
+                            params80_.get(), &ntt_params80_, key_prng.get()));
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(
+      auto relinearization_key,
+      rlwe::RelinearizationKey<uint_m>::Create(key, prng_seed, /*num_parts=*/4,
+                                               kLargeLogDecompositionModulus));
+
+  // Create the initial plaintexts.
+  std::vector<uint_m::Int> plaintext1 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp1,
+                       ConvertToMontgomery(plaintext1, params80_.get()));
+  Polynomial plaintext1_ntt =
+      Polynomial::ConvertToNtt(mp1, ntt_params80_, params80_.get());
+
+  std::vector<uint_m::Int> plaintext2 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp2,
+                       ConvertToMontgomery(plaintext2, params80_.get()));
+  Polynomial plaintext2_ntt =
+      Polynomial::ConvertToNtt(mp2, ntt_params80_, params80_.get());
+
+  std::vector<uint_m::Int> plaintext3 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp3,
+                       ConvertToMontgomery(plaintext3, params80_.get()));
+  Polynomial plaintext3_ntt =
+      Polynomial::ConvertToNtt(mp3, ntt_params80_, params80_.get());
+
+  // Relinearize a 4 component ciphertext produced from three multiplications.
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1,
+                       Encrypt(key, plaintext1, params80_.get(), ntt_params80_,
+                               error_params80_.get()));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2,
+                       Encrypt(key, plaintext2, params80_.get(), ntt_params80_,
+                               error_params80_.get()));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext3,
+                       Encrypt(key, plaintext3, params80_.get(), ntt_params80_,
+                               error_params80_.get()));
+  ASSERT_OK_AND_ASSIGN(auto intermediate, ciphertext1* ciphertext2);
+  ASSERT_OK_AND_ASSIGN(auto product, intermediate* ciphertext3);
+  ASSERT_OK_AND_ASSIGN(auto relinearized_product,
+                       relinearization_key.ApplyTo(product));
+
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, relinearized_product));
+
+  // Create the polynomial we expect.
+  ASSERT_OK(plaintext1_ntt.MulInPlace(plaintext2_ntt, params80_.get()));
+  ASSERT_OK(plaintext1_ntt.MulInPlace(plaintext3_ntt, params80_.get()));
+  std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+      plaintext1_ntt.InverseNtt(ntt_params80_, params80_.get()),
+      params80_->modulus, kPlaintextModulus, params80_.get());
+
+  EXPECT_EQ(decrypted, expected);
+}
+
+TEST_F(RelinearizationKeyTest, RelinearizeKeyLargeModulusDecrypts) {
+  ASSERT_OK_AND_ASSIGN(std::string key_prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+  ASSERT_OK_AND_ASSIGN(auto key_prng,
+                       rlwe::SingleThreadPrng::Create(key_prng_seed));
+  ASSERT_OK_AND_ASSIGN(
+      auto key, Key::Sample(kLogCoeffs, kDefaultVariance, kLogPlaintextModulus,
+                            params80_.get(), &ntt_params80_, key_prng.get()));
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(
+      auto relinearization_key,
+      rlwe::RelinearizationKey<uint_m>::Create(key, prng_seed, /*num_parts=*/3,
+                                               kLargeLogDecompositionModulus));
+
+  // Create the initial plaintexts.
+  std::vector<uint_m::Int> plaintext1 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp1,
+                       ConvertToMontgomery(plaintext1, params80_.get()));
+  Polynomial plaintext1_ntt =
+      Polynomial::ConvertToNtt(mp1, ntt_params80_, params80_.get());
+
+  std::vector<uint_m::Int> plaintext2 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp2,
+                       ConvertToMontgomery(plaintext2, params80_.get()));
+  Polynomial plaintext2_ntt =
+      Polynomial::ConvertToNtt(mp2, ntt_params80_, params80_.get());
+
+  // Multiply, apply the relinearization key, multiply, relinearize and decrypt.
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1,
+                       Encrypt(key, plaintext1, params80_.get(), ntt_params80_,
+                               error_params80_.get()));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2,
+                       Encrypt(key, plaintext2, params80_.get(), ntt_params80_,
+                               error_params80_.get()));
+  ASSERT_OK_AND_ASSIGN(auto product, ciphertext1* ciphertext2);
+  ASSERT_OK_AND_ASSIGN(auto relinearized_product,
+                       relinearization_key.ApplyTo(product));
+
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, relinearized_product));
+
+  // Create the polynomial we expect.
+  ASSERT_OK(plaintext1_ntt.MulInPlace(plaintext2_ntt, params80_.get()));
+  std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+      plaintext1_ntt.InverseNtt(ntt_params80_, params80_.get()),
+      params80_->modulus, kPlaintextModulus, params80_.get());
+
+  EXPECT_EQ(decrypted, expected);
+}
+
+TEST_F(RelinearizationKeyTest, RepeatedRelinearizationDecrypts) {
+  ASSERT_OK_AND_ASSIGN(std::string key_prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+  ASSERT_OK_AND_ASSIGN(auto key_prng,
+                       rlwe::SingleThreadPrng::Create(key_prng_seed));
+  ASSERT_OK_AND_ASSIGN(
+      auto key, Key::Sample(kLogCoeffs, kDefaultVariance, kLogPlaintextModulus,
+                            params80_.get(), &ntt_params80_, key_prng.get()));
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(
+      auto relinearization_key,
+      rlwe::RelinearizationKey<uint_m>::Create(key, prng_seed, /*num_parts=*/3,
+                                               kLargeLogDecompositionModulus));
+
+  // Create the initial plaintexts.
+  std::vector<uint_m::Int> plaintext1 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp1,
+                       ConvertToMontgomery(plaintext1, params80_.get()));
+  Polynomial plaintext1_ntt =
+      Polynomial::ConvertToNtt(mp1, ntt_params80_, params80_.get());
+
+  std::vector<uint_m::Int> plaintext2 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp2,
+                       ConvertToMontgomery(plaintext2, params80_.get()));
+  Polynomial plaintext2_ntt =
+      Polynomial::ConvertToNtt(mp2, ntt_params80_, params80_.get());
+
+  std::vector<uint_m::Int> plaintext3 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp3,
+                       ConvertToMontgomery(plaintext3, params80_.get()));
+  Polynomial plaintext3_ntt =
+      Polynomial::ConvertToNtt(mp3, ntt_params80_, params80_.get());
+
+  // Multiply, apply the relinearization key, multiply, relinearize and decrypt.
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1,
+                       Encrypt(key, plaintext1, params80_.get(), ntt_params80_,
+                               error_params80_.get()));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2,
+                       Encrypt(key, plaintext2, params80_.get(), ntt_params80_,
+                               error_params80_.get()));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext3,
+                       Encrypt(key, plaintext3, params80_.get(), ntt_params80_,
+                               error_params80_.get()));
+  ASSERT_OK_AND_ASSIGN(auto product1, ciphertext1* ciphertext2);
+  ASSERT_OK_AND_ASSIGN(auto relinearized_product1,
+                       relinearization_key.ApplyTo(product1));
+  ASSERT_OK_AND_ASSIGN(auto product2, relinearized_product1* ciphertext3);
+  ASSERT_OK_AND_ASSIGN(auto relinearized_product2,
+                       relinearization_key.ApplyTo(product2));
+
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, relinearized_product2));
+
+  // Create the polynomial we expect.
+  ASSERT_OK(plaintext1_ntt.MulInPlace(plaintext2_ntt, params80_.get()));
+  ASSERT_OK(plaintext1_ntt.MulInPlace(plaintext3_ntt, params80_.get()));
+  std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+      plaintext1_ntt.InverseNtt(ntt_params80_, params80_.get()),
+      params80_->modulus, kPlaintextModulus, params80_.get());
+
+  EXPECT_EQ(decrypted, expected);
+}
+
+TEST_F(RelinearizationKeyTest, CiphertextWithTooManyComponents) {
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  // RelinearizationKey has length 2.
+  ASSERT_OK_AND_ASSIGN(
+      auto relinearization_key,
+      rlwe::RelinearizationKey<uint_m>::Create(key, prng_seed, /*num_parts=*/2,
+                                               kSmallLogDecompositionModulus));
+
+  // Create the initial plaintexts.
+  std::vector<uint_m::Int> plaintext1 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp1,
+                       ConvertToMontgomery(plaintext1, params14_.get()));
+  Polynomial plaintext1_ntt =
+      Polynomial::ConvertToNtt(mp1, ntt_params_, params14_.get());
+
+  std::vector<uint_m::Int> plaintext2 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp2,
+                       ConvertToMontgomery(plaintext2, params14_.get()));
+  Polynomial plaintext2_ntt =
+      Polynomial::ConvertToNtt(mp2, ntt_params_, params14_.get());
+
+  // Encrypt, multiply, apply the relinearization key.
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1,
+                       Encrypt(key, plaintext1, params14_.get(), ntt_params_,
+                               error_params_.get()));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2,
+                       Encrypt(key, plaintext2, params14_.get(), ntt_params_,
+                               error_params_.get()));
+  ASSERT_OK_AND_ASSIGN(auto product, ciphertext1* ciphertext2);
+  EXPECT_THAT(relinearization_key.ApplyTo(product),
+              StatusIs(absl::StatusCode::kInvalidArgument,
+                       HasSubstr("RelinearizationKey not large enough")));
+}
+
+TEST_F(RelinearizationKeyTest, LogDecompositionModulusOutOfBounds) {
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  // RelinearizationKey has length 2.
+  EXPECT_THAT(
+      rlwe::RelinearizationKey<uint_m>::Create(
+          key, prng_seed, /*num_parts=*/2,
+          /*log_decomposition_modulus=*/key.ModulusParams()->log_modulus + 1),
+      StatusIs(absl::StatusCode::kInvalidArgument,
+               HasSubstr(absl::StrCat(
+                   "Log decomposition modulus, ",
+                   key.ModulusParams()->log_modulus + 1, ", ",
+                   "must be at most: ", key.ModulusParams()->log_modulus))));
+
+  int log_decomposition_modulus = 0;
+  EXPECT_THAT(rlwe::RelinearizationKey<uint_m>::Create(
+                  key, prng_seed, /*num_parts=*/3, log_decomposition_modulus),
+              StatusIs(absl::StatusCode::kInvalidArgument,
+                       HasSubstr(absl::StrCat("Log decomposition modulus, ",
+                                              log_decomposition_modulus,
+                                              ", must be positive."))));
+}
+
+TEST_F(RelinearizationKeyTest, NumPartsMustBePositive) {
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  EXPECT_THAT(
+      rlwe::RelinearizationKey<uint_m>::Create(key, prng_seed, /*num_parts=*/-1,
+                                               kSmallLogDecompositionModulus),
+      StatusIs(absl::StatusCode::kInvalidArgument,
+               HasSubstr("Num parts: -1 must be positive.")));
+}
+
+TEST_F(RelinearizationKeyTest, InvalidDeserialize) {
+  ASSERT_OK_AND_ASSIGN(std::string key_prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+  ASSERT_OK_AND_ASSIGN(auto key_prng,
+                       rlwe::SingleThreadPrng::Create(key_prng_seed));
+  ASSERT_OK_AND_ASSIGN(
+      auto key, Key::Sample(kLogCoeffs, kDefaultVariance, kLogPlaintextModulus,
+                            params80_.get(), &ntt_params80_, key_prng.get()));
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(
+      auto relinearization_key,
+      rlwe::RelinearizationKey<uint_m>::Create(key, prng_seed, /*num_parts=*/3,
+                                               kLargeLogDecompositionModulus));
+  // Serialize and deserialize.
+  ASSERT_OK_AND_ASSIGN(rlwe::SerializedRelinearizationKey serialized,
+                       relinearization_key.Serialize());
+  for (int i = -1; i <= 1; i++) {
+    serialized.set_num_parts(i);
+    EXPECT_THAT(RelinearizationKey::Deserialize(serialized, params80_.get(),
+                                                &ntt_params80_),
+                StatusIs(absl::StatusCode::kInvalidArgument,
+                         HasSubstr(absl::StrCat(
+                             "The number of parts, ", serialized.num_parts(),
+                             ", must be greater than one."))));
+  }
+  ASSERT_GT(serialized.c_size(), 2);
+  serialized.set_num_parts(serialized.c_size() - 1);
+  EXPECT_THAT(
+      RelinearizationKey::Deserialize(serialized, params80_.get(),
+                                      &ntt_params80_),
+      StatusIs(absl::StatusCode::kInvalidArgument,
+               HasSubstr(absl::StrCat(
+                   "The length of serialized, ", serialized.c_size(), ", ",
+                   "must be divisible by the number of parts minus one ",
+                   serialized.num_parts() - 1, "."))));
+  ASSERT_EQ(serialized.c_size(),
+            /* log2(kModulus80) / kLargeLogDecompositionModulus = */ 8);
+  serialized.set_num_parts(serialized.c_size() + 1);
+  EXPECT_THAT(RelinearizationKey::Deserialize(serialized, params80_.get(),
+                                              &ntt_params80_),
+              StatusIs(absl::StatusCode::kInvalidArgument,
+                       HasSubstr(absl::StrCat(
+                           "Number of NTT Polynomials does not match expected ",
+                           "number of matrix entries."))));
+}
+
+TEST_F(RelinearizationKeyTest, SerializeKey) {
+  ASSERT_OK_AND_ASSIGN(std::string key_prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+  ASSERT_OK_AND_ASSIGN(auto key_prng,
+                       rlwe::SingleThreadPrng::Create(key_prng_seed));
+  ASSERT_OK_AND_ASSIGN(
+      auto key, Key::Sample(kLogCoeffs, kDefaultVariance, kLogPlaintextModulus,
+                            params80_.get(), &ntt_params80_, key_prng.get()));
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(
+      auto relinearization_key,
+      rlwe::RelinearizationKey<uint_m>::Create(key, prng_seed, /*num_parts=*/3,
+                                               kLargeLogDecompositionModulus));
+
+  // Serialize and deserialize.
+  ASSERT_OK_AND_ASSIGN(rlwe::SerializedRelinearizationKey serialized,
+                       relinearization_key.Serialize());
+  ASSERT_OK_AND_ASSIGN(auto deserialized,
+                       RelinearizationKey::Deserialize(
+                           serialized, params80_.get(), &ntt_params80_));
+
+  // Create the initial plaintexts.
+  std::vector<uint_m::Int> plaintext1 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp1,
+                       ConvertToMontgomery(plaintext1, params80_.get()));
+  Polynomial plaintext1_ntt =
+      Polynomial::ConvertToNtt(mp1, ntt_params80_, params80_.get());
+
+  std::vector<uint_m::Int> plaintext2 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp2,
+                       ConvertToMontgomery(plaintext2, params80_.get()));
+  Polynomial plaintext2_ntt =
+      Polynomial::ConvertToNtt(mp2, ntt_params80_, params80_.get());
+
+  // Encrypt, multiply, apply the relinearization key and decrypt.
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1,
+                       Encrypt(key, plaintext1, params80_.get(), ntt_params80_,
+                               error_params80_.get()));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2,
+                       Encrypt(key, plaintext2, params80_.get(), ntt_params80_,
+                               error_params80_.get()));
+  ASSERT_OK_AND_ASSIGN(auto product, ciphertext1* ciphertext2);
+  ASSERT_OK_AND_ASSIGN(auto relinearized_product,
+                       deserialized.ApplyTo(product));
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, relinearized_product));
+
+  // Create the polynomial we expect.
+  ASSERT_OK(plaintext1_ntt.MulInPlace(plaintext2_ntt, params80_.get()));
+  std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+      plaintext1_ntt.InverseNtt(ntt_params80_, params80_.get()),
+      params80_->modulus, kPlaintextModulus, params80_.get());
+
+  EXPECT_EQ(decrypted, expected);
+}
+
+TEST_F(RelinearizationKeyTest, RelinearizationKeyIncreasesError) {
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+
+  ASSERT_OK_AND_ASSIGN(
+      auto relinearization_key,
+      rlwe::RelinearizationKey<uint_m>::Create(key, prng_seed, /*num_parts=*/3,
+                                               kSmallLogDecompositionModulus));
+
+  // Create the initial plaintexts.
+  std::vector<uint_m::Int> plaintext1 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp1,
+                       ConvertToMontgomery(plaintext1, params14_.get()));
+  Polynomial plaintext1_ntt =
+      Polynomial::ConvertToNtt(mp1, ntt_params_, params14_.get());
+
+  std::vector<uint_m::Int> plaintext2 = SamplePlaintext(kPlaintextModulus);
+  ASSERT_OK_AND_ASSIGN(auto mp2,
+                       ConvertToMontgomery(plaintext2, params14_.get()));
+  Polynomial plaintext2_ntt =
+      Polynomial::ConvertToNtt(mp2, ntt_params_, params14_.get());
+
+  // Encrypt, multiply, apply the relinearization key and decrypt.
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1,
+                       Encrypt(key, plaintext1, params14_.get(), ntt_params_,
+                               error_params_.get()));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2,
+                       Encrypt(key, plaintext2, params14_.get(), ntt_params_,
+                               error_params_.get()));
+  ASSERT_OK_AND_ASSIGN(auto product, ciphertext1* ciphertext2);
+  ASSERT_OK_AND_ASSIGN(auto relinearized_product,
+                       relinearization_key.ApplyTo(product));
+
+  // Expect that the error grows after relinearization.
+  EXPECT_GT(relinearized_product.Error(), product.Error());
+}
+
+}  // namespace
diff --git a/third_party/shell-encryption/src/sample_error.h b/third_party/shell-encryption/src/sample_error.h
new file mode 100644
index 0000000..a769ee61
--- /dev/null
+++ b/third_party/shell-encryption/src/sample_error.h
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2019 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RLWE_SAMPLE_ERROR_H_
+#define RLWE_SAMPLE_ERROR_H_
+
+#include <cstdint>
+#include <vector>
+
+#include "absl/strings/str_cat.h"
+#include "bits_util.h"
+#include "constants.h"
+#include "error_params.h"
+#include "prng/prng.h"
+#include "status_macros.h"
+#include "statusor.h"
+
+namespace rlwe {
+
+// Samples a vector of coefficients from the centered binomial distribution
+// with the specified variance. The RLWE proofs rely on
+// sampling keys and error values from a discrete Gaussian distribution, but
+// the NewHope paper [1] indicates that a centered binomial distribution is
+// indistinguishable and is far more efficient, without being susceptible to
+// timing attacks.
+//
+// [1] "Post-quantum key exchange -- a new hope", Erdem Alkim, Leo Ducas, Thomas
+// Poppelmann, Peter Schwabe, USENIX Security Sumposium.
+//
+// All values sampled are multiplied by scalar.
+template <typename ModularInt>
+static rlwe::StatusOr<std::vector<ModularInt>> SampleFromErrorDistribution(
+    unsigned int num_coeffs, Uint64 variance, SecurePrng* prng,
+    typename ModularInt::Params* modulus_params) {
+  if (variance > kMaxVariance) {
+    return absl::InvalidArgumentError(absl::StrCat(
+        "The variance, ", variance, ", must be at most ", kMaxVariance, "."));
+  }
+  auto zero = ModularInt::ImportZero(modulus_params);
+  std::vector<ModularInt> coeffs(num_coeffs, zero);
+
+  // Sample from the centered binomial distribution. To do so, we sample k pairs
+  // of bits (a, b), where k = 2 * variance. The sample of the binomial
+  // distribution is the sum of the differences between each pair of bits.
+
+  // This is implemented by splitting k in words k', drawing 2*k' bits, and
+  // computing the difference of Hamming weight between the first k' bits and
+  // the last k' bits, where
+  Uint64 k;
+  Uint64 coefficient_positive, coefficient_negative;
+
+  for (int i = 0; i < num_coeffs; i++) {
+    coefficient_positive = 0;
+    coefficient_negative = 0;
+    k = variance << 1;
+
+    while (k > 0) {
+      if (k >= 64) {
+        // Use all the bits
+        RLWE_ASSIGN_OR_RETURN(auto r64, prng->Rand64());
+        coefficient_positive += rlwe::internal::CountOnes64(r64);
+        RLWE_ASSIGN_OR_RETURN(r64, prng->Rand64());
+        coefficient_negative += rlwe::internal::CountOnes64(r64);
+        k -= 64;
+      } else if (k > 8) {
+        Uint64 mask = (1ULL << k) - 1;
+        RLWE_ASSIGN_OR_RETURN(auto r64, prng->Rand64());
+        coefficient_positive += rlwe::internal::CountOnes64(r64 & mask);
+        RLWE_ASSIGN_OR_RETURN(r64, prng->Rand64());
+        coefficient_negative += rlwe::internal::CountOnes64(r64 & mask);
+        k = 0;
+      } else {
+        Uint8 mask = (1 << k) - 1;
+        RLWE_ASSIGN_OR_RETURN(auto r8, prng->Rand8());
+        coefficient_positive += rlwe::internal::CountOnesInByte(r8 & mask);
+        RLWE_ASSIGN_OR_RETURN(r8, prng->Rand8());
+        coefficient_negative += rlwe::internal::CountOnesInByte(r8 & mask);
+        k = 0;
+      }
+    }
+
+    RLWE_ASSIGN_OR_RETURN(
+        coeffs[i], ModularInt::ImportInt(coefficient_positive, modulus_params));
+    RLWE_ASSIGN_OR_RETURN(
+        auto v, ModularInt::ImportInt(coefficient_negative, modulus_params));
+    coeffs[i].SubInPlace(v, modulus_params);
+  }
+
+  return coeffs;
+}
+
+}  // namespace rlwe
+
+#endif  // RLWE_SAMPLE_ERROR_H_
diff --git a/third_party/shell-encryption/src/sample_error_test.cc b/third_party/shell-encryption/src/sample_error_test.cc
new file mode 100644
index 0000000..3ffab8c
--- /dev/null
+++ b/third_party/shell-encryption/src/sample_error_test.cc
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "sample_error.h"
+
+#include <cstdint>
+#include <vector>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "constants.h"
+#include "montgomery.h"
+#include "symmetric_encryption.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+#include "testing/testing_prng.h"
+
+namespace {
+
+using ::rlwe::testing::StatusIs;
+using ::testing::HasSubstr;
+
+using uint_m = rlwe::MontgomeryInt<rlwe::Uint16>;
+
+const int kTestingRounds = 100;
+const int num_coeffs = 1000;
+const std::vector<rlwe::Uint64> variances = {8, 15, 29, 50};
+
+TEST(UtilsTest, CheckUpperBoundOnNoise) {
+  auto prng = absl::make_unique<rlwe::testing::TestingPrng>(0);
+  ASSERT_OK_AND_ASSIGN(auto modulus_params,
+                       uint_m::Params::Create(rlwe::kNewhopeModulus));
+
+  for (auto variance : variances) {
+    for (int i = 0; i < kTestingRounds; i++) {
+      ASSERT_OK_AND_ASSIGN(
+          std::vector<uint_m> error,
+          rlwe::SampleFromErrorDistribution<uint_m>(
+              num_coeffs, variance, prng.get(), modulus_params.get()));
+      // Check that each coefficient is in [-2*variance, 2*variance]
+      for (int j = 0; j < num_coeffs; j++) {
+        int reduced = error[j].ExportInt(modulus_params.get());
+        if (reduced > (modulus_params->modulus >> 1)) {
+          reduced = reduced - modulus_params->modulus;
+        }
+        EXPECT_LT(abs(reduced), 2 * variance + 1);
+      }
+    }
+  }
+}
+
+TEST(UtilsTest, FailOnTooLargeVariance) {
+  auto prng = absl::make_unique<rlwe::testing::TestingPrng>(0);
+  ASSERT_OK_AND_ASSIGN(auto modulus_params,
+                       uint_m::Params::Create(rlwe::kNewhopeModulus));
+  rlwe::Uint64 variance = rlwe::kMaxVariance + 1;
+  EXPECT_THAT(rlwe::SampleFromErrorDistribution<uint_m>(
+                  num_coeffs, variance, prng.get(), modulus_params.get()),
+              StatusIs(absl::StatusCode::kInvalidArgument,
+                       HasSubstr(absl::StrCat("The variance, ", variance,
+                                              ", must be at most ",
+                                              rlwe::kMaxVariance))));
+}
+
+}  // namespace
diff --git a/third_party/shell-encryption/src/serialization.proto b/third_party/shell-encryption/src/serialization.proto
new file mode 100644
index 0000000..6d02b74
--- /dev/null
+++ b/third_party/shell-encryption/src/serialization.proto
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2017 Google Inc.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+package rlwe;
+
+// NTT Polynomial
+message SerializedNttPolynomial {
+  // Coefficients of the polynomial
+  optional bytes coeffs = 1;
+
+  // Number of coefficients of the polynomial.
+  optional int32 num_coeffs = 2;
+}
+
+// RLWE Ciphertext
+message SerializedSymmetricRlweCiphertext {
+  // Polynomials composing the ciphertext
+  repeated SerializedNttPolynomial c = 1;
+
+  // The power of the secret key that the ciphertext is encrypted with.
+  optional int32 power_of_s = 2;
+
+  // A heuristic on the amount of error in the ciphertext.
+  optional double error = 3;
+}
+
+// RLWE RelinearizationKey
+message SerializedRelinearizationKey {
+  // Polynomial composing the matrix
+  repeated SerializedNttPolynomial c = 1;
+
+  // The modulus used to decompose the coefficients of the polynomials. Ranges
+  // from 1 to the number of bits of the modulus.
+  optional int32 log_decomposition_modulus = 2;
+
+  // For n parts, the key can relinearize an n-component ciphertext to a
+  // 2-component ciphertext.
+  optional int32 num_parts = 3;
+
+  // Seed used to compress this key.
+  optional bytes prng_seed = 4;  // Required
+
+  // The power of s that corresponds to the key. The field is 1 if the key is
+  // RelinearizationKey.
+  optional int32 power_of_s = 5;
+}
+
+// RLWE GaloisKeys.
+message SerializedGaloisKey {
+  // The key-switching matrix
+  optional SerializedRelinearizationKey key = 1;
+}
diff --git a/third_party/shell-encryption/src/status_macros.h b/third_party/shell-encryption/src/status_macros.h
new file mode 100644
index 0000000..22f87d6
--- /dev/null
+++ b/third_party/shell-encryption/src/status_macros.h
@@ -0,0 +1,38 @@
+#ifndef RLWE_STATUS_MACROS_H_
+#define RLWE_STATUS_MACROS_H_
+
+#include "absl/status/status.h"
+#include "statusor.h"
+
+// Helper macro that checks if the right hand side (rexpression) evaluates to a
+// StatusOr with Status OK, and if so assigns the value to the value on the left
+// hand side (lhs), otherwise returns the error status. Example:
+//   RLWE_RLWE_ASSIGN_OR_RETURN(lhs, rexpression);
+#define RLWE_ASSIGN_OR_RETURN(lhs, rexpr) \
+  RLWE_ASSIGN_OR_RETURN_IMPL_(            \
+      RLWE_STATUS_MACROS_IMPL_CONCAT_(_status_or_value, __LINE__), lhs, rexpr)
+
+// Internal helper.
+#define RLWE_ASSIGN_OR_RETURN_IMPL_(statusor, lhs, rexpr) \
+  auto statusor = (rexpr);                                \
+  if (ABSL_PREDICT_FALSE(!statusor.ok())) {               \
+    return std::move(statusor).status();                  \
+  }                                                       \
+  lhs = std::move(statusor).ValueOrDie()
+
+// Internal helper for concatenating macro values.
+#define RLWE_STATUS_MACROS_IMPL_CONCAT_INNER_(x, y) x##y
+#define RLWE_STATUS_MACROS_IMPL_CONCAT_(x, y) \
+  RLWE_STATUS_MACROS_IMPL_CONCAT_INNER_(x, y)
+
+#define RLWE_RETURN_IF_ERROR(expr) \
+  RLWE_RETURN_IF_ERROR_IMPL_(      \
+      RLWE_STATUS_MACROS_IMPL_CONCAT_(_status, __LINE__), expr)
+
+#define RLWE_RETURN_IF_ERROR_IMPL_(status, expr) \
+  auto status = (expr);                          \
+  if (ABSL_PREDICT_FALSE(!status.ok())) {        \
+    return status;                               \
+  }
+
+#endif  // RLWE_STATUS_MACROS_H_
diff --git a/third_party/shell-encryption/src/status_macros_test.cc b/third_party/shell-encryption/src/status_macros_test.cc
new file mode 100644
index 0000000..62ec485
--- /dev/null
+++ b/third_party/shell-encryption/src/status_macros_test.cc
@@ -0,0 +1,37 @@
+#include "status_macros.h"
+
+#include <sstream>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "absl/status/status.h"
+#include "statusor.h"
+
+namespace rlwe {
+namespace {
+
+TEST(StatusMacrosTest, TestAssignOrReturn) {
+  StatusOr<StatusOr<int>> a(StatusOr<int>(2));
+  auto f = [&]() -> absl::Status {
+    RLWE_ASSIGN_OR_RETURN(StatusOr<int> status_or_a, a.ValueOrDie());
+    EXPECT_EQ(2, status_or_a.ValueOrDie());
+    return absl::OkStatus();
+  };
+  auto status = f();
+  EXPECT_TRUE(status.ok()) << status;
+}
+
+TEST(StatusMacrosTest, TestAssignOrReturnFails) {
+  auto a = []() -> StatusOr<int> { return absl::InternalError("error"); };
+  auto f = [&]() -> absl::Status {
+    RLWE_ASSIGN_OR_RETURN(auto result, a());
+    result++;
+    return absl::OkStatus();
+  };
+  auto status = f();
+  EXPECT_EQ(absl::StatusCode::kInternal, status.code());
+  EXPECT_EQ("error", status.message());
+}
+
+}  // namespace
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/statusor.cc b/third_party/shell-encryption/src/statusor.cc
new file mode 100644
index 0000000..016d00d
--- /dev/null
+++ b/third_party/shell-encryption/src/statusor.cc
@@ -0,0 +1,30 @@
+#include "statusor.h"
+
+#include "glog/logging.h"
+#include "absl/status/status.h"
+
+namespace rlwe {
+namespace internal {
+
+static const char* kInvalidStatusCtorArgMessage =
+    "Status::OK is not a valid constructor argument to StatusOr<T>";
+static const char* kNullObjectCtorArgMessage =
+    "NULL is not a valid constructor argument to StatusOr<T*>";
+
+absl::Status StatusOrHelper::HandleInvalidStatusCtorArg() {
+  LOG(DFATAL) << kInvalidStatusCtorArgMessage;
+  return absl::InternalError(kInvalidStatusCtorArgMessage);
+}
+
+absl::Status StatusOrHelper::HandleNullObjectCtorArg() {
+  LOG(DFATAL) << kNullObjectCtorArgMessage;
+  return absl::InternalError(kNullObjectCtorArgMessage);
+}
+
+void StatusOrHelper::Crash(const absl::Status& status) {
+  LOG(FATAL) << "Attempting to fetch value instead of handling error "
+             << status;
+}
+
+}  // namespace internal
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/statusor.h b/third_party/shell-encryption/src/statusor.h
new file mode 100644
index 0000000..42761e62
--- /dev/null
+++ b/third_party/shell-encryption/src/statusor.h
@@ -0,0 +1,203 @@
+#ifndef RLWE_STATUSOR_H_
+#define RLWE_STATUSOR_H_
+
+#include <cassert>
+
+#include "absl/base/attributes.h"
+#include "absl/status/status.h"
+#include "absl/types/optional.h"
+
+namespace rlwe {
+
+template <typename T>
+class StatusOr {
+ public:
+  // Construct a new StatusOr with Status::UNKNOWN status
+  StatusOr();
+
+  // Construct a new StatusOr with the given non-ok status. After calling
+  // this constructor, calls to ValueOrDie() will CHECK-fail.
+  //
+  // NOTE: Not explicit - we want to use StatusOr<T> as a return
+  // value, so it is convenient and sensible to be able to do 'return
+  // Status()' when the return type is StatusOr<T>.
+  //
+  // REQUIRES: status != Status::OK. This requirement is DCHECKed.
+  // In optimized builds, passing Status::OK here will have the effect
+  // of passing PosixErrorSpace::EINVAL as a fallback.
+  StatusOr(const absl::Status& status);
+
+  // Construct a new StatusOr with the given value. If T is a plain pointer,
+  // value must not be NULL. After calling this constructor, calls to
+  // ValueOrDie() will succeed, and calls to status() will return OK.
+  //
+  // NOTE: Not explicit - we want to use StatusOr<T> as a return type
+  // so it is convenient and sensible to be able to do 'return T()'
+  // when the return type is StatusOr<T>.
+  //
+  // REQUIRES: if T is a plain pointer, value != NULL. This requirement is
+  // DCHECKed. In optimized builds, passing a NULL pointer here will have
+  // the effect of passing ::blinders::StatusCode::kInternal as a fallback.
+  StatusOr(const T& value);
+
+  // Copy constructor.
+  StatusOr(const StatusOr& other);
+
+  // Assignment operator.
+  StatusOr& operator=(const StatusOr& other);
+
+  // Move constructor and move-assignment operator.
+  StatusOr(StatusOr&& other) = default;
+  StatusOr& operator=(StatusOr&& other) = default;
+
+  // Rvalue-reference overloads of the other constructors and assignment
+  // operators, to support move-only types and avoid unnecessary copying.
+  StatusOr(T&& value);
+
+  // Returns a reference to our status. If this contains a T, then
+  // returns Status::OK.
+  const absl::Status& status() const;
+
+  // Returns this->status().ok()
+  bool ok() const;
+
+  // Returns a reference to our current value, or CHECK-fails if !this->ok().
+  const T& ValueOrDie() const&;
+  T& ValueOrDie() &;
+  const T&& ValueOrDie() const&&;
+  T&& ValueOrDie() &&;
+
+  // Ignores any errors. This method does nothing except potentially suppress
+  // complaints from any tools that are checking that errors are not dropped on
+  // the floor.
+  void IgnoreError() const {}
+
+  operator absl::Status() const { return status(); }
+
+  template <template <typename> class OtherStatusOrType>
+  operator OtherStatusOrType<T>() {
+    if (value_) {
+      return OtherStatusOrType<T>(std::move(value_.value()));
+    } else {
+      return OtherStatusOrType<T>(status());
+    }
+  }
+
+ private:
+  // absl::variant<Status, T> variant_;
+  absl::Status status_;
+
+  absl::optional<T> value_;
+};
+
+namespace internal {
+
+class StatusOrHelper {
+ public:
+  // Move type-agnostic error handling to the .cc.
+  static absl::Status HandleInvalidStatusCtorArg();
+  static absl::Status HandleNullObjectCtorArg();
+  static void Crash(const absl::Status& status);
+
+  // Customized behavior for StatusOr<T> vs. StatusOr<T*>
+  template <typename T>
+  struct Specialize;
+};
+
+template <typename T>
+struct StatusOrHelper::Specialize {
+  // For non-pointer T, a reference can never be NULL.
+  static inline bool IsValueNull(const T& t) { return false; }
+};
+
+template <typename T>
+struct StatusOrHelper::Specialize<T*> {
+  static inline bool IsValueNull(const T* t) { return t == nullptr; }
+};
+
+}  // namespace internal
+
+template <typename T>
+inline StatusOr<T>::StatusOr()
+    : status_(absl::UnknownError("")), value_(absl::nullopt) {}
+
+template <typename T>
+inline StatusOr<T>::StatusOr(const absl::Status& status)
+    : status_(status), value_(absl::nullopt) {
+  if (status.ok()) {
+    status_ = internal::StatusOrHelper::HandleInvalidStatusCtorArg();
+  }
+}
+
+template <typename T>
+inline StatusOr<T>::StatusOr(const T& value)
+    : status_(absl::OkStatus()), value_(value) {
+  if (internal::StatusOrHelper::Specialize<T>::IsValueNull(value)) {
+    status_ = internal::StatusOrHelper::HandleNullObjectCtorArg();
+  }
+}
+
+template <typename T>
+inline StatusOr<T>::StatusOr(const StatusOr& other)
+    : status_(other.status_), value_(other.value_) {}
+
+template <typename T>
+inline StatusOr<T>& StatusOr<T>::operator=(const StatusOr<T>& other) {
+  status_ = other.status_;
+  value_.reset(other.value_);
+  return *this;
+}
+
+template <typename T>
+inline StatusOr<T>::StatusOr(T&& value)
+    : status_(absl::OkStatus()), value_(std::forward<T>(value)) {
+  if (internal::StatusOrHelper::Specialize<T>::IsValueNull(value_.value())) {
+    status_ = internal::StatusOrHelper::HandleNullObjectCtorArg();
+  }
+}
+
+template <typename T>
+inline const absl::Status& StatusOr<T>::status() const {
+  return status_;
+}
+
+template <typename T>
+inline bool StatusOr<T>::ok() const {
+  return status_.ok();
+}
+
+template <typename T>
+inline const T& StatusOr<T>::ValueOrDie() const& {
+  if (!value_) {
+    internal::StatusOrHelper::Crash(status());
+  }
+  return value_.value();
+}
+
+template <typename T>
+inline T& StatusOr<T>::ValueOrDie() & {
+  if (!value_) {
+    internal::StatusOrHelper::Crash(status());
+  }
+  return value_.value();
+}
+
+template <typename T>
+inline const T&& StatusOr<T>::ValueOrDie() const&& {
+  if (!value_) {
+    internal::StatusOrHelper::Crash(status());
+  }
+  return std::move(value_.value());
+}
+
+template <typename T>
+inline T&& StatusOr<T>::ValueOrDie() && {
+  if (!value_) {
+    internal::StatusOrHelper::Crash(status());
+  }
+  return std::move(value_.value());
+}
+
+}  // namespace rlwe
+
+#endif  // RLWE_STATUSOR_H_
diff --git a/third_party/shell-encryption/src/statusor_test.cc b/third_party/shell-encryption/src/statusor_test.cc
new file mode 100644
index 0000000..7e725f58
--- /dev/null
+++ b/third_party/shell-encryption/src/statusor_test.cc
@@ -0,0 +1,98 @@
+#include "statusor.h"
+
+#include <memory>
+#include <sstream>
+#include <string>
+
+#include "absl/status/status.h"
+#include <gtest/gtest.h>
+
+namespace rlwe {
+namespace {
+
+class NoDefault {
+ public:
+  explicit NoDefault(int dummy) { dummy_ = dummy; }
+
+  ~NoDefault() = default;
+
+  int GetDummy() { return dummy_; }
+
+ private:
+  NoDefault() = delete;
+  int dummy_;
+};
+
+class NoDefaultNoCopy {
+ public:
+  explicit NoDefaultNoCopy(int dummy) { dummy_ = dummy; }
+
+  ~NoDefaultNoCopy() = default;
+
+  int GetDummy() { return dummy_; }
+
+  NoDefaultNoCopy(NoDefaultNoCopy&& other) = default;
+  NoDefaultNoCopy& operator=(NoDefaultNoCopy&& other) = default;
+
+ private:
+  NoDefaultNoCopy() = delete;
+  NoDefaultNoCopy(const NoDefaultNoCopy& other) = delete;
+  NoDefaultNoCopy& operator=(const NoDefaultNoCopy& other) = delete;
+  int dummy_;
+};
+
+TEST(StatusOrTest, StatusUnknown) {
+  StatusOr<std::string> statusor;
+  EXPECT_FALSE(statusor.ok());
+  EXPECT_EQ(absl::UnknownError(""), statusor.status());
+}
+
+TEST(StatusOrTest, CopyCtors) {
+  NoDefault no_default(42);
+  StatusOr<NoDefault> statusor(no_default);
+  EXPECT_TRUE(statusor.ok());
+  EXPECT_EQ(42, statusor.ValueOrDie().GetDummy());
+  statusor = StatusOr<NoDefault>(no_default);
+  EXPECT_TRUE(statusor.ok());
+  EXPECT_EQ(42, statusor.ValueOrDie().GetDummy());
+}
+
+TEST(StatusOrTest, MoveCtors) {
+  StatusOr<NoDefaultNoCopy> statusor(NoDefaultNoCopy(42));
+  EXPECT_TRUE(statusor.ok());
+  EXPECT_EQ(42, statusor.ValueOrDie().GetDummy());
+  statusor = NoDefaultNoCopy(42);
+  EXPECT_TRUE(statusor.ok());
+  EXPECT_EQ(42, statusor.ValueOrDie().GetDummy());
+}
+
+TEST(StatusOrTest, DiesWithNotOkStatus) {
+  StatusOr<NoDefault> statusor(absl::CancelledError(""));
+  EXPECT_DEATH_IF_SUPPORTED(statusor.ValueOrDie(), "");
+}
+
+TEST(StatusOrTest, Pointers) {
+  std::unique_ptr<NoDefault> no_default(new NoDefault(42));
+  StatusOr<NoDefault*> statusor(no_default.get());
+  EXPECT_TRUE(statusor.ok());
+  EXPECT_EQ(42, statusor.ValueOrDie()->GetDummy());
+}
+
+TEST(StatusOrTest, TestStatusOrCopyCtors) {
+  NoDefault no_default(42);
+  StatusOr<NoDefault> statusor(no_default);
+  StatusOr<NoDefault> statusor_wrap(statusor);
+  EXPECT_TRUE(statusor_wrap.ok());
+  EXPECT_EQ(42, statusor_wrap.ValueOrDie().GetDummy());
+}
+
+TEST(StatusOrTest, TestStatusOrCopyAssignment) {
+  NoDefault no_default(42);
+  StatusOr<NoDefault> statusor(no_default);
+  StatusOr<NoDefault> statusor_wrap = statusor;
+  EXPECT_TRUE(statusor_wrap.ok());
+  EXPECT_EQ(42, statusor_wrap.ValueOrDie().GetDummy());
+}
+
+}  // namespace
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/symmetric_encryption.h b/third_party/shell-encryption/src/symmetric_encryption.h
new file mode 100644
index 0000000..0223149c
--- /dev/null
+++ b/third_party/shell-encryption/src/symmetric_encryption.h
@@ -0,0 +1,985 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RLWE_SYMMETRIC_ENCRYPTION_H_
+#define RLWE_SYMMETRIC_ENCRYPTION_H_
+
+#include <algorithm>
+#include <cstdint>
+#include <vector>
+
+#include "error_params.h"
+#include "polynomial.h"
+#include "prng/integral_prng_types.h"
+#include "prng/prng.h"
+#include "sample_error.h"
+#include "serialization.pb.h"
+#include "status_macros.h"
+
+namespace rlwe {
+
+// This file implements the somewhat homomorphic symmetric-key encryption scheme
+// from "Fully Homomorphic Encryption from Ring-LWE and Security for Key
+// Dependent Messages" by Zvika Brakerski and Vinod Vaikuntanathan. This
+// encryption scheme uses Ring Learning with Errors (RLWE).
+// http://www.wisdom.weizmann.ac.il/~zvikab/localpapers/IdealHom.pdf
+//
+// The scheme has CPA security under the hardness of the
+// Ring-Learning with Errors problem (see reference above for details). We do
+// not implement protections against timing attacks.
+//
+// The encryption scheme in this file is not fully homomorphic. It does not
+// implement any sort of bootstrapping.
+
+// Represents a ciphertext encrypted using a symmetric-key version of the ring
+// learning-with-errors (RLWE) encryption scheme. See the comments that follow
+// throughout this file for full details on the particular encryption scheme.
+//
+// This implementation supports the following homomorphic operations:
+//  - Homomorphic addition.
+//  - Scalar multiplication by a polynomial (absorption)
+//  - Homomorphic multiplication.
+//
+// This implementation is only "somewhat homomorphic," not fully homomorphic.
+// There is no bootstrapping, so a limited number of homomorphic operations can
+// be performed before so much error accumulates that decryption is impossible.
+//
+// Each ciphertext comprises a vector of polynomials <c0, ..., cN>. Initially,
+// a ciphertext comprises a pair <c0, c1>. Homomorphic multiplications cause
+// the vector to grow longer.
+template <typename ModularInt>
+class SymmetricRlweCiphertext {
+  using Int = typename ModularInt::Int;
+  // BigInt is required in order to multiply two Int and ensure that no overflow
+  // occurs during the multiplication of two ciphertexts.
+  using BigInt = typename ModularInt::BigInt;
+
+ public:
+  // Default and copy constructors.
+  explicit SymmetricRlweCiphertext(typename ModularInt::Params* params,
+                                   const ErrorParams<ModularInt>* error_params)
+      : modulus_params_(params),
+        error_params_(error_params),
+        power_of_s_(1),
+        error_(0) {}
+  SymmetricRlweCiphertext(const SymmetricRlweCiphertext& that) = default;
+
+  // Create a ciphertext by supplying the vector of components.
+  explicit SymmetricRlweCiphertext(std::vector<Polynomial<ModularInt>> c,
+                                   int power_of_s, double error,
+                                   typename ModularInt::Params* params,
+                                   const ErrorParams<ModularInt>* error_params)
+      : c_(std::move(c)),
+        modulus_params_(params),
+        error_params_(error_params),
+        power_of_s_(power_of_s),
+        error_(error) {}
+
+  // Homomorphic addition: add the polynomials representing the ciphertexts
+  // component-wise. The example below demonstrates why this procedure works
+  // properly in the two-component case. The quantities a, s, m, t, and e are
+  // introduced during encryption and are explained in the SymmetricRlweKey
+  // class.
+  //
+  //   (a1 * s + m1 + t * e1, -a1)
+  // + (a2 * s + m2 + t * e2, -a2)
+  // ------------------------------
+  //   ((a1 + a2) * s + (m1 + m2) + t * (e1 + e2), -(a1 + a2))
+  //
+  // Substitute (a1 + a2) = a3, (e1 + e2) = e3:
+  //
+  //   (a3 * s + (m1 + m2) + t * e3, -a3)
+  //
+  // This result is a valid ciphertext where the value of a has changed, the
+  // error has increased, and the encoded plaintext contains the sum of the
+  // plaintexts that were encoded in the original two ciphertexts.
+  rlwe::StatusOr<SymmetricRlweCiphertext> operator+(
+      const SymmetricRlweCiphertext& that) const {
+    SymmetricRlweCiphertext out = *this;
+    RLWE_RETURN_IF_ERROR(out.AddInPlace(that));
+    return out;
+  }
+
+  absl::Status AddInPlace(const SymmetricRlweCiphertext& that) {
+    if (power_of_s_ != that.power_of_s_) {
+      return absl::InvalidArgumentError(
+          "Ciphertexts must be encrypted with the same key power.");
+    }
+
+    if (c_.size() < that.c_.size()) {
+      Polynomial<ModularInt> zero(that.c_[0].Len(), modulus_params_);
+      c_.resize(that.c_.size(), zero);
+    }
+
+    for (int i = 0; i < that.c_.size(); i++) {
+      c_[i].AddInPlace(that.c_[i], modulus_params_);
+    }
+
+    error_ += that.error_;
+    return absl::OkStatus();
+  }
+
+  // Homomorphic subtraction: subtract the polynomials representing the
+  // ciphertexts component-wise. The example below demonstrates why this
+  // procedure works properly in the two-component case. The quantities a, s, m,
+  // t, and e are introduced during encryption and are explained in the
+  // SymmetricRlweKey class.
+  //
+  //   (a1 * s + m1 + t * e1, -a1)
+  // - (a2 * s + m2 + t * e2, -a2)
+  // ------------------------------
+  //   ((a1 - a2) * s + (m1 - m2) + t * (e1 - e2), -(a1 - a2))
+  //
+  // Substitute (a1 - a2) = a3, (e1 - e2) = e3:
+  //
+  //   (a3 * s + (m1 - m2) + t * e3, -a3)
+  //
+  // This result is a valid ciphertext where the value of a has changed, the
+  // error has increased, and the encoded plaintext contains the sum of the
+  // plaintexts that were encoded in the original two ciphertexts.
+  rlwe::StatusOr<SymmetricRlweCiphertext> operator-(
+      const SymmetricRlweCiphertext& that) const {
+    SymmetricRlweCiphertext out = *this;
+    RLWE_RETURN_IF_ERROR(out.SubInPlace(that));
+    return out;
+  }
+
+  absl::Status SubInPlace(const SymmetricRlweCiphertext& that) {
+    if (power_of_s_ != that.power_of_s_) {
+      return absl::InvalidArgumentError(
+          "Ciphertexts must be encrypted with the same key power.");
+    }
+
+    if (c_.size() < that.c_.size()) {
+      Polynomial<ModularInt> zero(that.c_[0].Len(), modulus_params_);
+      c_.resize(that.c_.size(), zero);
+    }
+
+    for (int i = 0; i < that.c_.size(); i++) {
+      c_[i].SubInPlace(that.c_[i], modulus_params_);
+    }
+
+    error_ += that.error_;
+    return absl::OkStatus();
+  }
+
+  // Homomorphic absorbtion. Multiplies the current ciphertext {m1}_s (plaintext
+  // m1 encrypted  with symmetric key s) by a plaintext m2, resulting in a
+  // ciphertext {m1 * m2}_s that stores m1 * m2 encrypted with symmetric key s.
+  //
+  // DO NOT CONFUSE THIS OPERATION WITH HOMOMORPHIC MULTIPLICATION.
+  //
+  // To perform this operation, multiply the each component of the
+  // ciphertext by the plaintext polynomial. The example below demonstrates why
+  // this procedure works properly in the two-component case. The quantities a,
+  // s, m, t, and e are introduced during encryption and are explained in the
+  // Encrypt() function later in this file.
+  //
+  //    (a1 * s + m1 + t * e1, -a1) * p
+  //  = (a1 * s * p + m1 * p + t * e1 * p)
+  //
+  // Substitute (a1 * p) = a2 and (e1 * p) = e2:
+  //
+  //    (a2 * s + m1 * p + t * e2)
+  //
+  // This result is a valid ciphertext where the value of a has changed, the
+  // error has increased, and the encoded plaintext contains the product of
+  // m1 and p.
+  //
+  // A few more details about the multiplication that takes place:
+  //
+  // The value stored in the resulting ciphertext is (m1 * m2) (mod 2^N + 1)
+  // (mod t), where N is the number of coefficients in s (or m1 or m2, since
+  // the all have the same number of coefficients). In other words, the
+  // result is the remainder of (m1 * m2) mod the polynomial (2^N + 1) with
+  // each of the coefficients the ntaken mod t. Any coefficient between 0 and
+  // modulus / 2 is treated as a positive number for the purposes of the final
+  // (mod t); any coefficient between modulus/2 and modulus is treated as
+  // a negative number for the purposes of the final (mod t).
+  SymmetricRlweCiphertext operator*(const Polynomial<ModularInt>& that) const {
+    SymmetricRlweCiphertext out = *this;
+    out.AbsorbInPlace(that);
+    return out;
+  }
+
+  void AbsorbInPlace(const Polynomial<ModularInt>& that) {
+    std::for_each(c_.begin(), c_.end(),
+                  [this, that](Polynomial<ModularInt>& component) {
+                    component.MulInPlace(that, modulus_params_);
+                  });
+    error_ *= error_params_->B_plaintext();
+  }
+
+  // Homomorphically absorb a plaintext scalar. This function is exactly like
+  // homomorphic absorb above, except the plaintext is a constant.
+  SymmetricRlweCiphertext operator*(const ModularInt& that) const {
+    SymmetricRlweCiphertext out = *this;
+    out.AbsorbInPlace(that);
+    return out;
+  }
+
+  void AbsorbInPlace(const ModularInt& that) {
+    std::for_each(c_.begin(), c_.end(),
+                  [this, that](Polynomial<ModularInt>& component) {
+                    component.MulInPlace(that, modulus_params_);
+                  });
+    error_ *= static_cast<double>(that.ExportInt(modulus_params_));
+  }
+
+  // Homomorphic multiply. Given two ciphertexts {m1}_s, {m2}_s containing
+  // messages m1 and m2 encrypted with the same secret key s, return the
+  // ciphertext {m1 * m2}_s containing the product of the messages.
+  //
+  // To perform this operation, treat the two ciphertext vectors as polynomials
+  // and perform a polynomial multiplication:
+  //
+  //   <c0, c1> * <c0', c1'> = <c0 * c0, c0 * c1 + c1 * c0, c1 * c1>
+  //
+  // If the two ciphertext vectors are of length m and n, the resulting
+  // ciphertext is of length m + n - 1.
+  //
+  // The details of the multiplication that takes place between m1 and m2 are
+  // the same as in the homomorphic absorb operation above (the other overload
+  // of the * operator).
+  rlwe::StatusOr<SymmetricRlweCiphertext> operator*(
+      const SymmetricRlweCiphertext& that) {
+    if (power_of_s_ != that.power_of_s_) {
+      return absl::InvalidArgumentError(
+          "Ciphertexts must be encrypted with the same key power.");
+    }
+    if (c_.size() <= 0 || that.c_.size() <= 0) {
+      return absl::InvalidArgumentError(
+          "Cannot multiply using an empty ciphertext.");
+    }
+    if (c_[0].Len() <= 0 || that.c_[0].Len() <= 0) {
+      return absl::InvalidArgumentError(
+          "Cannot multiply using an empty polynomial in the ciphertext.");
+    }
+    Polynomial<ModularInt> temp(c_[0].Len(), modulus_params_);
+    std::vector<Polynomial<ModularInt>> result(c_.size() + that.c_.size() - 1,
+                                               temp);
+    for (int i = 0; i < c_.size(); i++) {
+      for (int j = 0; j < that.c_.size(); j++) {
+        RLWE_ASSIGN_OR_RETURN(temp, c_[i].Mul(that.c_[j], modulus_params_));
+        result[i + j].AddInPlace(temp, modulus_params_);
+      }
+    }
+
+    return SymmetricRlweCiphertext(std::move(result), power_of_s_,
+                                   error_ * that.error_, modulus_params_,
+                                   error_params_);
+  }
+
+  // Convert this ciphertext from (mod p) to (mod q).
+  // Assumes that ModularInt::Int and ModularIntQ::Int are the same type.
+  //
+  // The current modulus (mod t) must be equal to modulus q (mod t).
+  // This will always be true. For NTT to work properly, any modulus must be
+  // of the form 2N + 1, where N is a power of 2. Likewise, the implementation
+  // requires that t is a power of 2. This means that, for any modulus q and
+  // modulus t allowed by the RLWE implementation, q % t == 1.
+  template <typename ModularIntQ>
+  rlwe::StatusOr<SymmetricRlweCiphertext<ModularIntQ>> SwitchModulus(
+      const NttParameters<ModularInt>* ntt_params_p,
+      typename ModularIntQ::Params* modulus_params_q,
+      const NttParameters<ModularIntQ>* ntt_params_q,
+      const ErrorParams<ModularIntQ>* error_params_q, const Int& t) {
+    Int p = modulus_params_->modulus;
+    Int q = modulus_params_q->modulus;
+
+    // Configuration error.
+    if (p % t != q % t) {
+      return absl::InvalidArgumentError("p % t != q % t");
+    }
+
+    SymmetricRlweCiphertext<ModularIntQ> output(modulus_params_q,
+                                                error_params_q);
+    output.power_of_s_ = power_of_s_;
+    // Overestimate the ratio of the two moduli.
+    double modulus_ratio = static_cast<double>(modulus_params_q->log_modulus) /
+                           modulus_params_->log_modulus;
+    output.error_ = modulus_ratio * error_ + error_params_q->B_scale();
+
+    output.c_.reserve(c_.size());
+    for (const Polynomial<ModularInt>& c : c_) {
+      // Extract each component of the ciphertext from NTT form.
+      std::vector<ModularInt> coeffs_p =
+          c.InverseNtt(*ntt_params_p, modulus_params_);
+      std::vector<ModularIntQ> coeffs_q;
+      coeffs_q.reserve(coeffs_p.size());
+
+      // Convert each coefficient of the polynomial from (mod p) to (mod q)
+      for (const ModularInt& coeff_p : coeffs_p) {
+        Int int_p = coeff_p.ExportInt(modulus_params_);
+
+        // Scale the integer.
+        Int int_q = static_cast<Int>(ModularInt::DivAndTruncate(
+            static_cast<BigInt>(int_p) * static_cast<BigInt>(q),
+            static_cast<BigInt>(p)));
+
+        // Ensure that int_p = int_q mod t by changing int_q as little as
+        // possible.
+        Int int_p_mod_t = int_p % t;
+        Int int_q_mod_t = int_q % t;
+        Int adjustment_up = modulus_params_->Zero();
+        Int adjustment_down = modulus_params_->Zero();
+
+        // Determine whether to adjust int_q up or down to make sure int_q =
+        // int_p (mod t).
+        adjustment_up = int_p_mod_t - int_q_mod_t;
+        adjustment_down = t + int_q_mod_t - int_p_mod_t;
+        if (int_p_mod_t < int_q_mod_t) {
+          adjustment_up = adjustment_up + t;
+          adjustment_down = adjustment_down - t;
+        }
+
+        RLWE_ASSIGN_OR_RETURN(auto m_int_q,
+                              ModularIntQ::ImportInt(int_q, modulus_params_q));
+        if (adjustment_up > adjustment_down) {
+          RLWE_ASSIGN_OR_RETURN(
+              auto m_adjustment_up,
+              ModularIntQ::ImportInt(adjustment_up, modulus_params_q));
+          // Adjust up.
+          coeffs_q.push_back(
+              std::move(m_adjustment_up.AddInPlace(m_int_q, modulus_params_q)));
+        } else {
+          RLWE_ASSIGN_OR_RETURN(
+              auto m_adjustment_down,
+              ModularIntQ::ImportInt(q - adjustment_down, modulus_params_q));
+          // Adjust down.
+          coeffs_q.push_back(std::move(
+              m_adjustment_down.AddInPlace(m_int_q, modulus_params_q)));
+        }
+      }
+
+      // Convert back to NTT.
+      output.c_.push_back(Polynomial<ModularIntQ>::ConvertToNtt(
+          std::move(coeffs_q), *ntt_params_q, modulus_params_q));
+    }
+
+    return output;
+  }
+
+  // Given a ciphertext c encrypting a plaintext p(x) under secret key s(x),
+  // returns a ciphertext c' encrypting p(x^power) under the secret key
+  // s(x^power).
+  // Power must be an odd non-negative integer less than 2 * num_coeffs.
+  // This method uses NTT conversions to apply the substitution in the
+  // coefficient domain, and should be avoided if performance is an issue.
+  // Substitutions of the form 2^j + 1 are used to obliviously expand a query
+  // ciphertext into a query vector.
+  rlwe::StatusOr<SymmetricRlweCiphertext> Substitute(
+      int substitution_power,
+      const NttParameters<ModularInt>& ntt_params) const {
+    SymmetricRlweCiphertext output(modulus_params_, error_params_);
+    output.c_.reserve(c_.size());
+
+    for (const Polynomial<ModularInt>& c : c_) {
+      RLWE_ASSIGN_OR_RETURN(
+          auto elt,
+          c.Substitute(substitution_power, ntt_params, modulus_params_));
+      output.c_.push_back(std::move(elt));
+    }
+    output.power_of_s_ = (power_of_s_ * substitution_power) % (2 * c_[0].Len());
+    output.error_ = error_;
+    return output;
+  }
+
+  rlwe::StatusOr<SerializedSymmetricRlweCiphertext> Serialize() const {
+    SerializedSymmetricRlweCiphertext output;
+    output.set_power_of_s(power_of_s_);
+    output.set_error(error_);
+
+    for (const Polynomial<ModularInt>& c : c_) {
+      RLWE_ASSIGN_OR_RETURN(*output.add_c(), c.Serialize(modulus_params_));
+    }
+
+    return output;
+  }
+
+  static rlwe::StatusOr<SymmetricRlweCiphertext> Deserialize(
+      const SerializedSymmetricRlweCiphertext& serialized,
+      typename ModularInt::Params* modulus_params,
+      const ErrorParams<ModularInt>* error_params) {
+    SymmetricRlweCiphertext output(modulus_params, error_params);
+    output.power_of_s_ = serialized.power_of_s();
+    output.error_ = serialized.error();
+
+    if (serialized.c_size() <= 0) {
+      return absl::InvalidArgumentError("Ciphertext cannot be empty.");
+    } else if (serialized.c_size() > kMaxNumCoeffs) {
+      return absl::InvalidArgumentError(
+          absl::StrCat("Number of coefficients, ", serialized.c_size(),
+                       ", cannot be more than ", kMaxNumCoeffs, "."));
+    }
+
+    for (int i = 0; i < serialized.c_size(); i++) {
+      RLWE_ASSIGN_OR_RETURN(auto elt, Polynomial<ModularInt>::Deserialize(
+                                          serialized.c(i), modulus_params));
+      output.c_.push_back(std::move(elt));
+    }
+
+    return output;
+  }
+
+  // Accessors.
+  unsigned int Len() const { return c_.size(); }
+
+  rlwe::StatusOr<Polynomial<ModularInt>> Component(int index) const {
+    if (0 > index || index >= c_.size()) {
+      return absl::InvalidArgumentError("Index out of range.");
+    }
+    return c_[index];
+  }
+
+  typename ModularInt::Params* ModulusParams() const { return modulus_params_; }
+  const rlwe::ErrorParams<ModularInt>* ErrorParams() const {
+    return error_params_;
+  }
+  int PowerOfS() const { return power_of_s_; }
+  double Error() const { return error_; }
+  void SetError(double error) { error_ = error; }
+
+ private:
+  // The ciphertext.
+  std::vector<Polynomial<ModularInt>> c_;
+
+  // ModularInt parameters.
+  typename ModularInt::Params* modulus_params_;
+
+  // Error parameters.
+  const rlwe::ErrorParams<ModularInt>* error_params_;
+
+  // The power a in s(x^a) that the ciphertext can be decrypted with.
+  int power_of_s_;
+
+  // A heuristic on the error of the ciphertext.
+  double error_;
+
+  // Make this class a friend of any version of this class, no matter the
+  // template.
+  template <typename Q>
+  friend class SymmetricRlweCiphertext;
+};
+
+// Holds a key that can be used to encrypt messages using the RLWE-based
+// encryption scheme.
+template <typename ModularInt>
+class SymmetricRlweKey {
+  using Int = typename ModularInt::Int;
+
+ public:
+  // Allow copy, copy-assign, move and move-assign.
+  SymmetricRlweKey(const SymmetricRlweKey&) = default;
+  SymmetricRlweKey& operator=(const SymmetricRlweKey&) = default;
+  SymmetricRlweKey(SymmetricRlweKey&&) = default;
+  SymmetricRlweKey& operator=(SymmetricRlweKey&&) = default;
+  ~SymmetricRlweKey() = default;
+
+  // Static factory that samples a key from the error distribution. The
+  // polynomial representing the key must have a number of coefficients that is
+  // a power of two, which is enforced by the first argument.
+  //
+  // Does not take ownership of rand, modulus_params or ntt_params.
+  //
+  ABSL_DEPRECATED("Use factory function that specifies PRNG.")
+  static rlwe::StatusOr<SymmetricRlweKey> Sample(
+      unsigned int log_num_coeffs, Uint64 variance, Uint64 log_t,
+      typename ModularInt::Params* modulus_params,
+      const NttParameters<ModularInt>* ntt_params) {
+    RLWE_ASSIGN_OR_RETURN(std::string prng_seed,
+                          SingleThreadPrng::GenerateSeed());
+    RLWE_ASSIGN_OR_RETURN(auto prng, SingleThreadPrng::Create(prng_seed));
+    return Sample(log_num_coeffs, variance, log_t, modulus_params, prng.get());
+  }
+
+  // Static factory that samples a key from the error distribution. The
+  // polynomial representing the key must have a number of coefficients that is
+  // a power of two, which is enforced by the first argument.
+  //
+  // Does not take ownership of rand, modulus_params or ntt_params.
+  static rlwe::StatusOr<SymmetricRlweKey> Sample(
+      unsigned int log_num_coeffs, uint64_t variance, uint64_t log_t,
+      typename ModularInt::Params* modulus_params,
+      const NttParameters<ModularInt>* ntt_params, SecurePrng* prng) {
+    RLWE_ASSIGN_OR_RETURN(
+        auto error, SampleFromErrorDistribution<ModularInt>(
+                        1 << log_num_coeffs, variance, prng, modulus_params));
+    Polynomial<ModularInt> key = Polynomial<ModularInt>::ConvertToNtt(
+        std::move(error), *ntt_params, modulus_params);
+    RLWE_ASSIGN_OR_RETURN(
+        auto t_mod, ModularInt::ImportInt((modulus_params->One() << log_t) +
+                                              modulus_params->One(),
+                                          modulus_params));
+    return SymmetricRlweKey(std::move(key), variance, log_t, std::move(t_mod),
+                            modulus_params, modulus_params, ntt_params);
+  }
+
+  rlwe::StatusOr<SerializedNttPolynomial> Serialize() const {
+    return key_.Serialize(modulus_params_);
+  }
+
+  // Deserialize using modulus params as also the plaintext modulus params. Use
+  // this when deserializing a non-modulus switched key.
+  static rlwe::StatusOr<SymmetricRlweKey> Deserialize(
+      Uint64 variance, Uint64 log_t,
+      const SerializedNttPolynomial& serialized_key,
+      typename ModularInt::Params* modulus_params,
+      const NttParameters<ModularInt>* ntt_params) {
+    return Deserialize(variance, log_t, serialized_key, modulus_params,
+                       modulus_params, ntt_params);
+  }
+
+  static rlwe::StatusOr<SymmetricRlweKey> Deserialize(
+      Uint64 variance, Uint64 log_t,
+      const SerializedNttPolynomial& serialized_key,
+      typename ModularInt::Params* modulus_params,
+      typename ModularInt::Params* plaintext_modulus_params,
+      const NttParameters<ModularInt>* ntt_params) {
+    // Check that log_t is no larger than the log_modulus - 1.
+    if (log_t > modulus_params->log_modulus - 1) {
+      return absl::InvalidArgumentError(absl::StrCat(
+          "The value of log_t, ", log_t, ", must be smaller than ",
+          "log_modulus - 1, ", modulus_params->log_modulus - 1, "."));
+    }
+    RLWE_ASSIGN_OR_RETURN(
+        Polynomial<ModularInt> key,
+        Polynomial<ModularInt>::Deserialize(serialized_key, modulus_params));
+    RLWE_ASSIGN_OR_RETURN(
+        auto t_mod,
+        ModularInt::ImportInt((plaintext_modulus_params->One() << log_t) +
+                                  plaintext_modulus_params->One(),
+                              plaintext_modulus_params));
+    return SymmetricRlweKey(std::move(key), variance, log_t, std::move(t_mod),
+                            modulus_params, plaintext_modulus_params,
+                            ntt_params);
+  }
+
+  // Generate a copy of this key in modulus q.
+  //
+  // The current modulus (mod t) must be equal to modulus q (mod t). This
+  // property is implicitly enforced by the design of the code as described
+  // by the corresponding comment on SymmetricRlweKey::SwitchModulus. This
+  // property is also dynamically enforced.
+  //
+  // The algorithms for modulus-switching ciphertexts and keys are similar but
+  // slightly different. In particular, RLWE keys are guaranteed to have small
+  // coefficients, and thus modulus switching can be made very simple. Hence
+  // we have 2 separate implementations of SwitchModulus for keys and
+  // ciphertexts.
+  template <typename ModularIntQ>
+  rlwe::StatusOr<SymmetricRlweKey<ModularIntQ>> SwitchModulus(
+      typename ModularIntQ::Params* modulus_params_q,
+      const NttParameters<ModularIntQ>* ntt_params_q) const {
+    // Configuration failure.
+    Int t = (modulus_params_q->One() << log_t_) + modulus_params_q->One();
+    if (modulus_params_->modulus % t != modulus_params_q->modulus % t) {
+      return absl::InvalidArgumentError("p % t != q % t");
+    }
+
+    typename ModularIntQ::Int p_mod_q =
+        modulus_params_->modulus % modulus_params_q->modulus;
+    std::vector<ModularInt> coeffs_p =
+        key_.InverseNtt(*ntt_params_, modulus_params_);
+    std::vector<ModularIntQ> coeffs_q;
+
+    // Convert each coefficient of the polynomial from (mod p) to (mod q)
+    for (const ModularInt& coeff_p : coeffs_p) {
+      // Ensure that negative numbers (mod p) are translated into negative
+      // numbers (mod q).
+      Int int_p = coeff_p.ExportInt(modulus_params_);
+      if (int_p > modulus_params_->modulus >> 1) {
+        int_p = int_p - p_mod_q;
+      }
+
+      RLWE_ASSIGN_OR_RETURN(auto m_int_p,
+                            ModularIntQ::ImportInt(int_p, modulus_params_q));
+      coeffs_q.push_back(std::move(m_int_p));
+    }
+
+    // Convert back to NTT.
+    auto key_q = Polynomial<ModularIntQ>::ConvertToNtt(
+        std::move(coeffs_q), *ntt_params_q, modulus_params_q);
+
+    RLWE_ASSIGN_OR_RETURN(
+        auto t_mod, ModularInt::ImportInt((modulus_params_q->One() << log_t_) +
+                                              modulus_params_q->One(),
+                                          modulus_params_q));
+    return SymmetricRlweKey<ModularIntQ>(std::move(key_q), variance_, log_t_,
+                                         std::move(t_mod), modulus_params_q,
+                                         modulus_params_q, ntt_params_q);
+  }
+
+  // Given s(x), returns a secret key s(x^a).
+  // This performs an Inverse NTT on the key, substitutes the key in polynomial
+  // representation, and then performs an NTT again.
+  rlwe::StatusOr<SymmetricRlweKey> Substitute(const int power) const {
+    RLWE_ASSIGN_OR_RETURN(
+        auto t_mod, ModularInt::ImportInt((modulus_params_->One() << log_t_) +
+                                              modulus_params_->One(),
+                                          modulus_params_));
+    RLWE_ASSIGN_OR_RETURN(
+        auto sub, key_.Substitute(power, *ntt_params_, modulus_params_));
+    return SymmetricRlweKey(std::move(sub), variance_, log_t_, std::move(t_mod),
+                            modulus_params_, plaintext_modulus_params_,
+                            ntt_params_);
+  }
+
+  // Accessors.
+  unsigned int Len() const { return key_.Len(); }
+  const NttParameters<ModularInt>* NttParams() const { return ntt_params_; }
+  typename ModularInt::Params* ModulusParams() const { return modulus_params_; }
+  unsigned int BitsPerCoeff() const { return log_t_; }
+  Uint64 Variance() const { return variance_; }
+  unsigned int LogT() const { return log_t_; }
+  const ModularInt& PlaintextModulus() const { return t_mod_; }
+  typename ModularInt::Params* PlaintextModulusParams() const {
+    return plaintext_modulus_params_;
+  }
+  const Polynomial<ModularInt>& Key() const { return key_; }
+
+  // Add two homomorphic encryption keys.
+  rlwe::StatusOr<SymmetricRlweKey<ModularInt>> Add(
+      const SymmetricRlweKey<ModularInt>& other_key) {
+    if (variance_ != other_key.variance_) {
+      return absl::InvalidArgumentError(absl::StrCat(
+          "The variance of the other key, ", other_key.variance_,
+          ", is different than the variance of this key, ", variance_, "."));
+    }
+    if (log_t_ != other_key.log_t_) {
+      return absl::InvalidArgumentError(absl::StrCat(
+          "The log_t of the other key, ", other_key.log_t_,
+          ", is different than the log_t of this key, ", log_t_, "."));
+    }
+    if (t_mod_ != other_key.t_mod_) {
+      return absl::InvalidArgumentError(
+          absl::StrCat("The plaintext space of the other key is different than "
+                       "the plaintext space of this key."));
+    }
+    RLWE_ASSIGN_OR_RETURN(auto key, key_.Add(other_key.key_, modulus_params_));
+    return SymmetricRlweKey<ModularInt>(std::move(key), variance_, log_t_,
+                                        t_mod_, modulus_params_,
+                                        plaintext_modulus_params_, ntt_params_);
+  }
+
+  // Substract two homomorphic encryption keys.
+  rlwe::StatusOr<SymmetricRlweKey<ModularInt>> Sub(
+      const SymmetricRlweKey<ModularInt>& other_key) {
+    if (variance_ != other_key.variance_) {
+      return absl::InvalidArgumentError(absl::StrCat(
+          "The variance of the other key, ", other_key.variance_,
+          ", is different than the variance of this key, ", variance_, "."));
+    }
+    if (log_t_ != other_key.log_t_) {
+      return absl::InvalidArgumentError(absl::StrCat(
+          "The log_t of the other key, ", other_key.log_t_,
+          ", is different than the log_t of this key, ", log_t_, "."));
+    }
+    if (t_mod_ != other_key.t_mod_) {
+      return absl::InvalidArgumentError(
+          absl::StrCat("The plaintext space of the other key is different than "
+                       "the plaintext space of this key."));
+    }
+    RLWE_ASSIGN_OR_RETURN(auto key, key_.Sub(other_key.key_, modulus_params_));
+    return SymmetricRlweKey<ModularInt>(std::move(key), variance_, log_t_,
+                                        t_mod_, modulus_params_,
+                                        plaintext_modulus_params_, ntt_params_);
+  }
+
+  // Static function to create a null key (with value 0).
+  static rlwe::StatusOr<SymmetricRlweKey> NullKey(
+      unsigned int log_num_coeffs, Uint64 variance, Uint64 log_t,
+      typename ModularInt::Params* modulus_params,
+      const NttParameters<ModularInt>* ntt_params) {
+    Polynomial<ModularInt> zero(1 << log_num_coeffs, modulus_params);
+    RLWE_ASSIGN_OR_RETURN(
+        auto t_mod, ModularInt::ImportInt((modulus_params->One() << log_t) +
+                                              modulus_params->One(),
+                                          modulus_params));
+    return SymmetricRlweKey(std::move(zero), variance, log_t, std::move(t_mod),
+                            modulus_params, modulus_params, ntt_params);
+  }
+
+ private:
+  // The contents of the key itself.
+  Polynomial<ModularInt> key_;
+
+  // The variance of the binomial distribution from which the key and error are
+  // drawn.
+  Uint64 variance_;
+
+  // The maximum size of any one coefficient of the polynomial representing a
+  // plaintext message.
+  unsigned int log_t_;
+  ModularInt t_mod_;
+
+  // NTT parameters.
+  const NttParameters<ModularInt>* ntt_params_;
+
+  // ModularInt parameters.
+  typename ModularInt::Params* modulus_params_;
+  typename ModularInt::Params* plaintext_modulus_params_;
+
+  // A constructor. Does not take ownership of params.
+  SymmetricRlweKey(Polynomial<ModularInt> key, Uint64 variance,
+                   unsigned int log_t, ModularInt t_mod,
+                   typename ModularInt::Params* modulus_params,
+                   typename ModularInt::Params* plaintext_modulus_params,
+                   const NttParameters<ModularInt>* ntt_params)
+      : key_(std::move(key)),
+        variance_(variance),
+        log_t_(log_t),
+        t_mod_(std::move(t_mod)),
+        ntt_params_(ntt_params),
+        modulus_params_(modulus_params),
+        plaintext_modulus_params_(plaintext_modulus_params) {}
+
+  // Make this class a friend of any version of this class, no matter the
+  // template.
+  template <typename Q>
+  friend class SymmetricRlweKey;
+};
+
+// Encrypts the plaintext using ring learning-with-errors (RLWE) encryption.
+// (b/79577340): The parameter t is specified by log_t right, but is equal to
+// (1 << log_t) + 1 so that t is odd. This is to allow multiplicative inverses
+// of powers of 2, which are used to compress and obliviously expand a query
+// ciphertext.
+//
+// The scheme works as follows:
+//   KeyGen(n, modulus q, error distr):
+//     Sample a degree (n-1) polynomial whose coefficients are drawn from the
+//     error distribution (mod q). This is our secret key. Call it s.
+//
+//   Encrypt(secret key s, plaintext m, modulus q, modulus t, error distr):
+//     1) Sample a degree (n-1) polynomial whose coefficients are drawn
+//        uniformly from any integer (mod q). Call this polynomial a.
+//     2) Sample a degree (n-1) polynomial whose coefficients are drawn from
+//        the error distribution (mod q). Call this polynomial e.
+//     3) Our secret key s and plaintext m are both degree (n-1) polynomials.
+//        For decryption to work, each coefficient of m must be < t.
+//        Compute (a * s + t * e + m) (mod x^n + 1). Call this polynomial b.
+//     4) The ciphertext is the pair (b, -a). We refer to the pair of
+//        polynomials representing a ciphertext as (c0, c1) =
+//        (a * s + m + e * t, -a).
+//
+//    Decrypt(secret key s, ciphertext (b, -a), modulus t):
+//      // Decryption when the ciphertext has two components.
+//      Compute and return (b - as) (mod t). Doing out the algebra:
+//          b - as (mod t)
+//        = as + te + m - as (mod t)
+//        = te + m (mod t)
+//        = m
+//      Quoting the paper, "the condition for correct decryption is that the
+//      L_infinity norm of the polynomial [te + m] is smaller than q/2." In
+//      other words, the largest of the values te + m (recall that e is
+//      sampled from a distribution) cannot exceed q/2.
+//
+//   When the ciphertext has more than two components <c0, c1, ..., cN>,
+//   it can be decrypted by taking the dot product with the vector
+//   <s^0, s^1, ..., s^N> containing powers of the secret key:
+//       te + m = <c0, 1, ..., cN> dot <s^0, s^1, ..., s^N>
+//              = c0 * s^0 + c1 * s^1 + ... + cN * s^N
+//
+// Note that the Encrypt() function takes the original plaintext as
+// an Polynomial<ModularInt>, while the corresponding Decrypt() method
+// returns a std::vector<typename ModularInt::Int>. The two values will be the
+// same once the original plaintext is converted out of NTT and Montgomery form.
+//   - The Encrypt() function takes an NTT polynomial so that, if the same
+//     plaintext is to be encrypted repeatedly, the NTT conversion only needs
+//     to be performed once by the caller.
+//   - The Decrypt() function returns a vector of integers because the final
+//     (mod t) step requires taking the polynomial (te + m) out of NTT and
+//     Montgomery form.
+// It would be straightforward to write a wrapper of Encrypt() that takes
+// a vector of integers as input, thereby making the plaintext types of the
+// Encrypt() and Decrypt() functions symmetric.
+
+namespace internal {
+
+// This functions allows injecting a specific polynomial "a" as the randomness
+// of the encryption (that is the negation of the c1 component of the
+// ciphertext) and returns only the resulting c1 component of the ciphertext.
+// This function is intended for internal use only.
+template <typename ModularInt>
+rlwe::StatusOr<Polynomial<ModularInt>> Encrypt(
+    const SymmetricRlweKey<ModularInt>& key,
+    const Polynomial<ModularInt>& plaintext, const Polynomial<ModularInt>& a,
+    SecurePrng* prng) {
+  // Sample the error term from the error distribution.
+  unsigned int num_coeffs = key.Len();
+  RLWE_ASSIGN_OR_RETURN(
+      std::vector<ModularInt> e_coeffs,
+      SampleFromErrorDistribution<ModularInt>(num_coeffs, key.Variance(), prng,
+                                              key.ModulusParams()));
+
+  // Create and return c0.
+  auto e = Polynomial<ModularInt>::ConvertToNtt(
+      std::move(e_coeffs), *(key.NttParams()), key.ModulusParams());
+  RLWE_ASSIGN_OR_RETURN(Polynomial<ModularInt> temp,
+                        a.Mul(key.Key(), key.ModulusParams()));
+  RLWE_RETURN_IF_ERROR(
+      e.MulInPlace(key.PlaintextModulus(), key.ModulusParams()));
+  RLWE_RETURN_IF_ERROR(temp.AddInPlace(e, key.ModulusParams()));
+  RLWE_RETURN_IF_ERROR(temp.AddInPlace(plaintext, key.ModulusParams()));
+  return temp;
+}
+
+}  // namespace internal
+
+// Encrypts the supplied plaintext using the given key. Randomness is drawn from
+// the key's underlying ModulusParams.
+template <typename ModularInt>
+rlwe::StatusOr<SymmetricRlweCiphertext<ModularInt>> Encrypt(
+    const SymmetricRlweKey<ModularInt>& key,
+    const Polynomial<ModularInt>& plaintext,
+    const ErrorParams<ModularInt>* error_params, SecurePrng* prng) {
+  // Sample a from the uniform distribution.
+  RLWE_ASSIGN_OR_RETURN(auto a, SamplePolynomialFromPrng<ModularInt>(
+                                    key.Len(), prng, key.ModulusParams()));
+
+  // Create c0.
+  RLWE_ASSIGN_OR_RETURN(Polynomial<ModularInt> c0,
+                        internal::Encrypt(key, plaintext, a, prng));
+
+  // Compute c1 = -a and return the ciphertext.
+  return SymmetricRlweCiphertext<ModularInt>(
+      std::vector<Polynomial<ModularInt>>{
+          std::move(c0), std::move(a.NegateInPlace(key.ModulusParams()))},
+      1, error_params->B_encryption(), key.ModulusParams(), error_params);
+}
+
+// Takes as input the result of decrypting a RLWE plaintext that still contains
+// the error. Concretely, it contains m + e * t (mod q). This function
+// eliminates the error and returns the message. For reasons described below,
+// this operation is more complicated than a simple (mod t).
+//
+// The error is drawn from a binomial distribution centered at zero and
+// multiplied by t, meaning error values are either positive or negative
+// multiples of t. Since each coefficient of the plaintext is smaller than
+// t, some coefficients of the quantity m + e * t (which is all that's
+// left in the vector error_and_message) could be negative. We are using
+// modular arithmetic, so negative values become large positive values.
+//
+// Unfortunately, these negative values caues the naive error elimination
+// strategy to fail. In theory we could take (m + e * t) mod t to
+// eliminate the error portion and extract the message. However, consider
+// a case where the error is negative. Suppose that t=2, m=1, and e=-1
+// with a modulus q=7:
+//
+//    m +  e * t (mod q) =
+//    1 + -1 * 2 (mod 7) =
+//            -1 (mod 7) =
+//             6 (mod 7)
+//
+// When we take 6 (mod t) = 6 (mod 2), we get 0, which is not the original
+// bit of m. To avoid this problem, we treat negative values as negative
+// values, not as their equivalents mod q.
+//
+// We consider (m + e * t) to be negative whenever it is between q/2
+// and q. Recall that, if |m + e * t| is greater than q/2, decryption
+// fails.
+//
+// When the quantity (m + e * t) (mod q) represents a negative number
+// mod q, we can re-create its non-modular negative form by computing
+// ((m + e * t) - q). We can then take this value mod t to extract the
+// correct answer.
+//
+// 1. (m + e * t (mod q)) =                    // in the range [q/2, q)
+// 2. (m + e * t - q)     =                    // in the range [-q/2, 0)
+// 3. m (mod t) + e * t (mod t) - q (mod t) =  // taken (mod t)
+// 4. m - (q (mod t))
+//
+// If we subtract q at step 2, we return negative numbers to their
+// original form. Since we are going to perform a (mod t) operation
+// anyway, we can subtract q (mod t) at step 2 to get the same result.
+// Subtracting q (mod t) instead ensures that the quantity at step 2
+// does not become negative, which is convenient because we are using
+// an unsigned integer type.
+//
+// Concluding the example from before with the fix:
+//
+//    m +  e * t (mod q) - q (mod t) =
+//    1 + -1 * 2 (mod 7) - 7 (mod 2) =
+//            -1 (mod 7) - 7 (mod 2) = 6 - 1 = 5
+//
+// 5 (mod t) = 1, which is the original message.
+template <typename ModularInt>
+std::vector<typename ModularInt::Int> RemoveError(
+    const std::vector<ModularInt>& error_and_message,
+    const typename ModularInt::Int& q, const typename ModularInt::Int& t,
+    typename ModularInt::Params* modulus_params_q) {
+  using Int = typename ModularInt::Int;
+  Int q_mod_t = q % t;
+  Int zero = modulus_params_q->Zero();
+  std::vector<Int> plaintext(error_and_message.size(), zero);
+
+  for (int i = 0; i < error_and_message.size(); i++) {
+    plaintext[i] = error_and_message[i].ExportInt(modulus_params_q);
+
+    if (plaintext[i] > (q >> 1)) {
+      plaintext[i] = plaintext[i] - q_mod_t;
+    }
+
+    plaintext[i] = plaintext[i] % t;
+  }
+
+  return plaintext;
+}
+
+template <typename ModularInt>
+rlwe::StatusOr<std::vector<typename ModularInt::Int>> Decrypt(
+    const SymmetricRlweKey<ModularInt>& key,
+    const SymmetricRlweCiphertext<ModularInt>& ciphertext) {
+  // Extract the error and message. To do so, take the dot product of the
+  // ciphertext vector <c0, c1, ..., cN> and the vector of the powers of
+  // the key <s^0, s^1, ..., s^N>.
+
+  // Accumulator variables.
+  Polynomial<ModularInt> error_and_message_ntt(key.Len(), key.ModulusParams());
+  Polynomial<ModularInt> key_powers = key.Key();
+  unsigned int ciphertext_len = ciphertext.Len();
+
+  for (int i = 0; i < ciphertext_len; i++) {
+    // Extract component i.
+    RLWE_ASSIGN_OR_RETURN(Polynomial<ModularInt> ci, ciphertext.Component(i));
+
+    // Lazily increase the exponent of the key.
+    if (i > 1) {
+      key_powers.MulInPlace(key.Key(), key.ModulusParams());
+    }
+
+    // Beyond c0, multiply the exponentiated key in.
+    if (i > 0) {
+      ci.MulInPlace(key_powers, ciphertext.ModulusParams());
+    }
+
+    error_and_message_ntt.AddInPlace(ci, key.ModulusParams());
+  }
+
+  // Invert the NTT process.
+  std::vector<ModularInt> error_and_message =
+      error_and_message_ntt.InverseNtt(*(key.NttParams()), key.ModulusParams());
+
+  // Extract the message.
+  return RemoveError<ModularInt>(
+      error_and_message, key.ModulusParams()->modulus,
+      key.PlaintextModulus().ExportInt(key.PlaintextModulusParams()),
+      key.ModulusParams());
+}
+
+}  // namespace rlwe
+
+#endif  // RLWE_SYMMETRIC_ENCRYPTION_H_
diff --git a/third_party/shell-encryption/src/symmetric_encryption_test.cc b/third_party/shell-encryption/src/symmetric_encryption_test.cc
new file mode 100644
index 0000000..197df69
--- /dev/null
+++ b/third_party/shell-encryption/src/symmetric_encryption_test.cc
@@ -0,0 +1,1214 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "symmetric_encryption.h"
+
+#include <algorithm>
+#include <cstdint>
+#include <functional>
+#include <iostream>
+#include <random>
+#include <vector>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "constants.h"
+#include "montgomery.h"
+#include "ntt_parameters.h"
+#include "polynomial.h"
+#include "prng/integral_prng_types.h"
+#include "serialization.pb.h"
+#include "status_macros.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+#include "testing/testing_prng.h"
+#include "testing/testing_utils.h"
+
+
+namespace {
+
+using ::rlwe::testing::StatusIs;
+using ::testing::Eq;
+using ::testing::HasSubstr;
+
+// Set constants.
+const int kTestingRounds = 10;
+
+// Useful typedefs.
+using uint_m = rlwe::MontgomeryInt<rlwe::Uint32>;
+using Polynomial = rlwe::Polynomial<uint_m>;
+using Ciphertext = rlwe::SymmetricRlweCiphertext<uint_m>;
+using Key = rlwe::SymmetricRlweKey<uint_m>;
+using ErrorParams = rlwe::ErrorParams<uint_m>;
+
+// Tests symmetric-key encryption scheme, including the following homomorphic
+// operations: addition, scalar multiplication by a polynomial (absorb), and
+// multiplication. Substituions are implemented in polynomial_ciphertext.h, and
+// SymmetricRlweKey::Substitute and SymmetricRlweCiphertext::PowersOfS()
+// (updated on substitution calls) are further tested in
+// polynomial_ciphertext_test.cc.
+class SymmetricRlweEncryptionTest : public ::testing::Test {
+ protected:
+  void SetUp() override {
+    ASSERT_OK_AND_ASSIGN(params_,
+                         rlwe::testing::ConstructMontgomeryIntParams());
+    ASSERT_OK_AND_ASSIGN(ntt_params_,
+                         rlwe::InitializeNttParameters<uint_m>(
+                             rlwe::testing::kLogCoeffs, params_.get()));
+    ASSERT_OK_AND_ASSIGN(
+        auto temp_error_params,
+        rlwe::ErrorParams<uint_m>::Create(rlwe::testing::kDefaultLogT,
+                                          rlwe::testing::kDefaultVariance,
+                                          params_.get(), &ntt_params_));
+    error_params_ = absl::make_unique<ErrorParams>(temp_error_params);
+  }
+
+  // Sample a random key.
+  rlwe::StatusOr<Key> SampleKey(
+      uint_m::Int variance = rlwe::testing::kDefaultVariance,
+      uint_m::Int log_t = rlwe::testing::kDefaultLogT) {
+    RLWE_ASSIGN_OR_RETURN(std::string prng_seed,
+                          rlwe::SingleThreadPrng::GenerateSeed());
+    RLWE_ASSIGN_OR_RETURN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    return Key::Sample(rlwe::testing::kLogCoeffs, variance, log_t,
+                       params_.get(), &ntt_params_, prng.get());
+  }
+
+  // Encrypt a plaintext.
+  rlwe::StatusOr<Ciphertext> Encrypt(
+      const Key& key, const std::vector<uint_m::Int>& plaintext) {
+    RLWE_ASSIGN_OR_RETURN(auto mont, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                         plaintext, params_.get()));
+    auto plaintext_ntt =
+        Polynomial::ConvertToNtt(mont, ntt_params_, params_.get());
+    RLWE_ASSIGN_OR_RETURN(std::string prng_seed,
+                          rlwe::SingleThreadPrng::GenerateSeed());
+    RLWE_ASSIGN_OR_RETURN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    return rlwe::Encrypt<uint_m>(key, plaintext_ntt, error_params_.get(),
+                                 prng.get());
+  }
+
+  std::unique_ptr<uint_m::Params> params_;
+  rlwe::NttParameters<uint_m> ntt_params_;
+  std::unique_ptr<ErrorParams> error_params_;
+};
+
+// Ensure that RemoveError works correctly on negative numbers for several
+// different values of t.
+TEST_F(SymmetricRlweEncryptionTest, RemoveErrorNegative) {
+  unsigned int seed = 0;
+
+  for (int t = 2; t < 16; t++) {
+    for (int i = 0; i < kTestingRounds; i++) {
+      // Sample a plaintext in the range (modulus/2, modulus)
+      uint_m::Int plaintext = (rand_r(&seed) % (rlwe::testing::kModulus / 2)) +
+                              rlwe::testing::kModulus / 2 + 1;
+      // Create a vector that exclusively contains the value "plaintext".
+      ASSERT_OK_AND_ASSIGN(auto m_plaintext,
+                           uint_m::ImportInt(plaintext, params_.get()));
+      std::vector<uint_m> error_and_message(rlwe::testing::kCoeffs,
+                                            m_plaintext);
+      auto result = rlwe::RemoveError<uint_m>(
+          error_and_message, params_->modulus, t, params_.get());
+
+      // Compute the expected result using signed arithmetic. Derive its
+      // negative equivalent by subtracting out testing::kModulus and taking
+      // that negative value (mod t).
+      int64_t expected = (static_cast<int64_t>(plaintext) -
+                          static_cast<int64_t>(rlwe::testing::kModulus)) %
+                         t;
+
+      // Finally, turn any negative values into their positive equivalents
+      // (mod t).
+      if (expected < 0) {
+        expected += t;
+      }
+
+      for (unsigned int j = 0; j < rlwe::testing::kCoeffs; j++) {
+        EXPECT_EQ(expected, result[j]) << t << plaintext;
+      }
+    }
+  }
+}
+
+// Ensure that RemoveError works correctly on positive numbers for several
+// different values of t.
+TEST_F(SymmetricRlweEncryptionTest, RemoveErrorPositive) {
+  unsigned int seed = 0;
+
+  for (int t = 2; t < 16; t++) {
+    for (int i = 0; i < kTestingRounds; i++) {
+      // Sample a plaintext in the range (0, modulus/2)
+      uint_m::Int plaintext = rand_r(&seed) % (rlwe::testing::kModulus / 2);
+
+      // Create a vector that exclusively contains the value "plaintext".
+      ASSERT_OK_AND_ASSIGN(auto m_plaintext,
+                           uint_m::ImportInt(plaintext, params_.get()));
+      std::vector<uint_m> error_and_message(rlwe::testing::kCoeffs,
+                                            m_plaintext);
+      auto result = rlwe::RemoveError<uint_m>(
+          error_and_message, params_->modulus, t, params_.get());
+
+      for (unsigned int j = 0; j < rlwe::testing::kCoeffs; j++) {
+        EXPECT_EQ(plaintext % t, result[j]);
+      }
+    }
+  }
+}
+
+// Ensure that the encryption scheme can decrypt its own ciphertexts.
+TEST_F(SymmetricRlweEncryptionTest, CanDecrypt) {
+  for (unsigned int i = 0; i < kTestingRounds; i++) {
+    ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+    auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+    ASSERT_OK_AND_ASSIGN(auto decrypted,
+                         rlwe::Decrypt<uint_m>(key, ciphertext));
+
+    EXPECT_EQ(plaintext, decrypted);
+  }
+}
+
+// Accessing out of bounds raises errors
+TEST_F(SymmetricRlweEncryptionTest, OutOfBoundsIndex) {
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+  ASSERT_OK(ciphertext.Component(ciphertext.Len() - 1));
+  EXPECT_THAT(ciphertext.Component(ciphertext.Len()),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("Index out of range.")));
+  EXPECT_THAT(ciphertext.Component(-1),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("Index out of range.")));
+}
+
+TEST_F(SymmetricRlweEncryptionTest, AdditivelyHomomorphic) {
+  for (unsigned int i = 0; i < kTestingRounds; i++) {
+    ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+    std::vector<uint_m::Int> plaintext1 =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    std::vector<uint_m::Int> plaintext2 =
+        rlwe::testing::SamplePlaintext<uint_m>();
+
+    ASSERT_OK_AND_ASSIGN(auto ciphertext1, Encrypt(key, plaintext1));
+    ASSERT_OK_AND_ASSIGN(auto ciphertext2, Encrypt(key, plaintext2));
+    ASSERT_OK_AND_ASSIGN(auto ciphertext_add, ciphertext1 + ciphertext2);
+    ASSERT_OK_AND_ASSIGN(auto ciphertext_sub, ciphertext1 - ciphertext2);
+
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted_add,
+                         rlwe::Decrypt<uint_m>(key, ciphertext_add));
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted_sub,
+                         rlwe::Decrypt<uint_m>(key, ciphertext_sub));
+
+    for (unsigned int j = 0; j < plaintext1.size(); j++) {
+      EXPECT_EQ((plaintext1[j] + plaintext2[j]) % rlwe::testing::kDefaultT,
+                decrypted_add[j]);
+      EXPECT_EQ((rlwe::testing::kDefaultT + plaintext1[j] - plaintext2[j]) %
+                    rlwe::testing::kDefaultT,
+                decrypted_sub[j]);
+      // Check that the error grows additively.
+      EXPECT_EQ(ciphertext_add.Error(),
+                ciphertext1.Error() + ciphertext2.Error());
+      EXPECT_EQ(ciphertext_sub.Error(),
+                ciphertext1.Error() + ciphertext2.Error());
+    }
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, AddHomomorphicallyInPlace) {
+  for (unsigned int i = 0; i < kTestingRounds; i++) {
+    ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+    std::vector<uint_m::Int> plaintext1 =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    std::vector<uint_m::Int> plaintext2 =
+        rlwe::testing::SamplePlaintext<uint_m>();
+
+    ASSERT_OK_AND_ASSIGN(auto ciphertext1_add, Encrypt(key, plaintext1));
+    ASSERT_OK_AND_ASSIGN(auto ciphertext1_sub, Encrypt(key, plaintext1));
+    ASSERT_OK_AND_ASSIGN(auto ciphertext2, Encrypt(key, plaintext2));
+    const double ciphertext1_add_error = ciphertext1_add.Error();
+    const double ciphertext1_sub_error = ciphertext1_sub.Error();
+
+    ASSERT_OK(ciphertext1_add.AddInPlace(ciphertext2));
+    ASSERT_OK(ciphertext1_sub.SubInPlace(ciphertext2));
+
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted1_add,
+                         rlwe::Decrypt<uint_m>(key, ciphertext1_add));
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted1_sub,
+                         rlwe::Decrypt<uint_m>(key, ciphertext1_sub));
+
+    for (unsigned int j = 0; j < plaintext1.size(); j++) {
+      EXPECT_EQ((plaintext1[j] + plaintext2[j]) % rlwe::testing::kDefaultT,
+                decrypted1_add[j]);
+      EXPECT_EQ((rlwe::testing::kDefaultT + plaintext1[j] - plaintext2[j]) %
+                    rlwe::testing::kDefaultT,
+                decrypted1_sub[j]);
+      // Check that the error grows additively.
+      EXPECT_EQ(ciphertext1_add.Error(),
+                ciphertext1_add_error + ciphertext2.Error());
+      EXPECT_EQ(ciphertext1_sub.Error(),
+                ciphertext1_sub_error + ciphertext2.Error());
+    }
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, AddToZero) {
+  for (unsigned int i = 0; i < kTestingRounds; i++) {
+    ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+    std::vector<uint_m::Int> plaintext =
+        rlwe::testing::SamplePlaintext<uint_m>();
+
+    Ciphertext ciphertext1(params_.get(), error_params_.get());
+    ASSERT_OK_AND_ASSIGN(auto ciphertext2, Encrypt(key, plaintext));
+    ASSERT_OK_AND_ASSIGN(auto ciphertext3, ciphertext1 + ciphertext2);
+
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                         rlwe::Decrypt<uint_m>(key, ciphertext3));
+
+    EXPECT_EQ(plaintext, decrypted);
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, Absorb) {
+  for (unsigned int i = 0; i < kTestingRounds; i++) {
+    ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+    // Create the initial plaintexts.
+    std::vector<uint_m::Int> plaintext =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(
+        auto m_plaintext,
+        rlwe::testing::ConvertToMontgomery<uint_m>(plaintext, params_.get()));
+    Polynomial plaintext_ntt =
+        Polynomial::ConvertToNtt(m_plaintext, ntt_params_, params_.get());
+    std::vector<uint_m::Int> to_absorb =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(
+        auto m_to_absorb,
+        rlwe::testing::ConvertToMontgomery<uint_m>(to_absorb, params_.get()));
+    Polynomial to_absorb_ntt =
+        Polynomial::ConvertToNtt(m_to_absorb, ntt_params_, params_.get());
+
+    // Create our expected value.
+    ASSERT_OK_AND_ASSIGN(Polynomial expected_ntt,
+                         plaintext_ntt.Mul(to_absorb_ntt, params_.get()));
+    std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+        expected_ntt.InverseNtt(ntt_params_, params_.get()), params_->modulus,
+        rlwe::testing::kDefaultT, params_.get());
+
+    // Encrypt, absorb, and decrypt.
+    ASSERT_OK_AND_ASSIGN(auto encrypt, Encrypt(key, plaintext));
+    auto ciphertext = encrypt * to_absorb_ntt;
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                         rlwe::Decrypt<uint_m>(key, ciphertext));
+
+    EXPECT_EQ(expected, decrypted);
+
+    // Check that the error is the product of an encryption and a plaintext.
+    EXPECT_EQ(ciphertext.Error(),
+              error_params_->B_encryption() * error_params_->B_plaintext());
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, AbsorbInPlace) {
+  for (unsigned int i = 0; i < kTestingRounds; i++) {
+    ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+    // Create the initial plaintexts.
+    std::vector<uint_m::Int> plaintext =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(
+        auto m_plaintext,
+        rlwe::testing::ConvertToMontgomery<uint_m>(plaintext, params_.get()));
+    Polynomial plaintext_ntt =
+        Polynomial::ConvertToNtt(m_plaintext, ntt_params_, params_.get());
+    std::vector<uint_m::Int> to_absorb =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(
+        auto m_to_absorb,
+        rlwe::testing::ConvertToMontgomery<uint_m>(to_absorb, params_.get()));
+    Polynomial to_absorb_ntt =
+        Polynomial::ConvertToNtt(m_to_absorb, ntt_params_, params_.get());
+
+    // Create our expected value.
+    ASSERT_OK_AND_ASSIGN(Polynomial expected_ntt,
+                         plaintext_ntt.Mul(to_absorb_ntt, params_.get()));
+    std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+        expected_ntt.InverseNtt(ntt_params_, params_.get()), params_->modulus,
+        rlwe::testing::kDefaultT, params_.get());
+
+    // Encrypt, absorb in place, and decrypt.
+    ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+    ciphertext.AbsorbInPlace(to_absorb_ntt);
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                         rlwe::Decrypt<uint_m>(key, ciphertext));
+
+    EXPECT_EQ(expected, decrypted);
+
+    // Check that the error is the product of an encryption and a plaintext.
+    EXPECT_EQ(ciphertext.Error(),
+              error_params_->B_encryption() * error_params_->B_plaintext());
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, AbsorbScalar) {
+  unsigned int seed = 0;
+
+  for (unsigned int i = 0; i < kTestingRounds; i++) {
+    ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+    // Create the initial plaintexts.
+    std::vector<uint_m::Int> plaintext =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(
+        auto m_plaintext,
+        rlwe::testing::ConvertToMontgomery<uint_m>(plaintext, params_.get()));
+    Polynomial plaintext_ntt =
+        Polynomial::ConvertToNtt(m_plaintext, ntt_params_, params_.get());
+    ASSERT_OK_AND_ASSIGN(
+        uint_m to_absorb,
+        uint_m::ImportInt(rand_r(&seed) % rlwe::testing::kDefaultT,
+                          params_.get()));
+
+    // Create our expected value.
+    ASSERT_OK_AND_ASSIGN(Polynomial expected_ntt,
+                         plaintext_ntt.Mul(to_absorb, params_.get()));
+    std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+        expected_ntt.InverseNtt(ntt_params_, params_.get()), params_->modulus,
+        rlwe::testing::kDefaultT, params_.get());
+
+    // Encrypt, absorb, and decrypt.
+    ASSERT_OK_AND_ASSIGN(auto encrypt, Encrypt(key, plaintext));
+    auto ciphertext = encrypt * to_absorb;
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                         rlwe::Decrypt<uint_m>(key, ciphertext));
+
+    EXPECT_EQ(expected, decrypted);
+    // Expect the error to grow multiplicatively.
+    EXPECT_EQ(ciphertext.Error(), error_params_->B_encryption() *
+                                      to_absorb.ExportInt(params_.get()));
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, AbsorbScalarInPlace) {
+  unsigned int seed = 0;
+
+  for (unsigned int i = 0; i < kTestingRounds; i++) {
+    ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+    // Create the initial plaintexts.
+    std::vector<uint_m::Int> plaintext =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(
+        auto m_plaintext,
+        rlwe::testing::ConvertToMontgomery<uint_m>(plaintext, params_.get()));
+    Polynomial plaintext_ntt =
+        Polynomial::ConvertToNtt(m_plaintext, ntt_params_, params_.get());
+    ASSERT_OK_AND_ASSIGN(
+        uint_m to_absorb,
+        uint_m::ImportInt(rand_r(&seed) % rlwe::testing::kDefaultT,
+                          params_.get()));
+
+    // Create our expected value.
+    ASSERT_OK_AND_ASSIGN(Polynomial expected_ntt,
+                         plaintext_ntt.Mul(to_absorb, params_.get()));
+    std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+        expected_ntt.InverseNtt(ntt_params_, params_.get()), params_->modulus,
+        rlwe::testing::kDefaultT, params_.get());
+
+    // Encrypt, absorb, and decrypt.
+    ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+    ciphertext.AbsorbInPlace(to_absorb);
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                         rlwe::Decrypt<uint_m>(key, ciphertext));
+
+    EXPECT_EQ(expected, decrypted);
+    // Expect the error to grow multiplicatively.
+    EXPECT_EQ(ciphertext.Error(), error_params_->B_encryption() *
+                                      to_absorb.ExportInt(params_.get()));
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, EmptyCipherMultiplication) {
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+  // Create a plaintext
+  std::vector<uint_m::Int> plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+
+  // Encrypt, multiply
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1, Encrypt(key, plaintext));
+
+  // empty cipher
+  std::vector<Polynomial> c;
+  Ciphertext ciphertext2(c, 1, 0, params_.get(), error_params_.get());
+
+  EXPECT_THAT(
+      ciphertext1 * ciphertext2,
+      StatusIs(::absl::StatusCode::kInvalidArgument,
+               HasSubstr("Cannot multiply using an empty ciphertext.")));
+  EXPECT_THAT(
+      ciphertext2 * ciphertext1,
+      StatusIs(::absl::StatusCode::kInvalidArgument,
+               HasSubstr("Cannot multiply using an empty ciphertext.")));
+
+  c.push_back(Polynomial());
+  Ciphertext ciphertext3(c, 1, 0, params_.get(), error_params_.get());
+  EXPECT_THAT(
+      ciphertext1 * ciphertext3,
+      StatusIs(
+          ::absl::StatusCode::kInvalidArgument,
+          HasSubstr(
+              "Cannot multiply using an empty polynomial in the ciphertext.")));
+
+  EXPECT_THAT(
+      ciphertext3 * ciphertext1,
+      StatusIs(
+          ::absl::StatusCode::kInvalidArgument,
+          HasSubstr(
+              "Cannot multiply using an empty polynomial in the ciphertext.")));
+}
+
+TEST_F(SymmetricRlweEncryptionTest, MultiplicativelyHomomorphic) {
+  for (int i = 0; i < kTestingRounds; i++) {
+    // Since error builds up *very* quickly for homomorphic encryption, use
+    // an alternate value for the variance.
+    uint_m::Int variance = 4;
+
+    ASSERT_OK_AND_ASSIGN(auto key, SampleKey(variance));
+
+    // Create the initial plaintexts.
+    std::vector<uint_m::Int> plaintext1 =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(auto mp1, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                       plaintext1, params_.get()));
+    Polynomial plaintext1_ntt =
+        Polynomial::ConvertToNtt(mp1, ntt_params_, params_.get());
+    std::vector<uint_m::Int> plaintext2 =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(auto mp2, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                       plaintext2, params_.get()));
+    Polynomial plaintext2_ntt =
+        Polynomial::ConvertToNtt(mp2, ntt_params_, params_.get());
+
+    // Encrypt, multiply, and decrypt.
+    ASSERT_OK_AND_ASSIGN(auto ciphertext1, Encrypt(key, plaintext1));
+    ASSERT_OK_AND_ASSIGN(auto ciphertext2, Encrypt(key, plaintext2));
+    ASSERT_OK_AND_ASSIGN(auto product, ciphertext1* ciphertext2);
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                         rlwe::Decrypt<uint_m>(key, product));
+
+    // Create the polynomial we expect.
+    ASSERT_OK_AND_ASSIGN(Polynomial expected_ntt,
+                         plaintext1_ntt.Mul(plaintext2_ntt, params_.get()));
+    std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+        expected_ntt.InverseNtt(ntt_params_, params_.get()), params_->modulus,
+        rlwe::testing::kDefaultT, params_.get());
+
+    EXPECT_EQ(expected, decrypted);
+    // Expect that the error grows multiplicatively.
+    EXPECT_EQ(product.Error(), ciphertext1.Error() * ciphertext2.Error());
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, ManyHomomorphicAdds) {
+  // Sample a starting plaintext and ciphertext and create aggregators;
+  std::vector<uint_m::Int> plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+  std::vector<uint_m::Int> plaintext_sum = plaintext;
+  ASSERT_OK_AND_ASSIGN(Key key, SampleKey());
+  ASSERT_OK_AND_ASSIGN(auto ciphertext_sum, Encrypt(key, plaintext));
+
+  // Sample a fresh plaintext.
+  plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+
+  int num_adds = 50;
+  // Perform 50 homomorphic ciphertext additions with the fresh ciphertext.
+  for (int j = 0; j < num_adds; j++) {
+    // Add the new plaintext to the old plaintext.
+    for (unsigned int k = 0; k < rlwe::testing::kCoeffs; k++) {
+      plaintext_sum[k] += plaintext[k];
+      plaintext_sum[k] %= rlwe::testing::kDefaultT;
+    }
+
+    // Add the new ciphertext to the old ciphertext.
+    ASSERT_OK_AND_ASSIGN(ciphertext_sum, ciphertext_sum + ciphertext);
+  }
+
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, ciphertext_sum));
+
+  // Ensure the values are the same.
+  EXPECT_EQ(plaintext_sum, decrypted);
+  // Expect that the ciphertext sum's error grows by the additively by the
+  // ciphertext's error.
+  EXPECT_GT(ciphertext_sum.Error(), num_adds * ciphertext.Error());
+}
+
+TEST_F(SymmetricRlweEncryptionTest, ExceedMaxNumCoeffDeserializeCiphertext) {
+  int num_coeffs = rlwe::kMaxNumCoeffs + 1;
+  std::vector<Polynomial> c;
+  for (int i = 0; i < num_coeffs; i++) {
+    c.push_back(Polynomial(1, params_.get()));
+  }
+  Ciphertext ciphertext(c, 1, 0, params_.get(), error_params_.get());
+  // Serialize and deserialize.
+  ASSERT_OK_AND_ASSIGN(rlwe::SerializedSymmetricRlweCiphertext serialized,
+                       ciphertext.Serialize());
+
+  EXPECT_THAT(
+      Ciphertext::Deserialize(serialized, params_.get(), error_params_.get()),
+      StatusIs(::absl::StatusCode::kInvalidArgument,
+               HasSubstr(absl::StrCat(
+                   "Number of coefficients, ", serialized.c_size(),
+                   ", cannot be more than ", rlwe::kMaxNumCoeffs, "."))));
+}
+
+TEST_F(SymmetricRlweEncryptionTest, SerializeCiphertext) {
+  for (int i = 0; i < kTestingRounds; i++) {
+    ASSERT_OK_AND_ASSIGN(Key key, SampleKey());
+    std::vector<uint_m::Int> plaintext =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+
+    // Serialize and deserialize.
+    ASSERT_OK_AND_ASSIGN(rlwe::SerializedSymmetricRlweCiphertext serialized,
+                         ciphertext.Serialize());
+    ASSERT_OK_AND_ASSIGN(auto deserialized,
+                         Ciphertext::Deserialize(serialized, params_.get(),
+                                                 error_params_.get()));
+
+    // Decrypt and check equality.
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> deserialized_plaintext,
+                         rlwe::Decrypt<uint_m>(key, deserialized));
+
+    EXPECT_EQ(plaintext, deserialized_plaintext);
+    // Check that the error stays the same.
+    EXPECT_EQ(deserialized.Error(), ciphertext.Error());
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, SerializeKey) {
+  for (int i = 0; i < kTestingRounds; i++) {
+    ASSERT_OK_AND_ASSIGN(Key original_key, SampleKey());
+    std::vector<uint_m::Int> plaintext =
+        rlwe::testing::SamplePlaintext<uint_m>();
+
+    // Serialize key, deserialize, and ensure the deserialized key is
+    // interoperable with the original key.
+    ASSERT_OK_AND_ASSIGN(rlwe::SerializedNttPolynomial serialized,
+                         original_key.Serialize());
+    ASSERT_OK_AND_ASSIGN(
+        Key deserialized_key,
+        Key::Deserialize(rlwe::testing::kDefaultVariance,
+                         rlwe::testing::kDefaultLogT, serialized, params_.get(),
+                         &ntt_params_));
+
+    // Test that a ciphertext encrypted with the original key decrypts under the
+    // deserialized key.
+    ASSERT_OK_AND_ASSIGN(auto ekey1, Encrypt(original_key, plaintext));
+    ASSERT_OK_AND_ASSIGN(auto dkey1,
+                         rlwe::Decrypt<uint_m>(deserialized_key, ekey1));
+    EXPECT_EQ(dkey1, plaintext);
+
+    // Test that a ciphertext encrypted with the deserialized key decrypts under
+    // the original key.
+    ASSERT_OK_AND_ASSIGN(auto ekey2, Encrypt(deserialized_key, plaintext));
+    ASSERT_OK_AND_ASSIGN(auto dkey2,
+                         rlwe::Decrypt<uint_m>(original_key, ekey2));
+    EXPECT_EQ(dkey2, plaintext);
+  }
+}
+
+// Try an ill-formed key modulus switching
+TEST_F(SymmetricRlweEncryptionTest, FailingKeyModulusReduction) {
+  // p is the original modulus and q is the new modulus we want to switch to
+  // t is the bound for the coefficients of the message for decryption to work
+  // typically, p % t must be equal to q % t and both p, q are 1 mod 2*n
+  // for failure, we need to find q such that p % t != q % t and q = 1 mod 2*n
+  // let t = 2*n + 1, and q = p + 2*n, and we get both properties
+  const rlwe::Uint64 p = rlwe::testing::kModulus;
+  const rlwe::Uint64 two_times_n = 1 << (rlwe::testing::kLogCoeffs + 1);
+  const rlwe::Uint64 q = p + two_times_n;
+
+  ASSERT_OK_AND_ASSIGN(auto params_q, uint_m::Params::Create(q));
+  ASSERT_OK_AND_ASSIGN(auto ntt_params_q,
+                       rlwe::InitializeNttParameters<uint_m>(
+                           rlwe::testing::kLogCoeffs, params_q.get()));
+  // arguments to sample key
+  // rlwe::testing::kLogCoeffs, variance, log_t, mod_params, ntt_params
+  // since t = 2*n + 1, we just set the argument to log(2n) = log(n) + 1
+  // (the "+ 1" is handled by the function itself)
+  ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                       rlwe::SingleThreadPrng::GenerateSeed());
+  ASSERT_OK_AND_ASSIGN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+  ASSERT_OK_AND_ASSIGN(
+      auto key_q,
+      rlwe::SymmetricRlweKey<uint_m>::Sample(
+          rlwe::testing::kLogCoeffs, rlwe::testing::kDefaultVariance,
+          rlwe::testing::kLogCoeffs + 1, params_q.get(), &ntt_params_q,
+          prng.get()));
+
+  EXPECT_THAT(key_q.SwitchModulus<uint_m>(params_.get(), &ntt_params_),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("p % t != q % t")));
+}
+
+// Try an ill-formed ciphertext modulus switching
+TEST_F(SymmetricRlweEncryptionTest, FailingCiphertextModulusReduction) {
+  // sample ciphertext under modulus p
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+
+  // p is the original modulus and q is the new modulus we want to switch to
+  // t is the bound for the coefficients of the message for decryption to work
+  // typically, p % t must be equal to q % t and both p, q are 1 mod 2*n
+  // for failure, we need to find q such that p % t != q % t and q = 1 mod 2*n
+  // let t = 2*n + 1, and q = p - 2*n, and we get both properties
+  rlwe::Uint64 p = rlwe::testing::kModulus;
+  rlwe::Uint64 two_times_n = 1 << (rlwe::testing::kLogCoeffs + 1);
+  rlwe::Uint64 q = p - two_times_n;
+
+  // create params under mod q
+  auto params_q = uint_m::Params::Create(q).ValueOrDie();
+  ASSERT_OK_AND_ASSIGN(auto ntt_params_q,
+                       rlwe::InitializeNttParameters<uint_m>(
+                           rlwe::testing::kLogCoeffs, params_q.get()));
+  ASSERT_OK_AND_ASSIGN(auto error_params_q,
+                       ErrorParams::Create(rlwe::testing::kLogCoeffs,
+                                           rlwe::testing::kDefaultVariance,
+                                           params_q.get(), &ntt_params_q));
+  auto error_params_q_ = absl::make_unique<ErrorParams>(error_params_q);
+
+  EXPECT_THAT(ciphertext.SwitchModulus<uint_m>(
+                  &ntt_params_, params_q.get(), &ntt_params_q,
+                  error_params_q_.get(), two_times_n + 1),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("p % t != q % t")));
+}
+
+// Test modulus switching.
+TEST_F(SymmetricRlweEncryptionTest, ModulusReduction) {
+  // 29-bit modulus.
+  ASSERT_OK_AND_ASSIGN(auto params29, uint_m::Params::Create(rlwe::kModulus29));
+  ASSERT_OK_AND_ASSIGN(auto ntt_params29,
+                       rlwe::InitializeNttParameters<uint_m>(
+                           rlwe::testing::kLogCoeffs, params29.get()));
+  ASSERT_OK_AND_ASSIGN(auto error_params29,
+                       ErrorParams::Create(rlwe::testing::kDefaultLogT,
+                                           rlwe::testing::kDefaultVariance,
+                                           params29.get(), &ntt_params29));
+
+  for (int i = 0; i < kTestingRounds; i++) {
+    // Create a key.
+    ASSERT_OK_AND_ASSIGN(std::string sample_prng_seed,
+                         rlwe::SingleThreadPrng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(auto sample_prng,
+                         rlwe::SingleThreadPrng::Create(sample_prng_seed));
+    ASSERT_OK_AND_ASSIGN(
+        auto key29,
+        rlwe::SymmetricRlweKey<uint_m>::Sample(
+            rlwe::testing::kLogCoeffs, rlwe::testing::kDefaultVariance,
+            rlwe::testing::kDefaultLogT, params29.get(), &ntt_params29,
+            sample_prng.get()));
+    ASSERT_OK_AND_ASSIGN(
+        auto key, key29.SwitchModulus<uint_m>(params_.get(), &ntt_params_));
+
+    // Create a plaintext.
+    std::vector<uint_m::Int> plaintext =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(
+        auto plaintext_montgomery,
+        rlwe::testing::ConvertToMontgomery<uint_m>(plaintext, params29.get()));
+
+    // Encrypt.
+    auto plaintext_ntt = rlwe::Polynomial<uint_m>::ConvertToNtt(
+        plaintext_montgomery, ntt_params29, params29.get());
+    ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                         rlwe::SingleThreadPrng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    ASSERT_OK_AND_ASSIGN(auto ciphertext29,
+                         rlwe::Encrypt<uint_m>(key29, plaintext_ntt,
+                                               &error_params29, prng.get()));
+
+    // Switch moduli.
+    ASSERT_OK_AND_ASSIGN(auto ciphertext,
+                         ciphertext29.SwitchModulus<uint_m>(
+                             &ntt_params29, params_.get(), &ntt_params_,
+                             error_params_.get(), rlwe::testing::kDefaultT));
+
+    // Decrypt in the smaller modulus.
+    ASSERT_OK_AND_ASSIGN(auto decrypted,
+                         rlwe::Decrypt<uint_m>(key, ciphertext));
+
+    EXPECT_EQ(plaintext, decrypted);
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, ModulusReductionOnlyKeySwitch) {
+  ASSERT_OK_AND_ASSIGN(auto params29, uint_m::Params::Create(rlwe::kModulus29));
+  ASSERT_OK_AND_ASSIGN(auto ntt_params29,
+                       rlwe::InitializeNttParameters<uint_m>(
+                           rlwe::testing::kLogCoeffs, params29.get()));
+
+  for (int i = 0; i < kTestingRounds; i++) {
+    // Create a key.
+    ASSERT_OK_AND_ASSIGN(std::string sample_prng_seed,
+                         rlwe::SingleThreadPrng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(auto sample_prng,
+                         rlwe::SingleThreadPrng::Create(sample_prng_seed));
+    ASSERT_OK_AND_ASSIGN(
+        auto key29,
+        rlwe::SymmetricRlweKey<uint_m>::Sample(
+            rlwe::testing::kLogCoeffs, rlwe::testing::kDefaultVariance,
+            rlwe::testing::kDefaultLogT, params29.get(), &ntt_params29,
+            sample_prng.get()));
+    ASSERT_OK_AND_ASSIGN(
+        auto key, key29.SwitchModulus<uint_m>(params_.get(), &ntt_params_));
+
+    // Create a plaintext.
+    std::vector<uint_m::Int> plaintext =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(
+        auto plaintext_montgomery,
+        rlwe::testing::ConvertToMontgomery<uint_m>(plaintext, params_.get()));
+
+    // Encrypt.
+    auto plaintext_ntt = rlwe::Polynomial<uint_m>::ConvertToNtt(
+        plaintext_montgomery, ntt_params_, params_.get());
+    ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                         rlwe::SingleThreadPrng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    ASSERT_OK_AND_ASSIGN(auto ciphertext, rlwe::Encrypt<uint_m>(
+                                              key, plaintext_ntt,
+                                              error_params_.get(), prng.get()));
+
+    ASSERT_OK_AND_ASSIGN(auto decrypted,
+                         rlwe::Decrypt<uint_m>(key, ciphertext));
+
+    EXPECT_EQ(plaintext, decrypted);
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, SerializeModulusSwitchedKey) {
+  // 29-bit modulus.
+  ASSERT_OK_AND_ASSIGN(auto params29, uint_m::Params::Create(rlwe::kModulus29));
+  ASSERT_OK_AND_ASSIGN(auto ntt_params29,
+                       rlwe::InitializeNttParameters<uint_m>(
+                           rlwe::testing::kLogCoeffs, params29.get()));
+  ASSERT_OK_AND_ASSIGN(auto error_params29,
+                       ErrorParams::Create(rlwe::testing::kDefaultLogT,
+                                           rlwe::testing::kDefaultVariance,
+                                           params29.get(), &ntt_params29));
+
+  for (int i = 0; i < kTestingRounds; i++) {
+    // Create a key.
+    ASSERT_OK_AND_ASSIGN(std::string sample_prng_seed,
+                         rlwe::SingleThreadPrng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(auto sample_prng,
+                         rlwe::SingleThreadPrng::Create(sample_prng_seed));
+    ASSERT_OK_AND_ASSIGN(
+        auto key29,
+        rlwe::SymmetricRlweKey<uint_m>::Sample(
+            rlwe::testing::kLogCoeffs, rlwe::testing::kDefaultVariance,
+            rlwe::testing::kDefaultLogT, params29.get(), &ntt_params29,
+            sample_prng.get()));
+    ASSERT_OK_AND_ASSIGN(
+        auto key, key29.SwitchModulus<uint_m>(params_.get(), &ntt_params_));
+
+    // Create a plaintext.
+    std::vector<uint_m::Int> plaintext =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(
+        auto plaintext_montgomery,
+        rlwe::testing::ConvertToMontgomery<uint_m>(plaintext, params29.get()));
+
+    // Encrypt.
+    auto plaintext_ntt = rlwe::Polynomial<uint_m>::ConvertToNtt(
+        plaintext_montgomery, ntt_params29, params29.get());
+    ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                         rlwe::SingleThreadPrng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    ASSERT_OK_AND_ASSIGN(auto ciphertext29,
+                         rlwe::Encrypt<uint_m>(key29, plaintext_ntt,
+                                               &error_params29, prng.get()));
+
+    // Serialize and deserialize key.
+    ASSERT_OK_AND_ASSIGN(auto serialized_key, key.Serialize());
+    ASSERT_OK_AND_ASSIGN(
+        auto deserialized_key,
+        rlwe::SymmetricRlweKey<uint_m>::Deserialize(
+            rlwe::testing::kDefaultVariance, rlwe::testing::kDefaultLogT,
+            serialized_key, params_.get(), params29.get(), &ntt_params_));
+
+    // Switch moduli.
+    ASSERT_OK_AND_ASSIGN(auto ciphertext,
+                         ciphertext29.SwitchModulus<uint_m>(
+                             &ntt_params29, params_.get(), &ntt_params_,
+                             error_params_.get(), rlwe::testing::kDefaultT));
+
+    // Decrypt in the smaller modulus.
+    ASSERT_OK_AND_ASSIGN(auto decrypted,
+                         rlwe::Decrypt<uint_m>(deserialized_key, ciphertext));
+
+    EXPECT_EQ(plaintext, decrypted);
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, ModulusSwitchingReducesLargeError) {
+  // 29-bit modulus.
+  ASSERT_OK_AND_ASSIGN(auto params29, uint_m::Params::Create(rlwe::kModulus29));
+  ASSERT_OK_AND_ASSIGN(auto ntt_params29,
+                       rlwe::InitializeNttParameters<uint_m>(
+                           rlwe::testing::kLogCoeffs, params29.get()));
+  ASSERT_OK_AND_ASSIGN(auto error_params29,
+                       ErrorParams::Create(rlwe::testing::kDefaultLogT,
+                                           rlwe::testing::kDefaultVariance,
+                                           params29.get(), &ntt_params29));
+
+  for (int i = 0; i < kTestingRounds; i++) {
+    // Create a key.
+    ASSERT_OK_AND_ASSIGN(std::string sample_prng_seed,
+                         rlwe::SingleThreadPrng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(auto sample_prng,
+                         rlwe::SingleThreadPrng::Create(sample_prng_seed));
+    ASSERT_OK_AND_ASSIGN(
+        auto key29,
+        rlwe::SymmetricRlweKey<uint_m>::Sample(
+            rlwe::testing::kLogCoeffs, rlwe::testing::kDefaultVariance,
+            rlwe::testing::kDefaultLogT, params29.get(), &ntt_params29,
+            sample_prng.get()));
+    ASSERT_OK_AND_ASSIGN(
+        auto key, key29.SwitchModulus<uint_m>(params_.get(), &ntt_params_));
+
+    // Create a plaintext.
+    std::vector<uint_m::Int> plaintext =
+        rlwe::testing::SamplePlaintext<uint_m>();
+    ASSERT_OK_AND_ASSIGN(
+        auto plaintext_montgomery,
+        rlwe::testing::ConvertToMontgomery<uint_m>(plaintext, params29.get()));
+
+    // Encrypt and square ciphertext.
+    auto plaintext_ntt = rlwe::Polynomial<uint_m>::ConvertToNtt(
+        plaintext_montgomery, ntt_params29, params29.get());
+    ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                         rlwe::SingleThreadPrng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    ASSERT_OK_AND_ASSIGN(auto ciphertext29,
+                         rlwe::Encrypt<uint_m>(key29, plaintext_ntt,
+                                               &error_params29, prng.get()));
+    ASSERT_OK_AND_ASSIGN(auto squared29, ciphertext29* ciphertext29);
+
+    // Switch moduli.
+    ASSERT_OK_AND_ASSIGN(auto ciphertext,
+                         squared29.SwitchModulus<uint_m>(
+                             &ntt_params29, params_.get(), &ntt_params_,
+                             error_params_.get(), rlwe::testing::kDefaultT));
+
+    // Decrypt in the smaller modulus.
+    ASSERT_OK_AND_ASSIGN(auto decrypted,
+                         rlwe::Decrypt<uint_m>(key, ciphertext));
+
+    // Expect that the error reduces after a modulus switch when the error is
+    // large.
+    EXPECT_LT(ciphertext.Error(), squared29.Error());
+    // But that the error doesn't reduce when the error is small.
+    EXPECT_GT(ciphertext.Error(), ciphertext29.Error());
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, OperationsFailOnMismatchedPowersOfS) {
+  // Cannot perform operations between ciphertexts encrypted under different
+  // powers of s.
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+  std::vector<uint_m::Int> plaintext1 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+  ASSERT_OK_AND_ASSIGN(auto m1, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                    plaintext1, params_.get()));
+  auto plaintext1_ntt =
+      rlwe::Polynomial<uint_m>::ConvertToNtt(m1, ntt_params_, params_.get());
+  std::vector<uint_m::Int> plaintext2 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+
+  auto ciphertext1 =
+      Ciphertext({plaintext1_ntt}, 1, error_params_->B_encryption(),
+                 params_.get(), error_params_.get());
+  auto ciphertext2 =
+      Ciphertext({plaintext1_ntt}, 2, error_params_->B_encryption(),
+                 params_.get(), error_params_.get());
+  EXPECT_THAT(ciphertext1 + ciphertext2,
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("must be encrypted with the same key")));
+  EXPECT_THAT(ciphertext1 * ciphertext2,
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("must be encrypted with the same key")));
+}
+
+TEST_F(SymmetricRlweEncryptionTest, AddsAndMultPreservePowerOfS) {
+  // Verifies that the power of S changes as expected in adds / mults.
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+  std::vector<uint_m::Int> plaintext1 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+  ASSERT_OK_AND_ASSIGN(auto m1, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                    plaintext1, params_.get()));
+  auto plaintext1_ntt =
+      rlwe::Polynomial<uint_m>::ConvertToNtt(m1, ntt_params_, params_.get());
+  std::vector<uint_m::Int> plaintext2 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+
+  auto ciphertext1 =
+      Ciphertext({plaintext1_ntt}, 2, error_params_->B_encryption(),
+                 params_.get(), error_params_.get());
+  auto ciphertext2 =
+      Ciphertext({plaintext1_ntt}, 2, error_params_->B_encryption(),
+                 params_.get(), error_params_.get());
+
+  EXPECT_EQ(ciphertext1.PowerOfS(), 2);
+  EXPECT_EQ(ciphertext2.PowerOfS(), 2);
+  ASSERT_OK_AND_ASSIGN(auto sum, ciphertext1 + ciphertext2);
+  EXPECT_EQ(sum.PowerOfS(), 2);
+  ASSERT_OK_AND_ASSIGN(auto prod, ciphertext1* ciphertext2);
+  EXPECT_EQ(prod.PowerOfS(), 2);
+}
+
+TEST_F(SymmetricRlweEncryptionTest, Substitutes) {
+  // Tests substitutions of the form 2^k + 1.
+  for (int k = 1; k < rlwe::testing::kLogCoeffs; k++) {
+    int substitution_power = (1 << k) + 1;
+    ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+    auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+
+    // Create the expected polynomial output by substituting the plaintext.
+    ASSERT_OK_AND_ASSIGN(
+        auto m_plaintext,
+        rlwe::testing::ConvertToMontgomery<uint_m>(plaintext, params_.get()));
+    auto plaintext_ntt = rlwe::Polynomial<uint_m>::ConvertToNtt(
+        m_plaintext, ntt_params_, params_.get());
+    ASSERT_OK_AND_ASSIGN(auto expected_ntt,
+                         plaintext_ntt.Substitute(substitution_power,
+                                                  ntt_params_, params_.get()));
+    std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+        expected_ntt.InverseNtt(ntt_params_, params_.get()), params_->modulus,
+        rlwe::testing::kDefaultT, params_.get());
+
+    // Encrypt and substitute the ciphertext. Decrypt with a substituted key.
+    ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+    ASSERT_OK_AND_ASSIGN(
+        auto substituted,
+        ciphertext.Substitute(substitution_power, ntt_params_));
+    ASSERT_OK_AND_ASSIGN(auto key_sub, key.Substitute(substitution_power));
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                         rlwe::Decrypt<uint_m>(key_sub, substituted));
+
+    EXPECT_EQ(decrypted, expected);
+    EXPECT_EQ(substituted.PowerOfS(), substitution_power);
+    EXPECT_EQ(substituted.Error(), ciphertext.Error());
+  }
+}
+
+TEST_F(SymmetricRlweEncryptionTest, SubstitutionFailsOnEvenPower) {
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+
+  ASSERT_OK_AND_ASSIGN(auto enc, Encrypt(key, plaintext));
+  EXPECT_THAT(enc.Substitute(2, ntt_params_),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("power must be a non-negative odd integer")));
+}
+
+TEST_F(SymmetricRlweEncryptionTest, PowerOfSUpdatedAfterRepeatedSubs) {
+  int substitution_power = 5;
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+
+  // Encrypt and substitute the ciphertext. Decrypt with a substituted key.
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2,
+                       ciphertext1.Substitute(substitution_power, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext3,
+                       ciphertext2.Substitute(substitution_power, ntt_params_));
+  EXPECT_EQ(ciphertext3.PowerOfS(),
+            (substitution_power * substitution_power) % (2 * key.Len()));
+}
+
+TEST_F(SymmetricRlweEncryptionTest, PowersOfSMustMatchOnOperations) {
+  int substitution_power = 5;
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+  std::vector<uint_m::Int> plaintext1 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+  std::vector<uint_m::Int> plaintext2 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1, Encrypt(key, plaintext1));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2, Encrypt(key, plaintext2));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2_sub,
+                       ciphertext2.Substitute(substitution_power, ntt_params_));
+
+  EXPECT_THAT(ciphertext1 + ciphertext2_sub,
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("must be encrypted with the same key")));
+  EXPECT_THAT(ciphertext1 * ciphertext2_sub,
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("must be encrypted with the same key")));
+}
+
+TEST_F(SymmetricRlweEncryptionTest, NullKeyHasValueZero) {
+  Polynomial zero(1 << rlwe::testing::kLogCoeffs, params_.get());
+
+  ASSERT_OK_AND_ASSIGN(
+      auto null_key,
+      Key::NullKey(rlwe::testing::kLogCoeffs, rlwe::testing::kDefaultVariance,
+                   rlwe::testing::kDefaultLogT, params_.get(), &ntt_params_));
+
+  EXPECT_THAT(zero, Eq(null_key.Key()));
+}
+
+TEST_F(SymmetricRlweEncryptionTest, AddAndSubKeys) {
+  ASSERT_OK_AND_ASSIGN(auto key_1, SampleKey());
+  ASSERT_OK_AND_ASSIGN(auto key_2, SampleKey());
+
+  ASSERT_OK_AND_ASSIGN(auto key_3, key_1.Add(key_2));
+  ASSERT_OK_AND_ASSIGN(auto key_4, key_1.Sub(key_2));
+
+  ASSERT_OK_AND_ASSIGN(Polynomial poly_3,
+                       key_1.Key().Add(key_2.Key(), params_.get()));
+  ASSERT_OK_AND_ASSIGN(Polynomial poly_4,
+                       key_1.Key().Sub(key_2.Key(), params_.get()));
+
+  EXPECT_THAT(key_3.Key(), Eq(poly_3));
+  EXPECT_THAT(key_4.Key(), Eq(poly_4));
+}
+
+TEST_F(SymmetricRlweEncryptionTest, EncryptAndDecryptWithAddAndSubKeys) {
+  ASSERT_OK_AND_ASSIGN(auto key_1, SampleKey());
+  ASSERT_OK_AND_ASSIGN(auto key_2, SampleKey());
+  ASSERT_OK_AND_ASSIGN(auto add_keys, key_1.Add(key_2));
+  ASSERT_OK_AND_ASSIGN(auto sub_keys, key_1.Sub(key_2));
+  std::vector<uint_m::Int> plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+
+  ASSERT_OK_AND_ASSIGN(auto add_ciphertext, Encrypt(add_keys, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto sub_ciphertext, Encrypt(sub_keys, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto decrypted_add_ciphertext,
+                       rlwe::Decrypt(add_keys, add_ciphertext));
+  ASSERT_OK_AND_ASSIGN(auto decrypted_sub_ciphertext,
+                       rlwe::Decrypt(sub_keys, sub_ciphertext));
+
+  EXPECT_EQ(plaintext, decrypted_add_ciphertext);
+  EXPECT_EQ(plaintext, decrypted_sub_ciphertext);
+}
+
+TEST_F(SymmetricRlweEncryptionTest, IsKeyHomomorphic) {
+  ASSERT_OK_AND_ASSIGN(auto prng_seed, rlwe::SingleThreadPrng::GenerateSeed());
+  ASSERT_OK_AND_ASSIGN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+  // Generate the keys.
+  ASSERT_OK_AND_ASSIGN(auto key_1, SampleKey());
+  ASSERT_OK_AND_ASSIGN(auto key_2, SampleKey());
+  // Generate the plaintexts.
+  std::vector<uint_m::Int> plaintext_1 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+  std::vector<uint_m::Int> plaintext_2 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+  ASSERT_OK_AND_ASSIGN(
+      auto plaintext_mont_1,
+      rlwe::testing::ConvertToMontgomery<uint_m>(plaintext_1, params_.get()));
+  ASSERT_OK_AND_ASSIGN(
+      auto plaintext_mont_2,
+      rlwe::testing::ConvertToMontgomery<uint_m>(plaintext_2, params_.get()));
+  auto poly_1 =
+      Polynomial::ConvertToNtt(plaintext_mont_1, ntt_params_, params_.get());
+  auto poly_2 =
+      Polynomial::ConvertToNtt(plaintext_mont_2, ntt_params_, params_.get());
+  // Compute the expected plaintexts.
+  std::vector<uint_m::Int> add_plaintext = plaintext_1;
+  std::vector<uint_m::Int> sub_plaintext = plaintext_2;
+  std::transform(plaintext_1.begin(), plaintext_1.end(), plaintext_2.begin(),
+                 add_plaintext.begin(),
+                 [](uint_m::Int u, uint_m::Int v) -> uint_m::Int {
+                   return (u + v) % rlwe::testing::kDefaultT;
+                 });
+  std::transform(
+      plaintext_1.begin(), plaintext_1.end(), plaintext_2.begin(),
+      sub_plaintext.begin(), [](uint_m::Int u, uint_m::Int v) -> uint_m::Int {
+        return (rlwe::testing::kDefaultT + u - v) % rlwe::testing::kDefaultT;
+      });
+
+  // Sample the "a" to be used in both ciphertexts.
+  ASSERT_OK_AND_ASSIGN(
+      auto a, rlwe::SamplePolynomialFromPrng<uint_m>(key_1.Len(), prng.get(),
+                                                     key_1.ModulusParams()));
+  // Encrypt with the same a and different keys
+  ASSERT_OK_AND_ASSIGN(auto poly_ciphertext_1,
+                       rlwe::internal::Encrypt(key_1, poly_1, a, prng.get()));
+  ASSERT_OK_AND_ASSIGN(auto poly_ciphertext_2,
+                       rlwe::internal::Encrypt(key_2, poly_2, a, prng.get()));
+  // Add and Substract the ciphertexts
+  ASSERT_OK_AND_ASSIGN(auto add_poly_ciphertext,
+                       poly_ciphertext_1.Add(poly_ciphertext_2, params_.get()));
+  ASSERT_OK_AND_ASSIGN(auto sub_poly_ciphertext,
+                       poly_ciphertext_1.Sub(poly_ciphertext_2, params_.get()));
+  // The resulting ciphertexts should be decryptable unded the added (resp.
+  // substracted) keys.
+  ASSERT_OK_AND_ASSIGN(auto add_keys, key_1.Add(key_2));
+  ASSERT_OK_AND_ASSIGN(auto sub_keys, key_1.Sub(key_2));
+  ASSERT_OK_AND_ASSIGN(
+      auto decrypted_add_ciphertext,
+      rlwe::Decrypt(add_keys,
+                    Ciphertext({add_poly_ciphertext, a.Negate(params_.get())},
+                               1, error_params_->B_encryption(), params_.get(),
+                               error_params_.get())));
+  ASSERT_OK_AND_ASSIGN(
+      auto decrypted_sub_ciphertext,
+      rlwe::Decrypt(sub_keys,
+                    Ciphertext({sub_poly_ciphertext, a.Negate(params_.get())},
+                               1, error_params_->B_encryption(), params_.get(),
+                               error_params_.get())));
+
+  EXPECT_EQ(add_plaintext, decrypted_add_ciphertext);
+  EXPECT_EQ(sub_plaintext, decrypted_sub_ciphertext);
+}
+
+TEST_F(SymmetricRlweEncryptionTest, CannotAddOrSubIncompatibleKeys) {
+  ASSERT_OK_AND_ASSIGN(auto key_1, SampleKey(rlwe::testing::kDefaultVariance,
+                                             rlwe::testing::kDefaultLogT));
+  ASSERT_OK_AND_ASSIGN(auto key_2,
+                       SampleKey(rlwe::testing::kDefaultVariance + 1,
+                                 rlwe::testing::kDefaultLogT));
+  ASSERT_OK_AND_ASSIGN(auto key_3, SampleKey(rlwe::testing::kDefaultVariance,
+                                             rlwe::testing::kDefaultLogT + 1));
+
+  EXPECT_THAT(
+      key_1.Add(key_2),
+      StatusIs(::absl::StatusCode::kInvalidArgument,
+               HasSubstr("is different than the variance of this key")));
+  EXPECT_THAT(
+      key_1.Sub(key_2),
+      StatusIs(::absl::StatusCode::kInvalidArgument,
+               HasSubstr("is different than the variance of this key")));
+  EXPECT_THAT(key_1.Add(key_3),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("is different than the log_t of this key")));
+  EXPECT_THAT(key_1.Sub(key_3),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("is different than the log_t of this key")));
+}
+
+}  // namespace
diff --git a/third_party/shell-encryption/src/symmetric_encryption_with_prng.h b/third_party/shell-encryption/src/symmetric_encryption_with_prng.h
new file mode 100644
index 0000000..f5355e60
--- /dev/null
+++ b/third_party/shell-encryption/src/symmetric_encryption_with_prng.h
@@ -0,0 +1,113 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Implementation of compressed ciphertexts.
+//
+// In the RLWE encryption scheme, the second component of the ciphertext, a, is
+// drawn uniformly at random (that is, each coefficient is drawn uniformly at
+// random). If we the second components of a series of ciphertexts are
+// constructed using the pseudorandom outputs of a PRNG, the second components
+// can be encoded using the PRNG's seed, which is the functionality provided
+// here.
+//
+// An important note is that the order of encrypting the ciphertexts is
+// important. When decompressing, the order of the ciphertexts must be given in
+// the exact same order that the ciphertexts were encrypted to ensure the same
+// random polynomials are constructed for the correct ciphertext. Since a party
+// without the private key will be decompressing, it is impossible to check if
+// the decompressions were performed properly.
+
+#ifndef RLWE_SYMMETRIC_ENCRYPTION_WITH_PRNG_H_
+#define RLWE_SYMMETRIC_ENCRYPTION_WITH_PRNG_H_
+
+#include <vector>
+
+#include "polynomial.h"
+#include "prng/integral_prng_types.h"
+#include "prng/prng.h"
+#include "status_macros.h"
+#include "statusor.h"
+#include "symmetric_encryption.h"
+
+namespace rlwe {
+
+// Encrypts a set of plaintexts using randomness-of-encryption sampled using the
+// specified PRNG.
+//
+// When encrypting a plaintext, the c0 component of a ciphertext incorporates a
+// polynomial "a" where each coefficient is drawn uniformly and independently at
+// random. The c1 component of the ciphertext is exactly "-a" to ensure
+// homomorphic operations and decryption may occur. Instead of sending "a"
+// explicitly, we may construct "a" using the seed of a pseudorandom number
+// generator. Then, we may simply send the seed used to generate all "a"s
+// together with only the c0 components of each ciphertext. This would allow the
+// server to replay the PRNG and recover all "a"s and thereby reconstruct the
+// c1 components of the ciphertexts. As a result, the required communication
+// would be cut almost in half.
+//
+// Note, the c0 components of the ciphertext have an additional error vector
+// added to them. This error vector is drawn separately from the PRNG used to
+// compute all "a"s. The error vector remaining hidden is important for
+// security.
+//
+// Importantly, the order of the compressed ciphertexts must remain static
+// before decompression. Otherwise, the decompression will be incorrect.
+//
+// Two PRNGs are being passed: one is used to sample random polynomials that
+// is required to be used for decryption. The other PRNG is used to sample error
+// that does not need to be used for decryption.
+template <typename ModularInt>
+rlwe::StatusOr<std::vector<Polynomial<ModularInt>>> EncryptWithPrng(
+    const SymmetricRlweKey<ModularInt>& key,
+    const std::vector<Polynomial<ModularInt>>& plaintexts, SecurePrng* prng,
+    SecurePrng* prng_encryption) {
+  std::vector<Polynomial<ModularInt>> c0s(plaintexts.size());
+  for (int i = 0; i < c0s.size(); ++i) {
+    RLWE_ASSIGN_OR_RETURN(auto a, SamplePolynomialFromPrng<ModularInt>(
+                                      key.Len(), prng, key.ModulusParams()));
+    RLWE_ASSIGN_OR_RETURN(
+        c0s[i], internal::Encrypt(key, plaintexts[i], a, prng_encryption));
+  }
+  return c0s;
+}
+
+// Given a list of compressed encryption and the seed of the PRNG used for
+// compression, this function will decompress the encryptions so the ciphertexts
+// can now be used in homomorphic operations.
+//
+// The compressed ciphertexts must be given in the same order as they were given
+// to be encrypted.
+template <typename ModularInt>
+rlwe::StatusOr<std::vector<SymmetricRlweCiphertext<ModularInt>>> ExpandFromPrng(
+    std::vector<Polynomial<ModularInt>> c0,
+    typename ModularInt::Params* modulus_params,
+    const NttParameters<ModularInt>* ntt_params,
+    const ErrorParams<ModularInt>* error_params, SecurePrng* prng) {
+  std::vector<SymmetricRlweCiphertext<ModularInt>> ciphertexts;
+  for (int i = 0; i < c0.size(); ++i) {
+    RLWE_ASSIGN_OR_RETURN(auto a, SamplePolynomialFromPrng<ModularInt>(
+                                      c0[i].Len(), prng, modulus_params));
+    // Ciphertexts that can be expanded from PRNG must be fresh encryptions.
+    ciphertexts.emplace_back(
+        std::vector<Polynomial<ModularInt>>(
+            {std::move(c0[i]), std::move(a.NegateInPlace(modulus_params))}),
+        1, error_params->B_encryption(), modulus_params, error_params);
+  }
+  return ciphertexts;
+}
+
+}  // namespace rlwe
+
+#endif  // RLWE_SYMMETRIC_ENCRYPTION_WITH_PRNG_H_
diff --git a/third_party/shell-encryption/src/symmetric_encryption_with_prng_test.cc b/third_party/shell-encryption/src/symmetric_encryption_with_prng_test.cc
new file mode 100644
index 0000000..fd86fb8b
--- /dev/null
+++ b/third_party/shell-encryption/src/symmetric_encryption_with_prng_test.cc
@@ -0,0 +1,143 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "symmetric_encryption_with_prng.h"
+
+#include <vector>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "montgomery.h"
+#include "ntt_parameters.h"
+#include "polynomial.h"
+#include "prng/integral_prng_types.h"
+#include "status_macros.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+#include "testing/testing_utils.h"
+
+namespace rlwe {
+namespace {
+
+// Set constants.
+const unsigned int kTestingRounds = 10;
+
+// Useful typedefs.
+using uint_m = MontgomeryInt<Uint32>;
+using Polynomial = Polynomial<uint_m>;
+using Key = SymmetricRlweKey<uint_m>;
+
+class SymmetricEncryptionWithPrngTest : public ::testing::Test {
+ protected:
+  void SetUp() override {
+    ASSERT_OK_AND_ASSIGN(params14_,
+                         rlwe::testing::ConstructMontgomeryIntParams());
+    ASSERT_OK_AND_ASSIGN(
+        ntt_params_, InitializeNttParameters<uint_m>(rlwe::testing::kLogCoeffs,
+                                                     params14_.get()));
+    ASSERT_OK_AND_ASSIGN(
+        auto temp_error_params,
+        ErrorParams<uint_m>::Create(rlwe::testing::kDefaultLogT,
+                                    rlwe::testing::kDefaultVariance,
+                                    params14_.get(), &ntt_params_));
+    error_params_ = absl::make_unique<ErrorParams<uint_m>>(temp_error_params);
+  }
+
+  // Sample a random key.
+  rlwe::StatusOr<Key> SampleKey() {
+    RLWE_ASSIGN_OR_RETURN(std::string prng_seed,
+                          rlwe::SingleThreadPrng::GenerateSeed());
+    RLWE_ASSIGN_OR_RETURN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    return Key::Sample(
+        rlwe::testing::kLogCoeffs, rlwe::testing::kDefaultVariance,
+        rlwe::testing::kDefaultLogT, params14_.get(), &ntt_params_, prng.get());
+  }
+
+  rlwe::StatusOr<std::vector<Polynomial>> ConvertPlaintextsToNtt(
+      const std::vector<std::vector<uint_m::Int>>& coeffs) {
+    std::vector<Polynomial> ntt_plaintexts;
+    for (int i = 0; i < coeffs.size(); ++i) {
+      RLWE_ASSIGN_OR_RETURN(auto mont,
+                            rlwe::testing::ConvertToMontgomery<uint_m>(
+                                coeffs[i], params14_.get()));
+      ntt_plaintexts.push_back(
+          Polynomial::ConvertToNtt(mont, ntt_params_, params14_.get()));
+    }
+    return ntt_plaintexts;
+  }
+
+  void TestCompressedEncryptionDecryption(
+      const std::vector<std::vector<uint_m::Int>>& plaintexts) {
+    ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+    ASSERT_OK_AND_ASSIGN(std::string prng_seed,
+                         SingleThreadPrng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(auto prng, SingleThreadPrng::Create(prng_seed));
+    ASSERT_OK_AND_ASSIGN(std::string prng_encryption_seed,
+                         SingleThreadPrng::GenerateSeed());
+    ASSERT_OK_AND_ASSIGN(auto prng_encryption,
+                         SingleThreadPrng::Create(prng_encryption_seed));
+    ASSERT_OK_AND_ASSIGN(std::vector<Polynomial> ntt_plaintexts,
+                         ConvertPlaintextsToNtt(plaintexts));
+    ASSERT_OK_AND_ASSIGN(
+        auto compressed_ciphertexts,
+        EncryptWithPrng<uint_m>(key, ntt_plaintexts, prng.get(),
+                                prng_encryption.get()));
+    EXPECT_EQ(plaintexts.size(), compressed_ciphertexts.size());
+    ASSERT_OK_AND_ASSIGN(auto another_prng,
+                         SingleThreadPrng::Create(prng_seed));
+    ASSERT_OK_AND_ASSIGN(
+        auto ciphertexts,
+        ExpandFromPrng<uint_m>(compressed_ciphertexts, key.ModulusParams(),
+                               key.NttParams(), error_params_.get(),
+                               another_prng.get()));
+    EXPECT_EQ(plaintexts.size(), ciphertexts.size());
+    for (int i = 0; i < ciphertexts.size(); ++i) {
+      // Expect that the error of an expanded ciphertext is of a fresh
+      // encryption.
+      EXPECT_EQ(ciphertexts[i].Error(), error_params_->B_encryption());
+      ASSERT_OK_AND_ASSIGN(auto decrypted,
+                           Decrypt<uint_m>(key, ciphertexts[i]));
+      EXPECT_EQ(plaintexts[i], decrypted);
+    }
+  }
+
+  std::unique_ptr<uint_m::Params> params14_;
+  NttParameters<uint_m> ntt_params_;
+  std::unique_ptr<ErrorParams<uint_m>> error_params_;
+};
+
+// Ensure that the encryption scheme can encrypt and decrypt a single compressed
+// ciphertext.
+TEST_F(SymmetricEncryptionWithPrngTest, EncryptDecryptSingleCompressed) {
+  for (unsigned int i = 0; i < kTestingRounds; ++i) {
+    TestCompressedEncryptionDecryption(
+        {rlwe::testing::SamplePlaintext<uint_m>()});
+  }
+}
+
+// Ensure that the encryption scheme can encrypt and decrypt multiple compressed
+// ciphertexts.
+TEST_F(SymmetricEncryptionWithPrngTest, EncryptDecryptMultipleCompressed) {
+  for (unsigned int i = 0; i < kTestingRounds; ++i) {
+    std::vector<std::vector<uint_m::Int>> plaintexts;
+    for (int j = 0; j < i + 2; ++j) {
+      plaintexts.push_back(rlwe::testing::SamplePlaintext<uint_m>());
+    }
+    TestCompressedEncryptionDecryption(plaintexts);
+  }
+}
+
+}  // namespace
+}  // namespace rlwe
diff --git a/third_party/shell-encryption/src/testing/BUILD b/third_party/shell-encryption/src/testing/BUILD
new file mode 100644
index 0000000..57e1d7f0eed
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/BUILD
@@ -0,0 +1,165 @@
+# Copyright 2017 Google LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+load("@rules_cc//cc:defs.bzl", "cc_library")
+load("@rules_proto//proto:defs.bzl", "proto_library")
+
+package(default_visibility = ["//visibility:public"])
+
+licenses(["notice"])  # Apache 2.0
+
+# Utilities.
+
+cc_library(
+    name = "testing_prng",
+    testonly = 1,
+    hdrs = ["testing_prng.h"],
+    deps = [
+        "//:integral_types",
+        "//prng",
+    ],
+)
+
+cc_library(
+    name = "status_testing",
+    testonly = 1,
+    hdrs = ["status_testing.h"],
+    deps = ["//:statusor_fork"],
+)
+
+cc_library(
+    name = "testing_utils",
+    testonly = 1,
+    hdrs = ["testing_utils.h"],
+    deps = [
+        ":testing_prng",
+        "//:constants",
+        "//:montgomery",
+        "//:polynomial",
+        "//:statusor_fork",
+        "//:symmetric_encryption",
+    ],
+)
+
+cc_library(
+    name = "status_is_fork",
+    testonly = 1,
+    hdrs = [
+        "protobuf_matchers.h",
+        "status_matchers.h",
+    ],
+    deps = [
+        "//:statusor_fork",
+        "@com_google_absl//absl/status",
+        "@com_google_googletest//:gtest",
+    ],
+)
+
+cc_library(
+    name = "matchers",
+    testonly = 1,
+    hdrs = [
+        "protobuf_matchers.h",
+        "status_matchers.h",
+    ],
+    deps = [
+        "//:statusor_fork",
+        "@com_google_absl//absl/status",
+        "@com_google_googletest//:gtest",
+    ],
+)
+
+cc_test(
+    name = "protobuf_matchers_test",
+    srcs = ["protobuf_matchers_test.cc"],
+    deps = [
+        ":coefficient_polynomial_cc_proto",
+        ":matchers",
+        ":status_testing",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+# Polynomials represented by their coefficient vector.
+
+cc_library(
+    name = "coefficient_polynomial",
+    testonly = 1,
+    hdrs = ["coefficient_polynomial.h"],
+    deps = [
+        ":coefficient_polynomial_cc_proto",
+        "//:statusor_fork",
+        "@com_github_glog_glog//:glog",
+        "@com_google_absl//absl/strings",
+    ],
+)
+
+cc_test(
+    name = "coefficient_polynomial_test",
+    srcs = [
+        "coefficient_polynomial_test.cc",
+    ],
+    deps = [
+        ":coefficient_polynomial",
+        ":status_is_fork",
+        ":status_testing",
+        ":testing_prng",
+        "//:constants",
+        "//:montgomery",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+cc_library(
+    name = "coefficient_polynomial_ciphertext",
+    testonly = 1,
+    hdrs = ["coefficient_polynomial_ciphertext.h"],
+    deps = [
+        ":coefficient_polynomial",
+        "//:error_params",
+        "//:polynomial",
+        "//:statusor_fork",
+        "//:symmetric_encryption",
+    ],
+)
+
+cc_test(
+    name = "coefficient_polynomial_ciphertext_test",
+    srcs = [
+        "coefficient_polynomial_ciphertext_test.cc",
+    ],
+    deps = [
+        ":coefficient_polynomial",
+        ":coefficient_polynomial_ciphertext",
+        ":status_is_fork",
+        ":status_testing",
+        ":testing_prng",
+        ":testing_utils",
+        "//:constants",
+        "//:montgomery",
+        "//:polynomial",
+        "//:symmetric_encryption",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+proto_library(
+    name = "coefficient_polynomial_proto",
+    srcs = ["coefficient_polynomial.proto"],
+)
+
+cc_proto_library(
+    name = "coefficient_polynomial_cc_proto",
+    deps = [":coefficient_polynomial_proto"],
+)
diff --git a/third_party/shell-encryption/src/testing/LICENSE b/third_party/shell-encryption/src/testing/LICENSE
new file mode 100644
index 0000000..12b597d
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2017 Google Inc.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/third_party/shell-encryption/src/testing/coefficient_polynomial.h b/third_party/shell-encryption/src/testing/coefficient_polynomial.h
new file mode 100644
index 0000000..0992c7de
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/coefficient_polynomial.h
@@ -0,0 +1,268 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// The class defined in this file should only be used for testing purposes.
+
+#ifndef RLWE_TESTING_COEFFICIENT_POLYNOMIAL_H_
+#define RLWE_TESTING_COEFFICIENT_POLYNOMIAL_H_
+
+#include <cmath>
+#include <cstdint>
+#include <string>
+#include <vector>
+
+#include "glog/logging.h"
+#include "absl/strings/str_cat.h"
+#include "status_macros.h"
+#include "statusor.h"
+#include "testing/coefficient_polynomial.pb.h"
+
+namespace rlwe::testing {
+
+// A polynomial with ModularInt coefficients that is automatically reduced
+// modulo <x^n + 1>, where n is the number of coefficients provided in the
+// constructor.
+// SHould only be used for testing.
+template <typename ModularInt>
+class CoefficientPolynomial {
+  using ModularIntParams = typename ModularInt::Params;
+
+ public:
+  // Copy constructor.
+  CoefficientPolynomial(const CoefficientPolynomial& that) = default;
+
+  // Constructor. The polynomial is initialized to the values of a vector.
+  CoefficientPolynomial(std::vector<ModularInt> coeffs,
+                        ModularIntParams* modulus_params)
+      : coeffs_(std::move(coeffs)), modulus_params_(modulus_params) {}
+
+  // Constructs an empty CoefficientPolynomial.
+  explicit CoefficientPolynomial(int len, ModularIntParams* modulus_params)
+      : CoefficientPolynomial(std::vector<ModularInt>(
+                                  len, ModularInt::ImportZero(modulus_params)),
+                              modulus_params) {}
+
+  // Accessor for length.
+  int Len() const { return coeffs_.size(); }
+
+  // Accessor for coefficients.
+  std::vector<ModularInt> Coeffs() const { return coeffs_; }
+
+  // Accessor for Modulus Params.
+  ModularIntParams* ModulusParams() const { return modulus_params_; }
+
+  // Compute the degree.
+  int Degree() const {
+    for (int i = Len() - 1; i >= 0; i--) {
+      if (coeffs_[i].ExportInt(modulus_params_) != 0) {
+        return i;
+      }
+    }
+
+    return 0;
+  }
+
+  // Equality.
+  bool operator==(const CoefficientPolynomial& that) const {
+    if (Degree() != that.Degree()) {
+      return false;
+    }
+
+    for (int i = 0; i <= Degree(); i++) {
+      if (coeffs_[i] != that.coeffs_[i]) {
+        return false;
+      }
+    }
+
+    return true;
+  }
+
+  bool operator!=(const CoefficientPolynomial& that) const {
+    return !(*this == that);
+  }
+
+  // Addition.
+  rlwe::StatusOr<CoefficientPolynomial> operator+(
+      const CoefficientPolynomial& that) const {
+    // Ensure the polynomials' dimensions are equal.
+    if (Len() != that.Len()) {
+      return absl::InvalidArgumentError(
+          "CoefficientPolynomial dimensions mismatched.");
+    }
+
+    // Add polynomials point-wise.
+    CoefficientPolynomial out(*this);
+    for (int i = 0; i < Len(); i++) {
+      out.coeffs_[i].AddInPlace(that.coeffs_[i], modulus_params_);
+    }
+
+    return out;
+  }
+
+  // Substraction.
+  rlwe::StatusOr<CoefficientPolynomial> operator-(
+      const CoefficientPolynomial& that) const {
+    // Ensure the polynomials' dimensions are equal.
+    if (Len() != that.Len()) {
+      return absl::InvalidArgumentError(
+          "CoefficientPolynomial dimensions mismatched.");
+    }
+
+    // Add polynomials point-wise.
+    CoefficientPolynomial out(*this);
+    for (int i = 0; i < Len(); i++) {
+      out.coeffs_[i].SubInPlace(that.coeffs_[i], modulus_params_);
+    }
+
+    return out;
+  }
+
+  // Scalar multiplication.
+  CoefficientPolynomial operator*(ModularInt c) const {
+    CoefficientPolynomial out(*this);
+    for (auto& coeff : out.coeffs_) {
+      coeff.MulInPlace(c, modulus_params_);
+    }
+    return out;
+  }
+
+  // Multiplication modulo x^N + 1.
+  rlwe::StatusOr<CoefficientPolynomial> operator*(
+      const CoefficientPolynomial& that) const {
+    // Ensure the polynomials' dimensions are equal.
+    if (Len() != that.Len()) {
+      return absl::InvalidArgumentError(
+          "CoefficientPolynomial dimensions mismatched.");
+    }
+
+    // Create a zero polynomial of the correct dimension.
+    CoefficientPolynomial out(Len(), modulus_params_);
+
+    for (int i = 0; i < Len(); i++) {
+      for (int j = 0; j < Len(); j++) {
+        if ((i + j) >= coeffs_.size()) {
+          // Since multiplciation is mod (x^N + 1), if the coefficient computed
+          // has degree k (= i + j) larger than N, it contributes to the (k -
+          // N)'th coefficient with a negative factor.
+          out.coeffs_[(i + j) - coeffs_.size()].SubInPlace(
+              coeffs_[i].Mul(that.coeffs_[j], modulus_params_),
+              modulus_params_);
+        } else {
+          // Otherwise, contributes to the k'th coefficient as  normal.
+          out.coeffs_[i + j].AddInPlace(
+              coeffs_[i].Mul(that.coeffs_[j], modulus_params_),
+              modulus_params_);
+        }
+      }
+    }
+    return out;
+  }
+
+  // A more efficient multiplication by a monomial x^power, where power <
+  // 2*dimension.
+  rlwe::StatusOr<CoefficientPolynomial> MonomialMultiplication(
+      int power) const {
+    // Check that the monomial is in range.
+    if (0 > power || power >= 2 * Len()) {
+      return absl::InvalidArgumentError(
+          "Monomial to absorb must have non-negative degree less than 2n.");
+    }
+
+    CoefficientPolynomial out(*this);
+
+    // Monomial multiplication be x^{k} where n <= k < 2*n is monomial
+    // multiplication by -x^{k - n}.
+    ModularInt multiplier = ModularInt::ImportOne(modulus_params_);
+    if (power >= Len()) {
+      multiplier.NegateInPlace(modulus_params_);
+      power = power - Len();
+    }
+    ModularInt negative_multiplier = multiplier.Negate(modulus_params_);
+
+    for (int i = 0; i < power; i++) {
+      out.coeffs_[i] =
+          negative_multiplier.Mul(coeffs_[i - power + Len()], modulus_params_);
+    }
+    for (int i = power; i < Len(); i++) {
+      out.coeffs_[i] = multiplier.Mul(coeffs_[i - power], modulus_params_);
+    }
+
+    return out;
+  }
+
+  // Given a polynomial p(x), returns a polynomial p(x^a). Expects a power <
+  // 2n, where n is the dimension of the polynomial.
+  rlwe::StatusOr<CoefficientPolynomial> Substitute(const int power) const {
+    // Check that the substitution is in range. The power must be relatively
+    // prime to 2*n. Since our dimensions are always a power of two, this is
+    // equivalent to the power being odd.
+    if (0 > power || (power % 2) == 0 || power >= 2 * Len()) {
+      return absl::InvalidArgumentError(
+          absl::StrCat("Substitution power must be a non-negative odd ",
+                       "integer less than 2*n."));
+    }
+    CoefficientPolynomial out(*this);
+
+    // The ith coefficient of the original polynomial p(x) is sent to the (i *
+    // power % Len())-th coefficient under the substitution. However, in the
+    // polynomial ring mod (x^N + 1), x^N = -1, so we multiply the i-th
+    // coefficient by (-1)^{(power * i) / Len()}.
+    // In the loop, current_index keeps track of (i * power % Len()), and
+    // multiplier keeps track of the power of -1 for the current coefficient.
+    int current_index = 0;
+    ModularInt multiplier = ModularInt::ImportOne(modulus_params_);
+    for (int i = 0; i < Len(); i++) {
+      out.coeffs_[current_index] = coeffs_[i].Mul(multiplier, modulus_params_);
+      current_index += power;
+
+      while (current_index > Len()) {
+        multiplier.NegateInPlace(modulus_params_);
+        current_index -= Len();
+      }
+    }
+
+    return out;
+  }
+
+  rlwe::StatusOr<SerializedCoefficientPolynomial> Serialize() const {
+    SerializedCoefficientPolynomial output;
+    RLWE_ASSIGN_OR_RETURN(
+        *(output.mutable_coeffs()),
+        ModularInt::SerializeVector(coeffs_, modulus_params_));
+    output.set_num_coeffs(coeffs_.size());
+
+    return output;
+  }
+
+  static rlwe::StatusOr<CoefficientPolynomial> Deserialize(
+      const SerializedCoefficientPolynomial& serialized,
+      ModularIntParams* modulus_params) {
+    CoefficientPolynomial output(serialized.num_coeffs(), modulus_params);
+    RLWE_ASSIGN_OR_RETURN(
+        output.coeffs_,
+        ModularInt::DeserializeVector(serialized.num_coeffs(),
+                                      serialized.coeffs(), modulus_params));
+
+    return output;
+  }
+
+ private:
+  std::vector<ModularInt> coeffs_;
+  ModularIntParams* modulus_params_;
+};
+
+}  // namespace rlwe::testing
+
+#endif  // RLWE_TESTING_COEFFICIENT_POLYNOMIAL_H_
diff --git a/third_party/shell-encryption/src/testing/coefficient_polynomial.proto b/third_party/shell-encryption/src/testing/coefficient_polynomial.proto
new file mode 100644
index 0000000..b378557
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/coefficient_polynomial.proto
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2019 Google Inc.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+package rlwe;
+
+// Polynomial in coefficient representation
+message SerializedCoefficientPolynomial {
+  // Coefficients of the polynomial
+  optional bytes coeffs = 1;
+
+  // Number of coefficients of the polynomial.
+  optional int32 num_coeffs = 2;
+}
diff --git a/third_party/shell-encryption/src/testing/coefficient_polynomial_ciphertext.h b/third_party/shell-encryption/src/testing/coefficient_polynomial_ciphertext.h
new file mode 100644
index 0000000..13faff0
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/coefficient_polynomial_ciphertext.h
@@ -0,0 +1,175 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// The class defined in this file should only be used for testing purposes.
+
+#ifndef RLWE_TESTING_COEFFICIENT_POLYNOMIAL_CIPHERTEXT_H_
+#define RLWE_TESTING_COEFFICIENT_POLYNOMIAL_CIPHERTEXT_H_
+
+#include <cstdint>
+#include <vector>
+
+#include "error_params.h"
+#include "polynomial.h"
+#include "statusor.h"
+#include "symmetric_encryption.h"
+#include "testing/coefficient_polynomial.h"
+
+namespace rlwe::testing {
+
+// Container for a vector of polynomials in coefficient representation. This
+// class is the analogue of SymmetricRlweCiphertext with component polynomials
+// in coefficient representation instead of in NTT form. It only provides a
+// subset of the homomorphic functionality of SymmetricRlweCiphertext, namely
+// homomorphic addition, multiplication by monomials, and substitution.
+//
+// Homomorphic operations between ciphertexts encrypted under different
+// powers_of_s fail.
+//
+// Should only be used for testing.
+template <typename ModularInt>
+class CoefficientPolynomialCiphertext {
+ public:
+  CoefficientPolynomialCiphertext(const CoefficientPolynomialCiphertext& that) =
+      default;
+
+  // Creates a coefficient polynomial ciphertext out of a vector of polynomials.
+  // Fails if an empty vector is provided.
+  explicit CoefficientPolynomialCiphertext(
+      std::vector<CoefficientPolynomial<ModularInt>> p, const int power_of_s,
+      const ErrorParams<ModularInt>* error_params)
+      : p_(std::move(p)),
+        modulus_params_(p_[0].ModulusParams()),
+        power_of_s_(power_of_s),
+        error_params_(error_params) {}
+
+  // Static method that creates a CoefficientPolynomialCiphertext from a
+  // SymmetricRlweCiphertext by performing InverseNtt on each ciphertext
+  // component.
+  static rlwe::StatusOr<CoefficientPolynomialCiphertext> ConvertToCoefficients(
+      const SymmetricRlweCiphertext<ModularInt>& ntt_ciphertext,
+      const NttParameters<ModularInt>& ntt_params) {
+    std::vector<CoefficientPolynomial<ModularInt>> result;
+
+    for (int i = 0; i < ntt_ciphertext.Len(); i++) {
+      RLWE_ASSIGN_OR_RETURN(auto comp, ntt_ciphertext.Component(i));
+      result.push_back(CoefficientPolynomial<ModularInt>(
+          comp.InverseNtt(ntt_params, ntt_ciphertext.ModulusParams()),
+          ntt_ciphertext.ModulusParams()));
+    }
+
+    return CoefficientPolynomialCiphertext(std::move(result),
+                                           ntt_ciphertext.PowerOfS(),
+                                           ntt_ciphertext.ErrorParams());
+  }
+
+  // Converts the polynomial to a SymmetricRlweCiphertext in NTT representation.
+  SymmetricRlweCiphertext<ModularInt> ConvertToNtt(
+      const NttParameters<ModularInt>& ntt_params) {
+    std::vector<Polynomial<ModularInt>> c;
+
+    for (const CoefficientPolynomial<ModularInt>& p : p_) {
+      c.push_back(Polynomial<ModularInt>::ConvertToNtt(p.Coeffs(), ntt_params,
+                                                       modulus_params_));
+    }
+
+    return SymmetricRlweCiphertext<ModularInt>(
+        std::move(c), power_of_s_, error_, modulus_params_, error_params_);
+  }
+
+  // Add two CoefficientPolynomialCiphertexts.
+  rlwe::StatusOr<CoefficientPolynomialCiphertext> operator+(
+      const CoefficientPolynomialCiphertext& that) const {
+    // Ensure that the polynomials' power_of_s matches.
+    if (power_of_s_ != that.power_of_s_) {
+      return absl::InvalidArgumentError(
+          "Ciphertexts must be encrypted with the same key power.");
+    }
+
+    const CoefficientPolynomialCiphertext* longer = this;
+    const CoefficientPolynomialCiphertext* shorter = &that;
+    if (p_.size() < that.p_.size()) {
+      std::swap(longer, shorter);
+    }
+
+    std::vector<CoefficientPolynomial<ModularInt>> result(longer->p_);
+
+    for (int i = 0; i < shorter->p_.size(); i++) {
+      RLWE_ASSIGN_OR_RETURN(result[i], result[i] + shorter->p_[i]);
+    }
+
+    return CoefficientPolynomialCiphertext(std::move(result), power_of_s_,
+                                           error_params_);
+  }
+
+  // Absorb a monomial x^power, where power is less than the dimension of the
+  // polynomials.
+  rlwe::StatusOr<CoefficientPolynomialCiphertext> MonomialAbsorb(
+      const int power) const {
+    std::vector<CoefficientPolynomial<ModularInt>> result;
+
+    for (const CoefficientPolynomial<ModularInt>& p : p_) {
+      RLWE_ASSIGN_OR_RETURN(auto elt, p.MonomialMultiplication(power));
+      result.push_back(elt);
+    }
+
+    return CoefficientPolynomialCiphertext(std::move(result), power_of_s_,
+                                           error_params_);
+  }
+
+  // Given a ciphertext <c0(x), c1(x), ... cn(x)>, returns a
+  // CoefficientPolynomialCiphertext representing <c0(x^power), ... ,
+  // cn(x^power)> which can be decrypted under secret key s(x^power). Updates
+  // the power_of_s member.
+  rlwe::StatusOr<CoefficientPolynomialCiphertext> Substitute(
+      const int substitution_power) const {
+    std::vector<CoefficientPolynomial<ModularInt>> result;
+
+    for (const CoefficientPolynomial<ModularInt>& p : p_) {
+      RLWE_ASSIGN_OR_RETURN(auto elt, p.Substitute(substitution_power));
+      result.push_back(elt);
+    }
+
+    return CoefficientPolynomialCiphertext(
+        std::move(result),
+        (power_of_s_ * substitution_power) % (2 * p_[0].Len()), error_params_);
+  }
+
+  // Accessor for power of s.
+  int PowerOfS() const { return power_of_s_; }
+
+  // Accessor for the amount of error in the ciphertext.
+  double Error() const { return error_; }
+
+ private:
+  // The vector of polynomials.
+  std::vector<CoefficientPolynomial<ModularInt>> p_;
+
+  // ModularInt parameters.
+  typename ModularInt::Params* modulus_params_;
+
+  // ErrorParams.
+  const rlwe::ErrorParams<ModularInt>* error_params_;
+
+  // A heuristic on the amount of error in the ciphertext.
+  double error_;
+
+  // The power a in s(x^a) that the ciphertext can be decrypted with.
+  int power_of_s_;
+};
+
+}  //  namespace rlwe::testing
+
+#endif  // RLWE_TESTING_COEFFICIENT_POLYNOMIAL_CIPHERTEXT_H_
diff --git a/third_party/shell-encryption/src/testing/coefficient_polynomial_ciphertext_test.cc b/third_party/shell-encryption/src/testing/coefficient_polynomial_ciphertext_test.cc
new file mode 100644
index 0000000..47e8043
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/coefficient_polynomial_ciphertext_test.cc
@@ -0,0 +1,500 @@
+/*
+ * Copyright 2018 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "testing/coefficient_polynomial_ciphertext.h"
+
+#include <vector>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "constants.h"
+#include "montgomery.h"
+#include "polynomial.h"
+#include "symmetric_encryption.h"
+#include "testing/coefficient_polynomial.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+#include "testing/testing_prng.h"
+#include "testing/testing_utils.h"
+
+namespace {
+
+using ::rlwe::testing::StatusIs;
+using ::testing::HasSubstr;
+
+unsigned int seed = 0;
+
+// Useful typedefs.
+using uint_m = rlwe::MontgomeryInt<rlwe::Uint32>;
+using Polynomial = rlwe::Polynomial<uint_m>;
+using CoefficientPolynomial = rlwe::testing::CoefficientPolynomial<uint_m>;
+using Ciphertext = rlwe::SymmetricRlweCiphertext<uint_m>;
+using PolynomialCiphertext =
+    rlwe::testing::CoefficientPolynomialCiphertext<uint_m>;
+using Key = rlwe::SymmetricRlweKey<uint_m>;
+
+// Set constants.
+const uint_m::Int kDefaultLogT = 2;
+const uint_m::Int kDefaultT = (1 << kDefaultLogT) + 1;
+const uint_m::Int kDefaultVariance = 8;
+const uint_m::Int kCoeffs = rlwe::kNewhopeDegreeBound;
+const uint_m::Int kLogCoeffs = rlwe::kNewhopeLogDegreeBound;
+
+class PolynomialCiphertextTest : public ::testing::Test {
+ protected:
+  void SetUp() override {
+    ASSERT_OK_AND_ASSIGN(params14_,
+                         rlwe::testing::ConstructMontgomeryIntParams());
+    ASSERT_OK_AND_ASSIGN(ntt_params_,
+                         rlwe::InitializeNttParameters<uint_m>(
+                             rlwe::testing::kLogCoeffs, params14_.get()));
+    ASSERT_OK_AND_ASSIGN(
+        auto temp_error_params,
+        rlwe::ErrorParams<uint_m>::Create(kDefaultLogT, kDefaultVariance,
+                                          params14_.get(), &ntt_params_));
+    error_params_ =
+        absl::make_unique<rlwe::ErrorParams<uint_m>>(temp_error_params);
+  }
+
+  // Sample a random key.
+  rlwe::StatusOr<Key> SampleKey(uint_m::Int variance = kDefaultVariance,
+                                uint_m::Int log_t = kDefaultLogT) {
+    RLWE_ASSIGN_OR_RETURN(std::string prng_seed,
+                          rlwe::SingleThreadPrng::GenerateSeed());
+    RLWE_ASSIGN_OR_RETURN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    return Key::Sample(kLogCoeffs, variance, log_t, params14_.get(),
+                       &ntt_params_, prng.get());
+  }
+
+  // Encrypt a plaintext.
+  rlwe::StatusOr<Ciphertext> Encrypt(
+      const Key& key, const std::vector<uint_m::Int>& plaintext) {
+    RLWE_ASSIGN_OR_RETURN(auto mp, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                       plaintext, params14_.get()));
+    auto plaintext_ntt =
+        Polynomial::ConvertToNtt(mp, ntt_params_, key.ModulusParams());
+    RLWE_ASSIGN_OR_RETURN(std::string prng_seed,
+                          rlwe::SingleThreadPrng::GenerateSeed());
+    RLWE_ASSIGN_OR_RETURN(auto prng, rlwe::SingleThreadPrng::Create(prng_seed));
+    return rlwe::Encrypt<uint_m>(key, plaintext_ntt, error_params_.get(),
+                                 prng.get());
+  }
+
+  std::unique_ptr<uint_m::Params> params14_;
+  rlwe::NttParameters<uint_m> ntt_params_;
+  std::unique_ptr<rlwe::ErrorParams<uint_m>> error_params_;
+};
+
+TEST_F(PolynomialCiphertextTest, CanDecryptAfterConversion) {
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(
+      auto coefficient_ciphertext,
+      PolynomialCiphertext::ConvertToCoefficients(ciphertext, ntt_params_));
+  auto ntt_ciphertext = coefficient_ciphertext.ConvertToNtt(ntt_params_);
+  ASSERT_OK_AND_ASSIGN(auto coefficient_decrypted,
+                       rlwe::Decrypt<uint_m>(key, ntt_ciphertext));
+
+  EXPECT_EQ(plaintext, coefficient_decrypted);
+}
+
+TEST_F(PolynomialCiphertextTest, CoefficientHomomorphicAdd) {
+  // Ensure PolynomialCiphertext adds.
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+  std::vector<uint_m::Int> plaintext1 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+  std::vector<uint_m::Int> plaintext2 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1, Encrypt(key, plaintext1));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2, Encrypt(key, plaintext2));
+
+  // Homomorphic add in the polynomial domain.
+  ASSERT_OK_AND_ASSIGN(
+      auto polynomial1,
+      PolynomialCiphertext::ConvertToCoefficients(ciphertext1, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(
+      auto polynomial2,
+      PolynomialCiphertext::ConvertToCoefficients(ciphertext2, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto polynomial3, polynomial1 + polynomial2);
+
+  // Decrypt result.
+  auto ciphertext3 = polynomial3.ConvertToNtt(ntt_params_);
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, ciphertext3));
+
+  for (unsigned int j = 0; j < plaintext1.size(); j++) {
+    EXPECT_EQ((plaintext1[j] + plaintext2[j]) % kDefaultT, decrypted[j]);
+  }
+}
+
+TEST_F(PolynomialCiphertextTest, HomomorphicAddDifferentComponents) {
+  // Ensure PolynomialCiphertext adds.
+  uint_m::Int log_t = 1;
+  uint_m::Int variance = 4;
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey(variance, log_t));
+
+  std::vector<uint_m::Int> plaintext1 =
+      rlwe::testing::SamplePlaintext<uint_m>(key.Len(), (1 << log_t) + 1);
+  ASSERT_OK_AND_ASSIGN(auto mp1, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                     plaintext1, params14_.get()));
+  CoefficientPolynomial plaintext1_poly(mp1, params14_.get());
+  std::vector<uint_m::Int> plaintext2 =
+      rlwe::testing::SamplePlaintext<uint_m>(key.Len(), (1 << log_t) + 1);
+  ASSERT_OK_AND_ASSIGN(auto mp2, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                     plaintext2, params14_.get()));
+  CoefficientPolynomial plaintext2_poly(mp2, params14_.get());
+
+  // Create ciphertexts of different lengths.
+  ASSERT_OK_AND_ASSIGN(auto two_component_ciphertext, Encrypt(key, plaintext1));
+  ASSERT_OK_AND_ASSIGN(auto intermediate, Encrypt(key, plaintext2));
+  ASSERT_OK_AND_ASSIGN(auto three_component_ciphertext,
+                       intermediate* two_component_ciphertext);
+
+  // Homomorphic add in the polynomial domain.
+  ASSERT_OK_AND_ASSIGN(auto polynomial1,
+                       PolynomialCiphertext::ConvertToCoefficients(
+                           two_component_ciphertext, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto polynomial2,
+                       PolynomialCiphertext::ConvertToCoefficients(
+                           three_component_ciphertext, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto polynomial3, polynomial1 + polynomial2);
+
+  // Decrypt result.
+  auto ciphertext3 = polynomial3.ConvertToNtt(ntt_params_);
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, ciphertext3));
+
+  // Create expected result.
+  ASSERT_OK_AND_ASSIGN(auto product, plaintext2_poly* plaintext1_poly);
+  ASSERT_OK_AND_ASSIGN(CoefficientPolynomial expected_poly,
+                       plaintext1_poly + product);
+  std::vector<uint_m::Int> expected =
+      rlwe::RemoveError<uint_m>(expected_poly.Coeffs(), params14_->modulus,
+                                (1 << log_t) + 1, params14_.get());
+
+  EXPECT_EQ(expected, decrypted);
+}
+
+TEST_F(PolynomialCiphertextTest, MonomialOutOfRange) {
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+  std::vector<uint_m::Int> plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+  ASSERT_OK_AND_ASSIGN(auto encrypt, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto coeffs, PolynomialCiphertext::ConvertToCoefficients(
+                                        encrypt, ntt_params_));
+  EXPECT_THAT(coeffs.MonomialAbsorb(2 * key.Len()),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("Monomial to absorb must have non-negative "
+                                 "degree less than 2n.")));
+}
+
+TEST_F(PolynomialCiphertextTest, CoefficientMonomialAbsorb) {
+  // Ensure that an absorb for monomials works correctly.
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+  // Create a random plaintext and a random monomial.
+  std::vector<uint_m::Int> plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+  ASSERT_OK_AND_ASSIGN(auto mp, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                    plaintext, params14_.get()));
+  CoefficientPolynomial plaintext_polynomial(mp, params14_.get());
+  std::vector<uint_m::Int> monomial(kCoeffs);
+  int monomial_index = rand_r(&seed) % (2 * key.Len());
+  monomial[monomial_index] = 1;
+
+  // Create our expected value.
+  ASSERT_OK_AND_ASSIGN(
+      CoefficientPolynomial expected_polynomial,
+      plaintext_polynomial.MonomialMultiplication(monomial_index));
+  std::vector<uint_m::Int> expected =
+      rlwe::RemoveError<uint_m>(expected_polynomial.Coeffs(),
+                                params14_->modulus, kDefaultT, params14_.get());
+
+  // Encrypt and absorb in the polynomial domain, then decrypt.
+  ASSERT_OK_AND_ASSIGN(auto encrypt, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto coeffs, PolynomialCiphertext::ConvertToCoefficients(
+                                        encrypt, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto polynomial, coeffs.MonomialAbsorb(monomial_index));
+  auto ciphertext = polynomial.ConvertToNtt(ntt_params_);
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, ciphertext));
+
+  EXPECT_EQ(expected, decrypted);
+}
+
+TEST_F(PolynomialCiphertextTest, Substitution) {
+  int subtitution_power = 3;
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+
+  // Create the expected polynomial output by substituting the plaintext.
+  ASSERT_OK_AND_ASSIGN(auto mp, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                    plaintext, params14_.get()));
+  CoefficientPolynomial polynomial_coeffs(mp, params14_.get());
+  ASSERT_OK_AND_ASSIGN(CoefficientPolynomial polynomial_expected,
+                       polynomial_coeffs.Substitute(subtitution_power));
+  std::vector<uint_m::Int> expected =
+      rlwe::RemoveError<uint_m>(polynomial_expected.Coeffs(),
+                                params14_->modulus, kDefaultT, params14_.get());
+
+  // Encrypt and substitute the ciphertext. Decrypt with a substituted key.
+  ASSERT_OK_AND_ASSIGN(auto encrypt, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto coeffs, PolynomialCiphertext::ConvertToCoefficients(
+                                        encrypt, ntt_params_));
+
+  ASSERT_OK_AND_ASSIGN(auto polynomial, coeffs.Substitute(subtitution_power));
+  auto ciphertext = polynomial.ConvertToNtt(ntt_params_);
+  ASSERT_OK_AND_ASSIGN(auto sub_key, key.Substitute(subtitution_power));
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(sub_key, ciphertext));
+
+  EXPECT_EQ(expected, decrypted);
+  EXPECT_EQ(ciphertext.PowerOfS(), subtitution_power);
+}
+
+TEST_F(PolynomialCiphertextTest, SubstitutionFailsOnEvenPower) {
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+
+  ASSERT_OK_AND_ASSIGN(auto encrypt, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(auto coeffs, PolynomialCiphertext::ConvertToCoefficients(
+                                        encrypt, ntt_params_));
+  EXPECT_THAT(coeffs.Substitute(2),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("power must be a non-negative odd integer")));
+}
+
+TEST_F(PolynomialCiphertextTest, PowersOfSMustMatchOnAdd) {
+  int subtitution_power = 5;
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+  std::vector<uint_m::Int> plaintext1 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+  std::vector<uint_m::Int> plaintext2 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1, Encrypt(key, plaintext1));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2, Encrypt(key, plaintext2));
+
+  // Add fails when only one ciphertext is substituted.
+  ASSERT_OK_AND_ASSIGN(
+      auto polynomial1,
+      PolynomialCiphertext::ConvertToCoefficients(ciphertext1, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(
+      auto polynomial2,
+      PolynomialCiphertext::ConvertToCoefficients(ciphertext2, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto polynomial2_sub,
+                       polynomial2.Substitute(subtitution_power));
+
+  EXPECT_THAT(polynomial1 + polynomial2_sub,
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("must be encrypted with the same key")));
+}
+
+TEST_F(PolynomialCiphertextTest, AddOnSubstitutedCiphertexts) {
+  int subtitution_power = 5;
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+  std::vector<uint_m::Int> plaintext1 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+  std::vector<uint_m::Int> plaintext2 =
+      rlwe::testing::SamplePlaintext<uint_m>();
+
+  // Create the expected polynomial output by substituting the plaintext.
+  ASSERT_OK_AND_ASSIGN(auto mp1, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                     plaintext1, params14_.get()));
+  CoefficientPolynomial polynomial1_coeffs(mp1, params14_.get());
+  ASSERT_OK_AND_ASSIGN(auto mp2, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                     plaintext2, params14_.get()));
+  CoefficientPolynomial polynomial2_coeffs(mp2, params14_.get());
+  ASSERT_OK_AND_ASSIGN(auto sum, polynomial1_coeffs + polynomial2_coeffs);
+  ASSERT_OK_AND_ASSIGN(CoefficientPolynomial polynomial_expected,
+                       sum.Substitute(subtitution_power));
+  std::vector<uint_m::Int> expected =
+      rlwe::RemoveError<uint_m>(polynomial_expected.Coeffs(),
+                                params14_->modulus, kDefaultT, params14_.get());
+
+  ASSERT_OK_AND_ASSIGN(auto ciphertext1, Encrypt(key, plaintext1));
+  ASSERT_OK_AND_ASSIGN(auto ciphertext2, Encrypt(key, plaintext2));
+
+  // Add succeeds and decrypts when both ciphertexts are substituted.
+  ASSERT_OK_AND_ASSIGN(
+      auto coeffs1,
+      PolynomialCiphertext::ConvertToCoefficients(ciphertext1, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto polynomial1_sub,
+                       coeffs1.Substitute(subtitution_power));
+  ASSERT_OK_AND_ASSIGN(
+      auto coeffs2,
+      PolynomialCiphertext::ConvertToCoefficients(ciphertext2, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto polynomial2_sub,
+                       coeffs2.Substitute(subtitution_power));
+  ASSERT_OK_AND_ASSIGN(PolynomialCiphertext result,
+                       polynomial1_sub + polynomial2_sub);
+
+  // Decrypt result.
+  auto ciphertext_result = result.ConvertToNtt(ntt_params_);
+  ASSERT_OK_AND_ASSIGN(auto key_sub, key.Substitute(subtitution_power));
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key_sub, ciphertext_result));
+
+  EXPECT_EQ(expected, decrypted);
+  EXPECT_EQ(result.PowerOfS(), subtitution_power);
+}
+
+TEST_F(PolynomialCiphertextTest, AbsorbOnSubstitutedCiphertexts) {
+  int monomial = 3;
+  int subtitution_power = 5;
+
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+  // Create a polynomial p(x).
+  std::vector<uint_m::Int> plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+
+  // Create the expected polynomial output by absorbing in the p(x^sub).
+  ASSERT_OK_AND_ASSIGN(auto mp, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                    plaintext, params14_.get()));
+  CoefficientPolynomial polynomial_coeffs(mp, params14_.get());
+  ASSERT_OK_AND_ASSIGN(auto coeffs,
+                       polynomial_coeffs.Substitute(subtitution_power));
+  ASSERT_OK_AND_ASSIGN(CoefficientPolynomial coeff_expected,
+                       coeffs.MonomialMultiplication(monomial));
+  std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+      coeff_expected.Coeffs(), params14_->modulus, kDefaultT, params14_.get());
+
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+
+  // Absorb x^monomial in the substituted ciphertext.
+  ASSERT_OK_AND_ASSIGN(
+      auto coeffs2,
+      PolynomialCiphertext::ConvertToCoefficients(ciphertext, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto sub_coeffs, coeffs2.Substitute(subtitution_power));
+  ASSERT_OK_AND_ASSIGN(auto coeff_result, sub_coeffs.MonomialAbsorb(monomial));
+
+  // Decrypt result.
+  auto ntt_result = coeff_result.ConvertToNtt(ntt_params_);
+  ASSERT_OK_AND_ASSIGN(auto key_sub, key.Substitute(subtitution_power));
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key_sub, ntt_result));
+
+  // Expect that the ciphertext x^monomial c(x^sub) decrypts to x^monomial
+  // p(x^sub).
+  EXPECT_EQ(expected, decrypted);
+  EXPECT_EQ(coeff_result.PowerOfS(), subtitution_power);
+}
+
+TEST_F(PolynomialCiphertextTest, RepeatedSubstitution) {
+  // Verifies PowerOfS is updated correctly after repeated substitutions, and
+  // the ciphertext can still be decrypted correctly.
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+  ASSERT_OK_AND_ASSIGN(auto encrypt, Encrypt(key, plaintext));
+  ASSERT_OK_AND_ASSIGN(
+      auto polynomial,
+      PolynomialCiphertext::ConvertToCoefficients(encrypt, ntt_params_));
+
+  EXPECT_EQ(polynomial.PowerOfS(), 1);
+
+  // Creates an encryption of p(x^3).
+  ASSERT_OK_AND_ASSIGN(auto polynomial3, polynomial.Substitute(3));
+  EXPECT_EQ(polynomial3.PowerOfS(), 3);
+
+  ASSERT_OK_AND_ASSIGN(auto polynomial9, polynomial3.Substitute(3));
+  EXPECT_EQ(polynomial9.PowerOfS(), 9 % kCoeffs);
+
+  // Substitutes the inverse of 3 mod 1024 to retrieve an encryption of the
+  // original polynomial: p((x^3)^683) =p(x).
+  ASSERT_OK_AND_ASSIGN(auto polynomial_wraparound, polynomial3.Substitute(683));
+  auto ciphertext_wraparound = polynomial_wraparound.ConvertToNtt(ntt_params_);
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(key, ciphertext_wraparound));
+
+  // Verifies that a polynomial after repeated substitutions decrypts correctly.
+  EXPECT_EQ(polynomial_wraparound.PowerOfS(), 1);
+  EXPECT_EQ(decrypted, plaintext);
+}
+
+TEST_F(PolynomialCiphertextTest, NttConversionsPreservePowerOfS) {
+  // Ensures that NTT conversion to / from polynomial ciphertexts preserves the
+  // power of s index.
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+  auto plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+
+  EXPECT_EQ(ciphertext.PowerOfS(), 1);
+
+  ASSERT_OK_AND_ASSIGN(auto coeffs, PolynomialCiphertext::ConvertToCoefficients(
+                                        ciphertext, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto polynomial, coeffs.Substitute(3));
+
+  EXPECT_EQ(polynomial.PowerOfS(), 3);
+
+  ASSERT_OK_AND_ASSIGN(auto ntt_converted_polynomial,
+                       PolynomialCiphertext::ConvertToCoefficients(
+                           polynomial.ConvertToNtt(ntt_params_), ntt_params_));
+
+  EXPECT_EQ(ntt_converted_polynomial.PowerOfS(), 3);
+}
+
+TEST_F(PolynomialCiphertextTest, SubstitutionCommutesWithAbsorb) {
+  // Checks if a monomial absorb can be factored out of a Substitution. In other
+  // words, this checks that for a ciphertext c and a plaintext p, we can either
+  // Absorb a plaintext and Substitute, or Substitute and Absorb the substituted
+  // plaintext: (c.Absorb(p)).Substitute(power) ==
+  // (c.Substitute(power)).Absorb(p.Substitute(power)).
+  int monomial = kCoeffs - 1;
+  int substitution_power = kCoeffs + 1;
+  // For x^monomial, (x^monomial).Substitute(power) = x^{monomial_substituted}.
+  int monomial_substituted = (monomial * substitution_power) % (2 * kCoeffs);
+
+  ASSERT_OK_AND_ASSIGN(auto key, SampleKey());
+
+  // Create a polynomial p(x).
+  std::vector<uint_m::Int> plaintext = rlwe::testing::SamplePlaintext<uint_m>();
+
+  // Create the expected polynomial by first applying the absorb and then
+  // substitution.
+  ASSERT_OK_AND_ASSIGN(auto mp, rlwe::testing::ConvertToMontgomery<uint_m>(
+                                    plaintext, params14_.get()));
+  CoefficientPolynomial polynomial_coeffs(mp, params14_.get());
+  ASSERT_OK_AND_ASSIGN(auto prod,
+                       polynomial_coeffs.MonomialMultiplication(monomial));
+  ASSERT_OK_AND_ASSIGN(CoefficientPolynomial coeff_expected,
+                       prod.Substitute(substitution_power));
+  std::vector<uint_m::Int> expected = rlwe::RemoveError<uint_m>(
+      coeff_expected.Coeffs(), params14_->modulus, kDefaultT, params14_.get());
+
+  ASSERT_OK_AND_ASSIGN(auto ciphertext, Encrypt(key, plaintext));
+
+  // Takes the ciphertext and FIRST applies the substitution, and then follows
+  // with an absorb of the corresponding power.
+  ASSERT_OK_AND_ASSIGN(auto coeffs, PolynomialCiphertext::ConvertToCoefficients(
+                                        ciphertext, ntt_params_));
+  ASSERT_OK_AND_ASSIGN(auto sub_coeffs, coeffs.Substitute(substitution_power));
+  ASSERT_OK_AND_ASSIGN(auto coeff_result,
+                       sub_coeffs.MonomialAbsorb(monomial_substituted));
+
+  // Decrypt result.
+  auto ntt_result = coeff_result.ConvertToNtt(ntt_params_);
+  ASSERT_OK_AND_ASSIGN(auto sub_key, key.Substitute(substitution_power));
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m::Int> decrypted,
+                       rlwe::Decrypt<uint_m>(sub_key, ntt_result));
+
+  EXPECT_EQ(expected, decrypted);
+  EXPECT_EQ(coeff_result.PowerOfS(), substitution_power);
+}
+
+}  // namespace
diff --git a/third_party/shell-encryption/src/testing/coefficient_polynomial_test.cc b/third_party/shell-encryption/src/testing/coefficient_polynomial_test.cc
new file mode 100644
index 0000000..b7045bc
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/coefficient_polynomial_test.cc
@@ -0,0 +1,438 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "testing/coefficient_polynomial.h"
+
+#include <random>
+#include <vector>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "constants.h"
+#include "montgomery.h"
+#include "testing/protobuf_matchers.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+#include "testing/testing_prng.h"
+
+namespace {
+
+using ::rlwe::testing::EqualsProto;
+using ::rlwe::testing::StatusIs;
+using ::testing::HasSubstr;
+
+using uint_m = rlwe::MontgomeryInt<rlwe::Uint16>;
+using Polynomial = rlwe::testing::CoefficientPolynomial<uint_m>;
+
+const int kDimension = 20;
+unsigned int seed = 0;
+
+class PolynomialTest : public ::testing::Test {
+ protected:
+  PolynomialTest()
+      : params14_(uint_m::Params::Create(rlwe::kNewhopeModulus).ValueOrDie()),
+        one_(uint_m::ImportOne(params14_.get())),
+        zero_(uint_m::ImportZero(params14_.get())) {}
+
+  rlwe::StatusOr<uint_m> SampleNonZero() {
+    return uint_m::ImportInt(1 + rand_r(&seed) % (params14_->modulus - 1),
+                             params14_.get());
+  }
+
+  rlwe::StatusOr<std::vector<uint_m>> SampleRandomCoeffs(int dimension) {
+    std::vector<uint_m> v(dimension, zero_);
+    for (int j = 0; j < dimension; j++) {
+      RLWE_ASSIGN_OR_RETURN(v[j], SampleNonZero());
+    }
+    return v;
+  }
+
+  std::unique_ptr<uint_m::Params> params14_;
+  uint_m one_;
+  uint_m zero_;
+};
+
+TEST_F(PolynomialTest, Len) {
+  for (int dimension = 1; dimension < kDimension; dimension++) {
+    ASSERT_OK_AND_ASSIGN(auto coeffs, SampleRandomCoeffs(dimension));
+    Polynomial p(coeffs, params14_.get());
+    EXPECT_EQ(dimension, p.Len());
+  }
+}
+
+TEST_F(PolynomialTest, Equality) {
+  for (int dimension = 1; dimension < kDimension; dimension++) {
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m> v, SampleRandomCoeffs(dimension));
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m> w, SampleRandomCoeffs(dimension));
+
+    // Ensure v is really different than w.
+    int k = rand_r(&seed) % dimension;
+    v[k] = w[k].Add(one_, params14_.get());
+
+    Polynomial p(v, params14_.get()), q(v, params14_.get()),
+        r(w, params14_.get());
+
+    // Ensure the equality relations hold.
+    EXPECT_EQ(p, q);
+    EXPECT_NE(p, r);
+    EXPECT_NE(q, r);
+
+    // Check that differing degrees are not equal
+    uint_m tmp = v[dimension - 1];
+    v[dimension - 1] = zero_;
+    Polynomial s(v, params14_.get());
+    EXPECT_NE(p, s);
+    v[dimension - 1] = tmp;
+
+    // Try flipping one value at a time.
+    for (int j = 0; j < dimension; j++) {
+      v[j] = v[j].Add(one_, params14_.get());
+      Polynomial s(v, params14_.get());
+      EXPECT_NE(p, s);
+      v[j] = v[j].Sub(one_, params14_.get());
+    }
+  }
+}
+
+TEST_F(PolynomialTest, Degree) {
+  for (int dimension = 1; dimension < kDimension; dimension++) {
+    // Slowly increase the degree of the polynomial.
+    std::vector<uint_m> v(dimension, zero_);
+    EXPECT_EQ(0, Polynomial(v, params14_.get()).Degree());
+    for (int j = 0; j < dimension; j++) {
+      ASSERT_OK_AND_ASSIGN(v[j], SampleNonZero());
+      EXPECT_EQ(j, Polynomial(v, params14_.get()).Degree()) << dimension;
+    }
+  }
+}
+
+TEST_F(PolynomialTest, PointwiseAdd) {
+  for (int dimension = 1; dimension < kDimension; dimension++) {
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m> v, SampleRandomCoeffs(dimension));
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m> w, SampleRandomCoeffs(dimension));
+    std::vector<uint_m> v_plus_w = v;
+
+    for (int j = 0; j < dimension; j++) {
+      v_plus_w[j] = v[j].Add(w[j], params14_.get());
+    }
+
+    Polynomial p(v, params14_.get()), q(w, params14_.get()),
+        p_plus_q(v_plus_w, params14_.get());
+
+    ASSERT_OK_AND_ASSIGN(Polynomial r, p + q);
+    ASSERT_OK_AND_ASSIGN(Polynomial s, q + p);
+
+    EXPECT_EQ(p_plus_q, r);
+    EXPECT_EQ(p_plus_q, s);
+    EXPECT_EQ(r.Len(), dimension);
+    EXPECT_EQ(s.Len(), dimension);
+    EXPECT_EQ(r, s);
+  }
+}
+
+TEST_F(PolynomialTest, PointwiseSub) {
+  for (int dimension = 1; dimension < kDimension; dimension++) {
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m> v, SampleRandomCoeffs(dimension));
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m> w, SampleRandomCoeffs(dimension));
+    std::vector<uint_m> v_minus_w = v;
+    std::vector<uint_m> w_minus_v = w;
+
+    for (int j = 0; j < dimension; j++) {
+      v_minus_w[j] = v[j].Sub(w[j], params14_.get());
+      w_minus_v[j] = w[j].Sub(v[j], params14_.get());
+    }
+
+    Polynomial p(v, params14_.get()), q(w, params14_.get()),
+        p_minus_q(v_minus_w, params14_.get()),
+        q_minus_p(w_minus_v, params14_.get());
+
+    ASSERT_OK_AND_ASSIGN(Polynomial r, p - q);
+    ASSERT_OK_AND_ASSIGN(Polynomial s, q - p);
+
+    EXPECT_EQ(p_minus_q, r);
+    EXPECT_EQ(q_minus_p, s);
+    EXPECT_EQ(r.Len(), dimension);
+    EXPECT_EQ(s.Len(), dimension);
+  }
+}
+
+TEST_F(PolynomialTest, AddDifferentDegreePolynomials) {
+  // Ensure that polynomials of the same dimension add correctly, even if they
+  // have different degrees.
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m> large,
+                       SampleRandomCoeffs(kDimension));
+  std::vector<uint_m> small(kDimension, zero_);
+  std::vector<uint_m> sum = large;
+
+  // Iteratively increase small's degree and check that addition works
+  // correctly at each degree.
+  for (int j = 0; j < kDimension; j++) {
+    ASSERT_OK_AND_ASSIGN(small[j], SampleNonZero());
+    sum[j] = sum[j].Add(small[j], params14_.get());
+
+    Polynomial p(small, params14_.get()), q(large, params14_.get()),
+        p_plus_q(sum, params14_.get());
+
+    ASSERT_OK_AND_ASSIGN(Polynomial r, p + q);
+    ASSERT_OK_AND_ASSIGN(Polynomial s, q + p);
+
+    EXPECT_EQ(p_plus_q, r);
+    EXPECT_EQ(p_plus_q, s);
+    EXPECT_EQ(r.Len(), kDimension);
+    EXPECT_EQ(s.Len(), kDimension);
+  }
+}
+
+TEST_F(PolynomialTest, ScalarMultiply) {
+  for (int dimension = 1; dimension < kDimension; dimension++) {
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m> v, SampleRandomCoeffs(dimension));
+    std::vector<uint_m> v_times_k = v;
+
+    ASSERT_OK_AND_ASSIGN(uint_m k, SampleNonZero());
+
+    for (int j = 0; j < dimension; j++) {
+      v_times_k[j] = v[j].Mul(k, params14_.get());
+    }
+
+    Polynomial p(v, params14_.get()), p_times_k(v_times_k, params14_.get());
+    Polynomial r = p * k;
+
+    EXPECT_EQ(p_times_k, r);
+  }
+}
+
+TEST_F(PolynomialTest, Multiply) {
+  for (int dimension = 2; dimension < kDimension; dimension++) {
+    // Create two random polynomials.
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m> v, SampleRandomCoeffs(dimension));
+    ASSERT_OK_AND_ASSIGN(std::vector<uint_m> w, SampleRandomCoeffs(dimension));
+
+    Polynomial p(v, params14_.get()), q(w, params14_.get());
+    ASSERT_OK_AND_ASSIGN(Polynomial r, p * q);
+    ASSERT_OK_AND_ASSIGN(Polynomial s, q * p);
+
+    std::vector<uint_m> result(2 * dimension, zero_);
+    std::vector<uint_m> reduced_result(dimension, zero_);
+    for (int j = 0; j < dimension; j++) {
+      for (int k = 0; k < dimension; k++) {
+        result[j + k] =
+            result[j + k].Add(v[j].Mul(w[k], params14_.get()), params14_.get());
+      }
+    }
+
+    // Take out the multiples of x^N + 1.
+    for (int j = 0; j < dimension; j++) {
+      // Find the x^j coeff, and subtract that coeff from the x^{j-(N+1)}th
+      // coeff.
+      reduced_result[j] = result[j].Sub(result[j + dimension], params14_.get());
+    }
+
+    EXPECT_EQ(Polynomial(reduced_result, params14_.get()), r);
+    EXPECT_EQ(Polynomial(reduced_result, params14_.get()), s);
+    EXPECT_EQ(r.Len(), dimension);
+    EXPECT_EQ(s.Len(), dimension);
+    EXPECT_EQ(r, s);
+  }
+}
+
+TEST_F(PolynomialTest, MismatchedLengths) {
+  for (int dimension : {1, 2, kDimension}) {
+    std::vector<uint_m> v(dimension, zero_);
+    std::vector<uint_m> w(dimension + 1, zero_);
+
+    Polynomial p(v, params14_.get()), q(w, params14_.get());
+
+    EXPECT_THAT(p + q, StatusIs(::absl::StatusCode::kInvalidArgument,
+                                HasSubstr("dimensions mismatched")));
+    EXPECT_THAT(p * q, StatusIs(::absl::StatusCode::kInvalidArgument,
+                                HasSubstr("dimensions mismatched")));
+  }
+}
+
+TEST_F(PolynomialTest, MonomialOutOfRange) {
+  // Create a random polynomial and a random monomial.
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m> v, SampleRandomCoeffs(kDimension));
+
+  // Multiply by monomial.
+  Polynomial p(v, params14_.get());
+  EXPECT_THAT(
+      p.MonomialMultiplication(2 * kDimension),
+      StatusIs(::absl::StatusCode::kInvalidArgument,
+               HasSubstr("must have non-negative degree less than 2n")));
+}
+
+TEST_F(PolynomialTest, MultiplyByMonomial) {
+  for (int dimension = 2; dimension < kDimension; dimension++) {
+    for (unsigned int monomial_degree :
+         {0, 1, dimension / 2, dimension - 1, dimension, dimension + 1,
+          2 * dimension - 1}) {
+      // Create a random polynomial and a random monomial.
+      ASSERT_OK_AND_ASSIGN(std::vector<uint_m> v,
+                           SampleRandomCoeffs(dimension));
+      std::vector<uint_m> w(dimension, zero_);
+
+      // If the monomial degree is >= dimension, we have x^{k} =
+      // -x^{k-dimension}.
+      if (monomial_degree >= dimension) {
+        w[monomial_degree - dimension] = one_.Negate(params14_.get());
+      } else {
+        w[monomial_degree] = one_;
+      }
+
+      Polynomial monomial(w, params14_.get());
+
+      // Multiply by monomial.
+      Polynomial p(v, params14_.get());
+      ASSERT_OK_AND_ASSIGN(Polynomial r,
+                           p.MonomialMultiplication(monomial_degree));
+
+      // Perform polynomial multiplication using * operator.
+      ASSERT_OK_AND_ASSIGN(auto res, p* monomial);
+      EXPECT_EQ(res, r);
+    }
+  }
+}
+
+TEST_F(PolynomialTest, TrivialSubstitution) {
+  // Ensure a substitution of x^1 returns the same polynomial.
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m> v, SampleRandomCoeffs(kDimension));
+  Polynomial p(v, params14_.get());
+
+  ASSERT_OK_AND_ASSIGN(auto res, p.Substitute(1));
+  EXPECT_EQ(res, p);
+}
+
+TEST_F(PolynomialTest, SubstitutionPowerMalformed) {
+  // Ensure substitution fails on powers that are negative, even, and greater
+  // than 2 * kDimension.
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m> v, SampleRandomCoeffs(kDimension));
+  Polynomial p(v, params14_.get());
+
+  EXPECT_THAT(p.Substitute(2),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("must be a non-negative odd integer")));
+  EXPECT_THAT(p.Substitute(-10),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("must be a non-negative odd integer")));
+  EXPECT_THAT(p.Substitute(2 * kDimension + 10),
+              StatusIs(::absl::StatusCode::kInvalidArgument,
+                       HasSubstr("must be a non-negative odd integer")));
+}
+
+TEST_F(PolynomialTest, SubstituteDimensionPlusOne) {
+  // Create a random polynomial.
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m> v, SampleRandomCoeffs(kDimension));
+
+  // Substitute x for x^{n + 1}.
+  Polynomial p(v, params14_.get());
+  ASSERT_OK_AND_ASSIGN(Polynomial result, p.Substitute(kDimension + 1));
+
+  for (int i = 0; i < kDimension; i = i + 2) {
+    // Test even indexed coefficients are equal.
+    EXPECT_EQ(result.Coeffs()[i], p.Coeffs()[i]);
+
+    // Test odd index coefficients were negated.
+    EXPECT_EQ(result.Coeffs()[i + 1],
+              p.Coeffs()[i + 1].Negate(params14_.get()));
+  }
+}
+
+TEST_F(PolynomialTest, SubstitutionLessThanDimension) {
+  int dimension = 8;
+  int substitution = 3;
+
+  // Coefficients of a polynomial p(x).
+  std::vector<uint_m::Int> coeffs = {1, 1, 3, 0, 2, 3, 1, 3};
+  // Coefficients of p(x^3).
+  std::vector<uint_m::Int> expected = {
+      1, 0, 1, 1, rlwe::kNewhopeModulus - 2, 3, 3, rlwe::kNewhopeModulus - 3};
+
+  std::vector<uint_m> v;
+  for (const uint_m::Int& coeff : coeffs) {
+    ASSERT_OK_AND_ASSIGN(auto elt, uint_m::ImportInt(coeff, params14_.get()));
+    v.push_back(elt);
+  }
+
+  ASSERT_OK_AND_ASSIGN(Polynomial result,
+                       Polynomial(v, params14_.get()).Substitute(substitution));
+
+  for (int i = 0; i < dimension; i++) {
+    EXPECT_EQ(result.Coeffs()[i].ExportInt(params14_.get()), expected[i]);
+  }
+}
+
+TEST_F(PolynomialTest, SubstitutionGreaterThanDimension) {
+  int dimension = 8;
+  int substitution = 15;
+
+  // Coefficients of a polynomial p(x).
+  std::vector<uint_m::Int> coeffs = {1, 1, 3, 0, 2, 3, 1, 3};
+  // Coefficients of p(x^15).
+  std::vector<uint_m::Int> expected = {1,
+                                       rlwe::kNewhopeModulus - 3,
+                                       rlwe::kNewhopeModulus - 1,
+                                       rlwe::kNewhopeModulus - 3,
+                                       rlwe::kNewhopeModulus - 2,
+                                       0,
+                                       rlwe::kNewhopeModulus - 3,
+                                       rlwe::kNewhopeModulus - 1};
+
+  std::vector<uint_m> v;
+  for (const uint_m::Int& coeff : coeffs) {
+    ASSERT_OK_AND_ASSIGN(auto elt, uint_m::ImportInt(coeff, params14_.get()));
+    v.push_back(elt);
+  }
+
+  ASSERT_OK_AND_ASSIGN(Polynomial result,
+                       Polynomial(v, params14_.get()).Substitute(substitution));
+
+  for (int i = 0; i < dimension; i++) {
+    EXPECT_EQ(result.Coeffs()[i].ExportInt(params14_.get()), expected[i]);
+  }
+}
+
+TEST_F(PolynomialTest, Serialize) {
+  ASSERT_OK_AND_ASSIGN(std::vector<uint_m> coeffs,
+                       SampleRandomCoeffs(kDimension));
+  for (int dimension = 1; dimension < kDimension; dimension++) {
+    // Initialize a vector with a dimension number of coefficients from coeffs.
+    std::vector<uint_m> v(coeffs.begin(), coeffs.begin() + dimension);
+
+    Polynomial p(v, params14_.get()), q(v, params14_.get());
+    ASSERT_OK_AND_ASSIGN(rlwe::SerializedCoefficientPolynomial serialized_p,
+                         p.Serialize());
+    ASSERT_OK_AND_ASSIGN(rlwe::SerializedCoefficientPolynomial serialized_q,
+                         q.Serialize());
+    EXPECT_THAT(serialized_p, EqualsProto(serialized_q));
+
+    // Ensure that a serialized polynomial can be deserialized.
+    ASSERT_OK_AND_ASSIGN(
+        auto deserialized_p,
+        Polynomial::Deserialize(serialized_p, params14_.get()));
+    ASSERT_OK_AND_ASSIGN(
+        auto deserialized_q,
+        Polynomial::Deserialize(serialized_q, params14_.get()));
+    EXPECT_EQ(deserialized_p, deserialized_q);
+
+    // Ensure that the length of a Serialized polynomial is SerializedSize
+    // times the number of coefficients.
+    EXPECT_LE(serialized_p.coeffs().size(),
+              p.Len() * params14_->SerializedSize());
+    EXPECT_LE(serialized_q.coeffs().size(),
+              q.Len() * params14_->SerializedSize());
+  }
+}
+
+}  // namespace
diff --git a/third_party/shell-encryption/src/testing/protobuf_matchers.h b/third_party/shell-encryption/src/testing/protobuf_matchers.h
new file mode 100644
index 0000000..e1414a0
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/protobuf_matchers.h
@@ -0,0 +1,46 @@
+#ifndef RLWE_TESTING_PROTOBUF_MATCHERS_H_
+#define RLWE_TESTING_PROTOBUF_MATCHERS_H_
+
+#include <google/protobuf/message.h>
+#include <google/protobuf/util/message_differencer.h>
+#include <gmock/gmock.h>
+
+namespace rlwe {
+namespace testing {
+
+class EqualsProtoImpl
+    : public ::testing::MatcherInterface<const google::protobuf::Message&> {
+ public:
+  EqualsProtoImpl(const google::protobuf::Message& other) : other_(&other) {}
+
+  bool MatchAndExplain(
+      const google::protobuf::Message& message,
+      ::testing::MatchResultListener* listener) const override {
+    if (!google::protobuf::util::MessageDifferencer::Equals(message, *other_)) {
+      *listener << "protobufs were not equal";
+      return false;
+    }
+    return true;
+  }
+
+  void DescribeTo(std::ostream* os) const override {
+    *os << "is equal to another protocol buffer";
+  }
+
+  void DescribeNegationTo(std::ostream* os) const override {
+    *os << "is not equal to another protocol buffer";
+  }
+
+ private:
+  const google::protobuf::Message* other_;  // not owned
+};
+
+::testing::Matcher<const google::protobuf::Message&> EqualsProto(
+    const google::protobuf::Message& other) {
+  return ::testing::Matcher<const google::protobuf::Message&>(new EqualsProtoImpl(other));
+}
+
+}  // namespace testing
+}  // namespace rlwe
+
+#endif  // RLWE_TESTING_PROTOBUF_MATCHERS_H_
diff --git a/third_party/shell-encryption/src/testing/protobuf_matchers_test.cc b/third_party/shell-encryption/src/testing/protobuf_matchers_test.cc
new file mode 100644
index 0000000..e06f02cd
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/protobuf_matchers_test.cc
@@ -0,0 +1,20 @@
+#include "testing/protobuf_matchers.h"
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "testing/coefficient_polynomial.pb.h"
+#include "testing/status_testing.h"
+
+namespace {
+
+TEST(EqualsProtoTest, EqualsProtoWorks) {
+  rlwe::SerializedCoefficientPolynomial coeffs;
+  coeffs.set_num_coeffs(10);
+  EXPECT_THAT(coeffs, rlwe::testing::EqualsProto(coeffs));
+
+  rlwe::SerializedCoefficientPolynomial coeffs_other;
+  coeffs_other.set_num_coeffs(20);
+  EXPECT_THAT(coeffs, ::testing::Not(rlwe::testing::EqualsProto(coeffs_other)));
+}
+
+}  // namespace
diff --git a/third_party/shell-encryption/src/testing/status_matchers.h b/third_party/shell-encryption/src/testing/status_matchers.h
new file mode 100644
index 0000000..16ba1e9
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/status_matchers.h
@@ -0,0 +1,97 @@
+#ifndef RLWE_TESTING_STATUS_MATCHERS_H_
+#define RLWE_TESTING_STATUS_MATCHERS_H_
+
+#include <gmock/gmock.h>
+#include "absl/status/status.h"
+#include "statusor.h"
+
+namespace rlwe {
+namespace testing {
+
+namespace internal {
+
+// This function and its overload allow the same matcher to be used for Status
+// and StatusOr tests.
+absl::Status GetStatus(const absl::Status& status) { return status; }
+
+template <typename T>
+absl::Status GetStatus(const rlwe::StatusOr<T>& statusor) {
+  return statusor.status();
+}
+
+template <typename StatusType>
+class StatusIsImpl : public ::testing::MatcherInterface<StatusType> {
+ public:
+  StatusIsImpl(const ::testing::Matcher<absl::StatusCode>& code,
+               const ::testing::Matcher<const std::string&>& message)
+      : code_(code), message_(message) {}
+
+  bool MatchAndExplain(StatusType status,
+                       ::testing::MatchResultListener* listener) const {
+    ::testing::StringMatchResultListener str_listener;
+    absl::Status real_status = GetStatus(status);
+    if (!code_.MatchAndExplain(real_status.code(), &str_listener)) {
+      *listener << str_listener.str();
+      return false;
+    }
+    if (!message_.MatchAndExplain(
+            static_cast<std::string>(real_status.message()), &str_listener)) {
+      *listener << str_listener.str();
+      return false;
+    }
+    return true;
+  }
+
+  void DescribeTo(std::ostream* os) const {
+    *os << "has a status code that ";
+    code_.DescribeTo(os);
+    *os << " and a message that ";
+    message_.DescribeTo(os);
+  }
+
+  void DescribeNegationto(std::ostream* os) const {
+    *os << "has a status code that ";
+    code_.DescribeNegationTo(os);
+    *os << " and a message that ";
+    message_.DescribeNegationTo(os);
+  }
+
+ private:
+  ::testing::Matcher<absl::StatusCode> code_;
+  ::testing::Matcher<const std::string&> message_;
+};
+
+class StatusIsPoly {
+ public:
+  StatusIsPoly(::testing::Matcher<absl::StatusCode>&& code,
+               ::testing::Matcher<const std::string&>&& message)
+      : code_(code), message_(message) {}
+
+  // Converts this polymorphic matcher to a monomorphic matcher.
+  template <typename StatusType>
+  operator ::testing::Matcher<StatusType>() const {
+    return ::testing::Matcher<StatusType>(
+        new StatusIsImpl<StatusType>(code_, message_));
+  }
+
+ private:
+  ::testing::Matcher<absl::StatusCode> code_;
+  ::testing::Matcher<const std::string&> message_;
+};
+
+}  // namespace internal
+
+// This function allows us to avoid a template parameter when writing tests, so
+// that we can transparently test both Status and StatusOr returns.
+internal::StatusIsPoly StatusIs(
+    ::testing::Matcher<absl::StatusCode>&& code,
+    ::testing::Matcher<const std::string&>&& message) {
+  return internal::StatusIsPoly(
+      std::forward<::testing::Matcher<absl::StatusCode>>(code),
+      std::forward<::testing::Matcher<const std::string&>>(message));
+}
+
+}  // namespace testing
+}  // namespace rlwe
+
+#endif  // RLWE_TESTING_STATUS_MATCHERS_H_
diff --git a/third_party/shell-encryption/src/testing/status_testing.h b/third_party/shell-encryption/src/testing/status_testing.h
new file mode 100644
index 0000000..6614783
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/status_testing.h
@@ -0,0 +1,32 @@
+#ifndef RLWE_TESTING_STATUS_TESTING_H_
+#define RLWE_TESTING_STATUS_TESTING_H_
+
+#include "status_macros.h"
+
+#undef ASSERT_OK
+#define ASSERT_OK(expr) \
+  RLWE_ASSERT_OK_IMPL_(RLWE_STATUS_MACROS_IMPL_CONCAT_(_status, __LINE__), expr)
+
+#define RLWE_ASSERT_OK_IMPL_(status, expr) \
+  auto status = (expr);                    \
+  ASSERT_THAT(status.ok(), ::testing::Eq(true));
+
+#undef EXPECT_OK
+#define EXPECT_OK(expr) \
+  RLWE_EXPECT_OK_IMPL_(RLWE_STATUS_MACROS_IMPL_CONCAT_(_status, __LINE__), expr)
+
+#define RLWE_EXPECT_OK_IMPL_(status, expr) \
+  auto status = (expr);                    \
+  EXPECT_THAT(status.ok(), ::testing::Eq(true));
+
+#undef ASSERT_OK_AND_ASSIGN
+#define ASSERT_OK_AND_ASSIGN(lhs, rexpr) \
+  RLWE_ASSERT_OK_AND_ASSIGN_IMPL_(       \
+      RLWE_STATUS_MACROS_IMPL_CONCAT_(_status_or_value, __LINE__), lhs, rexpr)
+
+#define RLWE_ASSERT_OK_AND_ASSIGN_IMPL_(statusor, lhs, rexpr) \
+  auto statusor = (rexpr);                                    \
+  ASSERT_THAT(statusor.ok(), ::testing::Eq(true));            \
+  lhs = std::move(statusor).ValueOrDie()
+
+#endif  // RLWE_TESTING_STATUS_TESTING_H_
diff --git a/third_party/shell-encryption/src/testing/testing_prng.h b/third_party/shell-encryption/src/testing/testing_prng.h
new file mode 100644
index 0000000..c915cf3
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/testing_prng.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2017 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RLWE_TESTING_TESTING_PRNG_H_
+#define RLWE_TESTING_TESTING_PRNG_H_
+
+#include <random>
+
+#include "integral_types.h"
+#include "prng/prng.h"
+
+namespace rlwe {
+namespace testing {
+
+// An insecure pseudo-random number generator for testing.
+class TestingPrng : public rlwe::SecurePrng {
+ public:
+  explicit TestingPrng(int seed) : generator_(seed) {}
+
+  rlwe::StatusOr<Uint8> Rand8() override { return distr_(generator_); }
+
+  rlwe::StatusOr<Uint64> Rand64() override { return distr_(generator_); }
+
+ private:
+  std::mt19937_64 generator_;
+  std::uniform_int_distribution<Uint64> distr_;
+};
+
+}  // namespace testing
+}  // namespace rlwe
+
+#endif  // RLWE_TESTING_TESTING_PRNG_H_
diff --git a/third_party/shell-encryption/src/testing/testing_utils.h b/third_party/shell-encryption/src/testing/testing_utils.h
new file mode 100644
index 0000000..2eef6fe
--- /dev/null
+++ b/third_party/shell-encryption/src/testing/testing_utils.h
@@ -0,0 +1,86 @@
+// This file contains constants and utilities for testing RLWE operations.
+
+#ifndef RLWE_TESTING_TESTING_UTILS_H_
+#define RLWE_TESTING_TESTING_UTILS_H_
+
+#include <cstdint>
+#include <vector>
+
+#include "constants.h"
+#include "montgomery.h"
+#include "polynomial.h"
+#include "status_macros.h"
+#include "symmetric_encryption.h"
+#include "testing/testing_prng.h"
+
+namespace rlwe {
+namespace testing {
+
+// Set constants.
+const Uint64 kDefaultLogT = 2;
+const Uint64 kDefaultT = (1 << kDefaultLogT) + 1;
+const Uint64 kDefaultVariance = 8;
+const Uint64 kCoeffs = kDegreeBound25;
+const Uint64 kLogCoeffs = kLogDegreeBound25;
+const Uint32 kModulus = kModulus25;
+
+// Construct montgomery int parameters used for testing rlwe encryption and
+// decryption functionality.
+inline rlwe::StatusOr<std::unique_ptr<MontgomeryIntParams<uint>>>
+ConstructMontgomeryIntParams() {
+  return MontgomeryIntParams<uint>::Create(kModulus);
+}
+
+// Sample a random plaintext.
+template <typename ModularInt>
+std::vector<typename ModularInt::Int> SamplePlaintext(
+    Uint64 num_coeffs = kCoeffs, typename ModularInt::Int t = kDefaultT) {
+  // Seed for the random number generator that is used to create test
+  // plaintexts.
+  unsigned int seed = 1;
+  std::vector<typename ModularInt::Int> plaintext(num_coeffs);
+  for (unsigned int i = 0; i < num_coeffs; i++) {
+    Uint64 rand = rand_r(&seed);
+    typename ModularInt::Int int_rand =
+        static_cast<typename ModularInt::Int>(rand);
+    plaintext[i] = int_rand % t;
+  }
+  return plaintext;
+}
+
+// Convert a vector of integers to a vector of montgomery integers.
+template <typename ModularInt>
+rlwe::StatusOr<std::vector<ModularInt>> ConvertToMontgomery(
+    const std::vector<typename ModularInt::Int>& coeffs,
+    rlwe::MontgomeryIntParams<typename ModularInt::Int>* params14) {
+  auto val = ModularInt::ImportZero(params14);
+  std::vector<ModularInt> output(coeffs.size(), val);
+  for (unsigned int i = 0; i < output.size(); i++) {
+    RLWE_ASSIGN_OR_RETURN(output[i],
+                          ModularInt::ImportInt(coeffs[i], params14));
+  }
+  return output;
+}
+
+template <typename ModularInt>
+rlwe::StatusOr<Polynomial<ModularInt>> GenerateRandomPlaintextPolynomial(
+    int num_coeffs, Uint64 log_t, typename ModularInt::Params* params,
+    const NttParameters<ModularInt>& ntt_params) {
+  if (ntt_params.number_coeffs != num_coeffs) {
+    return absl::InvalidArgumentError(
+        "The number of coefficients does not match that of the ntt "
+        "parameters.");
+  }
+  typename ModularInt::Int plaintext_modulus =
+      (params->One() << log_t) + params->One();
+  std::vector<typename ModularInt::Int> plaintext =
+      SamplePlaintext<ModularInt>(num_coeffs, plaintext_modulus);
+  RLWE_ASSIGN_OR_RETURN(std::vector<ModularInt> rands,
+                        ConvertToMontgomery<ModularInt>(plaintext, params));
+  return Polynomial<ModularInt>::ConvertToNtt(rands, ntt_params, params);
+}
+
+}  // namespace testing
+}  // namespace rlwe
+
+#endif  // RLWE_TESTING_TESTING_UTILS_H_
diff --git a/third_party/shell-encryption/src/transcription.h b/third_party/shell-encryption/src/transcription.h
new file mode 100644
index 0000000..3bc5c150
--- /dev/null
+++ b/third_party/shell-encryption/src/transcription.h
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2019 Google LLC.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Implementation of transcription for serialization.
+//
+// Input is a sequence of integers, each containing a j-bit chunk of
+// a message. Output encodes the same message in a vector of Ints storing
+// the message broken into k-bit chunks. Performs this transcription for the
+// first input_bit_length bits encoded in input.
+
+#ifndef RLWE_TRANSCRIPTION_H_
+#define RLWE_TRANSCRIPTION_H_
+
+#include <vector>
+
+#include "absl/strings/str_cat.h"
+#include "statusor.h"
+
+namespace rlwe {
+
+// Takes as template arguments the input and output integer types. It must hold
+// that the input_vector is large enough to contain the input_bit_length bits.
+template <typename InputInt, typename OutputInt>
+rlwe::StatusOr<std::vector<OutputInt>> TranscribeBits(
+    const std::vector<InputInt>& input_vector, int input_bit_length,
+    int input_bits_per_int, int output_bits_per_int) {
+  // Check that the templating is consistent, i.e., that we do not try to
+  // extract/save more bits than available in each type.
+  const int bit_size_input_type = sizeof(InputInt) * 8;
+  const int bit_size_output_type = sizeof(OutputInt) * 8;
+  if (input_bits_per_int > bit_size_input_type) {
+    return absl::InvalidArgumentError(
+        absl::StrCat("The input type only contains ", bit_size_input_type,
+                     " bits, hence we cannot extract ", input_bits_per_int,
+                     " bits out of each integer."));
+  }
+  if (output_bits_per_int > bit_size_output_type) {
+    return absl::InvalidArgumentError(
+        absl::StrCat("The output type only contains ", bit_size_output_type,
+                     " bits, hence we cannot save ", output_bits_per_int,
+                     " bits in each integer."));
+  }
+  if (input_bit_length < 0) {
+    return absl::InvalidArgumentError(absl::StrCat(
+        "The input bit length, ", input_bit_length, ", cannot be negative."));
+  }
+  if (input_bit_length == 0) {
+    if (input_vector.empty()) {
+      return std::vector<OutputInt>();
+    } else {
+      return absl::InvalidArgumentError(
+          "Cannot transcribe an empty output vector with a non-empty input "
+          "vector.");
+    }
+  }
+  // Compute the number of input chunks
+  const int input_chunks =
+      (input_bit_length + input_bits_per_int - 1) / input_bits_per_int;
+  // Check that the input_vector is of size at least input_chunks.
+  if (input_vector.size() < input_chunks) {
+    return absl::InvalidArgumentError(
+        absl::StrCat("The input vector of size ", input_vector.size(),
+                     " is too small to contain ", input_bit_length, " bits."));
+  }
+  // Initialize the output string.
+  const int output_chunks =
+      (input_bit_length + (output_bits_per_int - 1)) / output_bits_per_int;
+  std::vector<OutputInt> output(output_chunks, 0);
+
+  // Keep track of how many bits remain in input
+  int remaining_bits_in_input = input_bit_length;
+  // Iterate over the input elements and process each one completely before
+  // moving to the next one. One or several output elements will be filled with
+  // the entire input chunk considered.
+  OutputInt* output_ptr = &output[0];
+  int size_output_chunk =
+      std::min(remaining_bits_in_input, output_bits_per_int);
+  int number_output_bits_needed = size_output_chunk;
+  // Loop over all the input chunks.
+  for (int i = 0; i < input_chunks; i++) {
+    // Number of bits in "input"
+    int number_bits_in_input =
+        std::min(input_bits_per_int, remaining_bits_in_input);
+    // Load input and put the bits in the most significant bits of in.
+    InputInt input = input_vector[i]
+                     << (sizeof(InputInt) * 8 - number_bits_in_input);
+
+    // Use all the bits in "in" before loading the next input
+    while (number_bits_in_input > 0) {
+      // If no bit is needed in output, go to the next element, and set the
+      // number of bits needed to the minimum of output_bits_per_int and number
+      // of remaining bits in case the last output cannot be filled completely.
+      if (number_output_bits_needed == 0) {
+        output_ptr++;
+        size_output_chunk =
+            std::min(remaining_bits_in_input, output_bits_per_int);
+        number_output_bits_needed = size_output_chunk;
+      }
+      // Compute the number of bits we can process
+      int number_bits_to_process =
+          std::min(number_bits_in_input, number_output_bits_needed);
+      // Keep only number_bits_to_process bits in the most significant bits of
+      // "input" (so shift left by the difference).
+      InputInt bits_left = input
+                           << (number_bits_in_input - number_bits_to_process);
+      // Move these bits to the least significant bits of an OutputInt (hence,
+      // shift right by the size of an InputInt minus the number of bits that
+      // are being processed.
+      OutputInt mask = static_cast<OutputInt>(
+          bits_left >> (sizeof(InputInt) * 8 - number_bits_to_process));
+      // Xor the mask at the right place (hence shift left by the number of
+      // output bits already processed).
+      *output_ptr |= (mask << (size_output_chunk - number_output_bits_needed));
+      // Update the number of output bits needed and in "input".
+      number_bits_in_input -= number_bits_to_process;
+      number_output_bits_needed -= number_bits_to_process;
+    }
+    // At most input_bits_per_int bits just got read, so we update the number of
+    // remaining bits in input. This may end up to be negative, but only when we
+    // are exiting the loop.
+    remaining_bits_in_input -= input_bits_per_int;
+  }
+  return output;
+}
+
+}  // namespace rlwe
+
+#endif  // RLWE_TRANSCRIPTION_H_
diff --git a/third_party/shell-encryption/src/transcription_test.cc b/third_party/shell-encryption/src/transcription_test.cc
new file mode 100644
index 0000000..d98d2b2
--- /dev/null
+++ b/third_party/shell-encryption/src/transcription_test.cc
@@ -0,0 +1,465 @@
+#include "transcription.h"
+
+#include <cstdint>
+#include <random>
+#include <vector>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include "absl/numeric/int128.h"
+#include "integral_types.h"
+#include "status_macros.h"
+#include "testing/status_matchers.h"
+#include "testing/status_testing.h"
+
+namespace rlwe {
+namespace {
+
+using ::rlwe::testing::StatusIs;
+using ::testing::HasSubstr;
+
+template <typename Int>
+class TranscribeTest : public ::testing::Test {};
+
+const int kLength = 10;
+
+using MyTypes = ::testing::Types<Uint8, Uint16, Uint32, absl::uint128>;
+TYPED_TEST_SUITE(TranscribeTest, MyTypes);
+
+// Generate a random integer of a specified number of bits.
+template <class TypeParam>
+TypeParam generate_random(int number_bits, unsigned int* seed) {
+  if (number_bits == 0) return 0;
+  TypeParam random_value = static_cast<TypeParam>(rand_r(seed));
+  if (number_bits >= 8 * sizeof(TypeParam)) {
+    return random_value;
+  } else {
+    TypeParam mask = (static_cast<TypeParam>(1) << number_bits) - 1;
+    return random_value & mask;
+  }
+}
+// Specialization for uint128.
+template <>
+absl::uint128 generate_random(int number_bits, unsigned int* seed) {
+  int number_bits_hi = number_bits - std::min(64, number_bits);
+  int number_bits_lo = number_bits % 64;
+  uint64_t hi = generate_random<uint64_t>(number_bits_hi, seed);
+  uint64_t lo = generate_random<uint64_t>(number_bits_lo, seed);
+  return absl::MakeUint128(hi, lo);
+}
+
+// Verifies that the input_vector is long enough.
+TYPED_TEST(TranscribeTest, InputLongEnough) {
+  using InputInt = TypeParam;
+  using OutputInt = TypeParam;
+  const int input_number_of_bits = 8 * sizeof(InputInt);
+  const int output_number_of_bits = 8 * sizeof(OutputInt);
+
+  for (auto input_bit_length : {1, 100, 1000, 10000}) {
+    for (int i = 1; i < input_number_of_bits; i++) {
+      int necessary_number_of_chunks = (input_bit_length + i - 1) / i;
+      std::vector<InputInt> input(necessary_number_of_chunks - 1, 0);
+      for (int j = 1; j < output_number_of_bits; j++) {
+        EXPECT_THAT(
+            (TranscribeBits<InputInt, OutputInt>(input, input_bit_length, i,
+                                                 j)),
+            StatusIs(::absl::StatusCode::kInvalidArgument,
+                     HasSubstr(absl::StrCat("The input vector of size ",
+                                            (necessary_number_of_chunks - 1),
+                                            " is too small to contain ",
+                                            input_bit_length, " bits."))));
+      }
+    }
+  }
+}
+
+// Verifies that the input and output types are consistent.
+TYPED_TEST(TranscribeTest, InconsistentInputType) {
+  using InputInt = TypeParam;
+  using OutputInt = TypeParam;
+  const int input_number_of_bits = 8 * sizeof(InputInt);
+  const int output_number_of_bits = 8 * sizeof(OutputInt);
+
+  // Try to extract too many bits.
+  const int input_bits_per_int = input_number_of_bits + 1;
+
+  for (int len = 1; len <= kLength; len++) {
+    int input_bit_length = input_bits_per_int * len;
+    int necessary_number_of_chunks =
+        (input_bit_length + input_number_of_bits - 1) / input_number_of_bits;
+    std::vector<InputInt> input(necessary_number_of_chunks, 0);
+    for (int j = 1; j <= output_number_of_bits; j++) {
+      EXPECT_THAT(
+          (TranscribeBits<InputInt, OutputInt>(input, input_bit_length,
+                                               input_bits_per_int, j)),
+          StatusIs(::absl::StatusCode::kInvalidArgument,
+                   HasSubstr(absl::StrCat(
+                       "The input type only contains ", input_number_of_bits,
+                       " bits, hence we cannot extract ", input_bits_per_int,
+                       " bits out of each integer."))));
+    }
+  }
+}
+
+TYPED_TEST(TranscribeTest, InconsistentOutputType) {
+  using InputInt = TypeParam;
+  using OutputInt = TypeParam;
+  const int input_number_of_bits = 8 * sizeof(InputInt);
+  const int output_number_of_bits = 8 * sizeof(OutputInt);
+
+  // Try to store too many bits.
+  const int output_bits_per_int = output_number_of_bits + 1;
+
+  for (int len = 1; len <= kLength; len++) {
+    std::vector<InputInt> input(len, 0);
+    for (int i = 1; i <= input_number_of_bits; i++) {
+      EXPECT_THAT(
+          (TranscribeBits<InputInt, OutputInt>(input, i * len, i,
+                                               output_bits_per_int)),
+          StatusIs(::absl::StatusCode::kInvalidArgument,
+                   HasSubstr(absl::StrCat(
+                       "The output type only contains ", output_number_of_bits,
+                       " bits, hence we cannot save ", output_bits_per_int,
+                       " bits in each integer."))));
+    }
+  }
+}
+
+TYPED_TEST(TranscribeTest, NegativeInputLength) {
+  using InputInt = TypeParam;
+  using OutputInt = TypeParam;
+  const int input_bit_length = -1;
+
+  // create a zero string
+  std::vector<InputInt> bits_i(kLength, 0);
+  EXPECT_THAT(
+      (TranscribeBits<InputInt, OutputInt>(bits_i, input_bit_length, 0, 0)),
+      StatusIs(
+          ::absl::StatusCode::kInvalidArgument,
+          HasSubstr(absl::StrCat("The input bit length, ", input_bit_length,
+                                 ", cannot be negative."))));
+}
+
+TYPED_TEST(TranscribeTest, NonEmptyInputToEmptyOutput) {
+  using InputInt = TypeParam;
+  using OutputInt = TypeParam;
+  const int input_bit_length = 0;
+
+  // Create a zero string
+  std::vector<InputInt> bits_i(kLength, 0);
+  EXPECT_THAT(
+      (TranscribeBits<InputInt, OutputInt>(bits_i, input_bit_length, 1, 1)),
+      StatusIs(::absl::StatusCode::kInvalidArgument,
+               HasSubstr("Cannot transcribe an empty output "
+                         "vector with a non-empty input "
+                         "vector.")));
+}
+
+// Convert a sequence in chunks of i bits into a sequence in chunks of j
+// bits.
+TYPED_TEST(TranscribeTest, TranscribeTypeToType) {
+  using InputInt = TypeParam;
+  using OutputInt = TypeParam;
+  const int input_number_of_bits = 8 * sizeof(InputInt);
+  const int output_number_of_bits = 8 * sizeof(OutputInt);
+
+  unsigned int seed = 0;
+
+  for (int i = 1; i <= input_number_of_bits; i++) {
+    for (int j = 1; j <= output_number_of_bits; j++) {
+      for (int len = 1; len <= kLength; len++) {
+        // Create a random string of len bytes.
+        std::vector<InputInt> bits_i(len, 0);
+        for (InputInt& byte : bits_i) {
+          byte = generate_random<InputInt>(i, &seed);
+        }
+
+        // Convert to j bits.
+        ASSERT_OK_AND_ASSIGN(
+            std::vector<OutputInt> bits_j,
+            (TranscribeBits<InputInt, OutputInt>(bits_i, len * i, i, j)));
+
+        // Ensure that bits_j has the right length.
+        EXPECT_EQ(bits_j.size(), (len * i + (j - 1)) / j);
+
+        // Ensure that the bits came out the same.
+        for (int bit = 0; bit < i * len; bit++) {
+          InputInt bit_i = bits_i[bit / i] >> (bit % i);
+          OutputInt bit_j = bits_j[bit / j] >> (bit % j);
+
+          EXPECT_EQ(bit_i & 1, bit_j & 1);
+        }
+
+        // Ensure that all other bits in bits_j are zeros.
+        for (int byte = 0; byte < bits_j.size(); byte++) {
+          if (j == output_number_of_bits) continue;  // no remaining bits
+          EXPECT_EQ(bits_j[byte] >> j, 0);
+        }
+      }
+    }
+  }
+}
+
+TYPED_TEST(TranscribeTest, TranscribeTypeToTypeAndBack) {
+  using InputInt = TypeParam;
+  using OutputInt = TypeParam;
+  const int input_number_of_bits = 8 * sizeof(InputInt);
+  const int output_number_of_bits = 8 * sizeof(OutputInt);
+
+  unsigned int seed = 0;
+
+  for (int i = 1; i <= input_number_of_bits; i++) {
+    for (int j = 1; j <= output_number_of_bits; j++) {
+      for (int len = 1; len <= kLength; len++) {
+        // Create a random string of len bytes.
+        std::vector<InputInt> bits_i(len, 0);
+        for (InputInt& byte : bits_i) {
+          byte = generate_random<InputInt>(i, &seed);
+        }
+
+        // Convert to j bits.
+        ASSERT_OK_AND_ASSIGN(
+            std::vector<OutputInt> bits_j,
+            (TranscribeBits<InputInt, OutputInt>(bits_i, len * i, i, j)));
+
+        // Convert back.
+        ASSERT_OK_AND_ASSIGN(
+            std::vector<InputInt> bits_i2,
+            (TranscribeBits<InputInt, OutputInt>(bits_j, len * i, j, i)));
+
+        EXPECT_EQ(bits_i, bits_i2);
+      }
+    }
+  }
+}
+
+// Test when the input bit length is not a multiple of the number of bits per
+// int.
+TYPED_TEST(TranscribeTest, InputBitLengthNotMultipleBitsPerInt) {
+  using InputInt = TypeParam;
+  using OutputInt = TypeParam;
+  const int input_number_of_bits = 8 * sizeof(InputInt);
+  const int output_number_of_bits = 8 * sizeof(OutputInt);
+
+  unsigned int seed = 0;
+
+  // Reduce the number of elements to speed up the test.
+  for (auto i : {2, 7, input_number_of_bits / 2, input_number_of_bits / 2 + 1,
+                 input_number_of_bits}) {
+    for (int j = 1; j <= output_number_of_bits; j++) {
+      // Reduce the number of elements to speed up the test.
+      for (int len = 1; len <= kLength / 4 + 1; len++) {
+        for (int input_bit_length = len * i + 1;
+             input_bit_length < (len + 1) * i; input_bit_length++) {
+          int necessary_number_of_chunks = (input_bit_length + i - 1) / i;
+          // Create a random string of necessary_number_of_chunks bytes.
+          std::vector<InputInt> bits_i(necessary_number_of_chunks, 0);
+          for (InputInt& byte : bits_i) {
+            byte = generate_random<InputInt>(i, &seed);
+          }
+          // Convert to j bits.
+          ASSERT_OK_AND_ASSIGN(std::vector<OutputInt> bits_j,
+                               (TranscribeBits<InputInt, OutputInt>(
+                                   bits_i, input_bit_length, i, j)));
+          // Ensure that the bits came out the same.
+          for (int bit = 0; bit < input_bit_length; bit++) {
+            InputInt bit_i = bits_i[bit / i] >> (bit % i);
+            OutputInt bit_j = bits_j[bit / j] >> (bit % j);
+
+            EXPECT_EQ(bit_i & 1, bit_j & 1);
+          }
+          // Ensure that all other bits in bits_j are zeros.
+          for (int byte = 0; byte < bits_j.size(); byte++) {
+            if (j == output_number_of_bits) continue;  // no remaining bits
+            EXPECT_EQ(bits_j[byte] >> j, 0);
+          }
+          // The last element will only have input_bit_length % j bits sets.
+          // Check that all the other bits are 0. The test is only meaningful
+          // when input_bit_length % j != 0.
+          if (input_bit_length % j != 0) {
+            EXPECT_EQ(bits_j[bits_j.size() - 1] >> (input_bit_length % j), 0);
+          }
+        }
+      }
+    }
+  }
+}
+
+TYPED_TEST(TranscribeTest, TranscribeTypeToUint64) {
+  using InputInt = TypeParam;
+  using OutputInt = uint64_t;
+  const int input_number_of_bits = 8 * sizeof(InputInt);
+  const int output_number_of_bits = 8 * sizeof(OutputInt);
+
+  unsigned int seed = 0;
+
+  for (int i = 1; i <= input_number_of_bits; i++) {
+    for (int j = 1; j <= output_number_of_bits; j++) {
+      for (int len = 1; len <= kLength; len++) {
+        // Create a random string of len bytes.
+        std::vector<InputInt> bits_i(len, 0);
+        for (InputInt& byte : bits_i) {
+          byte = generate_random<InputInt>(i, &seed);
+        }
+
+        // Convert to j bits.
+        ASSERT_OK_AND_ASSIGN(
+            std::vector<OutputInt> bits_j,
+            (TranscribeBits<InputInt, OutputInt>(bits_i, len * i, i, j)));
+
+        // Ensure that bits_j has the right length.
+        EXPECT_EQ(bits_j.size(), (len * i + (j - 1)) / j);
+
+        // Ensure that the bits came out the same.
+        for (int bit = 0; bit < i * len; bit++) {
+          Uint8 bit_i = static_cast<Uint8>(bits_i[bit / i] >> (bit % i));
+          Uint8 bit_j = static_cast<Uint8>(bits_j[bit / j] >> (bit % j));
+
+          EXPECT_EQ(bit_i & 0x01, bit_j & 0x01);
+        }
+
+        // Ensure that all other bits in bits_j are zeros.
+        for (int byte = 0; byte < bits_j.size(); byte++) {
+          if (j == output_number_of_bits) continue;  // no remaining bits
+          EXPECT_EQ(bits_j[byte] >> j, 0);
+        }
+      }
+    }
+  }
+}
+
+TYPED_TEST(TranscribeTest, TranscribeTypeToUint128) {
+  using InputInt = TypeParam;
+  using OutputInt = absl::uint128;
+  const int input_number_of_bits = 8 * sizeof(InputInt);
+  const int output_number_of_bits = 8 * sizeof(OutputInt);
+
+  unsigned int seed = 0;
+
+  for (int i = 1; i <= input_number_of_bits; i++) {
+    // Reduce the number of elements to speed up the test.
+    for (auto j : {2, 7, output_number_of_bits / 2,
+                   output_number_of_bits / 2 + 1, output_number_of_bits}) {
+      for (int len = 1; len <= kLength; len++) {
+        // Create a random string of len bytes.
+        std::vector<InputInt> bits_i(len, 0);
+        for (InputInt& byte : bits_i) {
+          byte = generate_random<InputInt>(i, &seed);
+        }
+
+        // Convert to j bits.
+        ASSERT_OK_AND_ASSIGN(
+            std::vector<OutputInt> bits_j,
+            (TranscribeBits<InputInt, OutputInt>(bits_i, len * i, i, j)));
+
+        // Ensure that bits_j has the right length.
+        EXPECT_EQ(bits_j.size(), (len * i + (j - 1)) / j);
+
+        // Ensure that the bits came out the same.
+        for (int bit = 0; bit < i * len; bit++) {
+          Uint8 bit_i = static_cast<Uint8>(bits_i[bit / i] >> (bit % i));
+          Uint8 bit_j = static_cast<Uint8>(bits_j[bit / j] >> (bit % j));
+
+          EXPECT_EQ(bit_i & 0x01, bit_j & 0x01);
+        }
+
+        // Ensure that all other bits in bits_j are zeros.
+        for (int byte = 0; byte < bits_j.size(); byte++) {
+          if (j == output_number_of_bits) continue;  // no remaining bits
+          EXPECT_EQ(bits_j[byte] >> j, 0);
+        }
+      }
+    }
+  }
+}
+
+TYPED_TEST(TranscribeTest, TranscribeTypeToUint8) {
+  using InputInt = TypeParam;
+  using OutputInt = Uint8;
+  const int input_number_of_bits = 8 * sizeof(InputInt);
+  const int output_number_of_bits = 8 * sizeof(OutputInt);
+
+  unsigned int seed = 0;
+
+  for (int i = 1; i <= input_number_of_bits; i++) {
+    for (int j = 1; j <= output_number_of_bits; j++) {
+      for (int len = 1; len <= kLength; len++) {
+        // Create a random string of len bytes.
+        std::vector<InputInt> bits_i(len, 0);
+        for (InputInt& byte : bits_i) {
+          byte = generate_random<InputInt>(i, &seed);
+        }
+
+        // Convert to j bits.
+        ASSERT_OK_AND_ASSIGN(
+            std::vector<OutputInt> bits_j,
+            (TranscribeBits<InputInt, OutputInt>(bits_i, len * i, i, j)));
+
+        // Ensure that bits_j has the right length.
+        EXPECT_EQ(bits_j.size(), (len * i + (j - 1)) / j);
+
+        // Ensure that the bits came out the same.
+        for (int bit = 0; bit < i * len; bit++) {
+          Uint8 bit_i = static_cast<Uint8>(bits_i[bit / i] >> (bit % i));
+          Uint8 bit_j = static_cast<Uint8>(bits_j[bit / j] >> (bit % j));
+
+          EXPECT_EQ(bit_i & 0x01, bit_j & 0x01);
+        }
+
+        // Ensure that all other bits in bits_j are zeros.
+        for (int byte = 0; byte < bits_j.size(); byte++) {
+          if (j == output_number_of_bits) continue;  // no remaining bits
+          EXPECT_EQ(bits_j[byte] >> j, 0);
+        }
+      }
+    }
+  }
+}
+
+TYPED_TEST(TranscribeTest, InputLengthSmallerThanNumberOfBitsPerInput) {
+  using InputInt = TypeParam;
+  using OutputInt = TypeParam;
+  const int input_number_of_bits = 8 * sizeof(InputInt);
+  const int output_number_of_bits = 8 * sizeof(OutputInt);
+
+  unsigned int seed = 0;
+
+  for (int input_bit_length = 1; input_bit_length < input_number_of_bits;
+       input_bit_length++) {
+    // Create a random string of 1 byte.
+    std::vector<InputInt> bits_i(
+        {generate_random<InputInt>(input_bit_length, &seed)});
+    for (int j = 1; j <= output_number_of_bits; j++) {
+      // Convert to j bits.
+      ASSERT_OK_AND_ASSIGN(
+          std::vector<OutputInt> bits_j,
+          (TranscribeBits<InputInt, OutputInt>(bits_i, input_bit_length,
+                                               input_number_of_bits, j)));
+      // Ensure that bits_j has the right length.
+      EXPECT_EQ(bits_j.size(), (input_bit_length + (j - 1)) / j);
+
+      // Ensure that the bits came out the same.
+      for (int bit = 0; bit < input_bit_length; bit++) {
+        Uint8 bit_i = static_cast<Uint8>(bits_i[0] >> bit);
+        Uint8 bit_j = static_cast<Uint8>(bits_j[bit / j] >> (bit % j));
+
+        EXPECT_EQ(bit_i & 0x01, bit_j & 0x01);
+      }
+
+      // Ensure that all other bits in bits_j are zeros.
+      for (int byte = 0; byte < bits_j.size(); byte++) {
+        if (j == output_number_of_bits) continue;  // no remaining bits
+        EXPECT_EQ(bits_j[byte] >> j, 0);
+      }
+      // The last element will only have input_bit_length % j bits sets.
+      // Check that all the other bits are 0. The test is only meaningful
+      // when input_bit_length % j != 0.
+      if (input_bit_length % j != 0) {
+        EXPECT_EQ(bits_j[bits_j.size() - 1] >> (input_bit_length % j), 0);
+      }
+    }
+  }
+}  // namespace
+
+}  // namespace
+}  // namespace rlwe
diff --git a/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/nodes/plane-node.js b/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/nodes/plane-node.js
index ad28946..55495cb 100644
--- a/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/nodes/plane-node.js
+++ b/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/nodes/plane-node.js
@@ -188,6 +188,10 @@
     if(this.polygon)
       throw new Error(`Polygon is set on a plane where it shouldn't be!`);
 
+    if(polygon.length === 0) {
+      return Promise.resolve();
+    }
+
     this.createPlanePrimitive(polygon);
 
     // eagerly clean up render primitive's VAO
diff --git a/third_party/webxr_test_pages/webxr-samples/js/hit-test.js b/third_party/webxr_test_pages/webxr-samples/js/hit-test.js
index 00cd512c9..28c7145 100644
--- a/third_party/webxr_test_pages/webxr-samples/js/hit-test.js
+++ b/third_party/webxr_test_pages/webxr-samples/js/hit-test.js
@@ -119,6 +119,10 @@
 // single plane hit test - doesn't take into account the plane's polygon
 function hitTestPlane(frame, ray, plane, frameOfReference) {
   const plane_pose = frame.getPose(plane.planeSpace, frameOfReference);
+  if(!plane_pose) {
+    return null;
+  }
+
   const plane_normal = transform_point_by_matrix(
     plane_pose.transform.matrix, {x : 0, y : 1.0, z : 0, w : 0});
   const plane_center = normalize_perspective(
diff --git a/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-hit-test.html b/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-hit-test.html
index caaccc3..a8eeeef 100644
--- a/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-hit-test.html
+++ b/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-hit-test.html
@@ -431,8 +431,13 @@
             });
 
             tracked_anchors.forEach(anchor => {
-              anchor.context.sceneObject.matrix = frame.getPose(anchor.anchorSpace, xrRefSpace).transform.matrix;
-              anchor.context.sceneObject.visible = true;
+              const anchorPose = frame.getPose(anchor.anchorSpace, xrRefSpace);
+              if(anchorPose) {
+                anchor.context.sceneObject.matrix = anchorPose.transform.matrix;
+                anchor.context.sceneObject.visible = true;
+              } else {
+                anchor.context.sceneObject.visible = false;
+              }
             });
 
             all_previous_anchors = tracked_anchors;
diff --git a/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-local-anchor.html b/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-local-anchor.html
index 3cd1df5..7f6fe17 100644
--- a/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-local-anchor.html
+++ b/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-local-anchor.html
@@ -261,8 +261,13 @@
           });
 
           tracked_anchors.forEach(anchor => {
-            anchor.context.sceneObject.matrix = frame.getPose(anchor.anchorSpace, xrRefSpace).transform.matrix;
-            anchor.context.sceneObject.visible = true;
+            const anchorPose = frame.getPose(anchor.anchorSpace, xrRefSpace);
+            if(anchorPose) {
+              anchor.context.sceneObject.matrix = anchorPose.transform.matrix;
+              anchor.context.sceneObject.visible = true;
+            } else {
+              anchor.context.sceneObject.visible = false;
+            }
           });
 
           all_previous_anchors = tracked_anchors;
@@ -274,25 +279,30 @@
           all_previous_anchors = new Set();
         }
 
-        if(xrAnchor) {
+        if (xrAnchor) {
           const anchorPose = frame.getPose(xrAnchor.anchorSpace, xrRefSpace);
-          const pos = anchorPose.transform.position;
-          const rot = anchorPose.transform.orientation;
+          if (anchorPose) {
+            const pos = anchorPose.transform.position;
+            const rot = anchorPose.transform.orientation;
 
-          const degs = getAngle(
-            quat.fromValues(rot.x, rot.y, rot.z, rot.w),
-            quat.create()
-          ) * 180 / Math.PI;
+            const degs = getAngle(
+              quat.fromValues(rot.x, rot.y, rot.z, rot.w),
+              quat.create()
+            ) * 180 / Math.PI;
 
-          anchorPoseElement.innerText = pos.x.toFixed(3) + "m,"
-                                      + pos.y.toFixed(3) + "m,"
-                                      + pos.z.toFixed(3) + "m,"
-                                      + degs.toFixed(3) + "deg";
+            anchorPoseElement.innerText = pos.x.toFixed(3) + "m,"
+                                        + pos.y.toFixed(3) + "m,"
+                                        + pos.z.toFixed(3) + "m,"
+                                        + degs.toFixed(3) + "deg";
 
-          const drift = Math.sqrt(pos.x * pos.x + pos.y * pos.y + pos.z * pos.z);
-          anchorDriftElement.innerText = drift.toFixed(3) + "m";
+            const drift = Math.sqrt(pos.x * pos.x + pos.y * pos.y + pos.z * pos.z);
+            anchorDriftElement.innerText = drift.toFixed(3) + "m";
 
-          console.debug(pos, rot, drift);
+            console.debug(pos, rot, drift);
+          } else {
+            anchorPoseElement.innerText = "Anchor pose null.";
+            anchorDriftElement.innerText  = "Anchor pose null.";
+          }
         } else if(anchorRemoved) {
           anchorPoseElement.innerText = "Anchor already gone.";
           anchorDriftElement.innerText  = "Anchor already gone.";
diff --git a/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-plane-detection-anchors.html b/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-plane-detection-anchors.html
index 9ab431a..806fd85 100644
--- a/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-plane-detection-anchors.html
+++ b/third_party/webxr_test_pages/webxr-samples/proposals/phone-ar-plane-detection-anchors.html
@@ -445,10 +445,15 @@
           planeFrameOfReference.addNode(zRay);
 
           plane_node.addNode(planeFrameOfReference);
-
           plane.scene_node = plane_node;
-          plane.scene_node.matrix = frame.getPose(plane.planeSpace, xrRefSpace).transform.matrix;
 
+          const planePose = frame.getPose(plane.planeSpace, xrRefSpace);
+          if (planePose) {
+            plane.scene_node.matrix = planePose.transform.matrix;
+            plane.scene_node.visible = true;
+          } else {
+            plane.scene_node.visible = false;
+          }
           plane.extended_polygon = extendPolygon(plane.polygon);
           plane.extended_polygon_node = new PlaneNode({
             polygon : plane.extended_polygon,
@@ -464,7 +469,13 @@
         {
           // old plane that was updated in current frame
           plane.scene_node.onPlaneChanged(plane.polygon);
-          plane.scene_node.matrix = frame.getPose(plane.planeSpace, xrRefSpace).transform.matrix;
+          const planePose = frame.getPose(plane.planeSpace, xrRefSpace);
+          if (planePose) {
+            plane.scene_node.matrix = planePose.transform.matrix;
+            plane.scene_node.visible = true;
+          } else {
+            plane.scene_node.visible = false;
+          }
           plane.extended_polygon = extendPolygon(plane.polygon);
           plane.extended_polygon_node.onPlaneChanged(plane.extended_polygon);
         }
@@ -526,8 +537,13 @@
           });
 
           tracked_anchors.forEach(anchor => {
-            anchor.context.sceneObject.matrix = frame.getPose(anchor.anchorSpace, xrRefSpace).transform.matrix;
-            anchor.context.sceneObject.visible = true;
+            const anchorPose = frame.getPose(anchor.anchorSpace, xrRefSpace);
+            if (anchorPose) {
+              anchor.context.sceneObject.matrix = anchorPose.transform.matrix;
+              anchor.context.sceneObject.visible = true;
+            } else {
+              anchor.context.sceneObject.visible = false;
+            }
           });
 
           all_previous_anchors = tracked_anchors;
diff --git a/tools/android/avd/avd.py b/tools/android/avd/avd.py
index b730eaa..357561f 100755
--- a/tools/android/avd/avd.py
+++ b/tools/android/avd/avd.py
@@ -69,11 +69,18 @@
       metavar='PATH',
       help='Path to which `cipd create` should dump json output '
            'via -json-output.')
+  create_parser.add_argument(
+      '--dry-run',
+      action='store_true',
+      help='Skip the CIPD package creation after creating the AVD.')
 
   def create_cmd(args):
     avd.AvdConfig(args.avd_config).Create(
-        force=args.force, snapshot=args.snapshot, keep=args.keep,
-        cipd_json_output=args.cipd_json_output)
+        force=args.force,
+        snapshot=args.snapshot,
+        keep=args.keep,
+        cipd_json_output=args.cipd_json_output,
+        dry_run=args.dry_run)
     return 0
 
   create_parser.set_defaults(func=create_cmd)
diff --git a/tools/clang/scripts/goma_link_tests.py b/tools/clang/scripts/goma_link_tests.py
index 8499a8e..4d64da0 100755
--- a/tools/clang/scripts/goma_link_tests.py
+++ b/tools/clang/scripts/goma_link_tests.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 # Copyright (c) 2020 The Chromium Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
@@ -17,11 +17,6 @@
 #
 # The report will be available as htmlcov/index.html
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import goma_ld
 import goma_link
 
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 7d33689..3af6995a 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -26925,6 +26925,7 @@
   <int value="3200" label="CoopAndCoepIsolated"/>
   <int value="3201" label="WrongBaselineOfButtonElement"/>
   <int value="3202" label="V8Document_HasTrustToken_Method"/>
+  <int value="3203" label="ForceLoadAtTop"/>
 </enum>
 
 <enum name="FeaturePolicyAllowlistType">
@@ -38397,6 +38398,8 @@
   <int value="-1134307340" label="stop-loading-in-background:enabled"/>
   <int value="-1132704128" label="AndroidPaymentAppsFilter:disabled"/>
   <int value="-1128912963" label="MediaControlsExpandGesture:disabled"/>
+  <int value="-1128221789"
+      label="AutofillEnableSurfacingServerCardNickname:enabled"/>
   <int value="-1127996427" label="enable-files-details-panel"/>
   <int value="-1127963300" label="CrostiniUsername:enabled"/>
   <int value="-1126217973" label="IdleTimeSpellChecking:disabled"/>
@@ -41016,6 +41019,8 @@
       label="LinkManagedNoticeToChromeUIManagementURL:enabled"/>
   <int value="1990670943"
       label="AutofillEnableLocalCardMigrationForNonSyncUser:disabled"/>
+  <int value="1990873642"
+      label="AutofillEnableSurfacingServerCardNickname:disabled"/>
   <int value="1991771852" label="LeftToRightUrls:enabled"/>
   <int value="1991912338" label="ModuleScriptsDynamicImport:enabled"/>
   <int value="1992466116" label="enable-passive-event-listeners-due-to-fling"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 680d444..a3d02b8 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -4750,6 +4750,10 @@
 
 <histogram name="Android.WebView.Metrics.BackfillInstallDate"
     enum="InstallDateBackfill" expires_after="M83">
+  <obsolete>
+    Removed in April 2020. The backfill logic is deemed no longer necessary to
+    keep around.
+  </obsolete>
   <owner>ntfschr@chromium.org</owner>
   <owner>src/android_webview/OWNERS</owner>
   <summary>
@@ -161600,6 +161604,9 @@
 
 <histogram name="Sync.FaviconCacheLookupSucceeded" enum="BooleanSuccess"
     expires_after="M77">
+  <obsolete>
+    Removed in M84.
+  </obsolete>
   <owner>zea@chromium.org</owner>
   <summary>Whether a sync favicon cache lookup succeeded or not.</summary>
 </histogram>
diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn
index 669a42a1..439c267 100644
--- a/ui/android/BUILD.gn
+++ b/ui/android/BUILD.gn
@@ -311,8 +311,6 @@
     "java/src/org/chromium/ui/resources/system/SystemResourceLoader.java",
     "java/src/org/chromium/ui/text/NoUnderlineClickableSpan.java",
     "java/src/org/chromium/ui/text/SpanApplier.java",
-    "java/src/org/chromium/ui/touchless/CursorObserver.java",
-    "java/src/org/chromium/ui/touchless/TouchlessEventHandler.java",
     "java/src/org/chromium/ui/util/ColorUtils.java",
     "java/src/org/chromium/ui/util/TokenHolder.java",
     "java/src/org/chromium/ui/vr/VrModeObserver.java",
diff --git a/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java b/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java
index c1badf8..50fe2fb 100644
--- a/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java
+++ b/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java
@@ -25,7 +25,6 @@
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.base.compat.ApiHelperForN;
 import org.chromium.ui.mojom.CursorType;
-import org.chromium.ui.touchless.TouchlessEventHandler;
 
 /**
  * Class to acquire, position, and remove anchor views from the implementing View.
@@ -445,27 +444,6 @@
         if (containerView != null) ViewUtils.requestFocus(containerView);
     }
 
-    @CalledByNative
-    private static boolean hasTouchlessEventHandler() {
-        return TouchlessEventHandler.hasTouchlessEventHandler();
-    }
-
-    @CalledByNative
-    private static boolean onUnconsumedKeyboardEventAck(int nativeCode) {
-        return TouchlessEventHandler.onUnconsumedKeyboardEventAck(nativeCode);
-    }
-
-    @CalledByNative
-    private static void fallbackCursorModeLockCursor(
-            boolean left, boolean right, boolean up, boolean down) {
-        TouchlessEventHandler.fallbackCursorModeLockCursor(left, right, up, down);
-    }
-
-    @CalledByNative
-    private static void fallbackCursorModeSetCursorVisibility(boolean visible) {
-        TouchlessEventHandler.fallbackCursorModeSetCursorVisibility(visible);
-    }
-
     /**
      * @see InputConnection#performPrivateCommand(java.lang.String, android.os.Bundle)
      */
diff --git a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
index 82df5d2b..86deac8 100644
--- a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
+++ b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
@@ -46,8 +46,6 @@
 import org.chromium.ui.display.DisplayAndroid;
 import org.chromium.ui.display.DisplayAndroid.DisplayAndroidObserver;
 import org.chromium.ui.modaldialog.ModalDialogManager;
-import org.chromium.ui.touchless.CursorObserver;
-import org.chromium.ui.touchless.TouchlessEventHandler;
 import org.chromium.ui.widget.Toast;
 
 import java.lang.ref.WeakReference;
@@ -191,24 +189,6 @@
     private final ObserverList<OnCloseContextMenuListener> mContextMenuCloseListeners =
             new ObserverList<>();
 
-    private final CursorObserver mCursorObserver =
-            new CursorObserver() {
-                @Override
-                public void onCursorVisibilityChanged(boolean visible) {
-                    if (mNativeWindowAndroid != 0) {
-                        WindowAndroidJni.get().onCursorVisibilityChanged(
-                                mNativeWindowAndroid, WindowAndroid.this, visible);
-                    }
-                }
-
-                @Override
-                public void onFallbackCursorModeToggled(boolean isOn) {
-                    if (mNativeWindowAndroid != 0) {
-                        WindowAndroidJni.get().onFallbackCursorModeToggled(
-                                mNativeWindowAndroid, WindowAndroid.this, isOn);
-                    }
-                }
-            };
     /**
      * @param context The application context.
      */
@@ -248,8 +228,6 @@
             boolean isScreenWideColorGamut = ApiHelperForO.isScreenWideColorGamut(configuration);
             display.updateIsDisplayServerWideColorGamut(isScreenWideColorGamut);
         }
-
-        TouchlessEventHandler.addCursorObserver(mCursorObserver);
     }
 
     @CalledByNative
@@ -656,7 +634,6 @@
             if (mTouchExplorationMonitor != null) mTouchExplorationMonitor.destroy();
         }
 
-        TouchlessEventHandler.removeCursorObserver(mCursorObserver);
         mApplicationBottomInsetProvider.destroy();
     }
 
@@ -1001,10 +978,6 @@
         void setVSyncPaused(long nativeWindowAndroid, WindowAndroid caller, boolean paused);
         void onUpdateRefreshRate(long nativeWindowAndroid, WindowAndroid caller, float refreshRate);
         void destroy(long nativeWindowAndroid, WindowAndroid caller);
-        void onCursorVisibilityChanged(
-                long nativeWindowAndroid, WindowAndroid caller, boolean visible);
-        void onFallbackCursorModeToggled(
-                long nativeWindowAndroid, WindowAndroid caller, boolean isOn);
         void onSupportedRefreshRatesUpdated(
                 long nativeWindowAndroid, WindowAndroid caller, float[] supportedRefreshRates);
     }
diff --git a/ui/android/java/src/org/chromium/ui/touchless/CursorObserver.java b/ui/android/java/src/org/chromium/ui/touchless/CursorObserver.java
deleted file mode 100644
index f94424e..0000000
--- a/ui/android/java/src/org/chromium/ui/touchless/CursorObserver.java
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.ui.touchless;
-
-/**
- * Observer Android cursor state.
- */
-public interface CursorObserver {
-    void onCursorVisibilityChanged(boolean visible);
-    void onFallbackCursorModeToggled(boolean isOn);
-}
\ No newline at end of file
diff --git a/ui/android/java/src/org/chromium/ui/touchless/TouchlessEventHandler.java b/ui/android/java/src/org/chromium/ui/touchless/TouchlessEventHandler.java
deleted file mode 100644
index 83e7a82c..0000000
--- a/ui/android/java/src/org/chromium/ui/touchless/TouchlessEventHandler.java
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.ui.touchless;
-
-import android.os.StrictMode;
-
-import org.chromium.base.BuildInfo;
-
-/**
- * org.chromium.ui.touchless.TouchlessEventHandler
- */
-public class TouchlessEventHandler {
-    /**
-     * Provides an interface for handling zoom in and zoom out requests for touchless devices.
-     */
-    public interface TouchlessZoomCallback {
-        void onZoomInRequested();
-        void onZoomOutRequested();
-    }
-
-    private static final String EVENT_HANDLER_INTERNAL =
-            "org.chromium.ui.touchless.TouchlessEventHandlerInternal";
-    private static TouchlessEventHandler sInstance;
-
-    static {
-        // Work around Android bug b/120099466 in which failed reflection causes disk reads.
-        StrictMode.ThreadPolicy oldPolicy = null;
-        if (!BuildInfo.isAtLeastQ()) oldPolicy = StrictMode.allowThreadDiskReads();
-        try {
-            sInstance = (TouchlessEventHandler) Class.forName(EVENT_HANDLER_INTERNAL).newInstance();
-        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException
-                | IllegalArgumentException e) {
-            sInstance = null;
-        } finally {
-            if (oldPolicy != null) StrictMode.setThreadPolicy(oldPolicy);
-        }
-    }
-
-    public static boolean hasTouchlessEventHandler() {
-        return sInstance != null;
-    }
-
-    public static boolean onUnconsumedKeyboardEventAck(int nativeCode) {
-        // No null check is needed here because it called after hasTouchlessEventHandler in native.
-        assert sInstance != null;
-        return sInstance.onUnconsumedKeyboardEventAckInternal(nativeCode);
-    }
-
-    public static void addCursorObserver(CursorObserver observer) {
-        if (sInstance != null) {
-            sInstance.addCursorObserverInternal(observer);
-        }
-    }
-
-    public static void removeCursorObserver(CursorObserver observer) {
-        if (sInstance != null) {
-            sInstance.removeCursorObserverInternal(observer);
-        }
-    }
-
-    public static void setZoomCallback(TouchlessZoomCallback callback) {
-        if (sInstance != null) sInstance.setZoomCallbackInternal(callback);
-    }
-
-    public static void removeZoomCallback(TouchlessZoomCallback callback) {
-        if (sInstance != null) sInstance.removeZoomCallbackInternal(callback);
-    }
-
-    public static void onDidFinishNavigation() {
-        if (sInstance != null) {
-            sInstance.onDidFinishNavigationInternal();
-        }
-    }
-
-    public static void onActivityHidden() {
-        if (sInstance != null) {
-            sInstance.onActivityHiddenInternal();
-        }
-    }
-
-    public static void fallbackCursorModeLockCursor(
-            boolean left, boolean right, boolean up, boolean down) {
-        // No null check is needed here because it called after hasTouchlessEventHandler in native.
-        sInstance.fallbackCursorModeLockCursorInternal(left, right, up, down);
-    }
-
-    public static void fallbackCursorModeSetCursorVisibility(boolean visible) {
-        // No null check is needed here because it called after hasTouchlessEventHandler in native.
-        sInstance.fallbackCursorModeSetCursorVisibilityInternal(visible);
-    }
-
-    protected boolean onUnconsumedKeyboardEventAckInternal(int nativeCode) {
-        return false;
-    }
-
-    protected void addCursorObserverInternal(CursorObserver observer) {}
-
-    protected void removeCursorObserverInternal(CursorObserver observer) {}
-
-    protected void setZoomCallbackInternal(TouchlessZoomCallback callback) {}
-
-    protected void removeZoomCallbackInternal(TouchlessZoomCallback callback) {}
-
-    protected void onDidFinishNavigationInternal() {}
-
-    protected void onActivityHiddenInternal() {}
-
-    protected void fallbackCursorModeLockCursorInternal(
-            boolean left, boolean right, boolean up, boolean down) {}
-
-    protected void fallbackCursorModeSetCursorVisibilityInternal(boolean visible) {}
-}
diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc
index 83722089e..6f33784 100644
--- a/ui/android/view_android.cc
+++ b/ui/android/view_android.cc
@@ -665,44 +665,4 @@
   bounds_.SetRect(x, y, width, height);
 }
 
-bool ViewAndroid::HasTouchlessEventHandler() {
-  JNIEnv* env = base::android::AttachCurrentThread();
-  static bool s_has_touchless_event_handler =
-      Java_ViewAndroidDelegate_hasTouchlessEventHandler(env);
-
-  return s_has_touchless_event_handler;
-}
-
-bool ViewAndroid::OnUnconsumedKeyboardEventAck(int native_code) {
-  if (!HasTouchlessEventHandler())
-    return false;
-
-  JNIEnv* env = base::android::AttachCurrentThread();
-
-  return Java_ViewAndroidDelegate_onUnconsumedKeyboardEventAck(env,
-                                                               native_code);
-}
-
-void ViewAndroid::FallbackCursorModeLockCursor(bool left,
-                                               bool right,
-                                               bool up,
-                                               bool down) {
-  if (!HasTouchlessEventHandler())
-    return;
-
-  JNIEnv* env = base::android::AttachCurrentThread();
-
-  Java_ViewAndroidDelegate_fallbackCursorModeLockCursor(env, left, right, up,
-                                                        down);
-}
-
-void ViewAndroid::FallbackCursorModeSetCursorVisibility(bool visible) {
-  if (!HasTouchlessEventHandler())
-    return;
-
-  JNIEnv* env = base::android::AttachCurrentThread();
-
-  Java_ViewAndroidDelegate_fallbackCursorModeSetCursorVisibility(env, visible);
-}
-
 }  // namespace ui
diff --git a/ui/android/view_android.h b/ui/android/view_android.h
index ca13031..48df624 100644
--- a/ui/android/view_android.h
+++ b/ui/android/view_android.h
@@ -204,10 +204,6 @@
     return OnTouchEvent(event);
   }
 
-  bool OnUnconsumedKeyboardEventAck(int native_code);
-  void FallbackCursorModeLockCursor(bool left, bool right, bool up, bool down);
-  void FallbackCursorModeSetCursorVisibility(bool visible);
-
  protected:
   void RemoveAllChildren(bool attached_to_window);
 
@@ -275,8 +271,6 @@
   void OnSizeChangedInternal(const gfx::Size& size);
   void DispatchOnSizeChanged();
 
-  bool HasTouchlessEventHandler();
-
   // Returns the Java delegate for this view. This is used to delegate work
   // up to the embedding view (or the embedder that can deal with the
   // implementation details).
diff --git a/ui/android/window_android.cc b/ui/android/window_android.cc
index c7d8d996..74163f9 100644
--- a/ui/android/window_android.cc
+++ b/ui/android/window_android.cc
@@ -198,22 +198,6 @@
     compositor_->SetVSyncPaused(paused);
 }
 
-void WindowAndroid::OnCursorVisibilityChanged(
-    JNIEnv* env,
-    const base::android::JavaParamRef<jobject>& obj,
-    bool visible) {
-  for (WindowAndroidObserver& observer : observer_list_)
-    observer.OnCursorVisibilityChanged(visible);
-}
-
-void WindowAndroid::OnFallbackCursorModeToggled(
-    JNIEnv* env,
-    const base::android::JavaParamRef<jobject>& obj,
-    bool is_on) {
-  for (WindowAndroidObserver& observer : observer_list_)
-    observer.OnFallbackCursorModeToggled(is_on);
-}
-
 void WindowAndroid::OnUpdateRefreshRate(
     JNIEnv* env,
     const base::android::JavaParamRef<jobject>& obj,
diff --git a/ui/android/window_android.h b/ui/android/window_android.h
index 21aa04c..9fc1eb9 100644
--- a/ui/android/window_android.h
+++ b/ui/android/window_android.h
@@ -69,10 +69,6 @@
   void OnVisibilityChanged(JNIEnv* env,
                            const base::android::JavaParamRef<jobject>& obj,
                            bool visible);
-  void OnFallbackCursorModeToggled(
-      JNIEnv* env,
-      const base::android::JavaParamRef<jobject>& obj,
-      bool is_on);
   void OnActivityStopped(JNIEnv* env,
                          const base::android::JavaParamRef<jobject>& obj);
   void OnActivityStarted(JNIEnv* env,
@@ -80,10 +76,6 @@
   void SetVSyncPaused(JNIEnv* env,
                       const base::android::JavaParamRef<jobject>& obj,
                       bool paused);
-  void OnCursorVisibilityChanged(
-      JNIEnv* env,
-      const base::android::JavaParamRef<jobject>& obj,
-      bool visible);
   void OnUpdateRefreshRate(JNIEnv* env,
                            const base::android::JavaParamRef<jobject>& obj,
                            float refresh_rate);
diff --git a/ui/android/window_android_observer.h b/ui/android/window_android_observer.h
index 065b455f..0a07fd84 100644
--- a/ui/android/window_android_observer.h
+++ b/ui/android/window_android_observer.h
@@ -22,8 +22,6 @@
   // should account for whether or not this is the case.
   virtual void OnActivityStopped() = 0;
   virtual void OnActivityStarted() = 0;
-  virtual void OnCursorVisibilityChanged(bool visible) {}
-  virtual void OnFallbackCursorModeToggled(bool is_on) {}
 
  protected:
   virtual ~WindowAndroidObserver() {}
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
index 33be56ac..c1bc5e0 100644
--- a/ui/base/BUILD.gn
+++ b/ui/base/BUILD.gn
@@ -266,6 +266,8 @@
       "cocoa/focus_window_set.mm",
       "cocoa/menu_controller.h",
       "cocoa/menu_controller.mm",
+      "cocoa/permissions_utils.h",
+      "cocoa/permissions_utils.mm",
       "cocoa/quartz_util.h",
       "cocoa/quartz_util.mm",
       "cocoa/remote_accessibility_api.h",
diff --git a/ui/base/cocoa/permissions_utils.h b/ui/base/cocoa/permissions_utils.h
new file mode 100644
index 0000000..14355053
--- /dev/null
+++ b/ui/base/cocoa/permissions_utils.h
@@ -0,0 +1,21 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_BASE_COCOA_PERMISSIONS_UTILS_H_
+#define UI_BASE_COCOA_PERMISSIONS_UTILS_H_
+
+#include "ui/base/ui_base_export.h"
+
+namespace ui {
+
+// Heuristic to check screen capture permission.
+// Starting on macOS 10.15, the ability to screen capture is restricted and
+// requires a permission authorization. There is no direct way to query the
+// permission state, so this uses a heuristic to evaluate whether the permission
+// has been granted.
+UI_BASE_EXPORT bool IsScreenCaptureAllowed();
+
+}  // namespace ui
+
+#endif  // UI_BASE_COCOA_PERMISSIONS_UTILS_H_
diff --git a/ui/base/cocoa/permissions_utils.mm b/ui/base/cocoa/permissions_utils.mm
new file mode 100644
index 0000000..ae34a26
--- /dev/null
+++ b/ui/base/cocoa/permissions_utils.mm
@@ -0,0 +1,52 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ui/base/cocoa/permissions_utils.h"
+
+#include <CoreGraphics/CoreGraphics.h>
+#include <Foundation/Foundation.h>
+
+#include "base/mac/foundation_util.h"
+#include "base/mac/scoped_cftyperef.h"
+
+namespace ui {
+
+// Screen Capture is considered allowed if the name of at least one normal
+// or dock window running on another process is visible.
+// See https://crbug.com/993692.
+bool IsScreenCaptureAllowed() {
+  if (@available(macOS 10.15, *)) {
+    base::ScopedCFTypeRef<CFArrayRef> window_list(
+        CGWindowListCopyWindowInfo(kCGWindowListOptionAll, kCGNullWindowID));
+    int current_pid = [[NSProcessInfo processInfo] processIdentifier];
+    for (NSDictionary* window in base::mac::CFToNSCast(window_list.get())) {
+      NSNumber* window_pid =
+          [window objectForKey:base::mac::CFToNSCast(kCGWindowOwnerPID)];
+      if (!window_pid || [window_pid integerValue] == current_pid)
+        continue;
+
+      NSString* window_name =
+          [window objectForKey:base::mac::CFToNSCast(kCGWindowName)];
+      if (!window_name)
+        continue;
+
+      NSNumber* layer =
+          [window objectForKey:base::mac::CFToNSCast(kCGWindowLayer)];
+      if (!layer)
+        continue;
+
+      NSInteger layer_integer = [layer integerValue];
+      if (layer_integer == CGWindowLevelForKey(kCGNormalWindowLevelKey) ||
+          layer_integer == CGWindowLevelForKey(kCGDockWindowLevelKey)) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  // Screen capture is always allowed in older macOS versions.
+  return true;
+}
+
+}  // namespace ui
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
index 03309651..1c42295 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
@@ -267,7 +267,7 @@
 <translation id="4197674956721858839">Selecció de ZIP</translation>
 <translation id="421017592316736757">Heu d'estar en línia per accedir a aquest fitxer.</translation>
 <translation id="4212740939091998969">Ja hi ha una carpeta anomenada "<ph name="FOLDER_NAME" />". Tria un altre nom.</translation>
-<translation id="4215448920900139318">S'estan afegint <ph name="FILE_COUNT" /> a la còpia de seguretat</translation>
+<translation id="4215448920900139318">S'estan creant una còpia de seguretat de <ph name="FILE_COUNT" /></translation>
 <translation id="426015154560005552">Teclat àrab</translation>
 <translation id="4261901459838235729">Presentació de Google</translation>
 <translation id="4290535918735525311">S'ha compartit 1 carpeta amb Linux</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
index 1a79f6c..6980647b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
@@ -134,7 +134,7 @@
 <translation id="2542049655219295786">Google அட்டவணை</translation>
 <translation id="2547921442987553570"><ph name="EXTENSION_NAME" /> இல் சேர்</translation>
 <translation id="255937426064304553">யு.எஸ். இன்டர்நேஷனல்</translation>
-<translation id="2562685439590298522">டாக்ஸ்</translation>
+<translation id="2562685439590298522">Docs</translation>
 <translation id="2563185590376525700">தவளை</translation>
 <translation id="2614589611416690597"><ph name="VIDEO_TYPE" /> வீடியோ</translation>
 <translation id="2620090360073999360">இந்த நேரத்தில் Google இயக்ககத்தை அடைய முடியாது.</translation>
diff --git a/ui/color/color_id.h b/ui/color/color_id.h
index ea3a947..03de59b 100644
--- a/ui/color/color_id.h
+++ b/ui/color/color_id.h
@@ -28,7 +28,7 @@
   E(kColorBubbleBackground, NativeTheme::kColorId_BubbleBackground) \
   E(kColorBubbleFooterBackground, \
     NativeTheme::kColorId_BubbleFooterBackground) \
-  E(kColorButtonBackground, NativeTheme::kColorId_DialogBackground) \
+  E(kColorButtonBackground, NativeTheme::kColorId_ButtonColor) \
   E(kColorButtonBorder, NativeTheme::kColorId_ButtonBorderColor) \
   E(kColorButtonDisabledForeground, NativeTheme::kColorId_ButtonDisabledColor) \
   E(kColorButtonForeground, NativeTheme::kColorId_ButtonEnabledColor) \
diff --git a/ui/events/blink/blink_features.cc b/ui/events/blink/blink_features.cc
index a8bc072..112c148 100644
--- a/ui/events/blink/blink_features.cc
+++ b/ui/events/blink/blink_features.cc
@@ -21,9 +21,6 @@
 const base::Feature kSendMouseLeaveEvents{"SendMouseLeaveEvents",
                                           base::FEATURE_ENABLED_BY_DEFAULT};
 
-const base::Feature kFallbackCursorMode{"FallbackCursorMode",
-                                        base::FEATURE_DISABLED_BY_DEFAULT};
-
 const base::Feature kDontSendKeyEventsToJavascript{
     "DontSendKeyEventsToJavascript", base::FEATURE_DISABLED_BY_DEFAULT};
 
diff --git a/ui/events/blink/blink_features.h b/ui/events/blink/blink_features.h
index 725b779..e578d9b2 100644
--- a/ui/events/blink/blink_features.h
+++ b/ui/events/blink/blink_features.h
@@ -34,10 +34,6 @@
 COMPONENT_EXPORT(BLINK_FEATURES)
 extern const base::Feature kSendMouseLeaveEvents;
 
-// Enables fallback cursor mode for dpad devices.
-COMPONENT_EXPORT(BLINK_FEATURES)
-extern const base::Feature kFallbackCursorMode;
-
 // When enabled, this feature prevent blink sending key event to web unless it
 // is on installed PWA.
 COMPONENT_EXPORT(BLINK_FEATURES)
diff --git a/ui/gtk/native_theme_gtk.cc b/ui/gtk/native_theme_gtk.cc
index 352bc3d..0778275f 100644
--- a/ui/gtk/native_theme_gtk.cc
+++ b/ui/gtk/native_theme_gtk.cc
@@ -219,6 +219,8 @@
       return GetSeparatorColor("GtkSeparator#separator.horizontal");
 
     // Button
+    case ui::NativeTheme::kColorId_ButtonColor:
+      return GetBgColor("GtkButton#button");
     case ui::NativeTheme::kColorId_ButtonEnabledColor:
     case ui::NativeTheme::kColorId_ButtonUncheckedColor:
       return GetFgColor("GtkButton#button.text-button GtkLabel");
diff --git a/ui/native_theme/common_theme.cc b/ui/native_theme/common_theme.cc
index 715883a..7724c8e3 100644
--- a/ui/native_theme/common_theme.cc
+++ b/ui/native_theme/common_theme.cc
@@ -47,6 +47,7 @@
   switch (color_id) {
     // Dialogs
     case NativeTheme::kColorId_WindowBackground:
+    case NativeTheme::kColorId_ButtonColor:
     case NativeTheme::kColorId_DialogBackground:
     case NativeTheme::kColorId_BubbleBackground:
       return color_utils::AlphaBlend(SK_ColorWHITE, gfx::kGoogleGrey900, 0.04f);
@@ -211,6 +212,7 @@
   switch (color_id) {
     // Dialogs
     case NativeTheme::kColorId_WindowBackground:
+    case NativeTheme::kColorId_ButtonColor:
     case NativeTheme::kColorId_DialogBackground:
     case NativeTheme::kColorId_BubbleBackground:
       return SK_ColorWHITE;
@@ -252,7 +254,7 @@
       return gfx::kGoogleGrey700;
     case NativeTheme::kColorId_ButtonDisabledColor: {
       const SkColor bg = base_theme->GetSystemColor(
-          NativeTheme::kColorId_DialogBackground, color_scheme);
+          NativeTheme::kColorId_ButtonColor, color_scheme);
       const SkColor fg = base_theme->GetSystemColor(
           NativeTheme::kColorId_LabelEnabledColor, color_scheme);
       return color_utils::BlendForMinContrast(gfx::kGoogleGrey600, bg, fg)
@@ -260,7 +262,7 @@
     }
     case NativeTheme::kColorId_ProminentButtonDisabledColor: {
       const SkColor bg = base_theme->GetSystemColor(
-          NativeTheme::kColorId_DialogBackground, color_scheme);
+          NativeTheme::kColorId_ButtonColor, color_scheme);
       return color_utils::BlendForMinContrast(bg, bg, base::nullopt, 1.2f)
           .color;
     }
diff --git a/ui/native_theme/native_theme.cc b/ui/native_theme/native_theme.cc
index 2d4ec42..e0ef5753 100644
--- a/ui/native_theme/native_theme.cc
+++ b/ui/native_theme/native_theme.cc
@@ -39,7 +39,7 @@
           {NTCID::kColorId_BubbleBackground, kColorBubbleBackground},
           {NTCID::kColorId_BubbleFooterBackground,
            kColorBubbleFooterBackground},
-          {NTCID::kColorId_DialogBackground, kColorButtonBackground},
+          {NTCID::kColorId_ButtonColor, kColorButtonBackground},
           {NTCID::kColorId_ButtonBorderColor, kColorButtonBorder},
           {NTCID::kColorId_ButtonDisabledColor, kColorButtonDisabledForeground},
           {NTCID::kColorId_ButtonEnabledColor, kColorButtonForeground},
diff --git a/ui/native_theme/native_theme_color_id.h b/ui/native_theme/native_theme_color_id.h
index 2cbd3819..d885e3c 100644
--- a/ui/native_theme/native_theme_color_id.h
+++ b/ui/native_theme/native_theme_color_id.h
@@ -20,6 +20,7 @@
   OP(kColorId_FocusedBorderColor),                                             \
   OP(kColorId_UnfocusedBorderColor),                                           \
   /* Button */                                                                 \
+  OP(kColorId_ButtonColor),                                                    \
   OP(kColorId_ButtonBorderColor),                                              \
   OP(kColorId_ButtonEnabledColor),                                             \
   OP(kColorId_ButtonDisabledColor),                                            \
diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc
index 272b70d..79202ee 100644
--- a/ui/native_theme/native_theme_win.cc
+++ b/ui/native_theme/native_theme_win.cc
@@ -642,6 +642,7 @@
       return system_colors_[SystemThemeColor::kGrayText];
 
     // Button Background
+    case kColorId_ButtonColor:
     case kColorId_MenuBackgroundColor:
     case kColorId_HighlightedMenuItemBackgroundColor:
     case kColorId_TextfieldDefaultBackground:
diff --git a/ui/views/controls/button/md_text_button.cc b/ui/views/controls/button/md_text_button.cc
index e7ab591..54ea844 100644
--- a/ui/views/controls/button/md_text_button.cc
+++ b/ui/views/controls/button/md_text_button.cc
@@ -259,7 +259,7 @@
 
   ui::NativeTheme* theme = GetNativeTheme();
   SkColor bg_color =
-      theme->GetSystemColor(ui::NativeTheme::kColorId_DialogBackground);
+      theme->GetSystemColor(ui::NativeTheme::kColorId_ButtonColor);
 
   if (bg_color_override_) {
     bg_color = *bg_color_override_;
diff --git a/ui/views/controls/button/toggle_button.cc b/ui/views/controls/button/toggle_button.cc
index cc6aa14..bf88433 100644
--- a/ui/views/controls/button/toggle_button.cc
+++ b/ui/views/controls/button/toggle_button.cc
@@ -96,7 +96,7 @@
     const SkColor thumb_on_color = thumb_on_color_.value_or(
         theme->GetSystemColor(ui::NativeTheme::kColorId_ProminentButtonColor));
     const SkColor thumb_off_color = thumb_off_color_.value_or(
-        theme->GetSystemColor(ui::NativeTheme::kColorId_DialogBackground));
+        theme->GetSystemColor(ui::NativeTheme::kColorId_ButtonColor));
     thumb_flags.setColor(
         color_utils::AlphaBlend(thumb_on_color, thumb_off_color, color_ratio_));
 
diff --git a/ui/views/widget/desktop_aura/desktop_native_cursor_manager.cc b/ui/views/widget/desktop_aura/desktop_native_cursor_manager.cc
index 478b16b..a0a1630 100644
--- a/ui/views/widget/desktop_aura/desktop_native_cursor_manager.cc
+++ b/ui/views/widget/desktop_aura/desktop_native_cursor_manager.cc
@@ -6,6 +6,7 @@
 
 #include <utility>
 
+#include "base/trace_event/trace_event.h"
 #include "ui/aura/window_event_dispatcher.h"
 #include "ui/aura/window_tree_host.h"
 #include "ui/base/cursor/cursor_loader.h"
@@ -59,6 +60,8 @@
 void DesktopNativeCursorManager::SetVisibility(
     bool visible,
     wm::NativeCursorManagerDelegate* delegate) {
+  TRACE_EVENT1("ui,input", "DesktopNativeCursorManager::SetVisibility",
+               "visible", visible);
   delegate->CommitVisibility(visible);
 
   if (visible) {
@@ -83,6 +86,7 @@
 void DesktopNativeCursorManager::SetMouseEventsEnabled(
     bool enabled,
     wm::NativeCursorManagerDelegate* delegate) {
+  TRACE_EVENT0("ui,input", "DesktopNativeCursorManager::SetMouseEventsEnabled");
   delegate->CommitMouseEventsEnabled(enabled);
 
   // TODO(erg): In the ash version, we set the last mouse location on Env. I'm
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index 6f576d9..11c95a9 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -12,6 +12,7 @@
 #include "base/containers/flat_set.h"
 #include "base/memory/ptr_util.h"
 #include "base/metrics/histogram_macros.h"
+#include "base/trace_event/trace_event.h"
 #include "base/win/win_util.h"
 #include "base/win/windows_version.h"
 #include "third_party/skia/include/core/SkPath.h"
@@ -622,6 +623,8 @@
 }
 
 void DesktopWindowTreeHostWin::SetCursorNative(gfx::NativeCursor cursor) {
+  TRACE_EVENT1("ui,input", "DesktopWindowTreeHostWin::SetCursorNative",
+               "cursor", cursor.type());
   ui::CursorLoaderWin cursor_loader;
   cursor_loader.SetPlatformCursor(&cursor);
 
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
index e18afe3..d887bfd2e 100644
--- a/ui/views/win/hwnd_message_handler.cc
+++ b/ui/views/win/hwnd_message_handler.cc
@@ -864,6 +864,8 @@
 }
 
 void HWNDMessageHandler::SetCursor(HCURSOR cursor) {
+  TRACE_EVENT2("ui,input", "HWNDMessageHandler::SetCursor", "cursor", cursor,
+               "previous_cursor", previous_cursor_);
   if (cursor) {
     previous_cursor_ = ::SetCursor(cursor);
     current_cursor_ = cursor;
diff --git a/ui/wm/core/compound_event_filter.cc b/ui/wm/core/compound_event_filter.cc
index 11f1e99..f4cfd93 100644
--- a/ui/wm/core/compound_event_filter.cc
+++ b/ui/wm/core/compound_event_filter.cc
@@ -5,6 +5,7 @@
 #include "ui/wm/core/compound_event_filter.h"
 
 #include "base/logging.h"
+#include "base/trace_event/trace_event.h"
 #include "build/build_config.h"
 #include "ui/aura/client/cursor_client.h"
 #include "ui/aura/client/drag_drop_client.h"
@@ -157,12 +158,20 @@
 void CompoundEventFilter::SetMouseEventsEnableStateOnEvent(aura::Window* target,
                                                            ui::Event* event,
                                                            bool enable) {
+  TRACE_EVENT2("ui,input",
+               "CompoundEventFilter::SetMouseEventsEnableStateOnEvent",
+               "event_flags", event->flags(), "enable", enable);
   if (event->flags() & ui::EF_IS_SYNTHESIZED)
     return;
   aura::client::CursorClient* client =
       aura::client::GetCursorClient(target->GetRootWindow());
-  if (!client)
+  if (!client) {
+    TRACE_EVENT_INSTANT0(
+        "ui,input",
+        "CompoundEventFilter::SetMouseEventsEnableStateOnEvent - No Client",
+        TRACE_EVENT_SCOPE_THREAD);
     return;
+  }
 
   if (enable)
     client->EnableMouseEvents();
@@ -184,6 +193,8 @@
 }
 
 void CompoundEventFilter::OnMouseEvent(ui::MouseEvent* event) {
+  TRACE_EVENT2("ui,input", "CompoundEventFilter::OnMouseEvent", "event_type",
+               event->type(), "event_flags", event->flags());
   aura::Window* window = static_cast<aura::Window*>(event->target());
 
   // We must always update the cursor, otherwise the cursor can get stuck if an
@@ -211,6 +222,8 @@
 }
 
 void CompoundEventFilter::OnTouchEvent(ui::TouchEvent* event) {
+  TRACE_EVENT2("ui,input", "CompoundEventFilter::OnTouchEvent", "event_type",
+               event->type(), "event_handled", event->handled());
   FilterTouchEvent(event);
   if (!event->handled() && event->type() == ui::ET_TOUCH_PRESSED &&
       ShouldHideCursorOnTouch(*event)) {
diff --git a/ui/wm/core/cursor_manager.cc b/ui/wm/core/cursor_manager.cc
index c9cb1c7e..d0130c78 100644
--- a/ui/wm/core/cursor_manager.cc
+++ b/ui/wm/core/cursor_manager.cc
@@ -8,6 +8,7 @@
 
 #include "base/logging.h"
 #include "base/macros.h"
+#include "base/trace_event/trace_event.h"
 #include "ui/aura/client/cursor_client_observer.h"
 #include "ui/base/cursor/cursor_size.h"
 #include "ui/base/mojom/cursor_type.mojom-shared.h"
@@ -154,6 +155,7 @@
 }
 
 void CursorManager::EnableMouseEvents() {
+  TRACE_EVENT0("ui,input", "CursorManager::EnableMouseEvents");
   state_on_unlock_->SetMouseEventsEnabled(true);
   if (cursor_lock_count_ == 0 &&
       IsMouseEventsEnabled() != state_on_unlock_->mouse_events_enabled()) {
@@ -163,6 +165,7 @@
 }
 
 void CursorManager::DisableMouseEvents() {
+  TRACE_EVENT0("ui,input", "CursorManager::DisableMouseEvents");
   state_on_unlock_->SetMouseEventsEnabled(false);
   if (cursor_lock_count_ == 0 &&
       IsMouseEventsEnabled() != state_on_unlock_->mouse_events_enabled()) {
diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn
index 1530b0dc..d94df2c 100644
--- a/weblayer/BUILD.gn
+++ b/weblayer/BUILD.gn
@@ -354,6 +354,8 @@
       "browser/top_controls_container_view.cc",
       "browser/top_controls_container_view.h",
       "browser/weblayer_impl_android.cc",
+      "browser/webrtc/media_stream_manager.cc",
+      "browser/webrtc/media_stream_manager.h",
       "common/crash_reporter/crash_keys.cc",
       "common/crash_reporter/crash_keys.h",
       "common/crash_reporter/crash_reporter_client.cc",
diff --git a/weblayer/browser/android/metrics/weblayer_metrics_service_client.cc b/weblayer/browser/android/metrics/weblayer_metrics_service_client.cc
index 0f6bd20..77b97b4 100644
--- a/weblayer/browser/android/metrics/weblayer_metrics_service_client.cc
+++ b/weblayer/browser/android/metrics/weblayer_metrics_service_client.cc
@@ -61,8 +61,6 @@
   return kBetaDevCanarySampledInRatePerMille;
 }
 
-void WebLayerMetricsServiceClient::InitInternal() {}
-
 void WebLayerMetricsServiceClient::OnMetricsStart() {}
 
 int WebLayerMetricsServiceClient::GetPackageNameLimitRatePerMille() {
diff --git a/weblayer/browser/android/metrics/weblayer_metrics_service_client.h b/weblayer/browser/android/metrics/weblayer_metrics_service_client.h
index bf33dc1..fe15798 100644
--- a/weblayer/browser/android/metrics/weblayer_metrics_service_client.h
+++ b/weblayer/browser/android/metrics/weblayer_metrics_service_client.h
@@ -36,7 +36,6 @@
 
   // metrics::AndroidMetricsServiceClient:
   int GetSampleRatePerMille() override;
-  void InitInternal() override;
   void OnMetricsStart() override;
   int GetPackageNameLimitRatePerMille() override;
   bool ShouldWakeMetricsService() override;
diff --git a/weblayer/browser/java/BUILD.gn b/weblayer/browser/java/BUILD.gn
index e52efa66..a16428e 100644
--- a/weblayer/browser/java/BUILD.gn
+++ b/weblayer/browser/java/BUILD.gn
@@ -60,6 +60,7 @@
     "org/chromium/weblayer_private/FullscreenCallbackProxy.java",
     "org/chromium/weblayer_private/InterceptNavigationDelegateImpl.java",
     "org/chromium/weblayer_private/LocaleChangedBroadcastReceiver.java",
+    "org/chromium/weblayer_private/MediaStreamManager.java",
     "org/chromium/weblayer_private/NavigationControllerImpl.java",
     "org/chromium/weblayer_private/NavigationImpl.java",
     "org/chromium/weblayer_private/NewTabCallbackProxy.java",
@@ -178,6 +179,7 @@
     "org/chromium/weblayer_private/FullscreenCallbackProxy.java",
     "org/chromium/weblayer_private/InterceptNavigationDelegateImpl.java",
     "org/chromium/weblayer_private/LocaleChangedBroadcastReceiver.java",
+    "org/chromium/weblayer_private/MediaStreamManager.java",
     "org/chromium/weblayer_private/NavigationControllerImpl.java",
     "org/chromium/weblayer_private/NavigationImpl.java",
     "org/chromium/weblayer_private/NewTabCallbackProxy.java",
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/DownloadImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/DownloadImpl.java
index 557f316..7cf3618 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/DownloadImpl.java
+++ b/weblayer/browser/java/org/chromium/weblayer_private/DownloadImpl.java
@@ -10,7 +10,6 @@
 import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
-import android.content.SharedPreferences;
 import android.content.res.Resources;
 import android.os.Build;
 import android.os.RemoteException;
@@ -42,22 +41,26 @@
  */
 @JNINamespace("weblayer")
 public final class DownloadImpl extends IDownload.Stub {
+    private static final String DOWNLOADS_PREFIX = "org.chromium.weblayer.downloads";
+
     // These actions have to be synchronized with the receiver defined in AndroidManifest.xml.
-    static final String OPEN_INTENT = "org.chromium.weblayer.downloads.OPEN";
-    static final String DELETE_INTENT = "org.chromium.weblayer.downloads.DELETE";
-    static final String PAUSE_INTENT = "org.chromium.weblayer.downloads.PAUSE";
-    static final String RESUME_INTENT = "org.chromium.weblayer.downloads.RESUME";
-    static final String CANCEL_INTENT = "org.chromium.weblayer.downloads.CANCEL";
-    static final String EXTRA_NOTIFICATION_ID = "org.chromium.weblayer.downloads.NOTIFICATION_ID";
-    static final String EXTRA_NOTIFICATION_LOCATION =
-            "org.chromium.weblayer.downloads.NOTIFICATION_LOCATION";
-    static final String EXTRA_NOTIFICATION_MIME_TYPE =
-            "org.chromium.weblayer.downloads.NOTIFICATION_MIME_TYPE";
-    static final String EXTRA_NOTIFICATION_PROFILE =
-            "org.chromium.weblayer.downloads.NOTIFICATION_PROFILE";
-    static final String PREF_NEXT_NOTIFICATION_ID =
-            "org.chromium.weblayer.downloads.notification_next_id";
-    private static final String CHANNEL_ID = "org.chromium.weblayer.downloads.channel";
+    private static final String OPEN_INTENT = DOWNLOADS_PREFIX + ".OPEN";
+    private static final String DELETE_INTENT = DOWNLOADS_PREFIX + ".DELETE";
+    private static final String PAUSE_INTENT = DOWNLOADS_PREFIX + ".PAUSE";
+    private static final String RESUME_INTENT = DOWNLOADS_PREFIX + ".RESUME";
+    private static final String CANCEL_INTENT = DOWNLOADS_PREFIX + ".CANCEL";
+
+    private static final String EXTRA_NOTIFICATION_ID = DOWNLOADS_PREFIX + ".NOTIFICATION_ID";
+    private static final String EXTRA_NOTIFICATION_LOCATION =
+            DOWNLOADS_PREFIX + ".NOTIFICATION_LOCATION";
+    private static final String EXTRA_NOTIFICATION_MIME_TYPE =
+            DOWNLOADS_PREFIX + ".NOTIFICATION_MIME_TYPE";
+    private static final String EXTRA_NOTIFICATION_PROFILE =
+            DOWNLOADS_PREFIX + ".NOTIFICATION_PROFILE";
+    private static final String CHANNEL_ID = DOWNLOADS_PREFIX + ".channel";
+    // The intent prefix is used as the notification's tag since it's guaranteed not to conflict
+    // with intent prefixes used by other subsystems that display notifications.
+    private static final String NOTIFICATION_TAG = DOWNLOADS_PREFIX;
     private static final String TAG = "DownloadImpl";
 
     private final String mProfileName;
@@ -72,6 +75,13 @@
     private static boolean sCreatedChannel = false;
     private static final HashMap<Integer, DownloadImpl> sMap = new HashMap<Integer, DownloadImpl>();
 
+    /**
+     * @return a string that prefixes all intents that can be handled by {@link forwardIntent}.
+     */
+    public static String getIntentPrefix() {
+        return DOWNLOADS_PREFIX;
+    }
+
     public static void forwardIntent(
             Context context, Intent intent, ProfileManager profileManager) {
         if (intent.getAction().equals(OPEN_INTENT)) {
@@ -132,22 +142,6 @@
         }
     }
 
-    /**
-     * Need to return a unique id, even across crashes, to avoid notification intents with
-     * different data (e.g. notification GUID) getting dup'd.
-     */
-    private static int getNextNotificationId() {
-        SharedPreferences prefs = ContextUtils.getAppSharedPreferences();
-        int nextId = prefs.getInt(PREF_NEXT_NOTIFICATION_ID, -1);
-        // Reset the counter when it gets close to max value
-        if (nextId >= Integer.MAX_VALUE - 1) {
-            nextId = -1;
-        }
-        nextId++;
-        prefs.edit().putInt(PREF_NEXT_NOTIFICATION_ID, nextId).apply();
-        return nextId;
-    }
-
     public DownloadImpl(
             String profileName, IDownloadCallbackClient client, long nativeDownloadImpl, int id) {
         mProfileName = profileName;
@@ -291,7 +285,7 @@
         if (mBuilder != null) {
             NotificationManagerCompat notificationManager = getNotificationManager();
             if (notificationManager != null) {
-                notificationManager.cancel(mNotificationId);
+                notificationManager.cancel(NOTIFICATION_TAG, mNotificationId);
             }
             mBuilder = null;
         }
@@ -389,7 +383,7 @@
         int state = getState();
         if (state == DownloadState.CANCELLED) {
             if (notificationManager != null) {
-                notificationManager.cancel(mNotificationId);
+                notificationManager.cancel(NOTIFICATION_TAG, mNotificationId);
             }
             mBuilder = null;
             return;
@@ -483,7 +477,7 @@
 
         if (notificationManager != null) {
             // mNotificationId is a unique int for each notification that you must define.
-            notificationManager.notify(mNotificationId, mBuilder.build());
+            notificationManager.notify(NOTIFICATION_TAG, mNotificationId, mBuilder.build());
         }
     }
 
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/MediaStreamManager.java b/weblayer/browser/java/org/chromium/weblayer_private/MediaStreamManager.java
new file mode 100644
index 0000000..1ced85e
--- /dev/null
+++ b/weblayer/browser/java/org/chromium/weblayer_private/MediaStreamManager.java
@@ -0,0 +1,151 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.weblayer_private;
+
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.os.Build;
+import android.os.RemoteException;
+import android.util.AndroidRuntimeException;
+
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationManagerCompat;
+
+import org.chromium.base.ContextUtils;
+import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.JNINamespace;
+import org.chromium.base.annotations.NativeMethods;
+import org.chromium.content_public.browser.WebContents;
+
+/**
+ * A per-tab object that manages notifications for ongoing media streams (microphone/camera). This
+ * object is created by {@link TabImpl} and creates and destroys its native equivalent.
+ *
+ * TODO(estade): remove notifications that have persisted across restarts (due to the app crashing).
+ */
+@JNINamespace("weblayer")
+public class MediaStreamManager {
+    private static boolean sCreatedChannel = false;
+    private static final String WEBRTC_PREFIX = "org.chromium.weblayer.webrtc";
+    private static final String CHANNEL_ID = WEBRTC_PREFIX + ".channel";
+    private static final String EXTRA_TAB_ID = WEBRTC_PREFIX + ".TAB_ID";
+    private static final String ACTIVATE_TAB_INTENT = WEBRTC_PREFIX + ".ACTIVATE_TAB";
+    private static final String AV_STREAM_TAG = WEBRTC_PREFIX + ".avstream";
+
+    // The notification ID matches the tab ID, which uniquely identifies the notification when
+    // paired with the tag.
+    private int mNotificationId;
+
+    // Pointer to the native MediaStreamManager.
+    private long mNative;
+
+    /**
+     * @return a string that prefixes all intents that can be handled by {@link forwardIntent}.
+     */
+    public static String getIntentPrefix() {
+        return WEBRTC_PREFIX;
+    }
+
+    /**
+     * Handles an intent coming from a media streaming notification.
+     * @param intent the intent which was previously posted via {@link update}.
+     */
+    public static void forwardIntent(Intent intent) {
+        assert intent.getAction().equals(ACTIVATE_TAB_INTENT);
+        int tabId = intent.getIntExtra(EXTRA_TAB_ID, -1);
+        TabImpl tab = TabImpl.getTabById(tabId);
+        if (tab == null) return;
+
+        try {
+            tab.getClient().bringTabToFront();
+        } catch (RemoteException e) {
+            throw new AndroidRuntimeException(e);
+        }
+    }
+
+    public MediaStreamManager(TabImpl tab) {
+        mNotificationId = tab.getId();
+        mNative = MediaStreamManagerJni.get().create(this, tab.getWebContents());
+    }
+
+    public void destroy() {
+        NotificationManagerCompat notificationManager = getNotificationManager();
+        if (notificationManager == null) return;
+        notificationManager.cancel(AV_STREAM_TAG, mNotificationId);
+
+        MediaStreamManagerJni.get().destroy(mNative);
+    }
+
+    /**
+     * Called after the tab's media streaming state has changed.
+     *
+     * A notification should be shown (or updated) iff one of the parameters is true, otherwise any
+     * existing notification will be removed.
+     *
+     * @param audio true if the tab is streaming audio.
+     * @param video true if the tab is streaming video.
+     */
+    @CalledByNative
+    private void update(boolean audio, boolean video) {
+        // The notification intent is not handled in the client prior to M84.
+        if (WebLayerFactoryImpl.getClientMajorVersion() < 84) return;
+
+        NotificationManagerCompat notificationManager = getNotificationManager();
+        if (notificationManager == null) return;
+        createNotificationChannel();
+
+        if (!audio && !video) {
+            notificationManager.cancel(AV_STREAM_TAG, mNotificationId);
+            return;
+        }
+
+        Intent intent = WebLayerImpl.createIntent();
+        intent.putExtra(EXTRA_TAB_ID, mNotificationId);
+        intent.setAction(ACTIVATE_TAB_INTENT);
+        PendingIntent pendingIntent = PendingIntent.getBroadcast(
+                ContextUtils.getApplicationContext(), mNotificationId, intent, 0);
+        // TODO(estade): use localized text and correct icon.
+        NotificationCompat.Builder builder =
+                new NotificationCompat.Builder(ContextUtils.getApplicationContext(), CHANNEL_ID)
+                        .setOngoing(true)
+                        .setLocalOnly(true)
+                        .setAutoCancel(false)
+                        .setContentIntent(pendingIntent)
+                        .setSmallIcon(android.R.drawable.ic_menu_camera)
+                        .setContentTitle(audio && video
+                                        ? "all the streamz"
+                                        : audio ? "audio streamz" : "video streamz");
+        notificationManager.notify(AV_STREAM_TAG, mNotificationId, builder.build());
+    }
+
+    private void createNotificationChannel() {
+        // Create the NotificationChannel, but only on API 26+ because
+        // the NotificationChannel class is new and not in the support library
+        if (!sCreatedChannel && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+            // TODO(estade): use localized channel name.
+            ContextUtils.getApplicationContext()
+                    .getSystemService(NotificationManager.class)
+                    .createNotificationChannel(new NotificationChannel(
+                            CHANNEL_ID, "WebRTC", NotificationManager.IMPORTANCE_LOW));
+        }
+
+        sCreatedChannel = true;
+    }
+
+    private NotificationManagerCompat getNotificationManager() {
+        if (ContextUtils.getApplicationContext() == null) {
+            return null;
+        }
+        return NotificationManagerCompat.from(ContextUtils.getApplicationContext());
+    }
+
+    @NativeMethods
+    interface Natives {
+        long create(MediaStreamManager caller, WebContents webContents);
+        void destroy(long manager);
+    }
+}
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java
index 3373f4a..3cf5fbb 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java
+++ b/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java
@@ -50,7 +50,9 @@
 import org.chromium.weblayer_private.interfaces.StrictModeWorkaround;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Implementation of ITab.
@@ -58,6 +60,8 @@
 @JNINamespace("weblayer")
 public final class TabImpl extends ITab.Stub {
     private static int sNextId = 1;
+    // Map from id to TabImpl.
+    private static final Map<Integer, TabImpl> sTabMap = new HashMap<Integer, TabImpl>();
     private long mNativeTab;
 
     private ProfileImpl mProfile;
@@ -75,6 +79,7 @@
      * updateFromBrowser() is invoked.
      */
     private AutofillProvider mAutofillProvider;
+    private MediaStreamManager mMediaStreamManager;
     private NewTabCallbackProxy mNewTabCallbackProxy;
     private ITabClient mClient;
     private final int mId;
@@ -114,6 +119,10 @@
         public void onScrollChanged(int lPix, int tPix, int oldlPix, int oldtPix) {}
     }
 
+    public static TabImpl getTabById(int tabId) {
+        return sTabMap.get(tabId);
+    }
+
     public TabImpl(ProfileImpl profile, WindowAndroid windowAndroid) {
         mId = ++sNextId;
         init(profile, windowAndroid, TabImplJni.get().createTab(profile.getNativeProfile(), this));
@@ -156,6 +165,8 @@
         };
         mWebContents.addObserver(mWebContentsObserver);
 
+        mMediaStreamManager = new MediaStreamManager(this);
+
         mBrowserControlsDelegates = new ArrayList<BrowserControlsVisibilityDelegate>();
         mBrowserControlsVisibility = new ComposedBrowserControlsVisibilityDelegate();
         for (int i = 0; i < ImplControlsVisibilityReason.REASON_COUNT; ++i) {
@@ -168,6 +179,8 @@
         mBrowserControlsVisibility.addObserver(mConstraintsUpdatedCallback);
 
         mInterceptNavigationDelegate = new InterceptNavigationDelegateImpl(this);
+
+        sTabMap.put(mId, this);
     }
 
     public ProfileImpl getProfile() {
@@ -536,6 +549,11 @@
         mInterceptNavigationDelegate.onTabDestroyed();
         mInterceptNavigationDelegate = null;
 
+        mMediaStreamManager.destroy();
+        mMediaStreamManager = null;
+
+        sTabMap.remove(mId);
+
         // ObservableSupplierImpl.addObserver() posts a task to notify the observer, ensure the
         // callback isn't run after destroy() is called (otherwise we'll get crashes as the native
         // tab has been deleted).
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/WebLayerImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/WebLayerImpl.java
index 458860cd..7865684 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/WebLayerImpl.java
+++ b/weblayer/browser/java/org/chromium/weblayer_private/WebLayerImpl.java
@@ -308,7 +308,11 @@
     public void onReceivedBroadcast(IObjectWrapper appContextWrapper, Intent intent) {
         StrictModeWorkaround.apply();
         Context context = ObjectWrapper.unwrap(appContextWrapper, Context.class);
-        DownloadImpl.forwardIntent(context, intent, mProfileManager);
+        if (intent.getAction().startsWith(DownloadImpl.getIntentPrefix())) {
+            DownloadImpl.forwardIntent(context, intent, mProfileManager);
+        } else if (intent.getAction().startsWith(MediaStreamManager.getIntentPrefix())) {
+            MediaStreamManager.forwardIntent(intent);
+        }
     }
 
     @Override
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ITabClient.aidl b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ITabClient.aidl
index 28a048de..61647eb 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ITabClient.aidl
+++ b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ITabClient.aidl
@@ -29,4 +29,7 @@
 
   // Added in M83.
   void onTitleUpdated(in IObjectWrapper title) = 6;
+
+  // Added in M84.
+  void bringTabToFront() = 7;
 }
diff --git a/weblayer/browser/tab_impl.cc b/weblayer/browser/tab_impl.cc
index 4cbc4e1..ebc0f4b 100644
--- a/weblayer/browser/tab_impl.cc
+++ b/weblayer/browser/tab_impl.cc
@@ -60,6 +60,7 @@
 #include "weblayer/browser/java/jni/TabImpl_jni.h"
 #include "weblayer/browser/javascript_tab_modal_dialog_manager_delegate_android.h"
 #include "weblayer/browser/top_controls_container_view.h"
+#include "weblayer/browser/webrtc/media_stream_manager.h"
 #endif
 
 #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
@@ -553,17 +554,13 @@
     content::WebContents* web_contents,
     const content::MediaStreamRequest& request,
     content::MediaResponseCallback callback) {
-  webrtc::MediaStreamDevicesController::RequestPermissions(
-      request, nullptr,
-      base::BindOnce(
-          [](content::MediaResponseCallback callback,
-             const blink::MediaStreamDevices& devices,
-             blink::mojom::MediaStreamRequestResult result,
-             bool blocked_by_feature_policy, ContentSetting audio_setting,
-             ContentSetting video_setting) {
-            std::move(callback).Run(devices, result, {});
-          },
-          base::Passed(std::move(callback))));
+#if defined(OS_ANDROID)
+  MediaStreamManager::FromWebContents(web_contents)
+      ->RequestMediaAccessPermission(request, std::move(callback));
+#else
+  std::move(callback).Run(
+      {}, blink::mojom::MediaStreamRequestResult::NOT_SUPPORTED, nullptr);
+#endif
 }
 
 bool TabImpl::CheckMediaAccessPermission(
diff --git a/weblayer/browser/webrtc/media_stream_manager.cc b/weblayer/browser/webrtc/media_stream_manager.cc
new file mode 100644
index 0000000..356f182
--- /dev/null
+++ b/weblayer/browser/webrtc/media_stream_manager.cc
@@ -0,0 +1,151 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "weblayer/browser/webrtc/media_stream_manager.h"
+
+#include "base/supports_user_data.h"
+#include "components/webrtc/media_stream_devices_controller.h"
+#include "content/public/browser/media_stream_request.h"
+#include "content/public/browser/web_contents.h"
+#include "weblayer/browser/java/jni/MediaStreamManager_jni.h"
+
+using base::android::AttachCurrentThread;
+using base::android::JavaParamRef;
+using base::android::ScopedJavaLocalRef;
+
+namespace weblayer {
+
+namespace {
+
+constexpr int kWebContentsUserDataKey = 0;
+
+struct UserData : public base::SupportsUserData::Data {
+  MediaStreamManager* manager = nullptr;
+};
+
+}  // namespace
+
+// A class that tracks the lifecycle of a single active media stream. Ownership
+// is passed off to MediaResponseCallback.
+class MediaStreamManager::StreamUi : public content::MediaStreamUI {
+ public:
+  StreamUi(MediaStreamManager* manager,
+           const blink::MediaStreamDevices& devices)
+      : manager_(manager) {
+    DCHECK(manager_);
+    for (const auto& device : devices) {
+      if (device.type == blink::mojom::MediaStreamType::DEVICE_AUDIO_CAPTURE)
+        streaming_audio_ = true;
+      if (device.type == blink::mojom::MediaStreamType::DEVICE_VIDEO_CAPTURE)
+        streaming_video_ = true;
+    }
+  }
+  StreamUi(const StreamUi&) = delete;
+  StreamUi& operator=(const StreamUi&) = delete;
+
+  ~StreamUi() override {
+    if (manager_)
+      manager_->UnregisterStream(this);
+  }
+
+  // content::MediaStreamUi:
+  gfx::NativeViewId OnStarted(base::OnceClosure stop,
+                              SourceCallback source) override {
+    if (manager_)
+      manager_->RegisterStream(this);
+    return 0;
+  }
+
+  void OnManagerGone() { manager_ = nullptr; }
+
+  bool streaming_audio() const { return streaming_audio_; }
+
+  bool streaming_video() const { return streaming_video_; }
+
+ private:
+  MediaStreamManager* manager_;
+  bool streaming_audio_ = false;
+  bool streaming_video_ = false;
+};
+
+MediaStreamManager::MediaStreamManager(
+    const JavaParamRef<jobject>& j_object,
+    const JavaParamRef<jobject>& j_web_contents)
+    : j_object_(j_object) {
+  auto user_data = std::make_unique<UserData>();
+  user_data->manager = this;
+  content::WebContents::FromJavaWebContents(j_web_contents)
+      ->SetUserData(&kWebContentsUserDataKey, std::move(user_data));
+}
+
+MediaStreamManager::~MediaStreamManager() {
+  for (auto* stream : active_streams_)
+    stream->OnManagerGone();
+}
+
+// static
+MediaStreamManager* MediaStreamManager::FromWebContents(
+    content::WebContents* contents) {
+  UserData* user_data = reinterpret_cast<UserData*>(
+      contents->GetUserData(&kWebContentsUserDataKey));
+  DCHECK(user_data);
+  return user_data->manager;
+}
+
+void MediaStreamManager::RequestMediaAccessPermission(
+    const content::MediaStreamRequest& request,
+    content::MediaResponseCallback callback) {
+  webrtc::MediaStreamDevicesController::RequestPermissions(
+      request, nullptr,
+      base::BindOnce(&MediaStreamManager::OnMediaAccessPermissionResult,
+                     weak_factory_.GetWeakPtr(),
+                     base::Passed(std::move(callback))));
+}
+
+void MediaStreamManager::OnMediaAccessPermissionResult(
+    content::MediaResponseCallback callback,
+    const blink::MediaStreamDevices& devices,
+    blink::mojom::MediaStreamRequestResult result,
+    bool blocked_by_feature_policy,
+    ContentSetting audio_setting,
+    ContentSetting video_setting) {
+  std::move(callback).Run(devices, result,
+                          std::make_unique<StreamUi>(this, devices));
+}
+
+void MediaStreamManager::RegisterStream(StreamUi* stream) {
+  active_streams_.insert(stream);
+  Update();
+}
+
+void MediaStreamManager::UnregisterStream(StreamUi* stream) {
+  active_streams_.erase(stream);
+  Update();
+}
+
+void MediaStreamManager::Update() {
+  bool audio = false;
+  bool video = false;
+  for (const auto* stream : active_streams_) {
+    audio = audio || stream->streaming_audio();
+    video = video || stream->streaming_video();
+  }
+
+  Java_MediaStreamManager_update(base::android::AttachCurrentThread(),
+                                 j_object_, audio, video);
+}
+
+static jlong JNI_MediaStreamManager_Create(
+    JNIEnv* env,
+    const JavaParamRef<jobject>& j_object,
+    const JavaParamRef<jobject>& j_web_contents) {
+  return reinterpret_cast<intptr_t>(
+      new MediaStreamManager(j_object, j_web_contents));
+}
+
+static void JNI_MediaStreamManager_Destroy(JNIEnv* env, jlong native_manager) {
+  delete reinterpret_cast<MediaStreamManager*>(native_manager);
+}
+
+}  // namespace weblayer
diff --git a/weblayer/browser/webrtc/media_stream_manager.h b/weblayer/browser/webrtc/media_stream_manager.h
new file mode 100644
index 0000000..4d51e72
--- /dev/null
+++ b/weblayer/browser/webrtc/media_stream_manager.h
@@ -0,0 +1,65 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef WEBLAYER_BROWSER_WEBRTC_MEDIA_STREAM_MANAGER_H_
+#define WEBLAYER_BROWSER_WEBRTC_MEDIA_STREAM_MANAGER_H_
+
+#include <set>
+
+#include "base/android/scoped_java_ref.h"
+#include "base/memory/weak_ptr.h"
+#include "components/content_settings/core/common/content_settings.h"
+#include "content/public/browser/media_stream_request.h"
+
+namespace content {
+class WebContents;
+}
+
+namespace weblayer {
+
+// On Android, this class tracks active media streams and updates the Java
+// object of the same name as streams come and go. The class is created and
+// destroyed by the Java object.
+class MediaStreamManager {
+ public:
+  // It's expected that |j_web_contents| outlasts |this|.
+  MediaStreamManager(
+      const base::android::JavaParamRef<jobject>& j_object,
+      const base::android::JavaParamRef<jobject>& j_web_contents);
+  MediaStreamManager(const MediaStreamManager&) = delete;
+  MediaStreamManager& operator=(const MediaStreamManager&) = delete;
+  ~MediaStreamManager();
+
+  static MediaStreamManager* FromWebContents(content::WebContents* contents);
+
+  // Requests media access permission for the tab, if necessary, and runs
+  // |callback| as appropriate. This will create a StreamUi.
+  void RequestMediaAccessPermission(const content::MediaStreamRequest& request,
+                                    content::MediaResponseCallback callback);
+
+ private:
+  class StreamUi;
+
+  void OnMediaAccessPermissionResult(
+      content::MediaResponseCallback callback,
+      const blink::MediaStreamDevices& devices,
+      blink::mojom::MediaStreamRequestResult result,
+      bool blocked_by_feature_policy,
+      ContentSetting audio_setting,
+      ContentSetting video_setting);
+
+  void RegisterStream(StreamUi* stream);
+  void UnregisterStream(StreamUi* stream);
+  void Update();
+
+  std::set<StreamUi*> active_streams_;
+
+  base::android::ScopedJavaGlobalRef<jobject> j_object_;
+
+  base::WeakPtrFactory<MediaStreamManager> weak_factory_{this};
+};
+
+}  // namespace weblayer
+
+#endif  // WEBLAYER_BROWSER_WEBRTC_MEDIA_STREAM_MANAGER_H_
diff --git a/weblayer/public/java/AndroidManifest.xml b/weblayer/public/java/AndroidManifest.xml
index 2e3917c..6425421 100644
--- a/weblayer/public/java/AndroidManifest.xml
+++ b/weblayer/public/java/AndroidManifest.xml
@@ -63,6 +63,8 @@
                 <action android:name="org.chromium.weblayer.downloads.PAUSE"/>
                 <action android:name="org.chromium.weblayer.downloads.RESUME"/>
                 <action android:name="org.chromium.weblayer.downloads.CANCEL"/>
+                <!-- this needs to be in sync with MediaStreamManager.java-->
+                <action android:name="org.chromium.weblayer.webrtc.ACTIVATE_TAB"/>
             </intent-filter>
         </receiver>
     </application>
diff --git a/weblayer/public/java/org/chromium/weblayer/Tab.java b/weblayer/public/java/org/chromium/weblayer/Tab.java
index f87738f3..3b2c945 100644
--- a/weblayer/public/java/org/chromium/weblayer/Tab.java
+++ b/weblayer/public/java/org/chromium/weblayer/Tab.java
@@ -371,6 +371,14 @@
                 callback.onTitleUpdated(titleString);
             }
         }
+
+        @Override
+        public void bringTabToFront() {
+            StrictModeWorkaround.apply();
+            for (TabCallback callback : mCallbacks) {
+                callback.bringTabToFront();
+            }
+        }
     }
 
     private static final class ErrorPageCallbackClientImpl extends IErrorPageCallbackClient.Stub {
diff --git a/weblayer/public/java/org/chromium/weblayer/TabCallback.java b/weblayer/public/java/org/chromium/weblayer/TabCallback.java
index 31267e2..007a716 100644
--- a/weblayer/public/java/org/chromium/weblayer/TabCallback.java
+++ b/weblayer/public/java/org/chromium/weblayer/TabCallback.java
@@ -48,4 +48,10 @@
      * @since 83
      */
     public void onTitleUpdated(@NonNull String title) {}
+
+    /**
+     * Called when user attention should be brought to this tab. This should cause the tab, its
+     * containing Activity, and the task to be foregrounded.
+     */
+    public void bringTabToFront() {}
 }
diff --git a/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java b/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java
index 70605b94..81e10657 100644
--- a/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java
+++ b/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java
@@ -338,9 +338,19 @@
 
             @Override
             public void showContextMenu(ContextMenuParams params) {
-                View weblayerView = getSupportFragmentManager().getFragments().get(0).getView();
-                weblayerView.setOnCreateContextMenuListener(new ContextMenuCreator(params));
-                weblayerView.showContextMenu();
+                View webLayerView = getSupportFragmentManager().getFragments().get(0).getView();
+                webLayerView.setOnCreateContextMenuListener(new ContextMenuCreator(params));
+                webLayerView.showContextMenu();
+            }
+
+            @Override
+            public void bringTabToFront() {
+                tab.getBrowser().setActiveTab(tab);
+
+                Context context = WebLayerShellActivity.this;
+                Intent intent = new Intent(context, WebLayerShellActivity.class);
+                intent.setAction(Intent.ACTION_MAIN);
+                context.getApplicationContext().startActivity(intent);
             }
         });
         tab.getNavigationController().registerNavigationCallback(new NavigationCallback() {